投稿記事

2021年 04月の記事 (7)

「TRP_ParticleMZ」のRPGツクールMVでの動作について

←TRP_ParticleMZマニュアル

RPGツクールMZ向けパーティクルプラグイン「TRP_ParticleMZ」はRPGツクールMV向けTRP_ParticleをベースとしてツクールMZで動くように移植し、さらにサブエミッターやグループ機能といった新機能を搭載したものです。


さて、「TRP_ParticleMZがRPGツクールMVで動くか」についてですが、新規プロジェクトにおいて簡素な追加パッチを2つあてることで動作が確認できました。

自分がまだMVでゲームを作って最中なので、自分用に動作を確認するだけの予定だったのですが、思いのほかパッチプラグインがシンプルに出来たので公開しても良いかなと考え、導入方法の解説と一緒に記事にまとめることにしました。

導入にあたっていくつか注意点がありますので、よく読んでから試してみてください。

パッチファイルの扱いについて

拡張パッチについてはTRP_ParticleMZの使用条件対象外です。
また、TRP_ParticleMZの今後のアップデートなどへの対応も保証いたしませんのでご了承ください。

商用利用:○
改変:○
再配布:改変したものも含めて不可
これらのプラグインを利用することによって生じる損害について、プラグイン製作者は一切の責任を負いません。各自の責任と判断の上でご利用下さい。


TRP_Particleからの移行について

基本のAPI(プラグインコマンドのパラメータ順など)は同じであるため、他にプラグインを導入していない状態であればそのまま引き継げるかと思います。

ただし、同じ動作でも内部で行っている処理は細々と修正が加わっているため、他のプラグインとの競合状態によっては正しく動作しない場合もあると思います。

あくまでおまけの拡張パッチとして、あまり期待せずにお試しくださいませ。

不具合については一応受け付けるだけは受け付けております。
不具合情報をいただける分にはこちらもありがたいですので、対応できるかはともかく何か有りましたら↓へどうぞ
プラグインの不具合・競合報告

また、RPGツクールMVはPIXIのバージョンが古いため、基本的にMZよりも描画能力が低めです。MZでは問題なく動作してもMVでは重く感じる、ということもあるかもしれませんのでご注意を。


導入方法

  • ツクールMVプロジェクトのバックアップをとる
  • TRP_ParticleMZ関連のプラグイン(ver1.01以降)をプロジェクトに導入
  • 「TRP_ParticleMZ_ExMVPatchA.js」をプラグイン管理画面でなるべく上に配置
  • 「TRP_ParticleMZ_ExMVPatchB.js」をプラグイン管理画面でなるべく下に配置
  • index.htmlなどがあるメインフォルダに「dataEx」という名前でフォルダを作成する
  • すでに編集した設定を引き継ぐ場合は「data/TrpParticles.json」を「dataEx/TrpParticles.json」にコピペ
  • 新規マップにイベントを作り、プラグインコマンド「particle test」を実行
    └最後に花火が表示されれば新機能のグループ機能、サブエミッターが機能してます
  • プラグインコマンド「particle group edit test this」で新機能のグループエディタ機能を起動をテストできます。

パッチファイル

TRP_ParticleMZはRPGツクールMZ向けに制作したプラグインであり、本パッチを当ててのRPGツクールMVでの動作は十分なテストが出来ておりません。

何が起きるか分かりませんので必ずプロジェクトのバックアップをお取りの上でお試しください!

TRP_ParticleMZ_ExMVPatch.zip (3.65kB)

ダウンロード

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

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

MZ版の新機能【TRP_ParticleMZ】

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

MZ版の追加機能【TRP_ParticleMZ】

  • MZ形式コマンドの追加
  • Listプラグインからコマンド
  • Z値にbackを追加
  • グループエディタ
  • サブエミッター
  • 発生方法burstにパラメータ追加
  • 秘匿属性
  • エディタの操作性改善

MZ形式コマンドの追加

MZ形式のプラグインコマンドに対応しました。

パラメータの順番を覚えなくて良いので使い始めに便利ですが、新機能のグループエディタなどを使うにはMV形式のコマンド入力を使用する必要があります。

プラグインの操作に慣れてきたらMV形式のコマンド入力にも挑戦してみることをおすすめします。


Listプラグインからコマンド

編集したパーティクル設定は自動生成されるTRP_ParticleMZ_List.jsプラグインのコマンドから簡単に呼び出せるようになりました。同様にプリセットに含まれる設定はTRP_ParticleMZ_Preset.jsプラグインのコマンドから選ぶことができます。


Z値にbackを追加

set/playコマンドで指定するZ値として、マップ上において有効な値「back」が追加されました。
タイルの後ろ、かつ背景の手前に表示させることができます。


グループエディタ

複数のコマンドをまとめて実行する機能です。

使い方は以下の記事で解説しています。
グループ機能【TRP_ParticleMZ】


サブエミッター

1つ1つのパーティクルから他の設定のパーティクルを発生させる機能です。

使い方は以下の記事で解説しています。
サブエミッター機能【TRP_ParticleMZ】


発生方法burstにパラメータ追加

放射状に射出するburstにパラメータが追加され、幅広い幾何学的なエフェクトを作れるようになりました。特に、規則性をもたせつつ射出に時間差を与えるdtパラメータにより、複雑な動きのエフェクトが作成可能です。
▷各種パラメータ説明の動画


秘匿属性

設定名の終わりを「/h」とすることで管理用の秘匿(hidden)属性が追記されます。
例)particle set par1/h this def
秘匿属性の設定はカテゴリが分けて表示されるようになるため、一度しか使わない予定の設定名につけておくと管理しやすくなります。


エディタの操作性改善

  • 「ctrl(Macはcmd)+G」でエディタ全体を半透明にして演出全体を確認しやすくできるようになりました。

*「読み込み」「プリセット」ボタンで一覧を表示した際に、「ctrl(Macは
cmd)+Fキー
」を押すことで「set向け設定のみ」「play向け設定のみ」「フィルター無し」を切り替えられるようになりました。(エミッター寿命が0以上のものがplay向け、それ以外はset向け)

  • 「読み込み」によるユーザー編集設定の一覧のカテゴリ分けが細分化され、管理しやすくなりました。

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

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

グループ機能【TRP_ParticleMZ】

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

TRP_ParticleMZでは新たにグループ機能が追加されました。

グループ機能は「複数のプラグインコマンドを1まとまりに実行」することができ

・複数のパーティクルを合わせた演出
・時間差のある演出
・update/animateコマンドのパラメータ調整

を画面上で確認しながら設定するのに便利です。

なお、グループの編集は中上級者向けとなっており、MV形式のプラグインコマンド入力が必須となるため、MV形式コマンドでのパーティクル操作に慣れてから試してみることをおすすめします。


導入方法

「TRP_ParticleMZ_Group.js」「TRP_ParticleMZ_GroupEditor.js」プラグインを対象プロジェクトに導入してください。(TRP_ParticleMZ.js、TRP_ParticleMZ_Editorよりも下に配置)


グループの編集開始

プラグインコマンドより「TRP_ParticleMZ_Group.js」→「set」コマンドを選択します。

通常のパーティクル設定のset/playコマンドと同じ要領で「管理ID」「対象」「設定名」を設定します。
(※MV形式では「particle group set 管理ID 対象 設定名」)

  • 管理ID:他と被らないもの。グループ用の管理IDなので、通常のパーティクル設定の管理IDとは被ってもOK
  • 対象:パーティクルのset/playコマンドで指定するものと同じ。
  • 設定名:グループの設定名。省略、またはdefとすると管理IDと同じ。

また、EditモードパラメータをON/trueにするとテストプレイ時に、編集画面が表示されます。

今回は試しにプリセット「闇」マップ中のモンスター登場演出をグループ機能で再現してみます。

グループのsetコマンドで以下のパラメータで実行してみましょう。

管理ID:monster(任意)
対象:this
_Editモード:true
(※MV形式では「particle group edit monster this」)


グループの編集画面

グループの編集画面の基本操作は、通常のパーティクル設定の編集画面と同様で、
マウス・キーボードを使い各行のパラメータを設定していきます。

一番上の「repeat」パラメータはグループの繰り返し再生に関するパラメータです。

0以上とするとコマンドを全て実行し終わってから指定フレーム待機した後に繰り返します。

デフォルトの-1では繰り返さずに一回だけ再生されます。ただし、編集中は-1としても即座に繰り返されてしまうので、60など適当な値を入れて編集用に再生間隔を調整しておくと良いでしょう。


次に、下の「command1」パラメータにはじめに実行するプラグインコマンドを入力していきます。

まずは設定名「monster_cp」のパーティクル設定を再生します。

play monster_cp target」とコマンドを入力してEnterキーを押すと反映されます。


「target」対象について

注意点として、play/setコマンドでパーティクル設定を再生する際には対象としてグループ内専用の「target」の使用を推奨します。

targetとすることで、グループ呼び出し時コマンドで対象パラメータを「player」とすると内部で再生されるエミッターの対象をプレイヤーに、「event:1」とするとイベントID1のイベントに…といった具合にグループ呼び出し時に柔軟に変更させることができます。

コマンド行の追加

続けて30フレームだけウェイトを挟んでから、設定名「monster_cp2」を再生させていきます。

まずは、新しいコマンド行を追加してみましょう。Altキー(Macの場合はOptキー)を押しながら↓を押すことで新しいコマンド行を下に追加することができます。(↑キーで上に追加)


waitコマンド

ウェイトを挟むのに、グループ中でのみ使用可能な「wait」コマンドを使用します。

ここでは「wait 30」を入力し、30フレームだけ待機させます。

再度「alt(opt)+↓」を押してコマンド行を追加し、今度は「play particle target」としてEnterキーを押してみましょう。

そのまま管理IDにmonster_cp2を入力しても良いのですが、グループエディタには設定名の読み込み機能が備わってるのでそれを使って設定名を変更してみます。

shift+ctrl(opt)+Pキー」を押すとプリセットの一覧が表示されます。(Pの代わりにLキーで自分で登録した設定名の一覧を呼び出し)

ここでは一覧から「monster_cp2」を選択。
escキーで設定名ピッカーを終了すると、「play particle target」としていたコマンドが「play monster_cp2 target」と置き換わっており、設定名(ここでは管理ID)が自動で変更されています。

このように、グループエディタでは実際の演出を見ながら設定名や各種パラメータの変更が可能です。

イベントコマンドでは調整しずらいanimateコマンドなどで動きをつけても面白い演出が出来上がるかも。


パーティクル設定の編集

グループエディタでは、内部で再生するパーティクル設定の編集もそのまま行うことができます。

編集したいplay/setコマンドの行にカーソルを合わせて「alt(opt)+Eキー」を押すとエディタを呼び出せます。


設定の編集が終わったら、必要に応じて保存してエディタを終わらせると再びグループの編集画面に戻ってきます。

グループの編集が全て終わったらctrl(Macはcmd)+Sキーでグループ設定の保存を忘れず行いましょう。


補足)グループ内で呼び出す管理IDについて

同じグループ設定を複数同時に呼び出すために、グループ内で再生しているパーティクル設定の管理IDは独自の接尾辞が付記されます。

例えば「particle play particle target」のように管理ID「particle」をグループID「group1」内で呼び出すと、実際には「particle/GROUP:group1」の管理IDでパーティクルが再生されます。

もしグループ内で再生しているパーティクル設定をグループ外から操作したい場合にはこの点に注意してください。


また、グループはあくまでコマンドを実行しているだけで、たとえばgroup clearコマンドで再生しているグループ設定を消去しても、グループ内部で再生しているパーティクル設定は停止しないので注意しましょう。


グループ内で再生したパーティクル設定を外部からまとめて消去(clear)したい場合には、グループ内で自動的に付与されるタグを使うと便利です。

例えばグループの管理ID「test」内で再生されるパーティクル設定にはタグ「group:test」がつき、「particle clear tag:group:test」のようにタグを指定してまとめて消去することが可能です。

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

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

導入とパーティクル表示【TRP_ParticleMZ】

TRP_ParticleMZはRPGツクールMZ向けのパーティクルを再生・編集するプラグインです。

このプラグインはRPGツクールMV向けのTRP_ParticleをベースとしてMZ用のプラグインコマンドへの対応の他、グループエディタやサブエミッターといった新規機能が追加されています。

ここではプラグインの導入から使い始め方までを順を追って説明していきます。

少し長くなりますが、スクリーンショットも多めに用意してますのでパラメータの打ち間違いなどがないように確認しながら進めてみてください!


プラグインの導入

通常のプラグインと同様に、RPGツクールMZにプラグインを導入しましょう。

解凍したフォルダの中のmaterials→pluginsフォルダ内のファイル全てをプロジェクトフォルダ内のjs→pluginsフォルダ内にコピペします。

ツクールMZを立ち上げてプラグイン管理から以下の画像のようにプラグインを順に登録すればOKです。少し多いですが1つずつインポートしていきましょう(順番によってはエラーが出るので注意!)



画像ファイルのインポート

パーティクルとして表示する画像をプロジェクトにインポートします。
materialsフォルダ内のparticlesフォルダをコピーし、プロジェクトフォルダのimgフォルダ内にペーストしてください。

(※この他に、自分で作成したパーティクル設定データTrpParticles.jsonはdataExフォルダに保存されますが、このフォルダはテストプレイ時に自動で生成されます)

これでプラグインの準備は整いました。
さっそくパーティクルを表示してみましょう!


1番簡単なエミッター再生方法

パーティクルを表示させるには、パーティクル(粒)を生み出すエミッター(射出器)を生成する必要があります。

エミッターはプリセットデータや自分で編集したパーティクル設定のルールにしたがってパーティクルを射出します。

エミッターを生成する方法はいくつかありますが、ここでは簡単な方法でプリセットのパーティクル設定を再生してみます。

プリセットのリストから選択して再生

プラグインコマンドから「TRP_ParticleMZ_Preset」を選び、コマンドから好みのカテゴリを選びます。

「set/表示のカテゴリ」と「play/1回再生」のカテゴリに分かれますが、setは永続的に再生される設定であり、playは寿命があり1度だけ再生されるアニメーションのような設定のための再生コマンドです。

ここでは実行しているイベントからパーティクルを発生させるので、キャラクターを対象とした「set/表示 > キャラ対象」カテゴリを選んでみましょう。

次に、「《データ名》:《呼び出す設定を選択》」のパラメータをダブルクリックするとプルダウンでプリセットの該当カテゴリの設定一覧がプルダウンで表示されるので適当に選んでみましょう。

ここでは「fire_c」を選択します。
(選んだ設定名はのちの説明で使うので覚えておきましょう)

OKを押してイベント編集を終えてテストプレイで確認してみましょう。

イベントを調べると選んだ設定のパーティクルが再生されます!

(※自分で作成した設定データは同様にTRP_ParticleList.jsプラグインから設定名を選択して再生することができます。)

パーティクルの停止

play系のコマンドは再生が終わればそれきりですが、set系のコマンドを手動で止めるには「offコマンド」、または「clearコマンド」を使います。

offコマンドは一時停止をするものでonコマンドで再開が可能です。
一方、clearコマンドはエミッターの完全な消去を行います。

先程のように設定名を選んで再生するにはプリセットプラグイン「TRP_ParticleMZ_Preset」のコマンドを使用しましたが、基本的なコマンド操作は本体プラグインである「TRP_ParticleMZ」のコマンドを使用します。

プラグインコマンドから「TRP_ParticleMZ」を選び、コマンド「clear/クリア」を呼び出します。

対象の管理IDに、先程選んで再生したパーティクル設定の設定名を指定します。
(※本来は管理IDと設定名は別々のパラメータなのですが、詳しい説明は後述します。)

再生コマンドとの間にウェイトを挟み、再生後にしばらくしてから再生停止するのを確認してみましょう。

サンプルプロジェクトの活用

このように、プラグインコマンドを活用してパーティクルの再生/停止をはじめいろんな操作を行うことができます。

まずはサンプルプロジェクトを一通り確認してどんな演出ができるのか確認し、気になった演出はイベント内容を覗いてどのように操作しているのか確かめてみると良いでしょう。

そのままイベントをコピペしてご自身のプロジェクトに取り込んでももちろんOKです。


さらに使いこなすには……

TRP_ParticleMZは多様な機能を備えていますが、全ての機能を使うには「MV形式のプラグインコマンド」も覚える必要があります。

MV形式の入力方法を覚えれば、以下の機能が使えるようになります
・グループエディタの使用(サブエミッターの活用にはほぼ必須)
・戦闘中のスキルやステートでの表示
・イベントの注釈を利用した設定

また、「PluginCommandMVInScriptArea.js」プラグインを導入することで、スクリプトコマンドを使ってMV形式のプラグインコマンドを実行することも可能です。


(↑スクリプトコマンドにMV形式のプラグインコマンドを記述。慣れれば行数が抑えられてイベントコマンドもスッキリ見えます。)

パーティクルプラグインを使っていくにあたって、MV形式のコマンド入力に慣れていくことを強くおすすめします。


以下は、MV版プラグインの導入解説の記事の内容と同じものです。

MV版から使ってた方へ

MV版から使ってた方は読み飛ばしてOKです。
MV版から追加された機能をまとめた以下の記事をざっと確認すると良いでしょう。

とりあえずMZ形式のコマンドを試したい方へ

また、MV形式のコマンドを覚えるのは後回しにしたいという方も、「管理IDについて」と「設定名について」の項目までは読んでおくことをおすすめします。

管理IDと設定名の違いはこのプラグインを扱うにあたって一番重要な部分といって良いでしょう。

この違いが別ればMZ形式のプラグインコマンドのヘルプテキストを見ながらでもある程度操作ができるはずです。

自分でパーティクル設定を作成・編集したい場合は、その後にこちらの記事を読み進めてみてください。
基本の使い方②〜エディタ編【TRP_Particle】



以下、MV版マニュアルの導入記事から
(プラグインコマンドのかわりに、スクリプトコマンドに入力してください)

パーティクルの再生

適当なイベントを作成してイベントコマンドのプラグインコマンドで、次のコマンドを実行してみましょう。

「particle play fireworks_c this」


(メモ:「このイベント(this)にfireworks_cというIDでパーティクル(particle)を再生(play)」という意味になります。)

実行してみると・・・?


イベントを実行するたびに花火っぽいパーティクルエフェクトが再生されました!


表示位置の調整

さて、どうせなら画面上の夜空に表示させたいところです。
パーティクルの発生位置を調整してみましょう。

先程のプラグインコマンドの直後に次のコマンドを打ち込んでみましょう。

「particle update fireworks_c pos 0 -350」


(メモ:「fireworks_cというIDのパーティクルのパラメータを更新(update)。位置(pos)をx=0、y=-350に変更」という意味になります。)

もう1度再生すると、イベントの頭上(350ピクセル上)に表示されました!
このように、updateコマンドを使って様々なパラメータを変更させることができます。

(メモ:細かな設定は設定データの編集で行いますが、位置の調整などはイベントごとにupdateコマンドで細かく調整することが多いです)

管理IDについて

さて、画面の左右にも同じ花火を打ち上げようと思います。

先程のコマンドをコピペでしたに2回複製し、updateコマンドでの位置調整でそれぞれxを-300と+300に変更します

パーティクルが1つしか再生されてません!


ここで、一度再生コマンド(playやset)のパラメータについて説明します。
playコマンドのパラメータは↓のような順番になっています。

「particle play 内部管理ID 対象 設定データ名 Z軸値」

「particle play fireworks_c this」というコマンドはでそれぞれのパラメータは↓

  • 内部管理ID:fireworks_c
  • 対象:this(このイベント)
  • 設定データ名:省略
  • Z軸値:省略

初めのうちは、内部管理IDと設定データ名がどう違うのか少し戸惑うかもしれません。

内部管理IDは自由な名前をつけることができますが、表示対象ごとに異なる名前をつけなければなりません。

今回はfireworks_cというIDを設定しており、パラメータを変更するupdateコマンドでもfireworks_cというIDに対して位置(pos)の変更を行っております。


このように、このパーティクル発生源(エミッターと言います)に対する操作はすべて、fireworks_cというIDを指定して命令することになります。

(メモ:パーティクル(particle)とは日本語で微粒子=小さい粒のことを指します。そして、このパーティクルを発生させる発生源をエミッター(emitter)と呼びます。同じ対象であっても、異なる種類のパーティクルを発生させるには複数のエミッターが設定されて、エミッターごとにIDを名付ける必要があります。また、同じ対象に同じ種類のエミッターを複数設定することもでき、その場合もIDを変える必要があります。)


設定名について

さて、次に設定名についてですが、これはパーティクルの発生の仕方や動き方の設定データの名前を指します。

ここでもう1度設定名を見直すと、
「particle play fireworks_c this」

  • 内部管理ID:fireworks_c
  • 対象:this(このイベント)
  • 設定データ名:省略
  • Z軸値:省略

設定名が省略されてますね!

どういうことかというと、設定データ名を省略すると内部管理IDがそのまま設定名として使用されます。(というより、内部管理IDを設定名と同じにすることで設定データ名を省略できます。)

なので、「particle play fireworks_c this fireworks_c」と同じコマンドということにまります。

ちなみに設定名fireworks_cは予め収録されているプリセットデータのうちの1つです。
プリセットに登録されている設定はプラグインヘルプから確認できます。
(プリセットデータはTRP_ParticlePreset、自作したデータはTRP_ParticleListから確認できます)




さて、先程の花火を複数表示するにはどこを修正すればよいか気づいでしょうか?

  • 同じIDを使ってはいけない
  • 設定名と違うIDを使うときは設定名(fireworks_c)は省略できない

という2点を抑えてプラグインコマンドをそれぞれ修正しましょう。
今回はfireworks_c_2、fireworks_c_3というIDに変更してみます。
(updateコマンドでの対象IDの変更も忘れずに!)


テストプレイで実行すると・・・↓

3つ並んで表示できました!めでたし!



ずっと表示するタイプのパーティクル

さて、先程の花火のパーティクルは1度再生するとそれっきりでした。

パーティクル設定にはこのように寿命(lifetime)が終わるとパーティクルの発生を終えて止まるものと、寿命がなくてずっと表示されるタイプのものがあります。

マップ右側にイベントを新しく作り、このイベントに吹き出し花火のパーティクルを表示させてみましょう!

このイベントを自動実行にしてパーティクル表示コマンドを打ち込んでも良いのですが、今回は解説のために先程のイベントの一番下に新しいコマンドを付け足します。

まずはそのコマンドを見てみましょう。

「particle set fireworks_dragon_c1 event:3」

今ままでの再生コマンドと2つ違う部分があります。


まず1つめ、サブコマンドのplayがsetに変わってます。
基本的には寿命があって1度表示させるだけの場合はplayそれ以外の場合はsetと使い分けて下さい。

今回はずっと表示されるタイプなのでsetコマンドを使っています。


そして、もう1つの異なる点は、対象をthisではなくevent:3と指定していることです。

実行しているイベント以外のイベントにパーティクルを表示するにはこのように、「event:イベントID」の形で指定することができます。
(メモ:この他にもpleyerでプレイヤーに、region:リージョンIDで指定のリージョンタイルから表示、walk:player:1でプレイヤーがリージョンID1を歩いたときに表示、などなど様々な対象を設定できます。詳しくは
再生対象の種類とZ軸【パーティクルプラグイン】](https://ci-en.net/creator/2170/article/230025)を読んでみてください)

さて、実行してみますと・・・

終わり無く延々とパーティクルが吹き出し続けてますね!

(メモ:一時的に止めるにはparticle offコマンド。再開するにはparitcle onコマンド。完全に止めて削除するにはparticle clearコマンドを使いましょう)


ついでに魔法陣の中央から吹き出るように、updateコマンドで位置(pos)を調整してみましょう。


バッチリです!

画面全体に表示するパーティクル

さて、続けてもう1つパーティクルをサクッと表示させてみます。
今度は特定のイベントに対してではなく、画面固定で表示するタイプのものです。

中央のイベントに次のコマンドを追加してください。
(常時表示するタイプなのでsetコマンドを使います)

「particle set light_leak_s screen」

  • ID:light_leak_s
  • 対象:screen
  • 設定名:省略(IDと同じlight_leak2)


画面全体に淡い光の演出が表示されました!

表示対象として今回はscreen(スクリーン)を使いました。これは画面に固定表示させて表示する対象設定です。

screenをweather<天候>に変えると発生したパーティクルがマップスクロールに連動して移動するようになります。
(メモ:他にも特定のリージョンのタイル上に表示するregionや、歩行時に表示するwalkなど様々な対象があります。)



パーティクル再生方法について慣れてきたでしょうか?

次は、いよいよエディタを使って設定データを自作してみましょう!

基本の使い方②〜エディタ編【TRP_Particle】


演出を仕上げる(おまけ)

今回作った花火会場にもう少しだけ演出を付け加えて見ましょう!
(早く自作パーティクル設定を作りたい方はスキップして↑のエディタ編を読んで大丈夫です!)

打ち上げ花火をリピートさせる

寿命が設定されているパーティクルは再生後に再度コマンドで命令しないと繰り返し再生されませんが、repeatコマンドを使うことで自動で繰り返すことができます。

ID:fireworks_cをplayコマンドで再生後に↓のrepeatコマンドを付け加えてみましょう。

「particle repeat fireworks_c 120」

最後の120は待機フレーム数を指します。
再生終了後に120フレーム(2秒)の間隔をあけて自動で再生されるよになります!



続けて夜っぽさを出すために色調変更コマンドで全体を少し暗くしてみましょう。

花火の見え具合をチェックしてみると・・・


よく見ると全体が暗くなってるのに引きづられて花火の見え方も暗くなってます。
つまり、花火のパーティクルも色調変更の影響を受けてしまってます。

パーティクルの重なり順を変更

さて、打ち上げ花火のパーティクル表示コマンドをおさらいしましょう。

「particle play fireworks_c this」

  • 内部管理ID:fireworks_c
  • 対象:this(このイベント)
  • 設定データ名:省略
  • Z軸値:省略

今まで説明を省いてきましたが、一番最後の省略されたZ軸値というのが画面上の重なり順を設定するパラメータとなります。

(キャラクターが対象の場合には)省略された状態だとZ軸値にはaboveという値が適用されます。

aboveは「〜〜より上」という意味の単語であり、対象の上に重ねて表示させる設定です。

逆にキャラクターの下(裏側)に表示したいときは「〜〜より下」という意味のbelowという値を設定します。


さて、キャラクターに表示させる場合は基本的にはこのaboveとbelowを使い分けるのですが、今回は色調変更の影響を受けないようにaboveよりさらに上側(手前側)に表示しなければならず、spritesetという値を設定します。

(メモ:spriteset<スプライトセット>とはシステム上でキャラクター画像が表示されるtilemap<タイルマップ>の更に上の階層、マップ上の画像表示の基盤部分を指します。)

playコマンドを↓のように修正してみてください。
パラメータの順番に気をつけて、省略していた設定名の指定も忘れずに!

「particle play fireworks_c this def spriteset」
(defとはデフォルト値を使うという意味で、設定名を省略してIDのfireworks1を設定名に使用しています。)

同じように左右の打ち上げ花火についてもZ軸値をspritesetに設定します。

変更前(右側)と比べて色調の影響を受けずに花火が明るく輝いて見えますね!
(吹き出し花火もZ軸値を変更してます)



お疲れさまでした!
これで、パーティクルプラグインの使い方基礎〜操作編が終わりました。

エディタ編がまだの方はぜひ、続けて挑戦してみて下さい!

基本の使い方②〜エディタ編【TRP_Particle】

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

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

サブエミッター機能【TRP_ParticleMZ】

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

MZ版で追加されたサブエミッター機能は1つ1つのパーティクルからさらに別のパーティクルを発生させる機能です。

単独のエミッターではできない幅広いパーティクル演出が可能となりますが、負荷を抑えつつ見栄えのする設定を作るのはなかなか難しく中~上級者向けの機能となります。

ここでは初級者でもサブエミッター機能の大まかな使い勝手がわかるように、さわりの部分を紹介していきます。


導入

「TRP_ParticleMZ_SubEmitter.js」プラグインをプロジェクトにインポートしてください。

sub setコマンド

パーティクル設定をplay/setコマンドで呼び出し直後に、サブエミッターの設定コマンドを実行することで設定ができます。

例)
particle play explode_cp_4 this particle sub set explode_cp_4 kira_blue_c

設定名・管理ID「explode_cp_4」のパーティクル設定を親エミッターとして再生した直後に、設定名「kira_blue_c」のサブエミッターをセットしています。


このとき、グループを活用してサブエミッターを設定

見栄えを調整するにはサブエミッター(ここでは「sub」)を同時に設定していく必要があるため、実践的には「グループ編集機能」を活用してサブエミッターの登録をしていく必要があります。

グループ機能の詳しい使い方はグループ機能【TRP_ParticleMZ】を参照。

ここではグループ設定名「groupTest」を再生・編集し、グループ内部で親となるエミッターと子となるサブエミッターを順に再生していきます。

「TRP_ParticleMZ_Group」のプラグインコマンドで管理ID「testGroup」として「_Editモード」をON/trueにしてイベントテストを実行してください。
(※MV形式コマンドは「particle group edit groupTest this」)


グループの編集

まずは親エミッターとして設定名「explode_cp_4」を再生させます。

command行に「set explode_cp_4 target」と入力してEnterを押すと再生されます。

次に「alt(Macではopt)+↓キー」を押して下にコマンド行を追加し、サブエミッターの登録を行います。

サブエミッターをセットするコマンドは
sub 親エミッターの管理ID サブエミッターの設定名
となりますが、ここでは簡易設定用のコマンド入力を行います。

「sub」と入力してEnterキーを押すと、自動的に「sub edit explode_cp_4 _sub:0 0 -1 0 0」とコマンドが補完入力され、サブエミッター設定の編集モードに入ります


↓subと入力してEnter

(画像ではsub setとなってますが実際はsub editと補完され、すぐにパーティクル設定の編集画面が表示されます)

補足)自動補完される設定名について

管理ID「explode_cp_4」に対して設定名「_sub:0」のサブエミッターがセットされているのですが、「_sub:数字」の設定名は特例として内部では「_sub:数字:グループ管理ID/h」と変換されます。(ここでは「_sub:0:groupTest/h」)。

設定名の最後の「/h」は秘匿属性を追加するものであり、エディタで既存設定の読み込み時にカテゴリが分けられて表示されたり、TRP_ParticleMZ_List.jsの設定名一覧から省略されます。)

また、「sub」がサブエミッターの簡易追加コマンドであるのに対し、「edit」でEnterを押すと「edit _auto:0 target」と補完されます。
_subの形式同様に、内部では「_auto:数字:グループ管理ID/h」と変換されるので、グループ内でのみ使いたい(親)エミッター設定を追加したいときに便利でしょう。


サブエミッターのパラメータ

サブエミッター設定の編集画面には、通常のエミッター設定と異なり一番下に「sub」パラメータ行が追加されています。

サブエミッター独自の設定項目となりますが、ここではいちばん特徴的な「st」「et」について解説します。

stは「start timing/開始タイミング」、etは「end timing/終了タイミング」の略です。

主に0~1の数値を設定するのですが、stが0であれば親パーティクルの発生直後からサブエミッターの排出を有効化、1とすると親パーティクルが消滅する直前に有効となります。

(※etは-1の値で無効となり、通常のパーティクル設定のemitterLifetimeに従って排出を終えます。)


例えばプリセットの花火(fireworks)のパーティクルグループを見てみましょう。

  • 親エミッター:打ち上げ時の火玉
    (見やすいようにscaleを大きめに調整してます)

  • 1つ目のサブエミッター:親パーティクルの発生直後(st=0)から消滅の少し前(et=0.75)までの間に火玉の尾を発生させる

  • 2つ目のサブエミッター:親パーティクルの消滅直前(st=1.0)に花火の爆発を発生

補足)subパラメータの設定について

stやetといったサブエミッターの設定パラメータは実際にはsubコマンドで設定します。

今回の例では「sub edit explode_cp_4 _sub:0 0 -1 0 0 0」と自動入力された「0 -1 0 0 0」の部分にあたります。

エミッターの設定編集の「sub」項目でstやetといったパラメータを変更すると、グループエディタ上でのsubコマンドのパラメータが自動で変更されます。

グループ編集画面を介さない場合には、サブエミッター用の各種パラメータを手動入力で変更しなければならず、この点がサブエミッターの設定にグループ機能を活用する大きなメリットとなっています。


サブエミッターで遊んでみよう

サブエミッターを使って思い通りの演出を作るのはなかなか難しいですが、ここでは親エミッターとサブエミッターとしてそれぞれプリセットのデータを組み合わせて雰囲気を楽しんでみましょう。

まず、サブエミッター設定の編集中の場合は「cmd+E」で編集を終わらせてグループ編集画面に戻ります。

上キーを押して親エミッターの再生コマンドの行にカーソルを合わせ、「shift + alt(macの場合はopt) + Pキー」を入力します。

プリセットの設定一覧が呼び出されるので好みの設定を選びましょう。
選び終わったらescでピッカー終了します。


(ここではmonster_cを選んでます)

次に、サブエミッターの設定を行っているコマンドにカーソルを合わせます。

親エミッターの管理IDが変更されたため、サブエミッターの設定が無効化されています。

「shift+backspace」で一度コマンドをすべて削除し、再度「sub」と入力してEnterを押してサブエミッターを設定しましょう。

(*いちいちsubコマンドを生成し直すのが面倒な場合は、親エミッターの管理IDを例えばp1のように設定して設定名を別に指定するのも○)


今度は「ctrl(Macはcmd)+Pキー」でプリセット一覧を呼び出し、サブエミッターとして使用する設定を自由に読み込みましょう。


(ここではstatue_orb_cを選択してます)

親エミッター、サブエミッターにプリセットデータを読みこんで組み合わせ、subパラメータのst(開始タイミング)を調整するだけでもきっと面白い演出になるのではないでしょうか。

親エミッターのパーティクルに合わせて大きさ(scale)や色(color)も調整すると良い感じになりやすいです。


Tips

パーティクル数に注意

サブエミッターを使うとパーティクル1つ1つからたくさんのパーティクルを発生させ、見栄えはよくなるのですが表示されるパーティクル数が膨れ上がり、負荷も大きくなりがちです。

たくさんの親エミッターと子エミッターの射出パーティクル数がともに大きくならないように十分に注意しましょう。


サブエミッターの各種設定(中級者向け)

  • st:startTiming/開始タイミング。0~1。
  • et:endTiming/終了タイミング。0~1、または-1で無効。サブエミッターにemitterLifetime(エミッター寿命)が設定されている場合、etの終了タイミングかエミッター寿命の短い方が優先されます。
  • spd:speedRate/慣性速度係数。1とすると親パーティクルの速度がそのまま慣性としてプラスされます。0~1で慣性の度合いを調整できます。(マイナスの値や1以上の数値も設定することは可能です)
  • iAngle:inheritAngle/進行方向の継承。1とすることで、親パーティクルの進行方向が開始角(startRotation)の基準となります。iAngle=0の状態ではstartRotation=0とすると、親パーティクルの進行方向に関わらず子パーティクルは右方向に進みますが、iAngle=1とすると親パーティクルの進行方向に向かって子パーティクルが射出されます。
  • iScale:inheritScaleMultiplier/拡大率乗数の継承。1とすると親パーティクルの拡大率乗数(scaleMultiplier)を継承します。親エミッターのたとえばminimumScaleMultiplierを0.1とするように、大小ランダムなパーティクルを発生させた場合に、iScale=1としておくと、大きな親パーティクルから発生する子パーティクルは大きく、小さな親パーティクルから発生する子パーティクルは小さくさせることができます。

最大数制限について

サブエミッターは負荷軽減のための「max」コマンドなどによる最大数制限が限定的にしか機能しないので注意が必要です。

発生数は「親エミッターの発生能力 x 子エミッターの発生能力の和」で計算。親エミッターと子エミッター、あるいは子エミッター同士で射出のタイミングがずれている場合には過大に評価されます。

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

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

« 1 2

月別アーカイブ

記事を検索