DynamicAnimation&Motion サンプル技@【RPGツクールMZ&MVプラグイン】

2024年04月11日

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

 サンプル技を紹介していきます。まずはあまり複雑でないものから。
 コピペしてスキル(アイテム)のメモ欄に貼り付けできます。そのまま使うも改造するも自由です。

 既に別ページで紹介済みのものも、ここにまとめます。

目次



ダッシュアタック


 まずは基本形から。
 これをコピペしてアニメーションを変えるだけでもそれなりに雰囲気は出ると思います。


<D-Setting:NoStep> // 自動前進禁止

<D-Motion:near/> // 対象へ接近
<D-Motion:attack/> // 武器振り
<D-Animation/> // アニメーション
<D-Motion:return/> // 戻る


ジャンプアタック


 せっかくなので、タイミング調整にこだわってみます。


<D-Setting:NoStep> // 自動前進禁止

<D-Motion:near&jump> // 接近&ジャンプ
arcY = -200 // 高度
frame = 8 // 移動フレーム数
</D-Motion>

<D-Motion:attack> // 武器振り
delay = -4 // 着地の4フレーム前
</D-Motion>

<D-Animation/> // アニメーション
<D-Motion:return/> // 戻る

 ポイントは『attack』の部分。delay(ディレイ)にマイナス値を指定することで、着地するよりも前に武器振りを開始しています。
 これによって、下降しながら武器を振り下ろすように調整しています。

ふみつけ


 対象をジャンプして踏みつけます。どちらかというと敵キャラ向きです。


// ふみつけ
<D-Setting:NoStep> // 自動前進禁止

// ジャンプ
<D-Motion:crash&foot&jump>
frame = 8 // 滞空時間
arcY = -200 // 高さ
position = 2 // 足元に表示
</D-Motion>

// 画面のシェイク(強さ, 速さ, 時間)
<D-Motion>
script = $gameScreen.startShake(3, 30, 20)
</D-Motion>

// 土煙のアニメーション
<D-Animation:wait>
id = XX
position = 2 // 足元に表示
scale = 2 // サイズ
</D-Animation>

<D-Motion:return/>

 「script = $gameScreen.startShake(3, 30, 20)」で画面のシェイクを実行します。内容はイベントコマンドと同様ですが、強さと速さの制限がありません。個人的には速さは大きめに設定したほうが自然だと思います。

 土煙のアニメーションはEarth2のパターンをそのまま再生しているだけです。idにアニメーションの番号を指定するか、スキル自体に設定してください。

流星剣


 アニメーションの大量生成と武器振りの繰り返しを併用し、それっぽくします。


<D-Animation:randomAll/> // アニメーションの大量生成

<D-Motion:attack> // 武器振り
repeat = 5 // 5回繰り返す
motionFrame = 1 // 1*3=3フレーム
</D-Motion>

 一振りのモーションには、3パターン分の時間がかかることに注意してください。つまり『motionFrame = 1』はアニメーションの3フレーム分の時間になります。それを5回繰り返すので合計15フレームですね。

みだれうち(2020/05/18更新)


 FFシリーズでおなじみの『みだれうち』です。
 範囲は『敵4体ランダム』にしています。


<D-Motion:every&attack> // 全対象に武器振り
motionFrame = 2 // 2*3=6フレーム
nextDelay = 6 // 繰り返し間隔
</D-Motion>

<D-Animation>
nextDelay = 6 // 繰り返し間隔
</D-Animation>

 ちょっと複雑になりますが、一撃ごとのダメージ表示も可能です。
 ※DynamicAnimation ver1.09のダメージ型テンプレートにより大幅簡略されました。


// 対象毎に武器振り
<D-Motion:every&attack>
motionFrame = 2 // 2*3=6フレーム
nextDelay = 6 // 繰り返し間隔
</D-Motion>

// 対象毎にアニメーション&ダメージ
<D-Animation:damage>
nextDelay = 6 // 繰り返し間隔
</D-Animation>

// 対象毎にダメージ表示
<D-Motion:every>
delay = dataA[0].list[0].frame // アニメーションの終了フレーム
nextDelay = 6 // 繰り返し間隔
damage = true // ダメージ表示
</D-Motion>


 撃破時のウェイトでタイミングがズレるのが難点ですが……。
 ダメージ(damage)型テンプレートによって、アニメーション表示後にダメージ処理をしています。

 ※以下、灰色部分は不要になりましたが参考までに残しておきます。
 少し難しいですが『dataA[0].list[0].frame』で最初のアニメーションのフレーム数を参照しています。武器依存の通常攻撃などフレーム数が不明な場合はこの方法が使えます。
『dataA[0]』の0は<D-Animation>の順番と対応しています。間違うと動かなくなるので注意です!


連続攻撃(不死身)(2020/05/18更新)


 不死身設定を利用して、連続攻撃途中に敵が死亡しないようにします。
 以下の例ではスキルの連続回数を設定しています。


// 不死身設定
<D-Setting:Immortal>


// 攻撃毎に武器振り
<D-Motion:every&attack>
motionFrame = 2 // 2*3=6フレーム
nextDelay = 6 // 繰り返し間隔
</D-Motion>

// 攻撃毎にアニメーション&ダメージ
<D-Animation:damage>
nextDelay = 6 // 繰り返し間隔
</D-Animation>

 『<D-Setting:Immortal>』によって対象を不死身化し、スキルが終了するまで死亡しないようにします。
 ※不死身ステートはなるべく初期設定から変更してください。(解説

 なお、スキル途中でも以下の命令を実行すれば死亡処理を起こせます。(return型にも最初から含まれています。)
<D-Motion>
damageAll = true // 全体ダメージ処理
</D-Motion>

 今回は範囲を単体にしましたが、『敵4体ランダム』などにしても問題なく動作します。

乱れ突き(2020/11/13)


 単体に対して連続ヒットする攻撃を行います。
 ツクールの標準的な仕様ではスキルの連続回数を設定すると、その回数だけアニメを繰り返します。
 ……が、カッコいい演出を行いたい場合は、この仕様はかえって迷惑です。
 というわけで、ここでは一度だけしかアニメを表示しないように制御します。

 スキルは連続回数を5回に設定しています。また、アニメーションは27番を使っています。MVでもMZでも似たようなアニメなのでどちらでも使えますね。


<D-Setting:NoStep>

<D-Motion:near/>

<D-Animation>
target = targets[0]
<D-Animation/>

<D-Motion:attack>
repeat = 5
// motionFrame = 1 // 速度調整したい場合は設定
</D-Motion>

<D-Motion:return/>

 ポイントは『target = targets[0]』です。これによって、アニメを表示する対象を最初の一回のみに限定しています。

 他にもアニメーションの位置を『画面』にする方法もあります。こちらは範囲がランダムかつ複数体の場合などに有効です。

投げる


 投擲はこんな感じでどうぞ。


<D-Motion:swing/> // 振る

<D-Animation:shot> // アニメーションを飛ばす
delay = 2 // タイミング調整
sx = a.x - a.width/2 * mirroring // 左寄り
sy = a.y - a.height // 頭上
arrival = 5 // 到達フレーム
</D-Animation>

 到達フレームはアニメーションの内容と合わせる必要があります。

背面攻撃(2024/04/11)


 対象の背後に回って攻撃します。


<D-Setting:NoStep> // 自動前進しない

// 敵の背後へジャンプ
<D-Motion:jump&back&roll&wait>
frame = 6
arcY = -200 // 高度
rotation *= 2 // 回転数
playSe = {"name":"Jump1","volume":90,"pitch":100,"pan":0}
</D-Motion>

// 左右反転して武器を振る
<D-Motion:attack>
scaleX = -1
</D-Motion>

// 反転アニメーション
<D-Animation>
scaleX = -1
</D-Animation>

// 向きを戻して戻る
<D-Motion:return>
scaleX = 1
</D-Motion>

 playSeは効果音の演奏を行います。
 scaleXは画像の横幅を拡大縮小するためのパラメータですが、-1を設定すると左右反転します。<D-Motion>に設定するとバトラー自身、<D-Animation>に設定するとアニメーションが反転されます。

仲間を対象に(2021/08/06更新)


 回復スキルやアイテム向けに。


<D-Setting:NoStep&MirrorForFriend> // 前進しない

<D-Motion:stepForward&ifSelf/> // 対象が自分なら一歩前進
<D-Motion:near&mirror&ifOther/> // 対象が他者なら反転して接近
<D-Animation/>
<D-Motion:return&ifOther/> // 対象が他者なら戻る

 対象が仲間の場合、その前方へ移動後、向き合ってアニメーションを表示します。
 自分が対象の場合は一歩前進だけで済ませます。
 『mirror』は前述の「scaleX = -1」と同じ効果です。お好きな方法をお使いください。

 ※DynamicAnimationMZ ver1.17およびDynamicAnimation ver1.25の更新によって、味方を対象にした行動は初期値では左右反転しないようになりました。調整のため『MirrorForFriend』を追加しています。(2021/08/06)

二刀流(2021/11/13更新)


 ※2021/11/13 武器タイプではなく武器IDを使用するように変更
 通常、当プラグインを通常攻撃に適用した場合、二刀流の二撃目が表示されなくなります。
 ですが、設定次第では二撃目の演出も可能です。


<D-Setting:NoStep> // 自動前進禁止

<D-Motion:near/> // 接近

// 一撃目
<D-Motion:attack/>

<D-Animation:wait>
id = a.attackAnimationId1() // 一撃目のID
</D-Animation>

// 二撃目
// ※アクターかつ二撃目のアニメーション有
<D-Motion:attack>
condition = a.isActor() && a.attackAnimationId2()
weaponId = a.weapons()[1].id // 二撃目の武器ID
</D-Motion>

<D-Animation>
condition = a.isActor() && a.attackAnimationId2()
id = a.attackAnimationId2() // 二撃目のID

</D-Animation>

<D-Motion:return/> // 戻る

 『condition』で条件を指定し、二撃目が有効な場合のみ表示をしています。二刀流でない場合は普通に一回攻撃します。

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