RPGツクールMZ & RPGツクールMVプラグイン目次

2020年09月22日

 RPGツクールMZおよびMV関連の目次です。
 プラグインやテクニックなどの解説をまとめていく予定です。
 ※MV用プラグインのMZ対応&移植が全て完了しました!

 基本的に自分の制作上、欲しかったプラグインを作成&公開しています。
 不具合修正やある程度の機能拡張は実施&検討しますが、新規プラグインのリクエストは受けていません。

 Dear international RPG Maker users.
 This site isn't available in English. Sorry about that. But all the help in the plugin is available in English. You might want to add a translation add-on to your browser.
 "DynamicAnimation & Motion" manual written in English and translated by Ryan Bram. You can find it here.


Dynamic系プラグイン


[MZ]DynamicAnimation(戦闘アニメ超強化)(2021/04/07更新)

[MZ]DynamicAnimationからMVアニメを呼出(2020/10/21更新)

[MV]DynamicAnimation(戦闘アニメ超強化)(2020/11/26更新)

DynamicAnimation English Manual(By Ryan Bram)

 スキル(アイテム)実行時のアニメーションを自動化&超強化します。
 たぶんこのページの看板となるプラグインです。超オススメ!

[MZ]DynamicMotion(戦闘モーション制御)(2021/01/20更新)

[MV]DynamicMotion(戦闘モーション制御)(2021/01/20更新)

DynamicMotion English Manual(By Ryan Bram)

サンプル技@(2020/11/13更新)

サンプル技A(2021/01/20更新)

サンプル技(弓)(2020/04/09更新)

サンプル技(魔法)(2020/05/25更新)

サンプル技(合体技)(2021/04/09更新)

サンプル技(外部連携)(2020/06/07)

 スキル(アイテム)実行時の戦闘モーションを自在に制御します。
 DynamicAnimationと連動して様々な演出が可能です。これも超オススメ!

DynamicAnimationをマップ上で起動(2020/12/08更新)

サンプル(2021/04/09更新)

 DynamicAnimationをマップ上で起動します。
 イベント演出からダンジョンのギミックまで使い道は多種多様です。

DynamicMotionをマップ上で起動(2020/11/08更新)

 DynamicMotionをマップ上で起動します。
 回転や拡大、自在な移動など通常では困難な動作をキャラクターにさせられます。

MVアニメーションの軽量化(2020/09/10更新)

 MV用アニメーションの重さを軽減します。
 DynamicAnimationの負担軽減にどうぞ。

DynamicAnimation&Motionの定義をtxt読込(2021/03/04更新)

 DynamicAnimation&Motionの定義をtxtファイルから読み込みます。txtを書き換えれば、ゲームを再起動せず変更を即座に反映できます。

DynamicMotionで敵のSVモーションを実行(2020/12/12更新)

 『animatedSVEnemies.js』との連携により、DynamicMotionで敵のサイドビュー用モーションを実行できるようにします。

DynamicAction for SRPGコンバータMV(2020/12/02)

 DynamicAnimation&MotionをSRPGコンバータMV上で使用できるようにします。マップ戦闘にも対応しています。

マップ版DynamicMotionでモーションを実行(2020/12/05)

 DynamicMotionMapからイベントにサイドビュー戦闘のようなモーションを実行させます。モーションにはキャラクター素材の足踏みパターンを使用します。

戦闘演出系プラグイン


ダメージタイミングの調整(2020/09/15更新)

 ダメージ表示や敵の撃破処理のタイミングを調整します。
 SimpleMsgSideViewとの併用でダメージ一括表示も可能です。

ダメージ演出(会心・弱点など)を変更(2020/12/22更新)

 ダメージ処理の演出を変更します。
 点滅のオンオフ、クリティカル/弱点/耐性時の演出などを変更できます。

敵キャラの通常攻撃の戦闘アニメを設定する(2020/06/18更新)

 『武器タイプ装備』を利用して、敵キャラの通常攻撃のアニメを設定します。

各種モーションの設定(2020/06/11)

 サイドビュー戦闘における各種モーションの設定を行います。
 モーション速度を変更したり、既定のモーションを別に変更したりできます。ついでに歩行時間も調整可能です。

コマンド入力時のアクターにアニメを表示(2020/09/19更新)

 戦闘でコマンド入力中のアクターの上にアニメーションを表示します。
 主にCTBやTPBなどで、入力中のアクターを明確化する目的で使います。

バトラーの影を設定&浮遊効果の追加(2021/04/02更新)

 バトラーの影に関する設定を行います。
 また、バトラーを宙に浮かせる演出(ステートも)ができます。

戦闘システム系プラグイン


戦闘システムをCTBに変更(2020/10/25更新)

行動順序の画面表示(2020/08/25更新)

 戦闘システムをカウントタイムバトルへと変更します。

CTBとターン制の融合(CTTB)(2020/08/24更新)

 CTBとターン制を無理やり融合した夢の戦闘システムを実現します。

ターン制で行動順序を表示(2020/08/24更新)

 ターン制で行動順序を表示します。

[MZ]タイムプログレス戦闘をカスタマイズ(2020/09/16)

 ツクールMZのタイムプログレス戦闘をカスタマイズします。
 左右でキャラを切り替えたり、スピード計算式を単純化したりできます。

戦闘レイアウト系プラグイン


戦闘メッセージのレイアウトを変更(2020/10/23更新)

 ウィンドウの配置や大きさなどを変更可能です。
 CTB用ウィンドウ等との位置調整にも活用できます。

敵グループの配置を自動化&ランダム化(2020/11/22更新)

 敵グループの配置を自動化&ランダム化します。
 サイドビューでの敵の配置が面倒臭いというあなたに。

敵の行動制御系プラグイン


[MZ版]バトルイベント拡張(2020/10/19更新)

敵の行動を自在に制御する @導入編(2020/09/21)

敵の行動を自在に制御する A実践編(2020/09/21)

[MV版]バトルイベント拡張(2020/10/19更新)

敵の行動を自在に制御する @導入編(2020/01/13)

敵の行動を自在に制御する A実践編(2020/01/16更新)

 バトルイベントを拡張し、敵の行動を詳細に制御できるようにします。

敵行動ルーチンの改善(2020/10/04更新)

 敵の行動ルーチン(AI)を改善し、回復や蘇生、ステートなどの制御をできるようにします。
 よく分かりませんが、人気みたいです。

スキル拡張系プラグイン


スキルの効果範囲を拡張(2020/08/27更新)

 縦列、横列、円形、グループ、敵味方全体など様々な効果範囲を実現できます。

ため技を作成(2020/11/15更新)

 ため技を作成します。CTBと連携すれば、チャージタイムの設定も可能です。

合体技の実現(2021/04/05更新)

 複数人で発動する合体技を実現するプラグインです。
 ターン制でもCTBでもCTTBでも使えます。
 ※MZのタイムプログレス(アクティブ)にも対応しました。

操作系プラグイン


カーソルを上下左右でループさせる(2020/08/24更新)

 各種ウィンドウにて、カーソルが上下左右にループするよう挙動を変更します。
 地味に便利です。

ウィンドウをページ化(2020/10/10更新)

 各種ウィンドウをドラクエっぽく左右でページ切替できるようにします。
 ↑のカーソルループ機能も含まれているので、お好きなほうを導入してください。

全体制御系プラグイン


ゲームウィンドウのサイズを変更&オプションに追加(2020/11/09更新)

 ゲーム全体のウィンドウサイズを変更します。また、オプション画面にも変更機能を追加できます。

プラグインコマンドで数式や制御文字を有効に(2020/09/22更新)

 プラグインコマンドでJavaScript計算式や制御文字を有効にします。

コモンイベントの並列処理を戦闘中も有効に(2020/12/28更新)

 登録したコモンイベントの並列処理を戦闘中も有効にします。

マップ系プラグイン


オートタイル(壁・屋根)の上部だけを通行可能に(2020/10/26更新)

 ツクール2000にあった□判定のように、通過できる壁の裏が作れます。

[MZ]マップの影に関する設定を行う(2020/12/19)

 影ペンで作成した影を斜めにしたり、影の透明度を変更したりできます。

[MZ]オートタイルのアニメーション速度を変更(2021/03/28)

 水、滝などオートタイル(A1)のアニメーション速度を変更します。
 デフォルトの滝アニメが遅すぎるという方のために。

特定タイルの通行判定を無視(2021/04/08)

 特定タイルの通行判定を無視するように設定できます。
 要するに通行判定だけが☆タイルに近い挙動となります。


自動回復コマンド(まんたん)を実現(2021/02/17)

 自動回復コマンドを実現します。
 いわゆるドラクエのまんたんコマンドです。

MZやMVでツクール2000素材を使おう!


現代のツクールでツクール2000のドット絵を使おう!(2020/11/01)

 RPGツクール2000時代のドット絵素材を、MZやMVで使えるようにするための一連の手順書です。

編集した画像を自動的に拡大するプログラム(2020/11/01)

 RPGツクール2000時代のドット絵素材を自動で拡大して、MZやMVのプロジェクトに反映するプログラムです。

お役立ち情報


Windows10のOggの操作でフリーズする件の対処法(2020/06/04)

 Ogg形式の音声ファイルを移動・削除・リネームした際、フリーズする現象への対処法です。心当たりがある人はお役立てください。

スキルの計算式を共通化しよう(2020/06/21)

 スキルの計算式をJavaScriptの関数によって共通化する方法です。
 ついでにクリティカル時に防御無視にする方法なども載せています。

FFの竜騎士っぽいジャンプ技を作る(2020/12/15)

 当ブログのプラグインを使ってFFの竜騎士っぽいジャンプ技を実現します。

プラグインの利用規約


 改造、再配布自由、商用可、18禁可、権利表示も任意です。「このプラグインはわしが育てた」と盗作する以外は、だいたい何でもOK。

不具合対応について


 バグっても泣かない。
 メールやツイッターで連絡いただければ、力の及ぶ限りは対応します。

 ※「途中セーブからのロードで動かない」「対応しているはずがMVで動かない」などの現象は普通にバグです。作者の環境の都合上見落としやすいのですが、連絡くだされば積極的に対応します。

 ※MVのコアスクリプトバージョンが古い場合(1.5以前)は検証不足のため、正常に動作しない可能性があります。その場合でも連絡を頂ければ努力しますが、最新でない旨を申告するようお願いします。

 ※他プラグインとの競合については対応できるか不明です。特に海外の大規模プラグインは困難な場合が多いです。
posted by 砂川赳 at 22:22 | その他 | このブログの読者になる | 更新情報をチェックする

敵の行動を自在に制御する A実践編【RPGツクールMZプラグイン】

2020年09月21日

 敵の行動を自在に制御する @導入編から続きます。

 基本から上級まで、使えそうなものを全部載せてみました。
 必要なものを探してコピペなりしてください。

目次


基本編


自分の状態を参照する


対象を変更・限定する


最大・最小値を持つ対象を狙う


条件を満たした時のみ行動する


注意点

まとめ

参考リンク


基本編


スキルを使う

 まずは基本形。普通にスキルを使わせる方法から。

20200112_basic.JPG

 難しいことは何もなく、『戦闘行動の強制』で行動主体とスキルと対象を選択するだけです。
 集中攻撃などの特徴を出したい場合を除き、対象は『ランダム』で構いません。

 また、この例では行動主体を先頭の敵に固定しています。ボス戦など行動主体が確実に分かる場合はこれで十分です。

 しかしながら、いつも行動主体が固定だとは限りません。
 そこで『スキル使用者設定』のプラグインコマンドを呼び出します。
 ※パラメータは初期設定のままにしてください。

 これは『戦闘行動の強制』の行動主体を書き換えてしまう機能です。エディタ上で行動主体に誰を選ぼうが、バトルイベントを実行中のバトラーへと強制変換します。
 あらかじめこれを一行挟んでおくと、全ての行動が終了するまでその状態が保持されます。


 こんな感じになります。
 この方法だとスキル名が見えるので、多少管理が楽ですね。このプラグインコマンドは毎回固定で呼んでしまって問題ないと思います。
 設定をクリアしたい時は『スキル使用者』のパラメータを空にして呼び出せばOKです。

確率でスキルを使う

 次行きましょう。
 これも特に難しくはありません。
 普通に乱数を使って確率分岐させるだけです。

20200112_if.JPG

 この例では適当な一時変数を使って、1〜4の乱数を生成しています。
 一時変数<=2の時は攻撃、3の時はファイア、4の時はスパークって感じですね。

 凝ったスキルを作った際、その処理内で同一の変数を使わないように注意です。それをやると無茶苦茶になります。
 心配なら各分岐内に『イベント処理の中断』を入れるのもよいと思います。

ターンによってスキルを使う

 この辺まではまだデフォルトで可能な機能ですね。
 通常のターン制と当サイトにあるCTB(またはCTTB)およびタイムプログレスでは、ターンの参照方法が変わります。

ターン制の場合

$gameTroop.turnCount()

 にて、敵グループが保有する現在ターンを取得できます。
 これは敵グループのバトルイベントと同じで1ターンから始まります。
 
20200112_turnCount.JPG

 『$gameTroop.turnCount() == 1』は見たまんま1ターン目なので、説明は不要でしょう。
 少し難しいのは『$gameTroop.turnCount() % 2 == 0』という記述です。
 これは2で割った余りが0。つまり偶数ターンを意味しています。
 もちろん『$gameTroop.turnCount() % 2 == 1』は奇数ターンになります。

 ローテーション行動を取らせたい場合は、こういう余りを使った演算が有効です。
 ちなみに、3ターンローテーションを取らせたい場合……
条件分岐:スクリプト:$gameTroop.turnCount() % 3 == 1
条件分岐:スクリプト:$gameTroop.turnCount() % 3 == 2
条件分岐:スクリプト:$gameTroop.turnCount() % 3 == 0

 という順番で回ってきます。
 直感的に0,1,2とやりたくなりますが、ご注意ください。

CTB、CTTB、またはTPBの場合

 個々人がバラバラに動くCTBでは、グループのターンはほとんど意味を持ちません。
a.turnCount()

 というわけで、上記のように行動主体が保有するターンを参照します。
 $gameTroopがaに置き換わっただけですね。


 ※タイムプログレス戦闘でも同じ要領でターンを参照できますが、どうも独特のターン処理をしている模様です。行動しなくとも時間経過でターンが進んでいくようです。

複数回行動

 これはデフォルトでは難しい機能です。
 とはいっても、『戦闘行動の強制』を複数行入力するだけです。デフォルトとは違って、順番を自由に決められます。


 画像の例では、奇数ターンに1回行動の全体攻撃、偶数ターンに2回攻撃するようにしてみました。強力な攻撃をする時だけ1回攻撃にすると、バランスを取りやすくていい感じです。

 一回ずつランダムに行動を決めたい場合は、以下のように書きます。

20200112_loop_action.JPG

 攻撃とファイアのランダム2回行動です。
 ややこしく見えるかもしれませんが、単に行動した回数をカウントしながらループさせているだけです。

自分の状態を参照する


自分のHPが50%以下の時

 困ったことにバトルイベントの通常の条件分岐ではHPを参照できません。
 というわけで、スクリプトを使います。
条件分岐:スクリプト:a.hpRate() <= 0.5

 hpRate()というのが、現在HPの割合です。100%が1.0です。

自分のMPが100以下の時

条件分岐:スクリプト:a.mp <= 100

 というように、あらゆるパラメータを参照できます。
 どんなパラメータがあるかは末尾に参考リンクを置いておきますので、そちらをご確認ください。

一体になると行動が激化する

 以下を条件にして、行動を変更します。
条件分岐:スクリプト:$gameTroop.aliveMembers().length == 1


自分にステートがかかっているか

 行動主体が固定なら普通に条件分岐が使えます。
 以下はそうでない場合も判定できるスクリプトです。
条件分岐:スクリプト:a.isStateAffected(4)

 上はステートID=4(初期では毒)にかかっているかどうかを判定しています。
 例えば、治療魔法を使うかどうかの判定に使えます。
条件分岐:スクリプト:!a.isStateAffected(4)

 かかっていない時を知りたいなら、先頭に『!』をつけて条件を反転します。
 補助ステートの重複防止はこれで。

眠っている時に使用するスキル(CTB限定)

 CTB限定で毎ターン実行されるバトルイベントに書いてください。
 ※コモンイベントから呼び出す方法だと、先に行動異常の判定が行われるため呼び出せません。

 上で紹介済の方法を使用し、眠っている時を判定します。
 さらに『行動判定の無効化』のプラグインコマンドを指定することで、行動異常時も行動を実行できるようになります。パラメータは初期値のままにしてください。
 ※ターン制でも行動実行前にコモンイベントを呼び出すようなプラグインを使えば、同様の技も可能かもしれません。

対象を変更・限定する


特定のアクターを狙う

 『スキル対象設定(絞込)』のプラグインコマンドを呼び出し、以下を指定して実行します。
対象条件:b._actorId == 1 #アクターID

 上記の内容は最初から選択肢にあります。コンボボックス形式のため、選択と入力の両方が可能です。数値の部分を好きなアクターIDに変えてください。
 ※ちなみに#以降は単なる注釈です。

20200921_targetActor.jpg

 その後、戦闘行動の強制を実行すれば、指定したアクターを狙います。対象がいなかったり戦闘不能だった場合は、他の相手を狙います。

 『対象条件』のコンボボックスには、あらかじめよく使いそうな値を候補として設定しています。好きな値に変えて利用してください。

ステートにかかった相手を対象とする

 『スキル対象設定(絞込)』のプラグインコマンドを呼び出し、以下を指定して実行します。
対象条件:b.isStateAffected(10) #ステート

 ステートID=10(初期では睡眠)にかかった相手を対象にします。デフォの睡眠は回避率の減少効果があるので、命中の低い大振り攻撃で狙ってくる敵など嫌らしいかもしれません。

ステートにかかっていない相手を対象とする

対象条件:!b.isStateAffected(10) #ステート

 『!』を頭につけることで反転。眠っていない相手を対象とします。まだ眠っていない相手を一人ずつ眠らせてくる敵なども作れます。

 せっかくなので、もう一段階行きましょう。
対象条件:!b.isStateAffected(10) && !b.isStateResist(10))

 『!b.isStateResist(10)』という条件を追加しました。『&&』は『かつ』の意味です。
 『isStateResist(10)』とはステート無効化を持っているかの判定です。
 !でその反対ということは、「眠っておらず、かつ無効化を持たない相手」を対象とするという意味になります。

 賢い敵を作りたい時はどうぞ。
 ※この制御は敵行動ルーチンの改善プラグインに含まれています。今となっては不要なのですが、参考までに残しておきます。
 http://newrpg.seesaa.net/article/473218336.html


女を優先して狙う

 女ばかりを狙うむっつりモンスターを作ってみましょう。
 といっても、ツクールMZのアクターデータベースには性別欄なんてありません。そこで女性アクターのメモ欄に<lady>と記入します。
対象条件:b.actor().meta.lady

 以上で女性かどうかを判定できるようになります。
 ちなみに対象が敵の場合は『b.enemy().meta.lady』になるので注意です。

 ※別にwomanでもfemaleでも何でもいいですが、参考先のこちらに習ってます。

 ただしこの場合、既に全ての女性キャラが戦闘不能状態だと、男性キャラ(および性別不詳)も狙うようになります。

対象を限定して狙う

 では、女しか狙わない敵を作りたい場合はどうするか?
 そんな時のため『スキル対象設定(絞込)』のプラグインコマンドにはオプション機能があります。
対象条件:b.actor().meta.lady
オプション>条件外なら行動しない:ON

 これで女しか狙わなくなります。条件を満たす相手が一人もいなければ、行動自体をスキップします。

最大・最小値を持つ対象を狙う


最も弱っているアクターを狙う

 これは『スキル対象設定(絞込)』でやるのは難しいです。
 そこで『スキル対象設定(最大最小)』のプラグインコマンドを使います。
比較条件:b1.hpRate() < b2.hpRate() #最もHP%が低い

 これは生存者リストの中から、HP%(hpRate())を繰り返し比較しあって一番小さな対象を得ているわけです。

20200921_target_hprate.jpg

 こんな感じになります。
 今回はHP%でやりましたが、比較する値を変えれば色んな相手を対象にできます。
比較条件:b1.hpRate() > b2.hpRate()

 これは現在HPの一番多いアクターです。多いほうを取るため、不等号を大なりにしています。
比較条件:b1.hp + b1.mp > b2.hp + b2.mp

 HP+MPの合計で比較してみました。複数の要素を合わせた比較も可能です。

最もHPが減っている仲間を選択して回復

 上と全く同じで『スキル対象設定(最大最小)』のプラグインコマンドを使います。
 『比較条件』のパラメータも同じです。
比較条件:b1.hpRate() < b2.hpRate() #最もHP%が低い

 後は範囲が味方のスキルを使えば、勝手に自軍が対象となります。

 ※この制御は敵行動ルーチンの改善プラグインに含まれています。範囲が味方のスキルを対象ランダムにして指定するだけです。
 http://newrpg.seesaa.net/article/473218336.html


条件を満たした時のみ行動する


HPが50%以下の仲間がいる時のみ回復を行う

 HPが減った仲間を狙う方法は分かりました。……が、その前にHPが減った仲間がいる時のみ行動させたい場合はどうすればよいか?

 そこは『対象検索→スイッチに格納』のプラグインコマンドを使います。
対象サイド:friends #自軍
条件:b.hpRate() <= 0.5 #対象のHP割合

 指定の条件が満たされた時のみ、指定のスイッチがオンになります。後はスイッチを条件にして回復行動を実行するだけです。



戦闘不能の仲間がいる時のみ蘇生を行う

 『対象検索→スイッチに格納』に以下の値を指定し、スイッチを条件に蘇生スキルを実行します。
対象サイド:friends #自軍
条件:b.isDead() #戦闘不能
戦闘不能者を含む:ON

 スキルの対象はランダムでも問題ありません。戦闘不能者がいれば、初期状態でも勝手に優先してくれるようです。


注意点


 このプラグインで戦闘行動の強制を使用すると、MPやTP不足の行動は空振りするようになります。何も制御しない場合、通常の敵キャラの行動パターンのように優先度の低い行動に切り替えてはくれません。
 切替が必要な場合は、MPやTPを条件にして制御する必要があります。

まとめ


 敵の行動の制御については以上です。
 これでバトルイベントの強力さが伝わったならば幸いです。
 基本的にあらゆるものを参照できるため、大抵のことができてしまいます。

 ここでは紹介していませんが『戦闘行動の強制』以外のコマンドも使えるため、演出なども自由自在です。
 例えば、音楽を止めるなどの演出と組み合わせて複数回行動をさせれば、時間停止っぽい技も作れてしまいます。

参考リンク


 有志がまとめて下さった各クラスの情報です。どんなパラメータを参照できるかはこちらから確認できます。
 ※MV版のリンクですが大体は有効です。MZ版の情報がそろってくれば、そちらに更新したいと思います。

 Game_Enemy(敵のみの項目)
 Game_Actor(味方のみの項目)
 Game_Battler(敵味方の共通項目)
 Game_BattlerBase(敵味方の基本共通項目)

 Game_BattlerBase(敵味方の基本共通項目)
 Game_Troop(敵集団の共通項目)
 Game_Unit(敵味方集団の共通項目)

 末尾に()を付ける必要があるもの(関数)と()のいらないもの(変数)が混在しているので注意です。間違えると機能しません。

 その他、参考にさせていただいた記事など。
 https://punipunion.hatenablog.com/entry/2018/12/01/154554
 http://rpgmaker-script-wiki.xyz/battleaction_mv.php

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

敵の行動を自在に制御する @導入編【RPGツクールMZプラグイン】

 この記事は[MZ版]バトルイベント拡張プラグインの解説です。
 実施には該当のプラグインが必要となります。

初めに


 ツクールMZの敵の行動パターンははっきりいって貧弱です。

  • ターンごとに行動回数を変えられない。
  • また1回目の行動で攻撃力アップ、2回目で攻撃といった制御もできない。
  • 回復魔法は対象が完全ランダム。HPの減った相手を狙ってくれない。
  • 蘇生魔法は死亡者がいなくとも空振りする。
    条件にステートもあるが、対象は自分のみ。
    つまり仲間が戦闘不能の時という条件は指定できない。
  • また、ステートの条件は「かかっている時」限定である。
    「自分がステートでない時に使用」というように重ねがけを避けるのが困難。
  • スイッチが条件にあるがONの場合だけ。OFFがなく融通が利かない。
  • 変数が条件にない。
  • 生存数が条件にない。
  • 行動後のスイッチ操作がない。2000にはあったので、なぜか劣化。
  • そもそも、パーティLV以外の味方側の情報を一切参照できない。

 ……などなど、多すぎて書ききれません。

 ※なお、列挙した問題の一部は敵行動ルーチンの改善プラグインによっても解決できます。簡単なので超オススメ!

 イベントコマンドで敵を制御することによって、そういった諸々の問題を一挙に解決します。
 また、その際には当然ながら全てのイベントコマンドが使い放題です。文章の表示もピクチャーもアニメーションもスクリプトも自由自在に挟めます。

 若干手間がかかることもあって、主にボス敵の行動を想定しています。……が、もちろん雑魚でも使えます。
 手間がかかるといっても、敵の行動パターン画面で複雑な制御を行うよりは遥かに楽です。

設定方法


 まず、戦闘中にバトルイベント(コモンイベント)を呼び出す方法からです。

各戦闘システム共通の方法

 デフォルトのターン制でも、当サイトにあるCTB(およびCTTB)でも使える方法です。また、MZのタイムプログレスバトルでも有効です。

  • コモンイベントを呼び出すスキルを作成します。
  • メモ欄に<NoStartAction>と記述すると、スキルの開始演出を省略できます。
  • 範囲はなしに設定してください。でないと余計なメッセージが表示されます。
  • 敵の行動パターンにこのスキルを設定してください。

20200112_common.JPG

20200112_common_enemy.JPG

 敵がこのスキルを実行したタイミングでコモンイベントが呼び出されます。

 そのままコモンイベントに処理を記述してもよいですし、スイッチを起動して敵グループのバトルイベントを呼び出すのも自由です。例えば、ボスの行動制御などはその敵グループ内に書いたほうが、管理しやすいかもしれません。

 ※敵グループのバトルイベントを使う場合、スパンはモーメントにしてください。
  どこかでスイッチをオフにしないとオンのままなので注意!


 なお、敵ごとに呼び出し用のスキルやコモンイベントを必ずしも増やす必要はありません。

  • コモンイベント内で、敵IDを使って分岐させる。
  • スイッチで敵グループを呼び出し、別々の処理を記述する。

 といった方法でも対応できます。やりやすい方法でどうぞ。
 以下はコモンイベント内で分岐させた例です。


条件分岐:スクリプト:a._enemyId == 2

 というように、敵IDを取得して分岐させています。
 スクリプトを使うので、ちょっと戸惑うかもしれませんが、コピペで数字だけ変えればOKです。
 また『=』ではなく『==』であることに注意です。

 aというのはスキルの計算式(例:a.atk * 4 - b.def * 2)でも使っているものと全く同じです。スキルの使用者(MZでは行動主体という)の情報が色々と詰まっています。

 ※本来、バトルイベント上では参照できませんが、このプラグインの機能で無理やり参照できるようにしています。プラグインパラメータの『aで行動主体を参照』というのがそれです。
 ※『a._enemyId』の他にも『a.enemyId()』でも同じ値を参照できます。ただし『a.enemyId()』はaがアクターだとエラーになるので注意です。


CTB専用

 当サイトにあるCTB用プラグインを導入している場合、コモンイベントを使用しない方法も可能です。

 条件を毎ターン(スパン=ターン、ターン=0+1*X)にしたバトルイベントのページを作成します。
 その先頭で敵IDなどを条件にして、目当ての行動主体の時だけ処理を行うようにします。
 CTBではターン=1行動なので、こういう使い方もできるというわけですね。


条件分岐:スクリプト:a._enemyId != 8

 にある『!=』というのは『==』の反対であり『≠』と同じ意味です。JavaScriptにおいて、『!』は否定を意味します。
 ※ここはアクターも通るため、a.enemyId()だとエラーになるので注意です。

 後は上と同じです。

 既に準備段階で結構長くなってしまいましたが、基本はコピペするだけなので大して時間はかかりません。
 それでは実際に、次の記事から敵の行動制御を記述していきましょう。

 >敵の行動を自在に制御する A実践編

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