見出し画像

「入門」UE5/UEFNナイアガラの基本(Emitter Update)Part2

ナイアガラは、非常に設定項目が多いので 「入門」では細かい説明は行いません。
今後、実際に様々なパーティクルを作製します。
その都度、重要なポイントに触れていきます。

前回は、ナイアガラのシステムとエミッターを紹介しました。

今回は、エミッターについてもう少し深堀します。


前回に引き続き、NS_Testを開きます。

エミッターの各モジュールについて

エミッターは、モジュールの集まりで構成されます。

さらに各モジュールは、4つで区切られます。

  • Emitter Update 初期状態の設定

  • Particle Spawn パーティクルをどのように発生させるか

  • Particle Update パーティクル再生中にどのように変化させるか

  • Render パーティクルの描画方法の設定

大きく分けて、上記の4つの設定でパーティクルの制御を行います。

Emitter Update(Emitter State)について

Emitter Updateとは、エミッター本体の設定を行います。
それでは、Emitter Stateをクリックします。
Life Cycleという項目があります。
これは、エミッター本体の寿命を設定します。

エミッター本体の寿命設定は、画面下方のTimelineタブでも確認できます。

現在のLife Cycleは、初期設定のSystemになっています。
Systemとは、ナイアガラシステムのSystem Updateに起因しています。

ナイアガラシステムのSystem Updateをクリックします。
すると、2つの項目が確認できます。
Loop Behaviar ループの行動もしくは、ループの方法
Loop Duration ループの間隔
現在、このエミッターはInifinate(永久)にループされ、ループの間隔が5秒と設定されています。

Loop BehaviarInifinateの場合、Loop Durationが5と設定されていても永久に放出され続けているので、目視で確認するのは困難です。

これを確認するために、以下のように設定します。
Loop Behaviar → once
Loop Duration → 2

すると、一度だけ放出され2秒の位置で停止することが確認できます。

Loop Behaviarは、Inifinate横のをクリックすると、2つの項目があります。

  • once 一度だけパーティクルが放出します。

  • Multiple(乗算) 放出回数を乗算します。

onceの挙動は、先ほど確認しました。

Multipleの以下の例では、4秒間パーティクルが放出されます。

確認の動画は省きます。

現在、パーティクルのLife Cycleの設定は、システムに起因していますが、以下のようにエミッターのEmitter Stateを選択し、
Life Cycle ModeをSelfに変更することで、このエミッターのLife Cycleを独自に設定できます。
設定項目は、システムのSystem Updateとほとんど同じなので、説明は割愛します。

経験上、ほとんどの場合でLife Cycle ModeSelfを使用しています。

※Emitter StateのLife Cycleの設定、値を以下に戻しておきましょう。
LifeCycle → System
System Update内
 Loop Behaviar → inifinate
 Loop Duration → 5

Emitter State(Scalability Mode)について

Scalability Modeは、パーティクルのサイズ(拡縮)の調整が可能です。
スケールの設定は簡単なのでここでは、この項目で設定できる、LOD(Level of Detail)について紹介します。

LODとは、細かさの度合いでカメラからの距離で対象物を表示非表示の切り替え、ポリゴン数の調整を行います。

初期設定では、ScalabilitySystemに設定されています。

パーティクルのプレビューを見ると、カメラから遠く離れてもパーティクルは放出され続けています

それでは、以下の様に設定を変えてみます。
Scalability Mode → Self
Enable Distance Culling → ☑
Min Distance → ☑ → 0 
Max Distance → ☑ → 500

Max Distanceの距離を、カメラから500に変更します。

プレビュー上で確認すると、カメラがパーティクルから離れると(500)パーティクルが消滅します。
Max Distanceの距離を大きくすれば、カメラを遠ざけても放出され、小さくすれば、少し離れただけでパーティクルが消滅します。

LODは、設定した対象物(パーティクル)をカメラからの距離に応じて変化させるものですが、
なぜLODが必要なのかというと、オープンワールドのようなゲームを製作中に、パーティクルを沢山配置した場合、死角になっているパーティクルも放出され続けます。
その様なことがゲーム全体で発生すると、ゲームパフォーマンスが低下するので、LODを意識しましょう。

Spawn Rateについて

Spawnとは、発生させるなどの意味があり、名前の通りパーティクルを発生させます。
現在、Spawn Rateモジュールが設定されています。
これは、1秒間に放出させるパーティクル数の設定です。
現在の値は、90です。
つまり1秒間に90個放出されます。

※実際に1000や2000に変えてみましょう。
パーティクルの放出量が変わります。
この値を増やし過ぎると、PCのスペックによってはラグが発生するので注意しましょう。(パフォーマンス低下)
例 Spawn Rate 1000

パーティクルのSpawnには、いくつか種類があります。
以下のように、Spawn Rateを削除してEmitter Update右の+アイコンをクリックします。
するとメニューが表示されます。
その中の、Spawningをクリックすると5種類のSpawnタイプがあります。
今回は、Spawn Burst Instantaneousを選択します。
このSpawnタイプは、瞬間的に弾けるなどの意味があり、
設定した数値の数だけ、一気に放出します。

Spawn Countを100にします。

連続的に放出されるのではなく、一度にパーティクルが100個放出されました。

残りの4つに関しては、必要な時に都度紹介します。

まとめ

  • エミッターは大きく分けて4つ(EmitterUpdate, ParticleSpawn, ParticleUpdate, Render

  • エミッターは、モジュールの集まりで構成される。

  • モジュールの設定項目でSysyemとなっている場合は、ナイアガラシステムに起因している。

  • LODとは、細かさの度合いでカメラからの距離で対象物を表示非表示の切り替え、ポリゴン数の調整を設定した距離で行います。

次回

次回は、ParticleSpawn-Initialize Particle-について紹介します。


この記事が気に入ったらサポートをしてみませんか?