【RPGツクールMV/MZ】行動による逃走とその仕様

目次

  1. 2種類の「逃げる」
    1. パーテイコマンド 「逃げる」による逃走
    2. 特殊効果 「逃げる」による逃走(行動による逃走)
  2. 行動による逃走の特徴
    1. 敵キャラを逃走させる唯一の手段
    2. 逃走時に戦闘不能含むすべてのステートが解除される
    3. 逃走しても強化・弱体が解除されない
    4. 再度戦闘に参加できる
  3. 行動による逃走の理想的な仕様の検討
    1. ステートの解除
    2. 強化・弱体の解除
  4. 理想を実現するプラグイン

RPGツクールMV/MZにおける、行動による逃走とその仕様について解説します。
その中でも、ステート・強化・弱体の解除については直感と反する仕様が存在するため、それを解決するプラグインを紹介します。

解説のもととなるコアスクリプトのバージョンは、MVは1.6.3 MZは1.5.0です。

2種類の「逃げる」

RPGツクールMV/MZにおいて、 逃げる という言葉が指す処理には2種類あります。
それぞれについて処理内容は異なります。

パーテイコマンド 「逃げる」による逃走

プレイヤーが戦闘中にパーティコマンドとして選択する 逃げる です。
逃走成功判定に成功した場合は逃走フラグ1をONにしつつ、戦闘を中断する処理を行います。

特殊効果 「逃げる」による逃走(行動による逃走)

スキルやアイテムの使用効果に、特殊効果 逃げる が存在します。
この逃走は、該当スキル・アイテムの効果対象となるバトラー2を戦闘から離脱させる3処理を行います。

パーティコマンドのような逃走成功判定を行わず、行動さえ成功すれば4逃走できます。

本記事では、スキルやアイテムを使用することを 行動
行動の特殊効果 逃げる によって逃走することを 行動による逃走
使用効果に特殊効果 逃げる の設定された行動のことを 逃走行動
と呼びます。

成功判定の他にも、行動による逃走にはパーティコマンドによる逃走と違う処理がいくつもあります。

行動による逃走の特徴

MV/MZにおける行動による逃走が、どのような特徴で実装されているかを説明します。

敵キャラを逃走させる唯一の手段

パーティコマンドによる逃走は、戦闘そのものを直接中断してしまうため、敵キャラを逃走させるという挙動はできません。
DQのメタルスライムやFFのサボテンダーのような、逃げてしまう敵を実現するためには、行動による逃走を使う必要があります。

逃走時に戦闘不能含むすべてのステートが解除される

行動による逃走を行ったバトラーのステートは、戦闘不能も含めて全て解除されます。

仮に逃走したアクターのHPが0になっていた場合5、戦闘不能ステートは解除されますが、HPは0のままです。
その状態でしばらく歩くと、突如「***(アクターの名前)は倒れた!」というメッセージが表示され、対象のアクターに戦闘不能ステートが付与されます。

また、解除条件に戦闘終了で解除が設定されていないステートも、行動による逃走で戦闘から離脱した際に解除されてしまいます。

逃走しても強化・弱体が解除されない

強化・弱体は、本来であれば戦闘終了時に解除されますが、行動による逃走で戦闘から離脱すると解除されません。

再度戦闘に参加できる

実は、行動による逃走が成立するとは、バトラーが隠れている状態になります。
行動による逃走での戦闘離脱は、敵キャラの 途中から出現 の仕組みで隠れている状態と同じ仕組みを利用しているのです。
そのため、バトルイベントで敵キャラの出現を逃走後の敵キャラに使用すると再度戦闘に現れます。

行動による逃走の理想的な仕様の検討

逃走行動時に全ステートが解除されたり、強化・弱体が解除されない仕様は、場合によっては直感に反するものです。
そこで、どのような仕様であれば直感的になるかを考えてみます。

ステートの解除

まず、戦闘不能が解除されながらも残りHPが0のままの状態は異常なので、直感的には戦闘不能は解除されてほしくありません。
かと言って、あらゆるステートを解除しないようにしてしまうと、戦闘終了で解除されるべきステートが戦闘終了後に残ってしまいます。

戦闘不能以外の、戦闘終了で解除されないステートについては、ゲームによっては行動による逃走で解除されてほしい場合とそうでない場合がありそうです。
例えば、再度戦闘に参加する際に引き継いでほしいステートもあるかもしれません。
単純に、戦闘終了で解除されないステートのみ引き継ぐべきかどうかは、ケースバイケースで、プロジェクトごとに決めるゲームの仕様の問題になります。

つまり、行動による逃走で解除すべきかどうかという、ステートの解除条件の設定ができれば良さそうです。

強化・弱体の解除

行動による逃走で強化・弱体が解除されないのは、戦闘終了時に他バトラーの強化・弱体が解除される仕様と合わせると直感的ではありません。
ひとまず、逃走時に強化・弱体を解除するようにしてしまえば、戦闘終了時の解除仕様と合わせても自然になります。

しかし、戦闘から離脱した際に強化・弱体を継続して、バトルイベントで再度戦闘に参加させたいという要求もあるかもしれません。
行動による逃走時には強化・弱体を継続しつつ、戦闘終了時には逃走したバトラーも含めてすべての強化・弱体を解除したいという要求も考えられます。
行動による逃走であろうと戦闘終了であろうと、強化・弱体は持続するという仕様も、統一感があって良いでしょう。

強化・弱体について、行動による逃走で解除すべきかどうかと、戦闘終了時に解除すべきかどうかという2種類の設定ができればすべてカバーできそうです。

理想を実現するプラグイン

2種類のプラグインを作成しました。

戦闘終了時の強化・弱体解除のみ別プラグインとなっていますが、これは逃走行動による解除と意味が異なる独立した処理であるためです。

3年前の記事では良いプラグインの条件に機能が単一であることを挙げました。一般に単一責任の原則と呼ばれるものですが、今回もそれに従っています。
  1. これがONの状態で戦闘を終了すると、逃走回数カウントが+1される。
  2. 戦闘に参加している味方アクター、敵キャラをバトラー(Battler)と呼ぶ。
  3. 戦闘に参加していない状態にする。
  4. 行動制約で行動できなかったり、成功率の判定で成功すれば。
  5. 他のパーティメンバーが、戦闘不能の味方を対象に含む逃走行動をとった場合。