DynamicMotion 表示系テンプレート【RPGツクールMZ&MVプラグイン】

2020年03月21日

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

 表示系のテンプレートを紹介していきます。
 ※ver表記はMV版DynamicMotionが基準ですが、全てDynamicMotionMZでも有効です。

目次



透明(invisible)


 バトラーを透明化します。
 解除するには、下の『透明解除(visible)』を指定する必要があります。

透明解除(visible)


 透明状態を解除します。
<D-Motion:stepForward&invisible/> // 透明化しながら前進
<D-Motion:near>
ex += 48 * mirroring // 対象の少し手前に移動
</D-Motion>
<D-Motion:near&visible&attack/> // 透明解除しながら前進アタック
<D-Animation/>
<D-Motion:return/> // 戻る


 透明と透明解除を組み合わせてみました。

反転(mirror)


 バトラーを左右反転します。
<D-Motion:mirror&near/> // 左右反転して対象へ接近
<D-Animation/> // アニメーション
<D-Motion:return/> // 戻る


 味方を対象としたスキルやアイテムなどに利用できます。
 攻撃とも組み合わせられますが、武器を振る腕まで変わるので注意です。

 なお、左右反転は解除するまで戻りません。下の『反転解除(mirrorOff)』を指定する必要があります。
 あるいは、例のように『帰還(return)』型で自動解除するので、そちらに任せるのもオススメです。

反転解除(mirrorOff)


 バトラーの左右反転を解除します。
<D-Motion:mirror&near/> // 左右反転して対象へ接近
<D-Motion:mirrorOff/> // 左右反転解除


自分ズーム(zoomA)ver1.021


 行動主体にズームします。

対象ズーム(zoomB)ver1.021


 対象にズームします。
 『行動主体がA』『対象がB』というのは、スキルの計算式と同じです。混同しそうな時はそれで覚えるとオススメです。

ズーム解除(zoomOff)ver1.021


 ズームを解除します。
 以下、自分ズーム、対象ズームとそれぞれ組み合わせた例です。
<D-Motion:zoomA/> // 自分にズーム
<D-Animation:wait/> // アニメーション&ウェイト
<D-Motion:zoomOff/> // ズーム解除


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



振動(shake)ver1.03


 モーション対象を振動させます。振動幅は左右合わせて6ピクセルです。
<D-Animation/> // アニメーション
<D-Motion:attack/> // 武器振り
<D-Motion:target&shake/> // 対象を振動


 また、振動幅を大きくしたい時は『addX』に値をかけます。
<D-Animation/> // アニメーション
<D-Motion:attack/> // 武器振り
<D-Motion:target&shake> // 対象を振動
addX *= 20 // 振動幅20倍
</D-Motion>



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

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

 このページは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 | このブログの読者になる | 更新情報をチェックする

DynamicMotion 制御系テンプレート【RPGツクールMZ&MVプラグイン】

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

 制御系のテンプレートを紹介していきます。

目次



対象(target)


 モーションの対象をスキルの対象へと変更します。基本的に他のテンプレートと組み合わせて使います。
<D-Motion:attack/> // 武器振り
<D-Animation/> // アニメーション
<D-Motion:target&stepBack/> // 対象が後退
<D-Motion:target&home/> // 対象が戻る


 攻撃を受けた対象が後退するようにしてみました。

対象毎に実行(every)


 モーションをスキルの対象分繰り返します。例えば、スキルの対象が4体いる場合は4回モーションを繰り返します。

 また、繰り返し間隔は『nextDelay』によって指定します。この値はアニメーションフレーム単位です。
 アニメーションと間隔を合わせることによって、自然なアクションとなります。
<D-Motion:every&attack> // 全対象に武器振り
motionFrame = 2 // 2*3=6フレーム
nextDelay = 6 // 繰り返し間隔
</D-Motion>
<D-Animation>
nextDelay = 6 // 繰り返し間隔
</D-Animation>


 上記はランダム複数回攻撃と組み合わせた例ですが、全体攻撃でも問題なく動作します。

 モーション時間を調整したりと、自然に見せるには若干のコツがいります。
 ※motionFrameは1パターンのフレーム時間です。実際には×3パターン分の時間がかかります。

ウェイト(wait)


 他のテンプレートと組み合わせることで動作を待ちます。
<D-Motion:attack&wait/> // 武器振りを待つ


 ちなみに、移動系テンプレートの多くは最初からウェイト処理が含まれています。基本的には、わざわざ付ける必要はありません。

ウェイトなし(noWait)


 他のテンプレートの後ろに連結することで動作のウェイトを飛ばします。移動系テンプレートなど最初からウェイトが付いているものと組み合わせます。
<D-Motion:near&noWait/> // 接近を待たずに
<D-Animation:shotRandom/> // アニメを再生


 ……まあ、上記の例だとアニメを先に実行しても同じなんですけどね。

ディレイ(delay)


 前のモーションまたはアニメーションの動作を待ちます。
<D-Motion:jump/> // ジャンプ
<D-Motion:delay&near/> // ジャンプを待って移動


 ウェイトと指定するタイミングが異なるだけなので、お好きなほうを使ってください。

ディレイなし(noDelay)


 他のテンプレートの後ろに連結することで、ディレイを無効化します。
 ……流れで用意してみましたけど、ディレイが最初から付いているのは『帰還(return)』型ぐらいなので、あまり使い道が……。
 複数のバトラーを同時に帰還させたい場合ぐらいでしょうかね。
<D-Motion:near&jump&attack/> // 接近&ジャンプ&武器振り
<D-Animation/> // アニメーション
<D-Motion:target&stepBack/> // 対象が後退
<D-Motion:target&return/> // 対象が元の位置へ
<D-Motion:return&noDelay/> // 自分もディレイなしで元の位置へ



対象が他者(ifOther)


 スキルの対象が自分以外の場合のみ実行します。

対象が自分(ifSelf)


 スキルの対象が自分の場合のみ実行します。

 上共々どういう使い方をするのかというと、例えばこういう使い方ができます。
<D-Setting:NoStep> // 前進しない
<D-Motion:near&mirror&ifOther/> // 対象が他者なら反転して接近
<D-Motion:stepForward&ifSelf/> // 対象が自分なら一歩前進
<D-Animation/>
<D-Motion:return&ifOther/> // 対象が他者なら戻る


 対象が仲間の場合、その前方へ移動して向き合ってアイテムを使用しています。
 ただ対象が自分だった場合、その場で後ろを向くので不自然です。


 そこで自分が対象の場合、単に一歩前進して使うようにしています。

味方のみ(ifActor)


敵のみ(ifEnemy)


 それぞれ、行動主体がアクターの場合のみ、敵キャラの場合のみ実行します。
 味方と敵で処理を分けたい場合などにどうぞ。

即時(soon)ver1.02


 各命令を即時実行(1/60秒)します。
 例えば、透明度や角度、モーションの変更を即時に反映させたい場合など。他にも瞬間移動などに使えます。
<D-Motion:near&soon/> // 接近&即時
<D-Motion:attack/> // 武器振り
<D-Animation/> // アニメーション
<D-Motion:return&soon/> // 戻る&即時



戦闘中(ifBattle) ver1.13


マップ中(ifMap) ver1.13


 それぞれ、戦闘画面の場合のみ、マップ画面の場合のみ実行します。
 マップ版DynamicMotionを導入しないと意味がありません。

遠隔(ifDistant)ver1.15


 マップ上にて、モーションの実行者と対象者が隣接していない場合のみ実行します。
<D-Motion:turnToward&soon/>
<D-Motion:near&ifDistant/>
<D-Animation:wait/>
<D-Motion:return&ifDistant/>


 例えば、上記では対象と離れたマスにいる場合のみ、接近&帰還処理を行います。対象と隣接している場合は、即座にアニメーションを表示します。このように無駄な移動演出をさせたくない場合に有効です。
 また、戦闘時には常に有効となります。

 それから、上記の場合はアニメーションにwaitの指定を行う必要があることに注意してください。<D-Motion:return&ifDistant/>の省略によって、前の動作を待つこともなくなってしまうためです。

隣接(ifAdjacent) ver1.15


 マップ上にて、モーションの実行者と対象者が隣接している場合のみ実行します。
 つまり『遠隔(ifDistant)』とは正反対に動作をします。
 また、戦闘時には常に無効となります。

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