18
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【UE4】Particle Instance Parameter について(解説)

Last updated at Posted at 2016-04-08

はじめに

レベルに配置したないしはSpawn Emitterで出現させたパーティクルのVelocity等をBlueprintで変化させることは出来ないかな?と思って調べると「Particle Instance Parameter」がヒットしたので紹介と解説をしてみます。

Particle Instance Parameter とは?

UE4のマテリアルでは「スカラー値」や「ベクター値」を「パラメーターに変換」することでBlueprint上で動的に値を変化させることが可能でした。Dissolveエフェクト等で調べていただけると、動的なマテリアルパラメータの変更がわかりやすいと思います。
それと同じ機能がパーティクルにもあります。
それが「Particle Instance Parameter」です。
これはパーティクルを構成しているEmitterのパラメーターを外部に公開することで外部から(Blueprint等)パラメータを変更出来ます。マテリアルのやつと一緒ですね。

Instance Parameter の使い方

ここから Particle Instance Parameter の使い方を解説していきます。
使用するパーティクルは「スターターコンテンツ」にある「P_Fire」を使います。

使用パーティクルディレクトリ.PNG 使用パーティクル.PNG

P_fireの中身を見てみるとエミッターの数が多すぎるので、左端以外のエミッターは全て削除します。

Emitter削除後.PNG

Flamesエミッタに新しくAccelerationモジュール(右クリック>Acceleration>Acceleration)を追加します。

Accelerationモジュールを追加.PNG

次に詳細パネルの Distribution を「Distribution Vector Particle Parameter」に変更します。

Distributionを変更.PNG

次に公開するパラメータ名とその他必要な設定をします。
「Parameter Name」が現在「None」になっているので適切な名前を設定します。ここではモジュール名と同じ「Acceleration」とします。
Param Modesを展開すると1,2,3それぞれに「DPM Normal」が設定されているので、これを「DPM Direct」に変更します。

詳細パネル変更前.PNG 詳細パネル変更後.PNG

これで外部へのパラメータを公開するための準備が整いましたので実際に変更してみます。
開いているマップの適当な場所に配置して、詳細パネルにある「エミッタアクション」の「パラメータを公開」ボタンを押します。
そうすると、ParticlesのInstance Parametersに新しくエレメントが追加されます。

パラメータ公開前.PNG パラメータ公開後.PNG

試しにVectorのZを1000くらいにすると配置されたパーティクルが上方向へ飛んでいきます。

上に飛ぶパーティクル.PNG

ブループリントでパーティクルのパラメータを変更してみる
これまでの設定によりカスケードを介せずパーティクルの加速度を変更出来たと思いますので、今度はブループリントでキー入力に応じて上方向に加速度を追加したり、下方向に加速度を追加したりするようにします。
「アクター」クラスを親としたブループリントを作成します。
コンポーネントに「Particle System」を追加して、設定を済ませたP_Fireを設定します。
アクタクラスを継承したデフォルトのブループリントではキーボード入力を受け取ることが出来ないため、キーボード入力を受け付けるように設定します。

キー入力受け取り準備.PNG

次に必要なVector型の変数を追加します。

変数追加.PNG

グラフにキーボードイベントを追加して、Accelerationへ値を増減させるようにします。

キー入力による値の増加.PNG
Eキーを押すことで100ずつ増やし、Qキーを押すことで100ずつ減らすようにしました。

Tickイベントには公開されているパーティクルのパラメータに対し変数Accelerationの値をセットします。

パーティクルパラメータへの値設定.PNG

設定する方法としては Dynamic Material Insntace に対しパラメータを設定する方法とほぼ変わりません。かなり簡単に値を変更することが出来ます。
後は作成したブループリントをレベル上に配置して、Eキーを押すたびに上方向へと火が飛んでいきます。

まとめ

Particle Instance Parameterを使うにあたって必要な設定は以下の通りです。

  1. Distribution を Distribution Vector Particle Parameter に変更
  2. Vector型の場合は Param Modes を DPM Direct に変更
  3. Parameter Name をちゃんと設定する

Distribution Vector Particle Parameter の各パラメータについては以下の公式ドキュメントが参考になると思います。
https://docs.unrealengine.com/latest/INT/Engine/Basics/Distributions/index.html#distributionvectorparticleparam

おまけ

Particle Instance Parameter は当然Vectorだけでは無く色も扱えます。
「Scale Color / Life」モジュールを追加して Distribution を変更することでブループリント上でも扱えます。
その際、パラメータを渡すノードは「Set Color Parameter」となります。
これを利用して以下の様なプレイヤーとの距離に応じて色が変化する炎なんてのも作れます。

キャプチャ.PNG キャプチャ2.PNG 3キャプチャ.PNG
18
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?