開発日誌

素材

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 敵キャラの行動パターンに複数条件を指定

2022-02-11 14:54:11

敵キャラの行動パターンに複数の条件を指定できるようにするプラグインを作成しました。

これによって、残りHPが少なくてかつ特定ターンに限り強力な回復魔法を使ってくる敵とか、こちらのパーティーのレベルに応じて行動のローテーションが変化していくような敵を、バトルイベントでの制御やメモ欄での複雑な記述なしに作ることができます。

RPGツクールMV/MZの両方に対応しています。

行動パターンの条件指定

敵キャラの行動パターンには、ターン数や自身のHP/MPの範囲、かかっているステート、パーティーの平均レベルがいくつ以上、およびスイッチと、様々な発動条件を指定することが可能です。

しかし、これらの条件は1つの行動パターンにつき1つの条件しか使用できず、標準で複数条件を実現しようとすると、バトルイベントとスイッチを組み合わせるなど工夫しなければなりません。

この行動パターンの条件設定は初期の頃のRPGツクールから驚くほど進化しておらず、むしろ劣化しているとも思えるほどです。条件のラジオボタンがチェックボックスにさえなってくれれば……!と思っていた人は多いのではないでしょうか。

行動パターンの設定項目にはメモ欄もなく、プラグインで制御するのも非常に難しいのですが、今回やりやすい設定方法を思いついたのでプラグイン化しました。

事前準備

まずは「データベース」の「スキル」で、ダミーのスキルを1つ追加します。

名前は何でもいいですが「↓条件追加」などとしておくと分かりやすいかと思います。

ダミーなのでスキルの設定内容は何もいりません。

そしてこのスキルを、プラグインパラメータの「追加条件用スキル」に指定します。

以上で準備は完了です。

複数条件の設定方法

このプラグインの機能としては、この「追加条件用スキル」がスキルとして設定された行動パターンの条件を、直後の行動パターンの条件に追加する、というものです。

例えば以下のような行動パターンが設定されている場合、

スキル 条件
↓条件追加 パーティーLV>=25
ブリザード ターン 3+4*X

パーティーの平均レベルが25以上で、かつターン数が3+4*X(3,7,11…ターン目)の時にブリザードが発動します。

追加条件は2個以上重ねることもでき、例えば以下のような場合は、

スキル 条件
↓条件追加 パーティーLV>=30
↓条件追加 HP 0%~50%
リカバー ターン 1+4*X

パーティーの平均レベルが30以上で、かつ自分のHPが0~50%の範囲内で、かつターン数が1+4*X(1,4,9…ターン目)の時にリカバーが発動します。

追加条件はAND条件として追加され、全ての条件を満たした場合のみ発動可能になります。OR条件は指定できないので、OR条件にしたい場合はその分だけ行動パターンを作成してやる必要があります。

なおレーティングについては、追加条件でない行動パターンのレーティングが採用され、追加条件のレーティングは無視されます。

複数条件が簡単に設定できることで、より敵キャラの行動パターンを細かく制御できるようになりますが、追加条件は矛盾や漏れがないように気を付けないと、発動し得ない行動になったり、どの条件も当てはまらなくて有効な行動がなくなったりといった事態も起こりますので、ご注意ください。

またそもそもの問題として、標準で設定可能な条件の種類が少なく、これは本プラグインでも解消するものではないので、そこはバトルイベントや他プラグインと併用していくことになるかと思います。

プラグインの実装と注意点

プラグインの実装としては、敵キャラのデータ(Enemies.json)を読み込んだ際に、行動パターンの配列を変更して条件設定を配列に変換し、戦闘行動の条件判定の際は全ての条件を満たしているか判定しているだけです。

敵キャラの行動パターンを制御しているプラグインとは競合や意図通りに動作しない可能性があるので、ご注意ください。

拙作プラグイン「複数回行動条件設定プラグイン(PANDA_MultiAction.js)」はメモ欄に行動パターンの番号を記述する必要がありますが、これと併用した場合、この行動パターン番号は条件追加の行動パターンを無視してカウントする点にご注意ください。

複数回行動条件設定プラグインも、これと同じようにダミーのスキルを作って、これより下の行動は2回目の行動でのみ発動、みたいに設定できた方が楽かもしれませんね。気が向いたらそのうちやります。

質問やアドバイスなどはコメント欄まで、お気軽にお願いします。素材利用条件などについては、このサイトについての「提供素材について」の項目などをご覧ください。

コメント
お名前
コメント
※ 確認画面はありません。