こちらの記事はRPGツクールMV向けです。
RPGツクールMZ向けの記事もございます。
YEP Battle Engine Core の機能の1つに、必中、物理攻撃、魔法攻撃の直前にアニメーションを再生させるものがあります。
これに近い動作をさせる方法をご紹介します。
この動作は小規模のカットインと考えると、理解しやすいです。
下記プラグインを使用します。
▼ 発動前コモン(やな様作)
plugin.fungamemake.com/archives/2033
スキルやアイテムの発動前に、スキルやアイテムに設定されたコモンイベントを発生させます。
目次
アクター編
コモンイベント作成
今回はコモンイベント1にスキル使用アクターにアニメーション51を再生するスクリプトを入れます。
$gameParty.members()[$gameVariables.value(11)].startAnimation(51,false,0);
$gameVariables.value(11)は変数ID11の値を取得していますが、これは発動前コモンのデフォルトで、使用者のインデックスを代入しているので、そのまま使用しています。
プラグインパラメーターで別変数を指定した場合、IDに合わせて変更してください。
this.wait(1);
ウェイトを1入れています。
コマンドで入れても良いのですが、1行くらい追加なら、コピペで済むほうが良いかな?と考えて書きました。
ちなみに、ウェイトが入っていないとアニメーション再生中にアクターが歩きはじめスキルを使用して、少し変な印象になります。
$gameParty.members()[$gameVariables.value(11)].startAnimation(51,false,0);
this.wait(1);
スキル設定
スキルのメモ欄にタグを入れます。
今回はコモンイベントID1なので、<発動前コモン:1>と入れます。
敵キャラ編
コモンイベント作成
今回はコモンイベント2にスキル使用敵キャラにアニメーション52を再生するスクリプトを入れます。
this.iterateEnemyIndex($gameVariables.value(11) - 1000, function(enemy) {
if (enemy.isAlive()) {
enemy.startAnimation(52, true, 0);
}
}.bind(this));
敵キャラのインデックスは発動前コモンの仕様でインデックスに1000足されるので、実行時に引いています。
this.wait(1);
アクター同様にウェイトを入れています。
this.iterateEnemyIndex($gameVariables.value(11) - 1000, function(enemy) {
if (enemy.isAlive()) {
enemy.startAnimation(52, true, 0);
}
}.bind(this));
this.wait(1);
スキル設定
アクターと同様にスキルにタグを入れます。
今回はコモンイベントID1なので、<発動前コモン:2>と入れます。
共通のスキルを使用する場合の条件分岐
敵とアクターが同じスキルを使う場合、条件分岐を使うことで実行スクリプトを分けることが出来ます。
変数ID11が敵が行動した場合に1000足されるので、1000未満の場合はアクター、1000以上の場合は敵キャラと分岐させています。
◆条件分岐:発動者 < 1000 ◆スクリプト:$gameParty.members()[$gameVariables.value(11)].startAnimation(51,false,0); :スクリプト:this.wait(1); ◆ :それ以外のとき ◆スクリプト:this.iterateEnemyIndex($gameVariables.value(11) - 1000, function(enemy) { :スクリプト: if (enemy.isAlive()) { :スクリプト: enemy.startAnimation(52, true, 0); :スクリプト: } :スクリプト: }.bind(this)); :スクリプト: this.wait(1); ◆ :分岐終了
MOG Battler Motionでの不具合
MOG Battler Motion で敵キャラのスキルにタグを付けている場合、上記で設定したアニメーションは再生されますが、MOG Battler Motion で指定した攻撃時動作を2回繰り返してしまうという不具合が見つかっています。
コメントを投稿するにはログインしてください。