Q&A・Tips集【TRP_Particle】
競合情報
競合報告は↓よりお願い致します。
エラーは無いがパーティクルが表示されない1(MZ)
TRP_ParticleMZ関連のプラグインをプラグイン管理でできるだけ上に配置してください。
また、他のプラグインとの競合の兼ね合いでどうしてもTRP_ParticleMZ関連を上に配置出来ない場合は以下のパッチを導入して一番上に配置してください。
PreventScene_MessageUpdateOverwrite.js (629.00B)
ダウンロード(※パッチを当てることによりScene_Message.prototype.updateを事前に定義し、配置順による処理漏れを防ぎます。)
パーティクル設定方法
コマンドパラメータのデフォルト設定使用
一部のプラグインコマンドのパラメータは「def」を使用することでデフォルト設定を反映できます。
特に、Z軸値を設定する際には設定名と管理IDが同じでも設定名を省略できませんが、「def」とすることで管理IDと同じ値を指定できます。
例:particle set parId this parId above
def使用:particle set parId this def above
イベントへの注釈での設定
イベントに表示させる場合は注釈を使って設定することができます。
表記方法は通常のプラグイン設定と同じ。
- 先頭のコマンドから複数の注釈コマンドにまたがって設定可能
└ただし、先頭や注釈コマンドの間に他のコマンドが入ると無効 - イベントページが切り替わる際に実行される
└ページが変わっても自動的に解除はされないので他のページの注釈で解除なり設定を - 基本は対象thisでイベント自身に設定しますが、他のイベントやweather対象なども可
- 後述の-EIDでのイベントID補完で管理IDがかぶらないようにすること推奨
### 管理IDがかぶらないようにイベントIDを追記
複数のイベントに同じパーティクルを表示する際にはイベントごとに管理IDを変更する必要がありますが、管理IDの末尾に「-EID」を付与することで「-イベントID」の形に自動で変更することができます。
例:particle set parId-EID this parId
イベントIDが1の場合は設定名「parId」、管理ID「parId-1」で設定されます。
これによって、管理IDが被らずにイベントのコピペで複製して配置できます。
移動ルートでの指定
移動ルートのスクリプトより通常のプラグインコマンドと同じ形でパーティクル操作が可能です。対象は「this」推奨です。
また、「移動ルートでのコマンド無効」設定がONの場合は使用できないので注意。
(この設定は他のプラグインとの競合時にONにして競合回避を試みるための設定です)
パーティクル表示関連
iOS14以上で表示が乱れる(MV版)
RPGツクールMVは描画エンジンであるPIXIのバージョンが古いため、iOS14以降でWebGLモードでの描画に異常が生じる不具合が発生しています。TRP_ParticleもWebGLでの描画を行っているため描画に異常生じるケースがあります。
現在のところ、iOS14以上で正しく動作させるにはご自身でPIXIのバージョンを上げるほか対応が取れない状況ですのでご承知ください。
「RPGツクールMV iOS14」などと検索すると関連する情報が得られると思います。
スクロールするとパーティクルが途絶える
発生間隔(frequency)やスピードが遅いパーティクル設定を対象weatherで表示すると、画面スクロール時にパーティクルが途切れてしまいます。
そういう場合はloopコマンドで画面端のパーティクルを画面反対に移して上下左右にループさせるると良いでしょう。
おおよそパーティクルの表示サイズの半分をloopでの画面外のx,y幅に設定し、同じだけ発生源の高さ・横幅を広めに取れば綺麗にループしますのでスクロールを試しつつ微調整してみてください。
霧・雲が立ち込めるのに時間がかかる
exceedコマンドで発生直後に時間を進めましょう。
「particle exceed parId 10」これで10秒進められます。
このコマンドのみフレーム数ではなく秒数での指定なので注意。
思った重ね順に表示されない!
まずはパラメータの順番が間違っていないか注意しましょう。
set/play/editの最も簡略化した呼び方は「particle set 管理ID 対象」ですが、Z軸値を指定するには「particle set 管理ID 対象 設定名 Z軸値」と、間に設定名が入ります。
管理IDと設定名が同じ場合は設定名を「def」としてデフォルト値で代替可能です。
その上で、Z軸値として「above」「below」「spriteset」あたりを一通り試してみてください。
例:particle set 管理ID this def above」
重い!
- WebGLモードで動いてるか確認
└テストプレイ中にF2キーを押して表示されるFPSメータを確認
(どうしてもCanvasにも対応させたい場合は、色の変化をなくして単色とすることで多少軽くなるかもしれませんが基本的には厳しいと思います) - パーティクル数を抑える
└具体的な数値は対象となるスペック機種で試しつつ調整してください。 - 画面外イベントのパーティクルアップデートを止めるプラグイン設定を有効化する
- maxParticlesで全体の発生能力数を制限
└同梱のTRP_ParticleExOptionを使ってオプション画面からユーザのスペックに合わせて各自調整できるようにすることを推奨します
エディタ関連
作成した設定を削除する
- 「particle edit test this」などで適当な設定名でエディタを呼び出す。
- 「ロード(Ctrl+L)」ピッカーを表示
- 削除する設定を選択してdelete(Macはfn+delete)で削除
- ピッカーを閉じて「保存(Ctrl+S)」を行うことで削除が確定
画面全体に表示するパーティクルを作る
「screen」と入力することで発生方法をrectで範囲を画面全体に設定することができます。
画面全体に表示する設定を作る際にはまずscreenと打って範囲を設定するのが楽です。
エラーメッセージへの対応
ステート付与時にエラーがでる
【症状】
パーティクル設定を記述したステートにかかった際に
「cannot read property 'set〜' of undefined
」といったエラーが出る。
【対応】
ステートのノート欄へのパーティクル設定の記述が間違っている可能性があります。
以下の記事で記述方法を解説してますのでご一読ください。
戦闘シーンでの表示
その他
アツマールにアップロードできない
以下の状況で、RPGツクールMZからゲームアツマールにゲームをアップロードできない不具合を確認しています。
- RPGツクールMZから直接アツマールへアップロード
- dataExフォルダ内の「TrpParticles.json」または「TrpParticleGroups.json」ファイルをテキストエディタで開いた中身が「{}」のみ。
(ファイルサイズが小さすぎると正しくアップロードできないみたいです)
対応方法として「ゲームアツマールのサイト」よりゲームをアップロードしていただくか、または以下の手順でダミーのデータをご用意ください。
- 次のプラグインコマンドをテストプレイで実行
└「TRP_ParticlesMZ」プラグイン
└「set/表示」コマンド
└管理ID:「test」
└_Editモード:「true」 - エディタが表示されるのでそのまま「Ctrl(MacはCmd)+S」で保存して終了
- 同様に次のプラグインコマンドをテストプレイで実行
└「TRP_ParticlesMZ_Group」プラグイン
└「set/表示」コマンド
└管理ID:「test」
└_Editモード:「true」 - エディタが表示されるのでそのまま「Ctrl(MacはCmd)+S」で保存して終了