DynamicAnimationMZ(戦闘アニメを自動化&超強化)【RPGツクールMZプラグイン】

2020年10月31日

 戦闘アニメを自動化&超強化するプラグインです。
 ※このプラグインはMZ版です。MV版はこちら!

 Click here for the English manual.(By Ryan Bram)

 スキル(アイテム)から自在に戦闘アニメーションを呼び出せます。異なるIDのアニメーションを同時表示させたり、移動させたりすることが可能です。
 非常に自由度の高い仕様になっていますが、テンプレートを呼び出せばメモ欄に一行記述(例:<D-Animation:shot/>)するだけでも動作します。

 さらにDynamicMotionMZと連携すれば、バトラーの動作も自在に設定できます。

 以下は紹介動画です。
※画面が小さい場合は右下の全画面表示をクリックしてください。

目次


導入方法(install)

更新履歴(history)

使用方法(usage)


テンプレートの解説(template)


その他情報(other information)


MV版との違い(difference from MV)

競合について(conflict)


導入方法(install)


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

 NRP_DynamicAnimationMZ.js ver1.13(2020/11/20)

オプション

戦闘モーションを自在に制御(詳細

 NRP_DynamicMotionMZ.js ver1.10(2020/11/20)

MV用アニメーションをMZで扱う(詳細

 NRP_DynamicAnimationMV2MZ.js ver1.021(2020/11/10)

DynamicAnimationMZをマップ上で起動(詳細

 NRP_DynamicAnimationMapMZ.js ver1.081(2020/11/08)

DynamicMotionをマップ上で起動(詳細

 NRP_DynamicMotionMap.js ver1.04(2020/11/08)

DynamicAnimation&Motionの定義をtxtから読み込む(詳細

 NRP_DynamicReadTxt.js ver1.032(2020/10/21)

MV用アニメーションの軽量化(詳細

 NRP_LightAnimationMZ.js ver1.00(2020/09/10)

 ※プラグイン同士の配置順に注意してください。上記の掲載順にそのまま配置すれば安全です。

更新履歴(history)


2020/11/20(ver1.13)

  • アニメーションの位置計算時、対象の拡大率(scale)を参照するように修正。
  • それに伴い『対象の拡大率を考慮』のプラグインパラメータを追加。
    ※DynamicMotionMZも最新に更新してください。

2020/11/08(ver1.12)

  • 全体ダメージ(damageAll)のテンプレートを追加。
  • テンプレート一覧の表示情報を整理。テンプレートIDが収まるように調整。
    ※各関連プラグインも最新に更新してください。

    ※テンプレートの追加・修正はプラグインを再登録しないと反映されません。
    ただし、再登録すると全ての設定変更が初期化されてしまいます。
    それを避けたい場合、テンプレート定義一覧からのコピペをオススメします。


2020/11/05(ver1.11)

  • 外部プラグインとの連携用に調整。
  • 全体ダメージ表示が作動しない不具合修正。
  • マップ版DynamicAnimationにて、アニメーションの位置が『画面』の場合もスクロールの影響を受けるように修正。
  • 中央(center)、全体(whole)のテンプレートを追加。
    ※各関連プラグインも最新に更新してください。

2020/10/31(ver1.10)

  • Motion側にあった全体ダメージ処理(damageAll)をこちらにも追加。さらに『damageAll = 10』というように数値指定すると、そのタイミングでダメージ処理を行います。

2020/10/29(ver1.09)

  • MZ v1.1.0で追加されたアニメーションの『下揃え』に対応。
  • アニメーションの頭上表示が反映されない不具合修正。

2020/10/17 -> 10/23(ver1.08 -> 1.082)

  • 戦闘中(ifBattle)、マップ中(ifMap)のテンプレートを追加。
  • マップ版にて複数の命令を組み合わせた場合、不要なウェイトが発生する不具合を修正。および処理軽量化。
  • マップ版にて戦闘時に使用すると、セーブに保存できなくなったり、次回の戦闘開始時にエラーになったりする不具合修正。(10/20 ver1.081)
  • lookCourseテンプレートでアクターを対象にした場合、アニメーションの向きが反対になる不具合修正。(noMirror処理が機能していなかったため)(10/20 ver1.082)

2020/10/15(ver1.07)


2020/10/07(ver1.06)


2020/10/05(ver1.05)

  • DynamicAnimationのマップ対応に伴い調整。
  • 外部プラグインからの変更を想定し、クラス構造を調整。
    ※NRP_DynamicMotionMZと合わせて最新版を取得してください。

2020/10/02(ver1.04 -> 1.041)

  • DynamicAnimationのマップ対応に伴い大幅改修。
    ※NRP_DynamicAnimationMV2MZ, NRP_DynamicMotionMZと合わせて最新版を取得してください。
  • 『limitSound=0』および『limitFlash=0』で効果音やフラッシュを消去できるようにした。
  • 並列処理でのwait指定時に想定した動作をしない不具合修正。(ver1.041)

2020/09/22(ver1.03)

  • 実行条件(condition)をリピート項目に変更。
    例:『condition = b.isStateAffected(10)』で睡眠中の対象のみアニメ表示。

2020/09/15(ver1.02 -> 1.021)

  • タイムプログレス(アクティブ)でアニメ終了前にダメージが表示されてしまう不具合修正。
  • 効果音の先読が失敗していた不具合修正。
  • コマンド中のアクターにアニメ表示のプラグインとMVアニメを合わせると、ダメージ処理のタイミングが乱れる不具合修正。(09/17 ver1.021)
    ※NRP_DynamicAnimationMV2MZも同時に更新してください。

2020/09/09(ver1.01 -> 1.013)

  • MVアニメーションに対応。
  • MVアニメの軽量化プラグインを公開。(09/10)
  • 他プラグインとの競合軽減のため微調整。(09/10 ver1.011)
  • 他プラグインとの競合軽減のため微調整。(09/13 ver1.012)
  • タイムプログレス(アクティブ)で動作が途中で止まる不具合修正。(09/14 ver1.013)

2020/09/05(ver1.00 -> 1.001)

  • ツクールMZ対応版を公開!
  • 対象が複数の際、余分なウェイトがかかる不具合修正。(09/07 ver1.001)

使用方法(usage)


 スキル(アイテム)のメモ欄からテンプレートを呼び出すことでアニメーションの動作が変化します。以下は射撃(shot)型のテンプレートを呼び出した例です。
<D-Animation:shot/>

 さらにテンプレートに対して、パラメータの追加・上書が可能です。
<D-Animation:shot>
repeat = 5 // 繰返し回数
</D-Animation>

 最低限の使用法は上記の通りですが、パラメータは非常に多くあります。
 まずは以下の『基本的な使用法』のページから見ると分かりやすいでしょう。
 その後、『テンプレートの解説』や『プラグインパラメータ一覧』を参照していくのがオススメです。
 ※ほとんどは元々、MV用に作ったページのままです。多くはそのまま使えると思いますが、合わない部分などは随時MZ用に修正していく予定です。


テンプレートの解説(template)


射撃系テンプレート

 射撃(shot)、乱射(shotRandom)、全乱射(shotRandomAll)
 投射(arc)、乱投射(arcRandom)、全乱投射(arcRandomAll)

ランダム系テンプレート

 ランダム(random)、全ランダム(randomAll)
 円ランダム(randomCircle)、雨(rain)

範囲系テンプレート

 水平(horizontal)、水平射撃(shotHorizontal)、垂直(vertical)
 貫通(pierce)

円系テンプレート

 円周(circle)、渦(vortex)、発散渦(spreadVortex)、公転(revolve)
 移動渦(moveVortex)、発散移動渦(spreadMoveVortex)、ブレス(breath)
 FVブレス(fv_breath)、収束(converge)、放射(radiate)

特殊系テンプレート

 ビーム(beam)、拡散ビーム(diffusionBeam)、継続(keep)
 ブーメラン(boomerang)、魔法発動(spell)

表示系テンプレート

 進路を向く(lookCourse)、回転(roll)、画面(screen)、頭上(head)
 中央(center)、足元(foot)、全体(whole)

制御系テンプレート

 追従(follow)、自分(self)、ウェイト(wait)、ディレイ(delay)
 ダメージ(damage)、戦闘中(ifBattle)、マップ中(ifMap)

その他情報(other information)



MV版との違い(difference from MV)


 MZではアニメーションの大幅な仕様変更が行われました。それによる当プラグインへの影響をまとめます。
 主にMVからのユーザ向けです。

Effekseerの採用

 MZではEffekseerで作成した3Dエフェクトを表示するようになりました。
 そのため、全体的にアニメーションが何倍も重いです。
 大量生成系のテンプレートをそのまま使用すると、よほどPCスペックが高くない限り処理落ちします。その場合、無理に当プラグインを使うよりも、最初からEffekseer側で編集したほうがよいかもしれません。

 旧来のMV用アニメーションにも対応(詳細)しているため、そちらを使う方法もあります。

終了フレームが不確定に

 Effekseerのエフェクトは終了時間が一定ではありません。それにより、プラグイン側で終了フレームを予測するのが困難となりました。
 そのため、DynamicAnimationMZでは最後に設定されたフラッシュや効果音の設定位置を、終了フレームの代わりに使用している箇所があります。
 具体的にはshot型テンプレートで対象に到達するタイミングなどです。

パラメータの3D化

 3D化により、拡大率が『scaleX』『scaleY』『scaleZ』の3通りに分割されました。
 MV版では『scaleX』で横幅、『scaleY』で縦幅が変更されましたが、挙動が変わります。
 ※Effekseerへパラメータを渡しているだけなので、作者もよく分かりません。
 単純に全体を拡大したい場合は『scale』の値を変更すれば反映されます。

 また、回転率についても『rotationX』『rotationY』『rotationZ』の3通りに別れています。
 こちらも無印の『rotation』を使えば、MVと同じ用に時計回りに回転します。ただし、MVとはやはり挙動が異なるらしく、想定通りに動かない箇所がいくつかありました。
 『ビーム(beam)』および『拡散ビーム(diffusionBeam)』のテンプレートは思ったように動きませんでした。

1フレームの単位

 アニメーションのフレームが、MZでは1/60秒単位に変更されました。これはMVの4倍速となります。

 ただし、DynamicAnimationMZの初期状態では、4/60秒単位で処理を行っています。そのため、MVの記述をそのまま持ってきてもタイミングは保たれます。
 具体的には『frame』『interval』『motionFrame』『wait』『delay』『arrival』『nextDelay』『afterimageInterval』などの値が対象です。

 もし、変更したい場合は、プラグインパラメータにある『計算レート』の値を『1』に変えてください。

無効となる項目

 『透明度(opacity)』『描画レート(rate)』『色調(color)』の項目がそれぞれ無効となります。Effekseer側で変更を受け付けないっぽいです。(たぶん……)
 これらの項目はMVアニメーション向け(実装予定)となります。

競合について


 現在『VisuStella BatttleCore』と併用すると挙動がおかしくなることを確認しています。
 しかしながら、あちらのソースが難読化されていることもあり、対応は恐らく無理ゲーです。

 モーション系はDynamicMotionを使うか、VisuStella系でプラグインを統一するかを選んだほうがよいと思われます。

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

オートタイル(壁・屋根)の上部だけを通行可能に【RPGツクールMZ&MVプラグイン】

2020年10月26日

 オートタイル(壁・屋根)の上部だけを通行可能にします。

 ※ツクール2000にしか見えませんが、歴としたMZの画面です。

 通常ツクールMZやMVではオートタイルの上部だけを通行可能にはできません。過去のツクールシリーズでは容易だった壁の裏を歩くことが困難となってしまいました。
 ※旧作のツクール2000では通行判定『□』に当たる機能です。

 このプラグインはカウンター属性や地形タグなどを条件とすることで、上部だけの移動が可能なオートタイルを実現します。
 対象はA3(建物)の屋根、およびA4(壁)の上部オートタイルとなります。

 ※MZのv1.1.0からオートタイルへ☆判定を設定できるようになりました。
 これは通常、レイヤー2以降にタイルを配置して、下のレイヤーに床を配置しないとくぐることはできません。当プラグインを適用すると、レイヤ−1に配置した☆タイルの下もくぐれるようになります。


 ※完成して気づきましたが、MVではこれより優秀なプラグインがある模様です。
 >とんび様:TF_LayeredMap.js
 MZ向けでは柵の前後を通れる機能抜粋版が公開されたようです。
 >TF_Billboard.js


目次


導入方法(Install)

更新履歴(History)

使用方法(Usage)

メモ欄の指定(Note)

プラグインパラメータ(Plugin Parameter)

対象とする地形タグ(TargetTerrainTag)

裏側から下への移動禁止(DownProhibitionFromBack)

参考(Reference)


導入方法(install)


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

 NRP_PassageAutoTileTop.js ver1.012(2020/10/26)

更新履歴(History)


2020/10/25 -> 10/26(ver1.01 -> 1.012)

  • TF_LayeredMap.jsをまねて、カウンター属性でも切替できるようにした。
  • ↑本来のカウンター属性が生きたままだったので修正。(ver1.011)
  • ↑屋根の場合、上が不完全だったので再度修正。(10/26 ver1.012)

2020/10/24(ver1.00)

  • 公開!

使用方法(Usage)


  • オートタイル(A3の屋根およびA4の壁上部)にカウンター属性を設定します。
  • オートタイルの通行判定を×にします。

「A3の屋根およびA4の壁上部ってどこ?」という方は下の画像を参考に設定してください。

 以上で設定したオートタイルの上部が移動可能となります。

 なお、オートタイルの通行判定を○にした場合は上層扱いとなります。☆判定のように、下をくぐり抜けられるタイルを作成可能です。
 ※MZ v1.1.0〜は普通に☆判定を設定できるので必要ありません。

 また、プラグインパラメータにて、対象とする地形タグを設定する方法もあります。
 ※というか最初はこの方法でしたが、カウンター属性のほうが楽なので上記を推奨します。

メモ欄の指定(Note)


 カウンター属性や地形タグを使いたくない場合、タイルセットのメモ欄に指定する方法も可能です。
 以下は設定例です。

<PassageA3:1,2,5>

 オートタイル(A3)の1,2,5番目の屋根を対象とします。

<PassageA4:1~8,15>

 オートタイル(A4)の1〜8番目および15番目の壁上を対象とします。

 どこがどこに対応するかは前述の画像を参考にしてください。左上から右に向かって番号を振っています。

プラグインパラメータ(Plugin Parameter)


対象とする地形タグ(TargetTerrainTag)

 オートタイルの上部移動を可能とする地形タグの番号を指定します。
 以下のように複数指定も可能です。
 ※例:1~10,15

裏側から下への移動禁止(DownProhibitionFromBack)

 裏側の通過タイルから下方向への移動を禁止します。
 通常の用途ではあまり意味はありませんが、マップの構成によっては役立つかもしれません。

 例えば、以下のような状況で下方向に通過できなくすることができます。


 ただし、下方向に抜けられる隠し通路を作る際など、稀に邪魔になる可能性もあるのでご注意ください。

参考(Reference)


 このプラグインの開発に当たって、以下の記事を参考にさせて頂きました。

 【RPGツクールMV】 タイル仕様 - エフアンダーバー
 https://www.f-sp.com/entry/2016/09/25/131242

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

戦闘メッセージのレイアウトを変更【RPGツクールMZ&MVプラグイン】

2020年10月23日

 戦闘メッセージのレイアウトを変更するプラグインです。
 ウィンドウの配置や大きさなどを変更可能です。


 行動順序の画面表示プラグインとの併用を想定して作ったものですが、それ以外の用途にも使えます。

 主な特徴は以下の通りです。

  • 公式プラグインのSimpleMsgSideViewに対応。
    MZ版のSimpleMsgSideViewMZも大丈夫です。
  • グラデーションに対応。
  • 通常ウィンドウ(枠付き)に切替可能。
  • 背景色や透明度を変更可能。
  • メッセージが長い場合、ウィンドウ幅に合わせて縮小。
  • 反対に文字列長にウィンドウ幅を合わせることも可能。
  • スキルのメモ欄に<NoName>と記述すればスキル名を非表示に。

目次


導入方法

更新履歴

使用例

右空け&グラデーション

ドラクエスタイル

枠付き中央

味方と敵で位置を変更

バトラーの頭上


プラグインパラメータ(配置関連)

X座標(x)

Y座標(y)

前面表示する(showFront)


プラグインパラメータ(サイズ関連)

横幅(width)

横幅を文字数に合わせる(autoWidth)

一行の縦幅(lineHeight)


プラグインパラメータ(メッセージ関連)

フォントサイズ(fontSize)

メッセージの余白(padding)


プラグインパラメータ(背景関連)

通常ウィンドウにする(normalWindow)

背景色(backColor)

背景不透明度(backPaintOpacity)

グラデーション方式(gradientType)

開始グラデーション幅(startGradientSize)

終了グラデーション幅(endGradientSize)


導入方法


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

 NRP_WindowBattleLogLayout.js ver1.03(2020/10/23)

更新履歴


2020/10/23(ver1.03)

  • スキルのメモ欄に<NoName>と記述すればスキル名を非表示に。

2020/08/27(ver1.02 -> 1.021)

  • ツクールMZに対応。
  • フロントビューでエラーになる不具合修正。(ver1.021)

2020/06/17(ver1.01)

  • 英語対応。

2020/05/01(ver1.00)

  • 公開!

使用例


右空け&グラデーション

 右側を空けることによって、行動順序にかぶらないようにしています。さらに横向きグラデーションをかけて切れ目を自然にしました。


  • 横幅:this.windowWidth() - 150
  • 背景不透明度:128
  • グラデーション方式:1(横)
  • 開始グラデーション幅:0
  • 終了グラデーション幅:200

 『this.windowWidth()』は画面全体の横幅です。-150して画面右側を150ピクセル空けてみました。
 背景不透明度は初期値の64だと、透明度が高すぎてグラデーションが分かりにくかったので濃くしました。お好みでどうぞ。
 終了グラデーション幅だけに値を入れることで、右側だけにグラデーションをかけています。

ドラクエスタイル

 画面下にメッセージを表示するドラクエスタイルです。


  • Y座標:446
  • 前面表示する:true
  • 通常ウィンドウにする:true

 前面表示にしないとステータスの下に隠れてしまいます。
 実用性は怪しいですが、その他のレイアウト変更系プラグインと組合わせれば使えるかもしれません。

枠付き中央

 SimpleMsgSideViewとの併用によって、枠付きウィンドウで中央にスキル名を表示します。


  • SimpleMsgSideViewプラグインをON
  • X座標:this.windowWidth() / 2 - this.width / 2
  • Y座標:20
  • 横幅:300
  • 通常ウィンドウにする:true

 X座標の式は中央寄せするためのものです。『this.windowWidth() / 2』で画面幅の半分、『this.width / 2』でウィンドウ幅の半分となります。

 Y座標や横幅、メッセージの余白などはお好みで調整してください。
 なお、枠内にスキル名が収まらない場合は縮小表示されます。

味方と敵で位置を変更

 使用者が味方なら右上、敵なら左上にスキル名を表示します。


  • SimpleMsgSideViewプラグインをON
  • X座標:a._enemy ? 20 : 380
  • Y座標:20
  • 横幅:300
  • 通常ウィンドウにする:true

 『a』で行動主体のスプライト情報を参照できます。
 『a.x』『a.y』でX・Y座標、『a.width』『a.height』で横幅・縦幅が参照できます。
 『a._enemy』は行動主体が敵の場合のみ値が入ります。

 『a._enemy ? 20 : 380』というのは『a._enemy』が有効(=敵)の場合は20、それ以外(=味方)は380がX座標になるという意味です。

バトラーの頭上

 ロマサガシリーズのようにキャラの頭上にスキル名を表示します。


  • SimpleMsgSideViewプラグインをON
  • X座標:a.x - this.width / 2
  • Y座標:a.y - a.height - 80
  • 前面表示する:true
  • 横幅:300
  • 通常ウィンドウにする:true

 ただし、演出中も消えないので邪魔です。もう一工夫しないと実用には耐えないかも……。
 それでも書いておけば、誰かの役に立ったりしませんかね。

プラグインパラメータ(配置関連)


X座標(x)

Y座標(y)

 ウィンドウのX座標とY座標です。(数式可)

前面表示する(showFront)

 ウィンドウを前面表示します。
 下位のプラグインで制御しているウィンドウに対しては、前面表示できない場合があります。(主にNRP_VisualTurn.jsを想定)
 その場合、プラグイン一覧で並び順を調整してください。

プラグインパラメータ(サイズ関連)


横幅(width)

 ウィンドウの横幅です。(数式可)
 初期値の『this.windowWidth()』は、画面横幅に一致します。

 例えば『this.windowWidth() - 200』に変更すると、画面幅より200ピクセル短くなります。もちろん、普通に数値を入れても構いません。

横幅を文字幅に合わせる(autoWidth)

 ウィンドウの横幅を文字数に合わせて自動調整します。
 初期状態ではオフになっています。
 オンにした場合も、↑の『横幅』が最大サイズとなります。

 基本的にSimpleMsgSideViewとの併用を想定しています。

一行の縦幅(lineHeight)

 一行の縦幅です。
 初期値は36です。

プラグインパラメータ(メッセージ関連)


フォントサイズ(fontSize)

 フォントの大きさを指定します。
 初期値は28です。

メッセージの余白(padding)

 ウィンドウとメッセージ間の余白を指定します。
 初期値は18です。

プラグインパラメータ(背景関連)


通常ウィンドウにする(normalWindow)

 通常メッセージと同様の枠付きウィンドウに変更します。
 なお、オンにした場合は以下「背景色〜グラデーション」の項目はいずれも無効となります。

背景色(backColor)

 背景色を指定します。
 16進数でRGB値(参考)を指定してください。初期値の『#000000』は黒となります

背景不透明度(backPaintOpacity)

 背景の不透明度を指定します。
 初期値は64です。

グラデーション方式(gradientType)

 ウィンドウのグラデーション方向を選択できます。
 横と縦が選択可能です。

開始グラデーション幅(startGradientSize)

終了グラデーション幅(endGradientSize)

 開始〜終了側のグラデーション幅です。(数式可)
 いずれも初期値は18です。

 グラデーション方式が『横』の場合、左から右。
 グラデーション方式が『縦』の場合、上から下となります。

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