DynamicMotion 制御系テンプレート【RPGツクールMZ&MVプラグイン】

2020年03月21日

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

 制御系のテンプレートを紹介していきます。

目次



対象(target)


 モーションの対象をスキルの対象へと変更します。基本的に他のテンプレートと組み合わせて使います。
<D-Motion:attack/> // 武器振り
<D-Animation/> // アニメーション
<D-Motion:target&stepBack/> // 対象が後退
<D-Motion:target&home/> // 対象が戻る


 攻撃を受けた対象が後退するようにしてみました。

対象毎に実行(every)


 モーションをスキルの対象分繰り返します。例えば、スキルの対象が4体いる場合は4回モーションを繰り返します。

 また、繰り返し間隔は『nextDelay』によって指定します。この値はアニメーションフレーム単位です。
 アニメーションと間隔を合わせることによって、自然なアクションとなります。
<D-Motion:every&attack> // 全対象に武器振り
motionFrame = 2 // 2*3=6フレーム
nextDelay = 6 // 繰り返し間隔
</D-Motion>
<D-Animation>
nextDelay = 6 // 繰り返し間隔
</D-Animation>


 上記はランダム複数回攻撃と組み合わせた例ですが、全体攻撃でも問題なく動作します。

 モーション時間を調整したりと、自然に見せるには若干のコツがいります。
 ※motionFrameは1パターンのフレーム時間です。実際には×3パターン分の時間がかかります。

ウェイト(wait)


 他のテンプレートと組み合わせることで動作を待ちます。
<D-Motion:attack&wait/> // 武器振りを待つ


 ちなみに、移動系テンプレートの多くは最初からウェイト処理が含まれています。基本的には、わざわざ付ける必要はありません。

ウェイトなし(noWait)


 他のテンプレートの後ろに連結することで動作のウェイトを飛ばします。移動系テンプレートなど最初からウェイトが付いているものと組み合わせます。
<D-Motion:near&noWait/> // 接近を待たずに
<D-Animation:shotRandom/> // アニメを再生


 ……まあ、上記の例だとアニメを先に実行しても同じなんですけどね。

ディレイ(delay)


 前のモーションまたはアニメーションの動作を待ちます。
<D-Motion:jump/> // ジャンプ
<D-Motion:delay&near/> // ジャンプを待って移動


 ウェイトと指定するタイミングが異なるだけなので、お好きなほうを使ってください。

ディレイなし(noDelay)


 他のテンプレートの後ろに連結することで、ディレイを無効化します。
 ……流れで用意してみましたけど、ディレイが最初から付いているのは『帰還(return)』型ぐらいなので、あまり使い道が……。
 複数のバトラーを同時に帰還させたい場合ぐらいでしょうかね。
<D-Motion:near&jump&attack/> // 接近&ジャンプ&武器振り
<D-Animation/> // アニメーション
<D-Motion:target&stepBack/> // 対象が後退
<D-Motion:target&return/> // 対象が元の位置へ
<D-Motion:return&noDelay/> // 自分もディレイなしで元の位置へ



対象が他者(ifOther)


 スキルの対象が自分以外の場合のみ実行します。

対象が自分(ifSelf)


 スキルの対象が自分の場合のみ実行します。

 上共々どういう使い方をするのかというと、例えばこういう使い方ができます。
<D-Setting:NoStep> // 前進しない
<D-Motion:near&mirror&ifOther/> // 対象が他者なら反転して接近
<D-Motion:stepForward&ifSelf/> // 対象が自分なら一歩前進
<D-Animation/>
<D-Motion:return&ifOther/> // 対象が他者なら戻る


 対象が仲間の場合、その前方へ移動して向き合ってアイテムを使用しています。
 ただ対象が自分だった場合、その場で後ろを向くので不自然です。


 そこで自分が対象の場合、単に一歩前進して使うようにしています。

味方のみ(ifActor)


敵のみ(ifEnemy)


 それぞれ、行動主体がアクターの場合のみ、敵キャラの場合のみ実行します。
 味方と敵で処理を分けたい場合などにどうぞ。

即時(soon)ver1.02


 各命令を即時実行(1/60秒)します。
 例えば、透明度や角度、モーションの変更を即時に反映させたい場合など。他にも瞬間移動などに使えます。
<D-Motion:near&soon/> // 接近&即時
<D-Motion:attack/> // 武器振り
<D-Animation/> // アニメーション
<D-Motion:return&soon/> // 戻る&即時



戦闘中(ifBattle) ver1.13


マップ中(ifMap) ver1.13


 それぞれ、戦闘画面の場合のみ、マップ画面の場合のみ実行します。
 マップ版DynamicMotionを導入しないと意味がありません。

遠隔(ifDistant)ver1.15


 マップ上にて、モーションの実行者と対象者が隣接していない場合のみ実行します。
<D-Motion:turnToward&soon/>
<D-Motion:near&ifDistant/>
<D-Animation:wait/>
<D-Motion:return&ifDistant/>


 例えば、上記では対象と離れたマスにいる場合のみ、接近&帰還処理を行います。対象と隣接している場合は、即座にアニメーションを表示します。このように無駄な移動演出をさせたくない場合に有効です。
 また、戦闘時には常に有効となります。

 それから、上記の場合はアニメーションにwaitの指定を行う必要があることに注意してください。<D-Motion:return&ifDistant/>の省略によって、前の動作を待つこともなくなってしまうためです。

隣接(ifAdjacent) ver1.15


 マップ上にて、モーションの実行者と対象者が隣接している場合のみ実行します。
 つまり『遠隔(ifDistant)』とは正反対に動作をします。
 また、戦闘時には常に無効となります。

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