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

2020年03月21日

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

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

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

目次



ダッシュアタック


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


<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(ディレイ)にマイナス値を指定することで、着地するよりも前に武器振りを開始しています。
 これによって、下降しながら武器を振り下ろすように調整しています。

ローリングアタック


 効果範囲拡張プラグインとの連携で、直線上に攻撃します。動きが人間離れしているので、どちらかというと敵向けです。


<RangeEx:line> // 直線を対象に
<D-Setting:NoStep> // 自動前進禁止

<D-Motion:roll&pierce>
frame = 8 // 移動時間
rotation *= 4 // 回転数
</D-Motion>

<D-Animation>
delay = 6 // 6フレーム待つ
</D-Animation>

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

 回転数は『rotation』で指定します。標準では前方に回転しますが、逆回転にしたい場合はマイナスをかけてください。

流星剣


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


<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>

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

仲間を対象に


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


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

 対象が仲間の場合、その前方へ移動後、向き合ってアニメーションを表示します。
 自分が対象の場合は一歩前進だけで済ませます。

二刀流(2020/11/10更新)


 通常、当プラグインを通常攻撃に適用した場合、二刀流の二撃目が表示されなくなります。
 ですが、設定次第では二撃目の演出も可能です。


<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()
weaponType = a.weapons()[1].wtypeId // 二撃目の武器タイプ

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

</D-Animation>

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

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

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