DynamicMotion その他機能など【RPGツクールMVプラグイン】

2020年03月22日

 このページはDynamicMotionプラグインの解説の一部です。

 補足的な機能解説です。いくつかの機能はDynamicAnimationと同一です。

目次


ミラーリング(mirroring)

直接演算

&連結

D-Setting機能

自動前進無効(NoStep)

並列実行(Sync)

不死身制御(Immortal) ver1.04


ミラーリング(mirroring)


 例えば、以下のような定義があるとします。
<D-Motion:near>
ex = b.x + 200 // 終点X座標
</D-Motion>

 対象の右200ピクセルへ移動するというものです。
 ところが一つ問題があります。

 アクターが使用した場合は問題なく対象の正面である右側へ移動します。……が、これを敵が使うと今度はアクターの背中へと移動してしまいます。
 となると、味方なら『b.x + 200』、敵なら『b.x - 200』に定義を切り替えたい。
 そこで、以下の機能を用意しました。
<D-Motion:near>
ex = b.x + 200 * mirroring // 終点X座標
</D-Motion>

 この『mirroring』という変数は対象がアクターの場合に値が-1になります。これをかけることで必要な部分だけを左右反転させられます。
 また、フロントビューなどで上下座標を反転させたいなら、Y座標側に同様の操作をしてください。


 この通り、対象の左へと移動するようになりました。

直接演算


 以下のように指定すれば、テンプレートの設定値に対して直接演算できます。元の値が分からなくとも設定できるので便利です。
<D-Motion:near&jump&roll>
ex += 100 // テンプレートの設定値 + 100
ey -= 100 // テンプレートの設定値 - 100
rotation *= 2 // テンプレートの設定値 * 2
arcY /= 2 // テンプレートの設定値 / 2
</D-Motion>

 なお、これらの演算はJavaScriptの式に対して、『文字列連結』しているだけであることにご注意ください。

 どういうことかというと、テンプレートの設定値が「ex = b.x + 100」だったとします。
 メモ欄の入力が以下の通りだった場合……
<D-Motion:jump>
ex *= 2
</D-Motion>

 連結後の内容は「ex = b.x + 100 * 2」となります。
 つまり、かけ算がかかるのは末尾の100の部分だけってことです。
 全体にかけるにはプラグインの設定値を「ex = (b.x + 100)」のようにしておけばOKです。
 足し算、引き算なら支障ありませんが、かけ算、わり算の場合はご注意を。

&融合


 &記号によりテンプレートの融合が可能です。
 例えば……
<D-Motion:near&jump/>

 と、接近(near)型とジャンプ(jump)型のテンプレートを『&』でつなげることで定義を融合します。ジャンプしながら対象へ向かって接近します。

 実際には、プラグインに登録されたテンプレート定義の値を融合しています。
 注意点として、パラメータが競合する場合は後ろの定義が優先されます。

 どういうことかというと、まずnear型の定義は以下のようになっています。
<D-Motion>
wait = (isSync ? 0 : "autoMove")
ex = defaultX + a.width/2 * mirroring + (position != 3 ? b.width/2 : 150) * mirroring
ey = defaultY + a.height/2
airY = 0
motion = walk // 歩行モーション
</D-Motion>

 対するjump型の定義は以下のようになっています。
<D-Motion>
arcY = -100
motion = wait
</D-Motion>

 両者を融合した結果は以下のようになります。
<D-Motion>
wait = (isSync ? 0 : "autoMove")
ex = defaultX + a.width/2 * mirroring + (position != 3 ? b.width/2 : 150) * mirroring
ey = defaultY + a.height/2
airY = 0
arcY = -100
motion = wait // 待機モーション
</D-Motion>

 near型にあった『motion = walk』の定義が『motion = wait 』で上書きされました。同時に二つのモーションを取れないので当たり前ではありますが、ご注意ください。

 なお、融合できる数に制限はなく、3つ以上も可能です。

D-Setting機能


 メモ欄に記入することで以下の機能を実行できます。
 なお、複数の機能を設定する場合は以下のように記載してください。
<D-Setting:NoStep&Sync>

自動前進無効(NoStep)

 スキル(アイテム)実行時の一歩前進をなくします。
<D-Setting:NoStep>


並列実行(Sync)

 テンプレートに初期設定されたウェイトおよびディレイ命令を無効化します。
 合体技など複雑なタイミング調整を行いたい場合に使用する想定です。
<D-Setting:Sync>

 もっとも、必ずしも無理に使う必要はありません。『noWait』『noDelay』などのテンプレートを活用すれば、これを使わずとも合体技の作成は可能です。使いやすい方でどうぞ。

不死身制御(Immortal) ver1.04

 不死身ステートを使用することで、演出制御を行います。使用するステートはあらかじめプラグインパラメータへ設定してください。
<D-Setting:Immortal>

 これにより、スキルの演出が終わるまで死亡判定がされなくなります。連続ヒット技の最中に相手が死亡して、演出が空振りになることを防げます。

 >DynamicMotionプラグインに戻る
 >RPGツクールMV目次に戻る
posted by 砂川赳 at 19:17 | RPGツクールMV | このブログの読者になる | 更新情報をチェックする