制御系のテンプレートを紹介していきます。
目次
- 対象(target)
- 対象毎に実行(every)
- ウェイト(wait)
- ウェイトなし(noWait)
- ディレイ(delay)
- ディレイなし(noDelay)
- 即時(soon) ver1.02
- 対象が他者(ifOther)
- 対象が自分(ifSelf)
- 味方のみ(ifActor)
- 敵のみ(ifEnemy)
- 戦闘中(ifBattle) ver1.13
- マップ中(ifMap) ver1.13
- 遠隔(ifDistant) ver1.15
- 隣接(ifAdjacent) ver1.15
対象(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目次に戻る