以下のように画面を歪ませるなどの演出が可能です。
※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目次に戻る