当プラグインの基本的な使用法、パラメータの指定方法を紹介していきます。
そのままコピペもできるのでご活用ください。
目次
- 到達フレーム(arrival)
- 繰り返し(repeat, interval)
- 大きさ(scaleX, scaleY)
- 始点座標(sx, sy)
- 終点座標(ex, ey)
- 座標分散(sxRandom, syRandom, exRandom, eyRandom)
- 放物線(arcX, arcY)
- 複数アニメーションの呼び出し(id)
- 時間差(delay)
- ウェイト(wait)
- 残像(afterimage , afterimageInterval )
- 回転(rotation)
使用法
まずは射撃(shot)型のテンプレートを使って説明していきます。
例として、デフォルトにある『水/単体2(id = 82)』のアニメーションをスキルに設定してみてください。
※なお、画面フラッシュが見辛いので以降の例では消しています。
そして、メモ欄へ以下を記述します。
<D-Animation:shot/>
末尾の『/』に注意してください。一行で完結する場合はこのように記述します。

見ての通り、射撃型では行動主体から対象へ向かって、まっすぐにアニメーションを飛ばします。
……が、これだけでは色々物足りません。
到達フレーム(arrival)
このアニメーションのフレーム数は合計15です。特に設定がない場合は、15フレームで対象に到達します。
ですが、このアニメは8フレーム目に泡が弾けるような内容になっています。できればその直前(7フレーム目)に到達し、そこで弾けるようにしたい。
というわけで、到達フレーム数を指定します。
以下のように射撃型に対して、パラメータを追加します。
<D-Animation:shot>
arrival = 7 // 到達フレーム
</D-Animation>

いい感じになりました。
敵にぶつかって炸裂するファイアボールとかも同じ要領で作れます。
ちなみに『//』より右は注釈ですが、そのままコピペしても問題なく動きます。
繰り返し(repeat, interval)
次は連射にしてみましょう。
繰返回数(リピート)とその間隔を指定します。
<D-Animation:shot>
arrival = 7 // 到達フレーム
repeat = 5 // 繰返回数
interval = 2 // 間隔
</D-Animation>

intervalは指定なしなら1が適用されます。この数値はアニメーションのフレーム時間(標準で4/60秒)に対応します。整数だけでなく1/4とか1/2といった値も入れられます。
ただし、間隔が短すぎるとそれだけ大量のアニメーションを同時に呼び出されます。動作が重くなるので注意です。
また、現在の繰返回数は『r』で数式として参照できます(0始まり)。
さらに『repeat』で全体の繰返回数も参照できます。
例えば、以下のように記述するとinterval=5から開始し、繰り返すごとに連射間隔が狭まるアニメーションとなります。
<D-Animation:shot>
arrival = 7 // 到達フレーム
repeat = 5 // 繰返回数
interval = repeat - r // 間隔
</D-Animation>

※上記はver1.001以上でないとエラーになります。ご注意ください。
大きさ(scaleX, scaleY)
ところでちょっと泡がデカすぎませんか? 小さくしてみましょう。
<D-Animation:shot>
arrival = 7 // 到達フレーム
repeat = 5 // 繰返回数
interval = 2 // 間隔
scaleX = 0.5 // 横幅
scaleY = 0.5 // 縦幅
</D-Animation>

横幅(scaleX)と縦幅(scaleY)を0.5に指定しました。1.0が元の大きさに相当します。
もちろんサイズの変更はアニメーション編集画面でも可能です。ただし、こちらでは横幅と縦幅を別々に指定できます。せっかくなので、やってみましょう。
<D-Animation:shot>
arrival = 7 // 到達フレーム
repeat = 5 // 繰返回数
interval = 2 // 間隔
scaleX = 1.0 // 横幅
scaleY = 0.5 // 縦幅
</D-Animation>

結構、雰囲気が変わりますよね。
うまくすれば、水の弾丸なんかも作れるかもしれません。
始点座標(sx, sy)
泡がキャラクターの胴体から出てるのが気になる。……ってなわけで、始点座標を調整してみましょう。
始点座標は『sx』と『sy』2つのパラメータからなります。ちなみに、sはstartの略です。
shot型の場合、最初から行動主体の座標が設定されていますが、それを変更します。
<D-Animation:shot>
sx = a.x - 48 * mirroring // 始点X座標
sy = a.y - a.height - 48 // 始点Y座標
arrival = 7 // 到達フレーム
</D-Animation>

頭上左から泡が出るようになりました。ちょっと数式っぽいものが出てきて嫌かもしれませんが、お付き合いください。
『a』が行動主体の画像情報(スプライト)を意味しています。
『a.x』『a.y』がそれぞれX座標とY座標です。
※現在のバージョンでは標準で『a.atk』などの記述も使用可能です。
『a.height』はキャラクターの高さになります。『a.y - a.height』で行動主体の頭上。そこからさらに-48ということは、頭上48ピクセルを始点Y座標とするという意味です。
ツクールMVの基本的な操作レベルの話なので今更かもしれませんが、Y座標はマイナスが上になるんですよね。
『a.x - 48』もそのまま、行動主体の左48ピクセルを始点とするという意味です。
『mirroring』は対象がアクターになった際に、座標を左右反転させるための変数です。(詳細)
終点座標(ex, ey)
始点と来れば、次は終点(対象に到達する座標)のほうもいじってみましょう。
終点座標は『ex』と『ey』2つのパラメータからなります。もちろん、eはendの略です。
<D-Animation:shot>
ex = defaultX + 100 * mirroring // 終点X座標
ey = defaultY + 100 // 終点X座標
arrival = 7 // 到達フレーム
</D-Animation>

特に意味はありませんが、敵の右下辺りで炸裂するようになりました。
それより、謎の変数が出てきましたね。
『defaultX』『defaultY』には、アニメーションの位置設定(頭上、中心、足元、画面)を考慮した対象(b)の座標が入っています。
- 頭上:defaultX = b.x, defaultY = b.y - b.height
- 中央:defaultX = b.x, defaultY = b.y - b.height / 2
- 足元:defaultX = b.x, defaultY = b.y
- 画面:defaultX, defaultY共にプラグインパラメータの設定値
詳細は上記の通りです。
いちいち『b.y - b.height / 2』とか入力するのも面倒なので、こちらを使っていくと便利です。
座標分散(sxRandom, syRandom, exRandom, eyRandom)
では、対象に命中する座標を分散させたい場合はどうでしょうか? 連射技などはランダムでバラつかせたほうが自然ですよね。
<D-Animation:shot>
sxRandom = 50 // 始点X座標分散
syRandom = 50 // 始点Y座標分散
exRandom = 50 // 終点X座標分散
eyRandom = 50 // 終点Y座標分散
arrival = 7 // 到達フレーム
repeat = 5 // 繰返回数
scaleX = 0.5 // 横幅
scaleY = 0.5 // 縦幅
</D-Animation>

上記のように始点・終点のX・Y座標をそれぞれ50ピクセルほど分散させてみました。
演出上、終点だけのほうが自然な気もしますが、始点もついでです。
なお、上下左右にそれぞれ50ピクセルという意味なので、分散の幅は100ピクセルになります。
また、以下のような指定も一つの方法です。
<D-Animation:shot>
exRandom = b.width / 3 // 対象の横幅÷3
eyRandom = b.height / 3 // 対象の縦幅÷3
</D-Animation>
これは対象の画像サイズを見て、その範囲で分散させています。
÷2ではなく÷3なのは大抵の場合、画像の端のほうが空白になっているためです。多少小さめに設定したほうが自然かなと。
放物線(arcX, arcY)
投擲といえば放物線。もちろん機能を用意しています。
放物線の高さとなるピクセル数を指定します。例によって、マイナスが上方向になります。
<D-Animation:shot>
arrival = 7 // 到達フレーム
arcY = -100 // 放物線のY座標成分
</D-Animation>

泡はこういう動きのほうが似合いますよね。
また『arcX』で横方向の放物線も指定可能です。サイドビューでは使いにくいかもしれませんが、独特の加速になるので何かに使えるかもしれません。
複数アニメーションの呼び出し(id)
当プラグインでは複数のアニメーションを1つのスキルから自由に呼び出せます。
やり方は単純に記述を追加するだけです。
<D-Animation:shot>
arrival = 7 // 到達フレーム
</D-Animation>
<D-Animation>
id = 81 // 水/単体1
</D-Animation>
『id』にアニメーションIDを指定すれば、スキルに設定されている以外のアニメーションを呼び出せます。
ちなみに『<D-Animation/>』とだけ記述すれば、ごく普通にアニメーションを実行します。
時間差(delay)
ただし、上記の方法ではタイミングも何もなく全く同時にアニメーションを再生してしまいます。そこで時間差を指定します。
<D-Animation:shot>
arrival = 7 // 到達フレーム
</D-Animation>
<D-Animation>
delay = 7 // 7フレーム待つ
id = 81 // 水/単体1
</D-Animation>

これで到達フレームに合わせて、次のアニメーションを再生するようにできました。
終了タイミングに合わせたい場合は『auto』と指定すれば、自動的に待ってくれます。repeatやintervalも考慮して終了タイミングを計算してくれるので便利です。
<D-Animation:shot>
arrival = 7 // 到達フレーム
</D-Animation>
<D-Animation>
delay = auto
id = 81 // 水/単体1
</D-Animation>

ウェイト(wait)
前の<D-Animation:shot>にウェイト(wait)を指定する方法でもタイミング調整できます。
<D-Animation:shot>
arrival = 7 // 到達フレーム
wait = auto
</D-Animation>
<D-Animation>
id = 81 // 水/単体1
</D-Animation>
指定する箇所が違うだけで『時間差(delay)』とやることは全く同じです。お好きなほうでどうぞ。
残像(afterimage , afterimageInterval )
おまけに残像機能です。
残像の数と間隔を指定します。
<D-Animation:shot>
arrival = 7 // 到達フレーム
arcY = -100 // 放物線のY座標成分
afterimage = 5 // 残像数
afterimageInterval = 1 // 残像間隔
</D-Animation>

残像間隔も仕様は通常の間隔(interval)と同じです。1がアニメーションの1フレームに対応します。
※『afterImage』ではなく『afterimage』です。大文字小文字の指定を誤ると動きません。
この機能はカッコいいのですが、重いので注意が必要です。普通にrepeatを指定して表示数を増やすのと、負荷は同じだと思ってください。
回転(rotation)
少し上級になりますが、回転も足してみましょう。
実のところ、回転はアニメーションの編集画面でも可能なので、必ずしもここで設定する必要はありません。ただまあ、こういうのも可能だということで。
回転率はラジアンといって2π(パイ)を360度として指定します。高校数学で習う範囲です。……が、たぶんみんな忘れていることでしょう。
そんなわけで、とりあえずコピペで結構です。
<D-Animation:shot>
arrival = 7 // 到達フレーム
arcY = -100 // 放物線のY座標成分
scaleY = 0.5 // 縦幅
rotation = t/et * Math.PI * 2 // 回転率
</D-Animation>

※回転を分かりやすくするため細長くしています。
『Math.PI * 2』が2πなのは分かると思うんですが、他にも『t』だの『et』だの新しい変数が出てきました。
『rotation』はアニメーションの再生中、1/60ごとにリアルタイム演算を行う項目であり、これはその時間変化を計算する式です。
- t:アニメーション開始からの経過時間(1/60秒単位)
- et:アニメーションの終了時間(1/60秒単位)
『t』は0から始まり、終了時間になると『et』に等しくなります。ということは『t/et』の値は0→1へと変化していきます。
つまり上の数式全体は0〜2πへ変化します。これはアニメーションの再生中にちょうど一周するという意味です。
説明が意味不明でも一周することさえ分かればOKです。
ところで、上のアニメーションは違和感ありますよね。
泡がぶつかってからも、回転を続けているのがしっくり来ません。
というわけで、到達すると回転を止める式も紹介します。
<D-Animation:shot>
arrival = 7 // 到達フレーム
arcY = -100 // 放物線のY座標成分
scaleY = 0.5 // 縦幅
rotation = Math.min(t, arrival) / arrival * Math.PI * 2 // 回転率
</D-Animation>
ここで登場する『arrival』は既に登場した『到達フレーム』と同じ名称ですが、微妙に中身が違います。アニメーションのフレーム単位ではなく、1/60秒単位になっています。
……が、特に違いを意識しなくとも通常は支障ありません。到達タイミングであることは同じです。
『Math.min(t, arrival)』とは『t』と『arrival』の小さなほうを取るという意味です。
要するに、tが到達時間に達した時点から式の結果が固定されます。それによって、そこで回転が止まります。

これで到達時点で回転が止まるようになりました。
さらに、2回転3回転させたい場合はどうでしょう?
こちらは簡単。数式全体に対して値をかけるだけです。
<D-Animation:shot>
arrival = 7 // 到達フレーム
arcY = -100 // 放物線のY座標成分
scaleY = 0.5 // 縦幅
rotation = 3 * Math.min(t, arrival) / arrival * Math.PI * 2 // 回転率
</D-Animation>

3回転にしてみました。
当プラグインの基本的な使用方法については以上です。
テンプレートは射撃型以外にも大量にありますし、パラメータも盛り沢山です。それについては、他のページをご覧ください。
>DynamicAnimationプラグインに戻る
>RPGツクールMV目次に戻る