投稿記事

2020年 05月の記事 (5)

Q&A・Tips集【TRP_Particle】

←MV版マニュアルトップ
←MZ版マニュアルトップ


競合情報

競合報告は↓よりお願い致します。

エラーは無いがパーティクルが表示されない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を使ってオプション画面からユーザのスペックに合わせて各自調整できるようにすることを推奨します


エディタ関連

作成した設定を削除する

  1. 「particle edit test this」などで適当な設定名でエディタを呼び出す。
  2. 「ロード(Ctrl+L)」ピッカーを表示
  3. 削除する設定を選択してdelete(Macはfn+delete)で削除
  4. ピッカーを閉じて「保存(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」で保存して終了

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

all対象・タグによる一括制御【TRP_Particle】

←MV版マニュアルトップ
←MZ版マニュアルトップ


MV版ではV1.09(20年5月16日)より「all」対象・「tag」対象が追加され、各種コマンドの一括操作が可能になりました。

一括操作が可能なのは、set/play/edit以外の管理IDを対象するコマンドです。
(clear、on、off、exceed、update、animate、repeatなど)

「all」全ての管理ID

対象をallとすることで全てのエミッターに対して操作することができます。

例:particle clear all
└全てのエミッターをクリア


「all:対象タイプ」

対象を「all:対象タイプ」とすることで指定する対象タイプのエミッター全てに対して操作することができます。また、「,(カンマ)」つなぎで複数の対象タイプを指定可能です。

例:particle clear all:character,attach
└character、attach対象のエミッタ全てをクリア

対象タイプ一覧

ここで指定する対象タイプは、set/play/editで指定する対象タイプと分類が一部異なっているので注意

  • character : player/follower/event対象全て
  • attach:attach:player/attach:follower/attach:event対象全て
  • displayObject : スクリプトでDisplayObjectを対象としたもの

「tag:タグ名」

対象を「tag:タグ名」とすることで指定するタグがつけられたエミッター全てに対して操作することができます。また、「,(カンマ)」つなぎで複数のタグをして可能です。

例:particle clear tag:タグ1,タグ2
└タグ1、タグ2がつけられたエミッター全てをクリア

タグの設定

エミッターにタグを設定するにはset/play/editコマンド実行時に「tag:タグ名」の形でタグパラメータを付与してください。

例:particle set 管理ID this tag:タグ1
例:particle play 管理ID this def above tag:タグ1

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

スクリプトからの呼び出し<上級者向け>【TRP_Particle】

←MV版マニュアルトップ
←MZ版マニュアルトップ

TRP_Particleの各コマンドはスクリプトから呼び出すことができるほか、PIXI.SpriteやPIXI.Containerといったスクリプトで生成したDisplayObjectをパーティクルの表示対象とすることも可能です。

基本的には$gameScreen._particle.particleコマンド名(パラメータ)の形で呼び出すことができます。

例えばclearコマンドであれば、「$gameScreen._particle.particleClear(管理ID,quitフラグ);」といった感じです。

いくつかのコマンドは上記の引数形とならないので、例外のコマンドから先に紹介していきます。

記事内容

  • set/play/editコマンドの呼び出し
    └DisplayObjectsの対象指定
  • update/animateコマンドの呼び出し
  • その他コマンドの呼び出し

set/play/editコマンドの呼び出し

『particleSet(呼び出し元イベントID,管理ID,対象,設定名,Z軸値)』
└例:$gameScreen._particle.particleSet(0,'parId','player','def','above')
└コマンド:particle set parId player def above

play、editコマンドも同様の引数です。

引数の1つ目に呼び出し元イベントIDが入り、対象がthisの場合はこのイベントIDがセットされます。
イベント対象でない場合は0をセットしてください。

DisplayObjectsの対象指定

スクリプト内で生成したSpriteにパーティクルを表示したい場合は、対象引数にそのままスプライトなりコンテナを渡してください。
パーティクルのコンテナが対象の親階層に貼り付けられ、エミット位置が対象座標に追従します。

例)
var sprite = new Sprite(ImageManager.loadPicture('ピクチャ名')); SceneManager._scene.addChild(sprite); $gameScreen._particle.particleSet(0,'parId',sprite,'def','above');

DisplayObjectsを対象とする場合にはいくつか注意点があります。
spriteは呼び出し直後にaddChildされてparentが存在している必要
parentから切り離された瞬間にclearされる
* parentが切り替わる、またはparent.parentが切り替わると座標追従が無効化


update/animateコマンドの呼び出し

『particleUpdate([管理ID,パラメータ名,設定値1,設定値2,...]』
└例:$gameScreen._particle.particleUpdate(['parId','pos',10,20]);
└コマンド:particle update pos 10 20;

『particleAnimate([管理ID,フレーム数,パラメータ名,設定値1,設定値2,...]』
└例:$gameScreen._particle.particleAnimate(['parId',30,'pos',10,20]);
└コマンド:particle animate 30 pos 10 20;

注意点は、引数を配列内に入れて与えることです。

その他のコマンド

その他のコマンドは素直にサブコマンド以下を引数として与えてください。

『particleClear(管理ID,中断フラグ)』
└例:$gameScreen._particle.particleClear('parId');
└コマンド:particle clear parId;

『particleExceed(管理ID,秒数)』
└例:$gameScreen._particle.particleExceed('parId',0.5);
└コマンド:particle exceed parId 0.5;

などなど。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

TRP_Particleレビューキャンペーン実施中!

レビューツイートで拡張パッチプレゼント中!

TwitterにてTRP_Particleのレビューキャンペーンを行ってます!

参加プレゼントとしてパーティクル再生速度の変更・タイムラプス再生を行える拡張パッチを配布してますので、購入済みの方はぜひご参加を!!

https://twitter.com/thiropGames/status/1258705582304813056

セール情報

先月より先行版の販売をしてましたパーティクルプラグイン「TRP_Particle」ですが、先日大幅な機能追加アップデートを行い、改めて完成版となりました!

5月末までセールも行ってますので購入を検討中の方はこの機会にぜひ!
https://thirop.booth.pm/items/1940649
https://twitter.com/thiropGames/status/1258703280248549377

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

パッチノート【TRP_Particle】

←マニュアルトップへ戻る

最新版のデータはBoothの購入履歴よりダウンロード可能です。
不具合の可能性もあるため必ずプロジェクトをバックアップした上でアップデートをしてください。


V1.12(20年6月29日)

  • メニュー呼び出し時にマップ上のパーティクル画像が背景画像に残るよう修正

V1.10(20年5月20日)

  • Windowsで@キーが使えない不具合修正
  • テンキー入力に対応
  • 移動ルートのスクリプトでのコマンド実行に対応(プラグインコマンドと同じ形式)
  • 任意のシーンでの表示に対応
    └対象としてタイトル:Scene_TItle、メニュー:Scene_Menu、ショップ:Scene_Shop
     ゲームオーバー:Scene_Gameoverなど
    └editコマンドでの編集は付加。事前にマップ上などで編集してください
  • 上級者向けプラグイン設定「シーン対象登録」を追加
    └『-(ハイフン)』つなぎで設定するとグループ化されて自然に遷移
    └一度設定を開いてデフォルト値が登録されたらOKで設定保存を
    └デフォルト値は["Scene_Menu-Scene_Save-Scene_Item-Scene_Equip-Scene_Actor-Scene_Skill-Scene_Status","Scene_Title","Scene_Load","Scene_Options","Scene_Shop","Scene_Gameover"]
  • プラグイン設定のカテゴリー整理

V1.09(20年5月16日)

  • チートシートの更新
  • ステート付加時のパーティクル表示機能
  • 戦闘時の対象attach:party:パーティー順、attach:enemy:敵グループ順を追加
    └attach:this、スキルではattach:targetも有効
  • イベントページの注釈でパーティクル設定(コマンドと同じ形式)
  • ID末尾に「-EID」で実行中のイベントIDと置き換え(イベントコピペ可能に)
    └例:particle set smoke_c-EID this smoke_c。実際の管理IDはsmoke_c-イベントIDに置き換えられます。
  • 天界マップ、戦闘ステートのプリセットデータ追加
  • 画面外イベントのエミッター再生制御機能(設定「キャラ対象の画面外幅」)
  • set/play/editコマンドで、パラメータ末尾に「tag:タグ名」でタグの付加
  • set/play/edit以外のID指定コマンドの一括操作。詳しくはチートシート参照
  • 対象:battleWeatherとした際のエラーを修正
  • 設定「戦闘終了時に戦闘関連クリア」を削除し、「戦闘終了時に戦闘Screen対象クリア」と「戦闘終了時に戦闘キャラ対象クリア」を追加
  • 競合回避策として設定「ステート表示無効」「スキル表示無効」を追加

V1.08(20年5月8日)

  • MadeWithMVとの競合修正
    └TRP_ParticleはMadeWithMVより下に配置すること

V1.06~V1.07(20年5月7日)

  • attach対象でキャラがいない場合の不具合修正
  • 微細な内部処理の変更

V1.05(20年5月6日)

アニメーションピッカーの追加

エディタにアニメーション画像を選択するピッカーの追加。
アニメーション画像はピッカーを閉じた際に使用するフレームのみを切り抜いた画像をparticlesフォルダ内に「_ANIM_画像名_フレーム番号.png」の名前で自動的に保存されます。

TRP_ParticleList.jsの必須化

プラグインファイルTRP_ParticleList.jsの導入が任意から必須となりました。
このファイルの役割は以下のとおりです

  • プラグインヘルプで保存したデータ一覧の確認
  • デプロイメント時に使用しているパーティクル画像が除かれないよう登録
  • トリムされたアニメーション画像の情報保存

TRP_ParticleEditorプラグイン設定の変更

以下の設定項目が削除されました。

  • 画像名リスト:自動でparticlesフォルダ内の画像を走査するよう変更
  • ヘルプ作成:TRP_ParticleList.jsの導入が必須となったため変更

最大数制限の厳密化

maxコマンドでのパーティクル発生最大数の能力制限をより厳密化しました。
再生停止中のパーティクル設定も発生キャラパシティが計上されるため、しばらくの間再生されることのない設定はclearコマンドで消去することを推奨します。(寿命がある設定の場合で1回のみの再生の場合はplayコマンドの使用を)

最大数制限オプション用パッチ「TRP_ParticleExOption」の追加

追加パッチプラグインファイルTRP_ParticleExOption.jsをmaterialsフォルダに追加しました。
プラグイン設定で登録しておいた制限レベルをゲーム中のオプションから選択できるようになります。

angleTypeパラメータをangleに変更

imageOptionのangleTypeパラメータをangleに変更しました。
angleTypeを1にするとランダムな角度となっていましたが、V1.05からangleを-1にすることで同様の効果となります。(既存データは自動的に変換されます。)

また、angleを1以上とすると画像を任意の角度で回転させることができます。
進行方向に影響を与えず角度を変更したい場合に設定してください。

敵のパーティクル設定の対象名変更

敵のノート欄に記述するパーティクル設定において、対象パラメータは「enemy:1」から「this」に統一されました。

すでにこの機能を使用している場合は「this」への変更をお願いします。
例:修正前)particle:set parID1 enemy:1
例:修正後)particle:set parID1 this

スキルでの表示対応

スキル使用時にパーティクルを表示できるになりました。
詳しくは戦闘中シーンでの表示【TRP_Particle】を御覧ください。

マップのループへの対応

マップの縦・横ループ設定時にループの境界で正しくパーティクルが表示されない仕様を修正しました。

画像の追加・修正

パーティクル画像の追加・修正を行いました。
一部の画像は名前を変更したり、画像自体を修正しております。
詳しくはVer1.05でのパーティクル画像修正内容【TRP_Particle】にまとめてますのでご確認ください。

変更前の画像はparticles/_oldフォルダ内に退避してますので、必要に応じて画像を差し戻しての使用をお願いします。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

記事を検索