リスト形式のスキル習得システム【RPGツクールMZプラグイン】

2024年07月17日

 リスト形式のスキル習得システムを実装します。


 獲得したスキルポイントを消費し、表から覚えたいスキルを選択するシンプルな仕組みです。

 スキルポイントは敵から入手したり、レベルアップ時に入手したりといった方法を選択できます。


 あまり複雑な機能はありませんが、工夫次第では擬似的なスキルツリーなども作成できます。

 予約機能にも対応しました。(2024/07/10)
 付属のプラグインを導入することで、スキルポイントが足りない場合も習得するスキルを予約することができます。



目次


導入方法(Install)

更新履歴(History)

スキルリストの作成

スキルポイントの設定

敵キャラのメモ欄

アイテムのメモ欄

スキルツリー

おすすめプラグイン

プラグインコマンド(Plugin Commands)

シーン開始(SceneStart)

スキルポイントの増減(ChangeSkillPoint)

スキルリセット(ResetSkill)

プラグインパラメータ(Plugin Parameters)

スキルセットのリスト(SkillSetList)

<スキルポイント>(<SkillPoint>)

スキルポイントの表示名(SkillPointName)
スキルポイントの最大値(MaxSkillPoint)
スキルポイントの保有方法(SkillPointType)
スキルポイントの変数(SkillPointVariable)
スキルポイント獲得文(SkillPointMessage)
敵スキルポイントの既定値(DefaultEnemySkillPoint)
SP有効化スイッチ(SkillPointSwitch)
控えの獲得率(BenchSkillPointRate)
レベルアップ時のSP(LevelUpSkillPoint)
<スキルリスト関連>(<SkillListWindow>)

習得済スキルの表示方法(LearnedSkillDisplayStyle)
アイコンを表示(UseIcon)
スキルポイントの色(SkillPointColor)
習得済の表示文(LearnedText)
習得済の色(LearnedTextColor)
隠しスキルを表示(ShowHiddenSkills)
隠しスキルの記号(HiddenSymbol)
ヘルプの行数(HelpLines)
隠しスキルのマスク(HiddenSkillMask)
ヘルプを隠す(HiddenHelp)
<アクターウィンドウ関連>(<ActorWindow>)

アクターウィンドウの横幅(ActorWindowWidth)
アクターウィンドウの縦幅(ActorWindowHeight)
アクターの変更無効(ActorChangeInvalid)
<確認ウィンドウ関連>(<ConfirmWindow>)

確認メッセージ(ConfirmMessage)
OKの文言(ConfirmButtonOk)
キャンセルの文言(ConfirmButtonCancel)
確定時のSE(ConfirmOkSe)
<メニューコマンド関連>(<Menu Command>)

メニューコマンド挿入位置(ShowMenuCommandPosition)
メニュー表示名(CommandName)
表示許可するスイッチ(MenuCommandSwitch)
マスク文字列(MaskString)
禁止するスイッチ(DisableSwitch)

スキルセットのパラメータ(Plugin Parameters SkillSet)

メモ(Note)

スキルリスト(SkillList)

<条件>(<Condition>)

アクター(Actor)
スイッチ(Switch)
スクリプト(Script)

スキルデータのパラメータ(Plugin Parameters SkillData)

メモ(Note)

スキル(Skill)

スキルポイント(SkillPoint)

表示名(DisplayName)

ヘルプに追記(HelpPostscript)

習得済スキルの表示方法(LearnedSkillDisplayStyle)

<条件>(<Condition>)

スキル(ConditionSkill)
スイッチ(Switch)
スクリプト(Script)
<禁止条件>(<DisabledCondition>)

スクリプト(DisabledScript)

導入方法(install)


 以下のファイルをダウンロードし 、[プロジェクト]\js\plugins に放り込みます。ツクールのプラグイン管理から機能をONにしてください。
 ※このプラグインはMZ専用です。

 NRP_LearnSkillList.js ver1.081(2024/07/17)

予約機能(解説

 NRP_LearnSkillListReserve.js ver1.01(2024/07/17)

更新履歴(History)


2024/07/17(ver1.08 -> 1.081)

  • メニューを経由せず直接習得画面を呼び出した場合、顔グラが表示されないことがある不具合を修正。
  • 表示条件を満たしたスキルでも習得禁止にする設定を追加した。
  • 隠しスキルの記号が空欄の場合、undefinedの文字列が表示されてしまう不具合修正。(ver1.081)

2024/07/16(ver1.07)

  • NRP_EquipSlot.jsなどのパッシブスキルによって、装備スロットを追加した際に正しく装備状況が更新されない不具合修正。

2024/07/10(ver1.06)


2023/12/11(ver1.05)

  • プラグインコマンドでアクターを指定した場合にアクターの切り替えを禁止できるようにした。
  • プラグインコマンドでパーティにいないアクターも指定できるようにした。

2023/10/04(ver1.04)


2023/08/06(ver1.03)


2023/06/19 -> 2023/06/25(ver1.02 -> 1.021)

  • スキルポイントの保有方法がパーティ共有制の場合、エラーになる不具合修正。
  • スキルポイントを減らした場合、マイナスにならないように修正。(2023/06/25 ver1.021)

2023/05/01 -> 2023/05/03(ver1.01 -> 1.012)

  • スキルポイントの最大値を設定できるようにした。
  • スキルポイントの保有方法が『パーティ共有』の場合、スキルポイントの増減を行うとエラーになる不具合修正。
  • アクターのスキルポイントを0で初期化するように修正。
    (2023/05/03 ver1.012)

2023/04/23 -> 2023/04/30(ver1.00 -> 1.001)

  • 公開!
  • 『スキルポイントの表示名』が反映されない不具合修正。
    (2023/04/30 ver1.001)

スキルリストの作成


 まずプラグインパラメータの『スキルセットのリスト』にスキルセットを登録し、その下へさらにスキル情報を登録してください。

 スキルセットには対象とするアクターなどの条件を指定できます。
 条件を指定しなかった場合は全員共通のスキルとなります。

 他にも、スキル毎に前提スキルなどの条件を指定できます。

 メニューから『スキル習得』のコマンドを選択すれば、スキル習得システムの画面が表示されるようになります。

スキルポイントの設定


 スキルポイントの保有方法として『アクター毎』と『パーティ共有』の二種類から選択できます。
 パーティ共有の場合は変数内に格納するため、イベントコマンドの『変数の操作』での制御が可能となります。

敵キャラのメモ欄


<SkillPoint:?>

 獲得できるスキルポイントを指定します。

 また、プラグインパラメータで既定値を指定することもできます。
 細かい指定が面倒なら、経験値やレベルに比例する値にしてしまえば楽です。

 ※標準では敵キャラにレベルは存在しません。何らかの外部プラグインで設定する必要があります。

<SkillPointRate:?>

 獲得できるスキルポイントを指定した%に変更します。
 例えば、200ならば200%(2倍)になります。
 既定値とのセットで使うことを想定しています。

アイテムのメモ欄


<AddSkillPoint:?>

 アクターのスキルポイントを数値分増加させます。

スキルツリー


 当プラグインにはスキルツリーなどの複雑な構造を作成する機能はありません。
 ……が、擬似的にスキルツリーっぽく見せることはできます。


 やり方は単純で『スキルデータのパラメータ』の表示名に手入力で全角スペースと記号を入れているだけです。
 画像の例だと『 └%2%1』というようになります。
 ※%2はアイコン、%1はスキル名です。

 あくまで簡易的なものなので、複数のスキルを条件とする場合など複雑な設定には向きません。

 ※条件を満たしていないスキルを表示させたい場合は隠しスキルを表示をオンにしてください。

おすすめプラグイン


上位スキル習得時に下位スキルを消去

 無駄にスキルを増やしたくない場合は便利です。

 ただし、初期スキルの条件の指定には工夫が必要です。
 スクリプトで『!a.isLearnedSkill(1) && !a.isLearnedSkill(2)』というように「上位スキル全ての未習得」を条件にしないと下位スキルが一覧に復活してしまいます。
 つまり、「ヒールUとVの両方を習得していない場合のみ、ヒールTを習得できる」というようなイメージです。

スキルの性能を変化させる

 パッシブスキルの作成などにどうぞ。

プラグインコマンド(Plugin Commands)


シーン開始(SceneStart)

 スキル習得画面を呼び出します。
 アクターを指定しない場合は、アクター選択画面も表示します。

スキルポイントの増減(ChangeSkillPoint)

 アクターのスキルポイントを増減させます。
 なお、0未満にはなりません。

スキルリセット(ResetSkill)

 習得したスキルを全て忘れて、スキルポイントを元に戻します。
 あまりないと思いますが、当機能で習得できるスキルと同一のスキルをアクターが他の手段で覚えていた場合、そちらもリセットされてしまいます。

プラグインパラメータ(Plugin Parameters)


スキルセットのリスト(SkillSetList)

 習得するスキルセットを定義します。
 詳細は『スキルセットのプラグインパラメータ』をご覧ください。

<スキルポイント>(<SkillPoint>)

 スキルポイントに関する項目です。

スキルポイントの表示名(SkillPointName)

 スキルポイントを表す表示名です。

スキルポイントの最大値(MaxSkillPoint)

 スキルポイントの最大値です。
 これ以上の値にはなりません。

スキルポイントの保有方法(SkillPointType)

 スキルポイントの保有方法です。
 アクター毎かパーティ共有かを選択できます。

スキルポイントの変数(SkillPointVariable)

 スキルポイントを格納する変数です。
 保有方法にパーティ共有を選んだ場合のみ有効です。

スキルポイント獲得文(SkillPointMessage)

 スキルポイントの獲得文を表示します。
 %1=数値, %2=スキルポイントの表示名となります。

敵スキルポイントの既定値(DefaultEnemySkillPoint)

 敵が落とすスキルポイントの既定値を設定します。
 数式可。
 例えば、『1 + Math.floor(a.exp() / 100)』ならば、1+経験値÷100(切捨)の値をスキルポイントにします。

SP有効化スイッチ(SkillPointSwitch)

 指定のスイッチがオンの際、スキルポイントの増減を有効化します。
 空白なら常に有効。

控えの獲得率(BenchSkillPointRate)

 控えメンバーのスキルポイントの獲得率です。
 数式可。
 空白の場合は通常経験値と同率を使用します。

レベルアップ時のSP(LevelUpSkillPoint)

 レベルアップ時に獲得できるスキルポイントです。
 数式可。
 例えば、『a.level』ならば上昇後のレベルと同値のスキルポイントが手に入ります。

<スキルリスト関連>(<SkillListWindow>)

 スキルリストウィンドウに関する項目です。

習得済スキルの表示方法(LearnedSkillDisplayStyle)

 習得したスキルの表示方法です。

アイコンを表示(UseIcon)

 アイコンをスキル名の前に表示するかどうか?

スキルポイントの色(SkillPointColor)

 スキルポイントの文字色です。
 システムカラーの番号を指定してください。

習得済の表示文(LearnedText)

 習得済スキルに表示する文言です。
 スキルポイントの場所に表示されます。

習得済の色(LearnedTextColor)

 習得済スキルに表示する文言の色です。
 システムカラーの番号を指定してください。

隠しスキルを表示(ShowHiddenSkills)

 条件を満たしていないスキルを表示します。
 条件表示する場合はヘルプの行数は3以上に。

隠しスキルの記号(HiddenSymbol)

 隠しスキルに表示する記号です。
 スキルポイントの左に記号を表示することで「他に条件があるから、ポイントが足りていても習得できないよ!」ということを示します。

 条件についてはヘルプに追記のところで入力してください。

ヘルプの行数(HelpLines)

 ヘルプの行数を変更します。
 基本的には、行を3以上に増やすことで隠しスキルの条件表示を行うことを想定しています。

隠しスキルのマスク(HiddenSkillMask)

 隠しスキルを指定した文字列(?など)で隠します。
 条件を満たすと表示されるようになります。

ヘルプを隠す(HiddenHelp)

 隠しスキルのヘルプ(追記除く)を隠します。
 条件を満たすと表示されるようになります。

<アクターウィンドウ関連>(<ActorWindow>)

 アクターウィンドウに関する項目です。

アクターウィンドウの横幅(ActorWindowWidth)

 アクターウィンドウの横幅です。

アクターウィンドウの縦幅(ActorWindowHeight)

 アクターウィンドウの縦幅です。
 空白の場合は最大まで伸ばします。

アクターの変更無効(ActorChangeInvalid)

 プラグインコマンドにて、アクターを指定して呼び出した場合はアクターの変更を禁止します。

<確認ウィンドウ関連>(<ConfirmWindow>)

 スキルシステムを習得する際の確認ウィンドウに関する項目です。

確認メッセージ(ConfirmMessage)

 スキルの習得確認メッセージの内容です。
 %1=スキル名、%2=アイコン、%3=スキルポイントです。

OKの文言(ConfirmButtonOk)

 スキルの習得確認メッセージを確定する際のボタンの表示です。

キャンセルの文言(ConfirmButtonCancel)

 スキルの習得確認メッセージをキャンセルする際のボタンの表示です。

確定時のSE(ConfirmOkSe)

 スキルの習得を確定した際の効果音です。

<メニューコマンド関連>(<Menu Command>)

 メニューコマンドにスキルシステムを表示する際の関連項目です。

メニューコマンド挿入位置(ShowMenuCommandPosition)

 メニューコマンドにスキル習得を挿入する位置です。
 0が先頭。
 不要ならパラメータの一覧からDELキーで消去してください。

メニュー表示名(CommandName)

 スキルシステムの表示コマンド名を設定します。


 スイッチがオンの時のみコマンドを表示します。
 空白なら常に表示します。

マスク文字列(MaskString)

 表示許可するスイッチがオフの際、指定した文字列でコマンドを表示します。
 例えば、機能を解放する前のコマンドを「????」というように表示できます。

 空欄ならコマンド自体を非表示にします。

禁止するスイッチ(DisableSwitch)

 スイッチがオンの時のみコマンドを禁止(灰色)します。
 空白なら常に許可します。

スキルセットのパラメータ(Plugin Parameters SkillSet)


 スキルセットのプラグインパラメータです。
 スキルセットとはスキルのまとまりです。主にアクター単位でスキルを管理することを想定しています。

メモ(Note)

 識別用のメモです。

スキルリスト(SkillList)

 スキルリストを定義します。
 詳細は『スキルデータのプラグインパラメータ』をご覧ください。

<条件>(<Condition>)

アクター(Actor)

 スキルセットを表示するアクターです。
 空欄なら全員共通になります。

スイッチ(Switch)

 スキルセットを表示する条件となるスイッチです。

スクリプト(Script)

 スキルセットを表示する条件となるスクリプトです。

スキルデータのパラメータ(Plugin Parameters SkillData)


 スキルデータのプラグインパラメータです。
 ここに習得できるスキルの情報を設定してください。

メモ(Note)

 識別用のメモです。

スキル(Skill)

 習得するスキルです。

スキルポイント(SkillPoint)

 習得に必要なスキルポイントです。

表示名(DisplayName)

 習得画面での表示名です。
 %1:スキル名,%2:アイコン。
 空白ならスキル名をそのまま使用します。

ヘルプに追記(HelpPostscript)

 ヘルプに追記する文章です。
 主に習得条件の記述を想定しています。

 必要に応じて『ヘルプの行数』を設定してください。

習得済スキルの表示方法(LearnedSkillDisplayStyle)

 習得したスキルの表示方法です。
 こちらはスキル個別の設定です。
 空欄だと全体設定を適用します。

 普段は『力強化T→力強化U』というように習得したスキルは非表示にして上位スキルを表示。ただし、最高ランクのスキルだけ習得時にCompleteの表示を残すーーというような運用を想定しています。

<条件>(<Condition>)

スキル(ConditionSkill)

 指定のスキルを習得している場合のみスキルを表示します。

スイッチ(Switch)

 スキルを表示する条件となるスイッチです。

スクリプト(Script)

 スキルを表示する条件となるスクリプトです。

 例えば、スキル1とスキル2の両方を覚えている必要がある場合は『a.isLearnedSkill(1) && a.isLearnedSkill(2)』となります。

<禁止条件>(<DisabledCondition>)

スクリプト(DisabledScript)

 スキルの習得を禁止する条件となるスクリプトです。

 例えば、スキル1とスキル2の両方を覚えていないと禁止する場合は『!a.isLearnedSkill(1) || !a.isLearnedSkill(2)』となります。

 これを設定することで「表示はされるが、習得はできないスキル」を作成できます。
 なお、禁止時の挙動は『隠しスキルを表示』をオンにした場合と同じなので、『隠しスキルのマスク』などの設定も反映されます。

 >RPGツクールMZ&MV目次に戻る
posted by 砂川赳 at 11:28 | RPGツクールMZ&MV | このブログの読者になる | 更新情報をチェックする