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

2020年05月09日

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

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

目次



召喚(2020/09/08更新)


 ※要screen型テンプレートです。(DynamicAnimation ver1.06で追加)
 アクターを消去して全体アニメを表示します。


// 全員透明化
<D-Motion:invisible>
performer = a.friendsUnit().members()
</D-Motion>

// 画面全体にアニメーション
<D-Animation:screen&wait/>

// 透明化解除
<D-Motion:visible>
performer = a.friendsUnit().members()
</D-Motion

 『performer = a.friendsUnit().members()』によって、アクター全体を対象にしています。
 ※『$gameParty.members()』でも有効ですが『a.friendsUnit().members()』なら、使用者がエネミーでも動作します。

炎の渦 DynamicMotion ver1.04(2020/05/09)


 対象の周囲に回り込む炎を起こします。
 DynamicMotion ver1.04(DynamicAnimation ver1.07)以降で可能な表示優先度の変更機能を用いています。
 アニメーションは『67:炎/単体2』ですが、好きなものに変えてください。


<D-Animation:vortex> // 渦型
position = 2
repeat = 100
interval = 1/4
scaleX = 0.5
scaleY = 0.5
radiusX *= 2 + b.width/2 // X半径
radiusY *= 1 // Y半径
radX *= 5 // 回転角度X
radY *= 5 // 回転角度Y
z = this.y < b.y ? b.z - 1 : this.z // Z座標
</D-Animation>

 X半径(radiusX)に『b.width/2』を足しているのは、最終的な半径を対象の横幅に合わせるためです。そっちのほうが炎に包まれた感じがしてカッコいいからですが、その辺はお好みで調整してください。

 『z = this.y < b.y ? b.z - 1 : this.z』はZ座標(=表示優先度)の変更処理です。「アニメーションの位置が対象より上の時はZ座標−1、それ以外は元の値」を設定することで背面表示しています。

 ※『z = b.z』でよさそうな気がしますが、なぜかアニメーションの一部描画が止まるバグが発生しました。解決できそうにないのでこれを使ってください。

渦潮 DynamicMotion ver1.04(2020/05/12)


 敵陣の中心を基準に敵をグルグル回します。
 単純な円周運動のサンプルは既にありますが、こちらは全体攻撃向けです。
 スキルのアニメーションは『Darkness2』のパターンを繰り返しているだけです。位置は『画面』にしています。


<D-Animation>
sy = defaultY + 50 // 位置を下寄りに
z = 0 // 対象より下に表示
</D-Animation>

<D-Motion:target&revolve>
frame = 40
performerDelay = 2 // 時間差
radiusX *= 2 // X半径
radiusY *= 1 // Y半径
radX *= 4 // X回転角度
radY *= 4 // Y回転角度
dx = sx + (screenX - sx) * (Math.sin(t/et * Math.PI))
dy = sy + (screenY + a.height/2 - sy) * (Math.sin(t/et * Math.PI))

</D-Motion>

 公転(revolve)型の機能によって、対象をグルグル回しています。
 『performerDelay 』に時間差の値を指定しないと敵キャラが重なってしまいます。

 最も難解なのは『dx, dy』の数式ですが……。これは敵キャラが敵陣中央に向かって移動し、また元の位置へと戻ってくるという式です。
 sinは90度毎に値を0->1->0と変化させるので、その性質を利用して行ったり来たりさせています。
 この数式へさらに回転成分を加算することで、全体の動作を実現しています。

サイコキネシス(2020/05/25)


 ランダム位置に出現した岩石を、さらにランダム位置に移動。そこから対象へぶつけます。
 ランダム位置を保持するためには継続(keep)型のテンプレートを用います。

 なお、継続型の定義は2020/05/09に更新していますので、反映していないとうまくいかない可能性があります。


// 術者前方にランダムで砂煙
<D-Animation>
id = XX // 砂煙のアニメ
position = 1
repeat = 15
sx = a.x - 100
sy = a.y - 60
sxRandom = 50
syRandom = 20
</D-Animation>

// 砂煙の発生位置を引き継いで岩石登場→対象の上空へ移動
<D-Animation:keep>
id = XX // 岩石の停止アニメ
delay = 1
ex = b.x
ey = 50
exRandom = 200
eyRandom = 50
arrival = 8 // 対空地点に到達するフレーム
</D-Animation>

// 対象の上空から対象へ岩石が殺到
<D-Animation:shotRandom&keep>
id = XX // 岩石の衝突アニメ
arrival = 5
</D-Animation>

 継続(keep)型には、前の<D-Animation>の終点座標を始点にコピーする効果があります。また、繰り返し回数などの情報も自動で引き継ぎます。
 ポイントは<D-Animation:shotRandom&keep>というように、&で後ろ側に結合することです。これはshotRandom自体が情報を持っているためです。この場合、後ろ側のテンプレートの設定が優先されます。

 また、このスキルには3つのアニメーションが必要です。

  • 砂煙のアニメ:Earh1で作成した単純な砂煙です。
    スライディングで使用しているものと同じです。
  • 岩石の停止アニメ:Earth3の岩石を25フレーム分コピーしたものです。
    合成方法を『通常』にする以外は一切の変更不要です。
  • 岩石の衝突アニメ:↑の岩石が6フレーム目から砕けるアニメです。

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