System
Niagara System内の青色のノードがSystemComponentです。
これは、「エミッターを入れるためのコンテナ(入れ物)」です。
このノードには、そのコンテナ全体の振る舞いや、中に含まれるすべてのエミッターに共通するルールを管理する役割を持っています。
◆プロパティ
プロパティの項目はこのようになっております。
プロパティでは、System自体がどうふるまうかの基本設定を行う場所になっています。
描画カリングのためのバウンディングボックス設定やエフェクトタイプの設定、影やデカールの影響を受けるかどうかなどのレンダリングの設定をすることができます。
◆ システムのスポーン
引用元: System Spawn Group Reference for Niagara Effects in Unreal Engine
システムのスポーンとは、このシステムがレベル上に生成された瞬間、あるいはアクティブになった瞬間に一回だけ処理されるグループ。
BPでいう、BeginPlay()のようなもの。
■システムのスポーンの基本ルール
- 1回限りの実行:システムが作成された際に一回だけ実行される。
- 初期値のセットアップ:システム全体で使用する初期値を設定することができます。
- 処理の順番:モジュールはスタックの上から下へ(トップダウン)の順番で実行されます。
■ 追加できるモジュールの種類
System Spawnでは、以下のモジュールが追加できます。
- Spawingモジュール
- 新しいScratch Pad モジュール
- パラメーターの設定
◇ Spawingモジュール
「Spawn Burst Instaneous」モジュールを追加できますが、筆者のほうで挙動を確認したところ、エラーが出てしまい解決方法がわからなかったため、今後使用方法がわかり次第記述予定。
◇ 新しいScratch Padモジュール
Scratch Padとは「自分専用のカスタムモジュールをノードベースで手軽に自作できる機能」です。
Spawn Systemで使用できるカスタムモジュールを追加できますが、筆者がまだこの機能について把握できていないため後日記載します。
◇ パラメーターの設定
「Set Parameter」モジュールを追加し、以下2つのアプローチで変数の値を設定することができる。
●既存のパラメーターを追加
Niagaraですでに用意されているシステム変数の初期状態を書き換えることができます。
すでに用意されているシステムの変数とは、Niagaraエディタ内の「パラメーター」タブの「システム属性」にリストで並んでいます。
その中で、変更したい変数があればSystemのSpawにドラッグアンドドロップすることで、モジュールを追加することができます。
このようにSystemSpawnにNiagaraの変数を設定ができるようになりました。
基本的にはSystem Stateなどで直接設定ができるので、あまりNiagara Systemの変数を変えることはなさそうですね。
● 新規パラメーターの追加
オリジナルの変数や、特殊なデータを読み込むためのインターフェースを作成することができます。
今回は、Vector4型の変数を用意し、2つのEmitterの初期値のパーティクルカラーに共有できるようにします。
パラメータータブのシステム属性で、変数を作成します。
システム属性の+ボタンを押すと新規作成の下にVector4があるので追加します。
今回は、Colorを使用したいのでColorと命名しました。
適当なEmitterの「Initialize Particle」モジュールのColorに先ほど作成したColor変数を付与します。
ただこの状態だと、Colorの初期化が行われていないためこのようなエラーが出力されます。
Colorの初期値が設定されていないためエラーが出ています。
なので、SpawnSystemでColorの初期化を行います。
System SpawnにColorをセットし、色のセットを行いました。
これでコンパイルエラーがなくなり、各Emitterのそれぞれのパーティクルに共通の色を設定することができました。
このように、SystemSpawnで色を共通化したり、float型を追加してParitlcleのLifeTimeを共通化できるのでエフェクトの色味調整などでいちいち各Emitterのパーティクルの色を調整することなくなるため、かなり強力な機能です。
◆システム更新
システムの更新では、「システムが存在している間、マイフレーム常に実行され続ける処理」をまとめているグループ。
BPやC++でいうTick()関数に相当します。
■ System Update の主な役割
時間の経過とともに変化する値の計算や、リアルタイムに監視し続ければならないロジックや変数をここに配置します。ここで計算・更新された変数はその下にあるすべてのエミッターやパーティクルに毎フレーム共有されます。
■ System State モジュール
System State モジュールは、Niagara システムのライフサイクルを設定するモジュール。
エフェクトシステム全体がいつ始まり、いつループし、いつ終了されるのかを定義します。
モジュールを選択するとこのような設定項目が出てきます。
◇ Inactive Response
Inactive Responseはエミッターが非アクティブ状態になった時の動作を指定する。「非アクティブ」とは、エミッタが休止してパーティクルをスポーンまたは管理できなくなった状態を指します。
設定できるモードは以下の2つです。
- Complete:エミッターが完了すると、システムがキルされる。
- Kill:システムとエミッタの両方がすぐにキルされる。
◇ Loop Behavior
Infinite, Once, Multipleの3つのモードがあります。
- Infinite:無限に再生
- Once:一度だけ
- Multiple:指定した回数だけループする。
◇ Loop Count
ループする回数。
◇ Loop Duration
Niagaraの持続時間を設定します。
◇ Loop Delay
ループする際の遅延時間。











