PixiのエフェクトをDynamic系プラグインから呼び出す【RPGツクールMZプラグイン】

2022年05月13日

 DynamicAnimation&Motionプラグインから、Pixiのフィルターエフェクト機能を呼び出します。
 以下のように画面を歪ませるなどの演出が可能です。

 ※PixiとはツクールMV〜MZの標準で使用しているライブラリのことです。
 ※当然ながらDynamicAnimationプラグインが必須です。(Motionは任意)




目次


導入方法(Install)

更新履歴(History)

使用方法(Usage)

パラメータ(Parameters)

filterType

filterTarget

filterSpeed

filterX

filterY

filterParameter

filterId

filterErase


導入方法(install)


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

 NRP_DynamicPixiFilter.js ver1.00(2022/05/13)

 FilterControllerMZ.js(Tsukimi様)の機能を経由しているため、こちらのプラグインも必須となります。
 FilterControllerMZ.js

 以下に解説やサンプルプロジェクトもあります。
 https://forum.tkool.jp/index.php?threads/4306/

更新履歴(History)


2022/05/13(ver1.00)

  • 公開!

使用方法(Usage)


 適用すれば、DynamicAnimationおよびMotionプラグインから簡単に呼び出せるようになります。

 最も扱いやすいエフェクトは『shockwave(衝撃波)』です。
 ……というか、それ以外を戦闘に組み込むのは難しいので、以降の解説もそれを前提にします。
 ※他のエフェクトも今後、使い道が見つかれば検討します。

DynamicAnimation

 例えば、以下でアニメーションと同時に衝撃波のエフェクトが表示されます。
 ※アニメーションが不要なら画像を設定しなければOKです。
 ※標準ではアニメーションの始点にエフェクトを表示します。

<D-Animation>
filterType = shockwave
</D-Animation>


DynamicMotion

 DynamicMotionの場合も同じです。
 ※標準ではモーション実行者側にエフェクトを表示します。
<D-Motion>
filterType = shockwave
</D-Motion>


パラメータ(Parameters)


 パラメータを指定することでエフェクトを調整できます。
 大半のパラメータはFilterControllerMZ.jsに準じますので、詳細はそちらの解説をご確認ください。

 パラメータは以下のように指定します。
 ※//から右は単なる注釈です。
<D-Animation>
filterType = shockwave // エフェクトの種類
filterTarget = Battlers // エフェクト対象
filterX = b.width / 2 // X座標
filterY = b.height / 2 // Y座標
filterParameters = [0,0,-1,30,160,1] // X,Y,半径,振幅,波長,明るさ
filterId = 1 // ID
</D-Animation>

 詳細は下をご覧ください。

filterType

 フィルターエフェクトの種類です。
 基本的には『shockwave』を使っていけばよいと思います。

filterTarget

 エフェクトをかける対象です。
 標準では全画面を対象としますが、その他にも以下が使用できます。

  • Battlers:バトラーのみ
  • Battleback:戦闘背景のみ
  • FullScreenWithWindow:全画面(ウィンドウ含む)

 ※BattlersおよびBattlebackの指定は、当プラグインで追加した機能です。
 ※Battlersを指定した場合は原点が、バトラーの左上になります。座標を変更する場合はご注意ください。

filterSpeed

 エフェクトの速度です。
 shockwaveの場合は衝撃波が広がる速度になります。
 shockwaveの標準値は『0.01』なので、その辺りを基準にしてください。
 うっかり『1』などを入力すると、早すぎて見えなくなります。

 また『0』にした場合はその場に残りますので、後で削除を行う必要があります。

filterX

filterY

 エフェクトを表示するX座標、Y座標です。
 標準ではアニメーションの始点(もしくはモーション実行者)に表示されるため省略しても構いません。

filterParameter

 FilterControllerMZ.jsおよびPixiに渡すパラメータですが、少し上級者向けかもしれません。
 例えば、shockwaveの場合、以下のように6つのパラメータを渡しています。

filterParameters = [0,0,-1,30,160,1]

 ※値はFilterControllerMZの標準値

 ……が、それぞれの値の意味は、FilterControllerMZ.jsの実装と、Pixiのドキュメントを照らし合わせないと分からないと思います。
 https://filters.pixijs.download/main/docs/PIXI.filters.ShockwaveFilter.html

 実際には以下の順番で対応していますので、お好みで調整してください。

  • center(1):X座標補正
  • center(2): Y座標補正
  • radius:最大半径(0以下で無制限)
  • amplitude:振幅(揺らぎの強さ)
  • wavelength:波長(揺らぎの大きさ)
  • brightness:明るさ

 上2つは『filterX』『filterY』を指定すればよいので基本は変更不要です。

 ちなみに未入力の場合も標準値が使用されるため、不要な項目は以下のように空白にしても構いません。
filterParameters = [,,,,,0]


filterId

 フィルターエフェクトを操作するためのIDです。
 IDは数値でも文字列でも構いませんが、文字列の場合は""で囲ってください。

 なお、以下の削除(filterErase)などの操作を行わない場合は不要です。
 ※shockwaveなら速度が0の場合を除いて、時間経過で自動的に消滅します。

filterErase

 指定した『filterId』のエフェクトを削除します。
 例えば、以下のような流れになります。
<D-Animation:wait>
filterId = 1
filterType = godray
</D-Animation>

<D-Animation>
filterErase = 1
</D-Animation>

 また『filterErase = true』にすると、全てのエフェクトを削除します。
 FilterControllerMZ.jsで呼び出した全てのエフェクトが対象になるので、ご注意ください。

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