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

2020年03月23日

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

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

目次



爆裂脚


 ライダーキック的な挙動で敵に衝突します。


 アニメーションには『id=107(無属性/単体2)』を使っていますが、そこはお好みでどうぞ。
// 自動前進しない
<D-Setting:NoStep>

// 回転しながら浮上
<D-Motion:jump&roll&wait>
frame = 8
rotation *= 4
airY = -200 // 空中Y座標
ex = sx - 50 * mirroring
</D-Motion>

// 体を傾けて衝突
<D-Motion:crash>
frame = 3
rotation = (Math.PI * 2) / 6 // 360/6度
</D-Motion>

// 角度を戻す&しゃがむ
<D-Motion>
rotation = 0
motion = abnormal // 瀕死ポーズ
frame = 10
</D-Motion>

// アニメーション
<D-Animation/>

// 対象が吹っ飛ぶ
<D-Motion:jump&target>
ex = sx - 500 * mirroring
wait = 10
</D-Motion>

// 対象元の位置へ
<D-Motion:jump&home&target/>

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


ズームアタック DynamicMotion ver1.02(2020/03/29)


 攻撃しながら徐々に対象へ向かってズーム処理をかけます。
 ※ズーム処理のテンプレート化に伴い記述を簡略化しました。(2020/03/29)


<D-Motion:near&zoomB/> // 対象にズーム
<D-Motion:attack/> // 武器振り
<D-Animation/> // アニメーション
<D-Motion:return&zoomOff/> // ズーム解除

 行動主体にズームしたい場合『zoomA』を使用してください。
 なお、これらの処理はズーム対象が移動していても自動で追尾します。

スライディング(2020/03/24)


 スライディングで敵をスピンさせます。


 スキルに設定するアニメーションの位置は『足元』にしてください。
 また砂煙用のアニメーションが別途必要です。下の例では『Earth1』のパターンを使っています。位置は『足元』。合成方法は『通常』に設定すると自然です。


// 90度回転して体を地面へ
<D-Motion:wait>
duration = 1
airY = a.height/3
rotation = (Math.PI * 2) / 4
</D-Motion>

// 砂煙のアニメーション
<D-Animation:self>
id = XXX // ←ここに砂煙用のIDを指定
repeat = 5
</D-Animation>

// 対象の左へ
<D-Motion:pierce>
frame = 5
wait = 4
ex = defaultX - 100 * mirroring
</D-Motion>

<D-Animation/> // アニメーション

// 敵がスピン
<D-Motion:target&roll&jump>
frame = 5
rotation *= 3
arcY = -100
</D-Motion>

// 角度と位置を戻す
<D-Motion:wait>
delay = 1
duration = 1
airY = 0
rotation = 0
</D-Motion>

// しゃがんで待つ
<D-Motion:wait>
motion = abnormal // 瀕死ポーズ
frame = 5
</D-Motion>

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


ウルトラジャンプ(2020/05/09修正)


 ランダムで敵を踏みつけます。
 例では範囲を『敵4体ランダム』にしていますが、『敵全体』などにしても問題なく機能します。


 スキルに設定するアニメーションを『頭上』に設定することで頭を狙います。
 例では『2:打撃/エフェクト』を頭上に変更したものを使用しています。
<D-Setting:NoStep> // 自動前進禁止

// 対象ごとにジャンプ攻撃
<D-Motion:crash&jump&every>
ey += b.height/8 // 少し下を狙う
arcY = -200
motion = victory // 勝利ポーズ
frame = 7 // 移動(滞空)時間
wait = 7 // 最初の滞空を待つ
nextDelay = 7 // 7フレーム間隔

</D-Motion>

// 着地に合わせてアニメーション&ダメージ
<D-Animation:damage>
nextDelay = 7 // 間隔をモーションに合わせる
wait = auto
</D-Animation>

// 最後のアニメーション開始と同時に戻る
<D-Motion:return>
delay = -5 // アニメーションのフレーム数を引く
arcY = -200
damageAll = false // ダメージ表示は個別に任せる
</D-Motion>

 これを応用すれば、順番に体当りしていく技なども作成できます。
 タイミング調整が少し難しいので注意です。赤字部分に気をつけてください。

払い抜け(2020/03/31)


 対象とすれ違いながら、斬撃を放ちます。
 対象との角度によって斬撃の角度も変化します。


 以下のように左向きの斬撃を作ります。
 「6:斬撃/物理」を一括設定で45度回転させるなどすれば可能です。


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

// 対象の向こうまで移動
// X座標だけ指定すれば、Y座標も自動計算
<D-Motion:pierce&attack>
frame = 5
ex = defaultX - 150 * mirroring // 対象の左150pxまで移動
</D-Motion>

// 対象との位置関係でアニメーション角度変更
<D-Animation>
delay = 2
wait = auto
rotation = da.startRotation(Math.atan2(a.y - a.height/2 - defaultY, a.x - defaultX))
</D-Animation>

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

 赤字部分で、色々と細かい細工をしています。

  • da.startRotation()は開始時点の角度を保持する作者の独自関数です。
  • Math.atan2()は行動主体(a)と対象(defaultX, Y)の角度を求めます。
    こちらはJavaScriptの標準機能です。

 ※若干、意味不明かもしれませんが、コピペで大丈夫なのであまり気にしないでください。

疾風剣(2020/04/03)


 対象とすれ違いながら切り刻みます。
 角度を変えながらランダムで斬撃を再生しています。
 スキルに設定したアニメーションは「6:斬撃/物理」の色調を変えたものです。


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

// 対象とすれ違いながら武器振り
<D-Motion:pierce&attack>
frame = 5
ex = defaultX - 150 * mirroring
</D-Motion>

// 武器の止めポーズ
<D-Motion:attack2>
delay = 2
</D-Motion>

// 角度を変えながら斬撃リピート
<D-Animation>
delay = 3
repeat = 10
rotation = (Math.PI * 2) * da.startRandom()
</D-Animation>

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

 基本的には『払い抜け』の流用です。
 『rotation(回転角度)』をランダムに変化させることで、様々な角度から斬撃を繰り出すようにしています。
 『Math.PI * 2』は360度の意味、『da.startRandom()』は0〜1未満の値を取る関数です。つまり、0〜359度という意味ですね。

練気拳(単) DynamicMotion ver1.021(2020/04/06)


 ※DynamicMotion ver1.021以降が必要です。
 敵を引きつけながら殴ります。
 スキルには単なる打撃アニメを設定しています。
 さらに吸引用のアニメが必要です。例では『102:闇/単体2』を元に、合成方法を一括設定で『加算』に変更しています。


// 自身に吸引アニメを表示
<D-Animation>
id = 102 // ←ここに吸引アニメのIDを指定
sx = a.x
sy = a.y - a.height/2
</D-Animation>

// 対象を引き寄せる
<D-Motion:target&wait>
frame = 5 // 引き寄せ時間
ex = subject.x - (subject.width/2 + a.width/2) * mirroring
ey = subject.y - subject.height/2 + a.height/2

</D-Motion>

// 殴るアニメとモーション
<D-Animation:follow/>
<D-Motion:thrust/>

// 対象をhomeへ戻す
<D-Motion:target&home>
delay = 1 // 殴り初めから吹っ飛ぶまでの時間差
frame = 2 // 吹っ飛び時間
</D-Motion>

 『subject』は常にスキルの行動主体を意味します。まぎらわしいですがモーション対象を変更した場合、『a』はモーション対象者となります。

練気拳(全) DynamicMotion ver1.021(2020/04/06)


 ※DynamicMotion ver1.021以降が必要です。
 練気拳と言えば、そもそも全体技です。もちろんちゃんと用意しています。
 ※元ネタはロマサガ3です。


// 自身に吸引アニメを表示
<D-Animation>
id = 102 // ←ここに吸引アニメのIDを指定
nextDelay = 4
sx = a.x
sy = a.y - a.height/2
</D-Animation>

// 対象を引き寄せる
<D-Motion:target>
frame = 5
performerDelay = 4
ex = subject.x - (subject.width/2 + a.width/2) * mirroring
ey = subject.y - subject.height/2 + a.height/2
</D-Motion>

// 殴るアニメ(対象を追尾)
<D-Animation:follow>
delay = 5
nextDelay = 4
</D-Animation>

// 殴るモーション(対象毎)
<D-Motion:thrust&every>
delay = 5
nextDelay = 4
motionFrame = 1
</D-Motion>

// 対象をhomeへ戻す
<D-Motion:target&home>
delay = 6
frame = 2
performerDelay = 4
</D-Motion>

 ポイントは『performerDelay』と『nextDelay』の値を一致させることです。これが対象一体毎の処理に対する時間差となります。
 ちょっとややこしいですが『performerDelay』はモーション対象が複数いる場合の時間差です。
 『nextDelay』は「対象毎にアニメーションを表示する時間差」および「対象毎に行動主体がモーションを実行する時間差」です。

分身剣(2020/04/10)


 ※DynamicMotion ver1.03以降が必要です。
 分身しながら切り刻みます。


<D-Setting:NoStep>
<D-Motion:near/>

// 左右に分身しながら武器振り
<D-Motion:attack>
repeat = 5
addX = (t % 4 < 2) ? -(b.width + a.width) : 0
scaleX = (t % 4 < 2) ? -1 : 1 // 左右反転

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

// 右から攻撃アニメ
<D-Animation:random>
repeat = 8
interval = 2
</D-Animation>

// 左から攻撃アニメ
<D-Animation:random&wait>
repeat = 8
delay = 1 // 1フレームずらす
interval = 2
rotation = -Math.PI/2 // 90度回転
</D-Animation>

<D-Motion:return/>

 赤字部分で2/60秒毎に瞬間的に位置を変えています。
 『scaleX』はバトラーの横幅を意味する値ですが、値を『-1』にすると左右反転になります。反転は『mirror = true』でも可能ですが、リアルタイムで変更したい場合は『scaleX』が使えます。

変身 DynamicMotion ver1.04(2020/05/10)


 バトラーの画像を変更します。
 文字通りの変身技にも使えますが、それ以外にもモーションパターンの追加などへ利用可能です。
 また、敵も同じ要領で画像を変えられます。


// グラフィックを変更して接近
<D-Motion:near>
battlerImage = Actor1_1
</D-Motion>

<D-Motion:attack/>
<D-Animation/>

// グラフィックを戻して元の位置へ
<D-Motion:return>
battlerImage = ""
</D-Motion>

 『battlerImage = Actor1_1』というように指定した画像へとキャラを変更します。
 戻す時は『battlerImage = ""』というように空白文字を入力すればOKです。

 ちなみに、この画像変更は戦闘中のみの一時的な効果となります。

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