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

2020年03月28日

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

 弓系のサンプル技を紹介していきます。

 基本的にはMV用アニメを使っています。MVを持ってない人はごめんなさい。
 MZでの利用は、DynamicAnimationMZからMVアニメを呼び出すプラグインを参照してください。

 前提として、DynamicAnimationの基本的な使用法を把握している想定です。そうでない場合は、リンク先の上のほう(到達フレーム(arrival)辺り)だけでも見ていただけると分かりやすいかと思います。

 矢はツクールMV/MZの標準素材にはありませんが、弓の攻撃パターンに含まれています。アニメーションとして使えるように抜き出してみました。ついでに弓から矢を取り除きました。
 ※ツクールシリーズの規約によりMV/MZの正規ユーザ以外は使用できません。共通の素材なので片方を所有していれば大丈夫です。

アニメーション(img/animations)
※刺さるパターンつき

武器(img/system)
※右上の弓以外はそのまま

 これで矢のアニメーションを作成すれば準備完了です。
 作成といっても動きはプラグインで制御するため、単に画面中央にパターンを貼りつけるだけでOKです。
 サイズは初期状態だと小さすぎるので、150%ぐらいに拡大したほうがいいかもしれません。


 例では1〜4フレームは1パターン目、5〜8フレーム目は2パターン目(刺さったほう)となるようにしてみました。

目次




 まずは普通に矢を放ちます。
 通常攻撃として使いたい場合は、公式プラグインの『WeaponSkill.js』で武器に紐付ければ可能です。
 ※ツクールMZでは武器の特徴に『攻撃スキル』を設定すればOK。
 武器を持たない敵キャラは普通にスキルとして使えばOKです。ちなみにこのプラグインでスキル名を非表示にもできます。


<D-Setting:MV>

<D-Motion:attack/>
<D-Animation:shot&lookCourse>
sx -= 10 * mirroring // 始点X座標
sy += 10 // 始点Y座標
arrival = 4 // 到達フレーム
</D-Animation>

 『lookCourse』は矢に進路を向かせるためのテンプレートです。
 始点位置や到達フレームは各自の設定に合わせて変更してください。適当にヒットエフェクトもつけていますが、その辺はお好みでどうぞ。

連射


 連射です。ひたすら矢を放ちます。


<D-Setting:MV>

// 10連射(モーション)
<D-Motion:attack>
repeat = 10 // 繰返回数
interval = 1 // 間隔

motionFrame = 1/3 // interval/3
</D-Motion>

// 矢
<D-Animation:shotRandom&lookCourse>
repeat = 10 // 繰返回数
interval = 1 // 間隔

sx -= 10 * mirroring // 始点X座標
sy += 10 // 始点Y座標
arrival = 4 // 到達フレーム
</D-Animation>

 ただ『矢』を繰り返しているだけですね。
 『repeat』の値を変更すれば、矢の本数も変わります。その際、モーションとアニメーションの『repeat』と『interval』の値を一致させるようにしてください。

アローレイン


 矢を上空に放ち、雨のように落下する矢で攻撃します。
 矢のアニメーションは12フレームで対象へ刺さるように変更しています。滞空時間があるため、長めにしたほうが自然となります。


<D-Setting:MV>

// 弓を引く
<D-Motion:attack>
repeat = 40
interval = 1/2
motionFrame = 1/2/3 // interval/3
</D-Motion>

// 矢連射
<D-Animation:arcRandomAll&lookCourse&wait>
repeat = 40
interval = 1/2
sx -= 10 * mirroring // 弓に位置を合わせる
sy += 10 // 弓に位置を合わせる
eyRandom = 130 // 終点Y座標ランダム幅
arrival = 12 // 到達フレーム
arcY = -500 // 放物線の高さ
</D-Animation>

 『eyRandom = 130』は標準よりも終点Y座標のランダム幅を狭めるためです。標準値だと背景上方の空間に刺さってちょっと変な感じでしたので。

ウインドダート


 風の矢を連射します。
 軌道は高さランダムの放物線を取ります。
 さらに魔力(mat)が20増加するごとに矢の本数が増えます。


 ちなみに風の矢は以下のように作成しています。(クリックで拡大)
 8フレームで対象へ到達する想定です。
 風の矢以外でも、炎の玉でも何でも構いません。


<D-Setting:MV>

// 弓を引く
<D-Motion:attack>
repeat = 10 + Math.floor(a.mat / 20)
interval = 2
motionFrame = 2/3 // interval/3
</D-Motion>

// 風の矢連射
<D-Animation:shotRandom&lookCourse&wait>
repeat = 10 + Math.floor(a.mat / 20)
interval = 2
sx -= 20 * mirroring // 弓に位置を合わせる
sy += 10 // 弓に位置を合わせる
exRandom = 50
eyRandom = 50
arrival = 8 // 到達フレーム
arcY = -150 + Math.random() * 300 // -150〜150
</D-Animation>

  • 『Math.floor(a.mat / 20)』は魔力を20で割って、切捨します。
  • 『Math.random()』は0〜1のランダム値を生成する関数です。
    これによって、放物線の高さをランダム化しています。

針千本(2020/4/9)


 敵の周囲から出現する大量の矢が突き刺さります。


<D-Setting:MV>

// 連射(モーション)
<D-Motion:attack>
repeat = 15
interval = 1
motionFrame = 1/3 // interval÷3
</D-Motion>

// 矢(収束アニメ)
<D-Animation:converge&lookCourse>
repeat = 60
interval = 1/4
exRandom = 20
syRandom = 20
arrival = 4 // 到達フレーム
scaleX = 1 + (1 - Math.min(t, arrival) / arrival) * 2
scaleY = 1 + (1 - Math.min(t, arrival) / arrival) * 2

</D-Animation>

 赤字部分で矢の縮小処理を行っています。通常の3倍から等倍へと変化していくような数式になっています。

ジャンプショット(2020/11/18)


 ジャンプして矢を放ちます。


<D-Setting:NoStep&MV>

// 空中へ移動
<D-Motion:jump>
frame = 8
airY = -200 // 高さ200へ移動
ex = a.x - 120
wait = 10
</D-Motion>

// 弓を引く
<D-Motion:attack/>

// ショット
<D-Animation:shot&lookCourse&wait>
sx -= 10 * mirroring
sy += 10
arrival = 4
</D-Animation>

<D-Motion:return/>

 『airY = -200』によって空中へ移動します。『return』によって、自動的に地面へ降ります。
 これだけだと地味なので、後は好きなようにアレンジしてください。例えば、以下は『連射』と組み合わせた例です。「弓を引く」〜「ショット」の部分を入れ替えるだけなので簡単です。



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