自動回復コマンド(まんたん)を実現【RPGツクールMZ&MVプラグイン】

2021年02月17日

 自動回復コマンドを実現します。
 いわゆるドラクエのまんたんコマンドです。
 メニュー画面などから実行すると、パーティメンバーがスキルを自動的に使用して回復してくれます。


主な仕様

  • メニューに自動回復コマンドを追加。
  • また、プラグインコマンドからの呼び出しも可能。
  • 登録したステートを同時に治療。
    (初期状態では戦闘不能と毒のみ対象)
  • なるべく消費効率の良いスキルを自動で選択。
  • 回復スキルの使用者を決定する条件を変更可能。
    例えば、MPが高い者、効率の良いスキルを持つ者など。
  • 最大HPのXX%まで回復するような設定も可能。
    (いわゆる『ほぼまんたん』)
  • メッセージの表示方法を選択可。
  • 控えメンバーを対象に含めるかを選択可。

目次


導入方法(Install)

更新履歴(History)

使用方法(Usage)

スキルのメモ欄(Note Of Skills)

プラグインパラメータ(メニューコマンド関連)

メニューコマンドに表示(ShowMenuCommand)

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

自動回復表示名(AutoHealName)

[上級]自動回復記号(AutoHealSymbol)


プラグインパラメータ(回復設定関連)

治療するステート(CureStates)

対象とするHP%(TargetHpRate)

対象HP%を変数指定(TargetHpRateVariable)

使用者優先順位(UserPriority)

控えメンバーも使用者に(UseReserveMembers)

控えメンバーも対象に(TargetReserveMembers)


プラグインパラメータ(メッセージ関連)

メッセージの表示方式(MessageType)

回復成功メッセージ(MessageSuccess)

回復不要メッセージ(MessageUnnecessary)

回復失敗メッセージ(MessageFailure)


プラグインパラメータ(効果音関連)

成功時の効果音(SoundSuccess)

失敗時の効果音(SoundFailure)


プラグインパラメータ(メニューを閉じる)

メニューを閉じる(CloseMenu)

成功時のスイッチ(SuccessSwitch)

失敗時のスイッチ(FailureSwitch)


MZ用プラグインコマンド(MZ Plugin Command)

MV用プラグインコマンド(MV Plugin Command)

メッセージの表示について(About Displaying Messages)

自動回復のアルゴリズム(Algorithm of "Auto Heal")

その他、細かい仕様(Other Detailed Specifications)


導入方法(Install)


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

 NRP_AutoHeal.js ver1.001(2021/02/22)

更新履歴(history)


2021/02/17 -> 02/22(ver1.00 -> 1.001)

  • 公開!
  • MZのプラグイン一覧で「MZに対応していない可能性があります」のメッセージが出る問題に対処。(02/22 ver1.001)

使用方法(Usage)


 プラグインをオンにすれば、メニューコマンドに自動回復コマンドが追加されます。
 メニューに表示せず、プラグインコマンドから呼び出すことも可能です。
 また、プラグインパラメータより細かい調整が可能です。

スキルのメモ欄(Note Of Skills)


<ExceptAutoHeal>

 指定したスキルを自動回復の使用対象から除きます。

プラグインパラメータ(メニューコマンド関連)


メニューコマンドに表示(ShowMenuCommand)

 メニューコマンドに自動回復を追加します。

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

 メニューコマンドに自動回復を挿入する位置です。
 0が先頭になります。

自動回復表示名(AutoHealName)

 自動回復の表示コマンド名を設定します。

[上級]自動回復記号(AutoHealSymbol)

 自動回復の記号を設定します。
 この値は他のプラグインと連携する際に使用できます。

プラグインパラメータ(回復設定関連)


治療するステート(CureStates)

 治療の対象とするステートの一覧です。
 ステートの治療はHPの回復より優先されます。

 初期状態では『戦闘不能』と『毒』が設定されています。必要に応じて追加・削除してください。

対象とするHP%(TargetHpRate)

 HP%がこの数値未満の場合に回復対象とします。
 初期値は100。少しでも減っていれば回復します。

 この値を変更することで『ほぼまんたん』的な挙動も実現できます。

対象HP%を変数指定(TargetHpRateVariable)

 上の『対象とするHP%』の設定値を変数指定できるようにします。
 設定すると、こちらのほうが優先されるようになります。

使用者優先順位(UserPriority)

 回復スキルの使用者の優先順位を決める条件を選択します。

  • 残MP優先:現在MPが多いキャラが回復を行います。
  • 後列優先:隊列の後ろ側にいるキャラが回復を行います。
  • 低消費優先:最も低い消費で回復できるキャラが回復を行います。
    要するに、優秀な回復スキルを持つキャラが優先されます。
  • バランス(残MP+低消費):残MP優先と低消費優先の中間です。

 初期状態では『バランス』になっています。
 少し分かりにくいかもしれませんが、これは「残MP×消費MP×予想回復量」を優先度として使用するものです。

 例えば「攻撃魔法が得意で、回復魔法が苦手な魔道士」と「攻撃魔法が苦手で、回復魔法が得意な神官」がいたとします。
 この場合、「普段の回復は神官が担当し、神官のMPが減ってきた時だけ魔道士が担当する」というような運用をするプレイヤーが多くいると思います。
 このような運用を自動的に実現できる設定が『バランス』です。

  • 魔道士:残MP200、消費MP10で100回復できる。
  • 神官 :残MP100、消費MP10で200回復できる。

 上記の場合、二人の優先度がちょうど釣り合うことになります。

控えメンバーも使用者に(UseReserveMembers)

 戦闘に参加しない控えメンバーも回復スキルを使用します。
 要するにドラクエでいう馬車メンバーも回復してくれるようにできるよ――ということです。
 初期状態では無効です。

控えメンバーも対象に(TargetReserveMembers)

 戦闘に参加しない控えメンバーも回復の対象とします。
 こちらは回復を受ける側です。
 初期状態では無効です。

プラグインパラメータ(メッセージ関連)


メッセージの表示方式(MessageType)

 メッセージの表示方式を設定します。

  • 0:表示しない
  • 1:簡易表示:一行だけの簡単なメッセージを表示
  • 2:スキルの使用状況を表示:「〜は〜を唱えた」のメッセージを表示
  • 3:スキルの使用結果も表示:「〜のHPが〜回復した」のメッセージまで表示

 なお、失敗時のメッセージは1~3のいずれも同じです。
 初期状態では『3:スキルの使用結果も表示』になっています。

回復成功メッセージ(MessageSuccess)

 回復成功時のメッセージです。
 『メッセージの表示方式』が『1:簡易表示』の場合のみ表示されます。

回復不要メッセージ(MessageUnnecessary)

 回復が不要な際のメッセージです。

回復失敗メッセージ(MessageFailure)

 回復に失敗した際のメッセージです。

プラグインパラメータ(効果音関連)


成功時の効果音(SoundSuccess)

 回復に成功した際の効果音です。

失敗時の効果音(SoundFailure)

 回復に失敗した際の効果音です。

プラグインパラメータ(メニューを閉じる)


メニューを閉じる(CloseMenu)

 自動回復後にメニューを閉じます。
 これが有効な場合のみ、同時にオンにするスイッチを以下で指定可能です。
 初期状態では無効です。

成功時のスイッチ(SuccessSwitch)

 自動回復の成功時、オンにするスイッチです。
 基本的にはコモンイベントの呼び出しに用いる想定です。フラッシュやアニメーションなどの演出に利用できます。

失敗時のスイッチ(FailureSwitch)

 自動回復の失敗時、オンにするスイッチです。

MZ用プラグインコマンド(MZ Plugin Command)


 イベント上から自動回復を実行できます。
 『対象とするHP%』『成功時のスイッチ』『失敗時のスイッチ』を指定可能です。
 内容はプラグインパラメータと同一のため割愛します。

MV用プラグインコマンド(MV Plugin Command)


nrp.autoHeal.start

 自動回復を実行します。
 また、以下を事前に指定すればオプションも指定可能です。

nrp.autoHeal.targetHpRate XX

 HPが指定した数値%以下ならば、回復を実行します。
 
nrp.autoHeal.successSwitch X

 回復成功時、指定した番号のスイッチをオンにします。

nrp.autoHeal.failureSwitch X

 回復失敗時、指定した番号のスイッチをオンにします。

 以下は全てをまとめた実行例です。
 ※一行ずつ呼び出してください。
nrp.autoHeal.targetHpRate 90
nrp.autoHeal.successSwitch 1
nrp.autoHeal.failureSwitch 2
nrp.autoHeal.start


メッセージの表示について(About Displaying Messages)


 自動回復を行った際、結果をメッセージで表示します。
 ただし、本来ツクールの仕様ではメニュー画面でのメッセージ表示はできません。
 色々と無理矢理なので、競合などの問題が発生する可能性もあります。
 その際は、自動回復後にメニューを閉じる設定にするか、メッセージ表示をオフにしてください。
 
 また、メニューを閉じる場合のみ、コモンイベントの呼出も可能です。
 演出などにご利用ください。

自動回復のアルゴリズム(Algorithm of "Auto Heal")


  1. 最もHPの割合が減っている対象者を求める。
  2. 設定に従って、回復スキルの使用者を確定。
  3. 対象者に対して、最も効率の良いスキルを求める。
    ※(回復量/消費)が最大のスキル。
  4. 回復実行。
  5. 上記を繰り返し。
    誰もHPが減っていないか、誰もスキルを使用できなくなれば終了。

その他、細かい仕様(Other Detailed Specifications)


  • 回復の対象はタイプが『HP回復』のスキルのみです。

  • また、効果の計算は計算式で行います。
    使用効果での回復量までは考慮していません。

  • MPとTPは同列に扱います。
    つまり、回復量が同じなら、消費MPが10のスキルと
    消費TPが10のスキルの効率は同等とみなします。

  • 回復量を求めるため、内部的にスキルの計算式を実行します。
    計算式内に実処理を書くと、それも実行されるので注意です。

  • 完全な効率化を保証するものではありません。
    特にステートの治療については、あまり効率化されていません。
    例えば、複数ステートを治療できるスキルと、一つのステートしか、治療できないスキルの効率の差などは計算していません。
    複雑すぎて作者が諦めました。

  • あまりないと思いますが、対象がランダムの回復スキルは対象外です。
    結果を計算できないのでどうしようもありません。

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