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

2021年06月16日

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

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

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

目次



召喚(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-Setting:MV>

<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-Setting:MV>

<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-Setting:MV>

// 術者前方にランダムで砂煙
<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フレーム目から砕けるアニメです。


炎の帯(2021/06/16)


 ※DynamicAnimationを最新(2021/06/16〜)へ更新してください。残像機能が正常動作しない不具合を修正しています。

 尾を引く放物線を対象に放ちます。


 必要なアニメーションは二つあります。

 一つ目は帯を構成するアニメーションです。左を向いた固定パターンのアニメーションを指定します。円形などでも構いません。
 このサンプルでは『Fire2』の2パターン目を90度回転させて配置しています。
 設定したフレーム数がそのまま放物線が着弾するまでの時間になります。


 二つ目は着弾のアニメーションです。こちらは特筆すべき点はありません。
 このサンプルでは『Fire1』のパターンを使用していますが、そのまま『67:炎/単体2』などでもよいと思います。

<D-Setting:MV>

// 炎の帯
<D-Animation:arc&lookCourse>
id = X
position = 2 // 位置を足元に
ey -= 48 // 位置を少し上に調整
arcY = -150 // 放物線の高さ
scaleX = 2 // 横幅
scaleY = 1 // 縦幅
afterimage = 10 // 残像の数
afterimageInterval = 1 // 残像の間隔
</D-Animation>

// 着弾
<D-Animation:keep>
id = X
</D-Animation>

 赤字部分には2つのアニメーションをそれぞれ指定してください。

 『lookCourse』テンプレートによりアニメーションに進路を向かせています。これに残像を加えることで、尾を引く放物線のように見せています。残像の数や間隔を好きなように調整してください。
 『scaleX = 2』によりアニメーションを横に引き伸ばしています。放物線を自然に見せるための調整です。

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

戦闘背景やエンカウント率を詳細設定【RPGツクールMZ&MVプラグイン】

2021年06月04日

 戦闘背景やエンカウント率を詳細な条件で設定します。


 上記は橋の上で戦闘背景を変更した例です。
 ちなみにデフォルトでは平原になるという残念っぷり……。

 条件にできるのは『地形タグ』『リージョンID』『タイルID』『オートタイルタイプ』の四種類です。
 もっとも、地形タグは数が限られているし、リージョンは設定が大変です。そこでオートタイルタイプやタイルIDを使った設定をオススメします。

 ※オートタイルタイプとはオートタイル毎に保有する識別番号のことです。
  付属のNRP_DebugTile.jsで確認できます。
 ※戦闘背景の変更はフィールドタイプのタイルセットのみ有効です。


 また、ツクールMV〜MZにはデフォルトで以下の隠し仕様が含まれています。

  • 茂み属性のエンカウント率は二倍
  • 乗船(大型船)中のエンカウント率は半減

 場合によっては、ありがた迷惑になりかねません。これらの仕様を変更することも可能です。

目次


導入方法(Install)

更新履歴(History)

使用方法(Usage)

細かい仕様(Detail)

プラグインパラメータ(基本)

茂みのエンカウント率(BushEncounterRate)

大型船のエンカウント率(ShipEncounterRate)

設定リスト(SettingList)


プラグインパラメータ(設定リスト)

設定ID(Id)

メモ(Memo)

全タイルセットで有効(ValidAllTilesets)


プラグインパラメータ(設定リスト:条件)

地形タグ(TerrainTag)

リージョンID(RegionId)

オートタイルタイプ(AutotileType)

タイルID(TileId)


プラグインパラメータ(設定リスト:内容)

エンカウント率(EncounterRate)

戦闘背景1(Battleback1)

戦闘背景2(Battleback2)


導入方法(install)


 以下のファイルをダウンロードし 、[プロジェクト]\js\plugins に放り込みます。ツクールのプラグイン管理から機能をONにしてください。
 ※いずれのプラグインもMV、MZの両方で有効です。

 NRP_TerrainInfo.js ver1.001(2021/11/11)

オプション

タイル情報をデバッグ表示する(詳細

 NRP_DebugTile.js ver1.01(2021/08/15)

 ※F2を押すだけで、足元のオートタイルタイプやタイルIDを確認できるようにするプラグインです。NRP_TerrainInfoの補助用に使えます。

更新履歴(History)


2021/06/04 -> 2021/11/11(ver1.00 -> 1.001)

  • 公開!
  • イベントテストでエラーになる不具合修正。(11/11 ver1.001)

使用方法(Usage)


 プラグインパラメータの設定リストに、条件、エンカウント率、戦闘背景を入力してください。
 登録した『設定ID』をタイルセットのメモ欄に設定すればOKです。
<TerrainSetting:?>

 ?の部分が設定リストに登録した『設定ID』となります。
 また、カンマ区切りによって複数指定も可能です。
<TerrainSetting,B,C>


 設定リストには最初からサンプルが登録されています。
 ツクールのデフォルトのフィールドに合わせた内容になっているので、参考にしてください。

細かい仕様(Detail)


 タイルIDやオートタイルタイプは、上のレイヤーから順番に判定されます。
 設定がないレイヤーのタイルは無視される仕様です。

 例えば、以下のように設定した場合、

  • レイヤー1の平原:エンカウント率100%
  • レイヤー2の森 :エンカウント率200%
  • レイヤー3の町 :設定なし

 レイヤー2の森のエンカウント率(200%)が有効になります。これは戦闘背景についても同様です。

プラグインパラメータ(基本)


茂みのエンカウント率(BushEncounterRate)

 茂み上でのエンカウント率です。100を基準に設定してください。
 初期値は200です。

 これは設定リストの内容と重複するので注意してください。
 例えば、森に茂み属性を付加してエンカウント率を200にした場合、さらに茂み属性の影響で計4倍になってしまいます。

大型船のエンカウント率(ShipEncounterRate)

 大型船に乗っている時のエンカウント率です。100を基準に設定してください。
 初期値は50です。

 こちらも設定リストの内容と重複します。

設定リスト(SettingList)

 エンカウント率の設定の一覧です。

 以下、その詳細設定のパラメータです。

プラグインパラメータ(設定リスト)


設定ID(Id)

 タイルセットのメモ欄からの呼び出しに使う識別子です。
 『全タイルセットで有効』がオンの場合は不要です。

メモ(Memo)

 判別用のメモです。
 処理には使用しませんので、分かりやすい名前を付けてください。

全タイルセットで有効(ValidAllTilesets)

 設定を全てのタイルセットで有効にします。
 特定のタイルセットにのみ設定を反映したい場合は、オフにしてください。

プラグインパラメータ(設定リスト:条件)


地形タグ(TerrainTag)

 対象とする地形タグ(1~7)を指定します。
 複数指定も可能です。(例:1,3~5)

 7つまでしか設定できないのでご利用は計画的に。

リージョンID(RegionId)

 対象とするリージョン(1~255)を指定します。
 複数指定も可能です。(例:1,3~5)

オートタイルタイプ(AutotileType)

 対象とするオートタイルタイプを指定します。
 複数指定も可能です。(例:1,3~5)

 オートタイルタイプとはオートタイル毎に割り当てられる番号です。デフォルトでは戦闘背景の判定に用いられています。
 地形タグと異なり数の制限がないため、自由に設定が可能です。

 ただし、この値は通常確認できません。
 オプションにある「タイル情報をデバッグ表示する」プラグインで確認ができます。

タイルID(TileId)

 対象とするタイルIDを指定します。
 複数指定も可能です。(例:1,3~5)

 こちらはエディタの機能で普通に取得できますが、面倒です。
 こちらも「タイル情報をデバッグ表示する」プラグインでの確認をオススメします。

プラグインパラメータ(設定リスト:内容)


エンカウント率(EncounterRate)

 条件を満たした場合のエンカウント率です。100を基準に設定してください。

戦闘背景1(Battleback1)

 条件を満たした場合の戦闘背景(下)です。
 タイルセットがフィールドタイプの場合のみ有効です。

戦闘背景2(Battleback2)

 条件を満たした場合の戦闘背景(上)です。
 タイルセットがフィールドタイプの場合のみ有効です。

 >RPGツクールMZ&MV目次に戻る
posted by 砂川赳 at 11:22 | RPGツクールMZ&MV | このブログの読者になる | 更新情報をチェックする