Emitter Update モジュールは、エミッタが CPU 上でティックするたびに実行されます。このグループのモジュールで、このフレームの Particle Spawn (パーティクルのスポーン) パラメータまたは Update (更新) パラメータの値を計算する必要があります。モジュールはそれぞれスタックの上から下の順に実行されます。
このドキュメントには、Emitter Update グループ内の各モジュール タイプを説明するセクションがそれぞれあり、利用可能なデフォルト オプションを説明する表が記載されています。Niagara エミッタのどの部分でもカスタム モジュールを作成できます。ここでは、Unreal Engine 4 に自動的に含まれるモジュールについてのみ取り上げます。
Beam モジュール
| モジュール | 説明 |
|---|---|
| Beam Emitter Setup | ビーム エミッタの開始ポイント、終了ポイント、タンジェントの設定と管理を行います。 |
Chaos モジュール
| モジュール | 説明 |
|---|---|
| Spawn from Chaos | Chaos イベントに対応してパーティクルをスポーンします。 |
Emitter State
| パラメータ | 説明 |
|---|---|
| Life Cycle Mode | ライフサイクル (ループ、存続期間、消滅) をエミッタで管理するか、エミッタを所有するシステムで管理するかを指定します。オプションは次のとおりです。
|
| Inactive Response | エミッタが非アクティブの状態になったときの動作を指定します。「非アクティブ」とは、エミッタが休止してパーティクルをスポーンまたは管理できなくなった状態を指します。オプションは次のとおりです。
|
| Loop Behavior | エミッタの挙動を決定します。以下から選択することができます。
|
| Loop Duration | ループの長さを決定します。 |
| Loop Duration Mode | ループが有限か無限かを決定します。 |
| Loop Delay | 任意の数字によって次のループを遅らせる設定です。 |
| Scalability | |
| Scalability Mode | エミッタがシステムからスケーラビリティ設定を受け取るかどうか、あるいは独自のスケーラビリティ設定を持たせるかどうかを決定します。以下から選択できます。
|
| Enable Distance Culling | ボックスにチェックを入れて有効にします。カメラからのエミッタの距離に基づいてエミッタのカリングを有効にします。エミッタはカメラから一定の距離になると、スリープ、復活、消去などになります。 |
| Enable Visibility Culling | ボックスにチェックを入れて有効にします。カメラから見えるかどうかに基づいてエミッタのカリングを有効にします。オンスクリーンかオフスクリーンかに応じてエミッタはスリープ、復活、消去などになります。 |
| Reset Age on Awaken | ボックスにチェックを入れて有効にします。スケーラビリティ設定によりスリープ状態になった後でこのエミッタが復活する時、この設定はエミッタの年齢をリセットします。つまり、スポーン バーストが再発生し、エミッタのライフサイクルは再スタートします。 |
Location モジュール
| モジュール | 説明 |
|---|---|
| Spawn Particles in Grid | ユーザー定義のグリッド解像度設定に基づいてパーティクルをスポーンします。 |
MAX Scripts モジュール
| モジュール | 説明 |
|---|---|
| Spawn MS Vertex Animation Tools Morph Target | 頂点アニメーション ツールで作成されたモーフ ターゲット テクスチャをスポーンしてサンプリングします。頂点アニメーション ツールでは、モーフ ターゲットのブレンド形状を表すテクスチャを生成します。このモジュールは、ツールがキャプチャしたすべての頂点に対して 1 つのパーティクルをスポーンします。これは、Update MS Vertex Animation Tools Morph Target モジュールとの併用を想定しています。 |
Spawning モジュール
| モジュール | 説明 |
|---|---|
| Spawn Burst Instantaneous | パーティクルのバーストを自発的にスポーンするモジュールです。 |
| Spawn Per Frame | 各フレームごとにパーティクルのバーストをスポーンするモジュールです。 |
| Spawn Per Unit | Unreal 単位での移動距離に基づいてパーティクルをスポーンするモジュールです。 |
| Spawn Rate | 特定の割合でパーティクルをスポーンし続けるモジュールです。 |
Utility モジュール
| モジュール | 説明 |
|---|---|
| Emitter Frame Counter | このモジュールの Increment Counter を有効にすると、エミッタのアニメーションの各フレームで増加するカウンターが設定されます。 |
New Scratch Pad Module (新しいスクラッチ パッド モジュール)
[Add] (プラス記号) メニューでアイテムを選択すると [Scratch Pad] パネルが開き (デフォルトで System Overview の横にドックします)、[Selection] パネルに [Scratch Pad module] が配置されます。[Scratch Pad] パネルは [Windows (ウィンドウ)] > [Scratch Pad] から開くこともできます。ただし、スタック内に Scratch Pad モジュールを配置することで、[Scratch Pad] で作成するモジュールまたは動的入力はすべて自動的にスクリプトに接続されます。[Windows] メニューから [Scratch Pad] パネルを開いた場合は、[Scratch Pad] パネルで作成した項目をすべて手作業でスクリプトに追加する必要があります。
Set New or Existing Value Directly (新規または既存の値を直接設定)
[Add] メニュー内のこの項目を選択すると、[Selection] パネルに Set Parameter モジュールが追加されます。Add Parameter (パラメータを追加) または Create New Parameter (新規パラメータを作成) を選択するには、プラス記号 (+) のアイコンをクリックします。
Add Parameter (パラメータを追加)
Add Parameter を選択したら、リストされているパラメータから選択します。これにより、そのパラメータが Emitter Update グループ内の Set Parameter モジュールに追加されます。
| パラメータ | 説明 |
|---|---|
| Emitter.Age | このエミッタの存続期間を定義します。 |
| Emitter.CurrentLoopDelay | エミッタの現在のループが繰り返されるまでの、現在の遅延の量を定義します。 |
| Emitter.CurrentLoopDuration | 現在のエミッタのループの長さを定義します。 |
| Emitter.ExecutionState | エミッタの状態に影響を及ぼすパラメータです。有効値は以下のとおりです。
|
| Emitter.ExecutionStateSource | 実行状態設定のソースを示します。これは、その状態がより高い優先度が設定されている要素で定義されていない場合にのみ、スケーラビリティで状態を変更できるようにするために使用されます。 |
| Emitter.LocalSpace | このパラメータでは、パーティクルの位置の基準を、ワールド基点または所有するNiagara コンポーネントの場所のいずれにするかを定義します。
|
| Emitter.LoopCount | エミッタのループが繰り返される回数を定義します。 |
| Emitter.LoopedAge | 現在のループに相対するエミッタの存続期間を計算します。例えば、8 秒間有効なエミッタが 5 秒ごとにループする場合、エミッタの LoopedAge は 3 秒 になります。LoopedAge は、エミッタがループするたびに 0 に戻ります。 |
| Emitter.NormalizedLoopAge | 現在のループに相対するエミッタの存続時間を計算し、0 ~ 1 の間で正規化されるパラメータです。NormalizedLoopAge は、LoopedAge を CurrentLoopDuration で除算して表されます。例えば、8 秒間有効なエミッタが 5 秒ごとにループする場合、エミッタの LoopedAge は 3 で、エミッタの NormalizedLoopAge は 0.6 になります。 |
| System.ExecutionState | システムの状態に影響を及ぼすパラメータです。有効な値は Active、Inactive、InactiveClear、Complete、Disabled または Num のいずれかです。 |
| System.ExecutionStateSource | システム実行状態設定のソースを示します。これは、その状態がより高い優先度が設定されている要素で定義されていない場合にのみ、スケーラビリティで状態を変更できるようにするために使用されます。 |
Create New Parameter (新規パラメータを作成)
Create New Parameter を選択するときは、リストされたパラメータから選択します。これにより、Emitter Update グループに Set Variable モジュールが追加されます。
| パラメータ | タイプ | 説明 |
|---|---|---|
| Audio Oscilloscope | データ インターフェース | 新しい Audio Oscilloscope データ インターフェース モジュールをエミッタに追加します。Audio Oscilloscope モジュールでは、オーディオ信号の波形に直接アクセスすることができます。 |
| Audio Spectrum | データ インターフェース | 新しい Audio Spectrum データ インターフェース モジュールをエミッタに追加します。Audio Spectrum モジュールでは、特定の周波数でのオーディオ音量に応じてビジュアリゼーションを作成できます。 |
| Bool | プリミティブ | true/false チェックボックスを含む Set Variable モジュールを追加します。 |
| Camera Query | データ インターフェース | 新しい Camera Query データ インターフェース モジュールをエミッタに追加します。このデータ インターフェースは、特定のコントローラー インデックスのカメラ情報 (カメラ位置、回転、FOV など) の取得に使用できます。 |
| Collision Query | データ インターフェース | エミッタ スタックにコリジョン データ インターフェースを追加します。これは、通常、コリジョン モジュールと併用します。 |
| Curl Noise | データ インターフェース | カール ノイズ データ インターフェースをエミッタ スタックに追加します。これを Curl Noise Force モジュールと併用すると、このデータ インターフェースでは異なるタイプのノイズをシミュレーションに挿入します。 |
| Curve for Colors | データ インターフェース | シミュレーション用に 4 チャンネルのカラー カーブ データ インターフェースを追加します。このカーブを動的入力またはその他のモジュールによってサンプリングすることで、時間によって変化するカラーを作成できます。 |
| Curve for Floats | データ インターフェース | シミュレーション用に単一チャンネルのカーブ データ インターフェースを追加します。このカーブを動的入力またはその他のモジュールによってサンプリングすることで、時間によって変化する浮動小数 (Float) 値を作成できます。 |
| Curve for Vector 2Ds | データ インターフェース | シミュレーション用に 2 チャンネルのカーブ データ インターフェースを追加します。このカーブを動的入力またはその他のモジュールによってサンプリングすることで、時間によって変化する浮動小数 (Float) 値のペアを作成できます。 |
| Curve for Vector 3s | データ インターフェース | シミュレーション用に 3 チャンネルのカーブ データ インターフェースを追加します。このカーブを動的入力またはその他のモジュールによってサンプリングすることで、時間によって変化する一連の浮動小数 (Float) 値を作成できます。 |
| Curve for Vector 4s | データ インターフェース | シミュレーション用に 4 チャンネルのカーブ データ インターフェースを追加します。このカーブを動的入力またはその他のモジュールによってサンプリングすることで、時間によって変化する一連の浮動小数 (Float) 値を作成できます。 |
| ENiagaraBooleanLogicOps | 列挙型 | 次のブール論理を使ってテストを行う各種モジュールおよび動的入力で使用される列挙型です。
|
| ENiagaraCoordinateSpace | 列挙型 | 複数の座標空間を区別するために各種モジュールおよび動的入力で使用される列挙型です。
|
| ENiagaraExecutionState | 列挙型 | この列挙型は、Emitter.ExecutionState や System.ExecutionState など、システムまたはエミッタの実行状態を管理するパラメータによって使用されます。 |
| ENiagaraExecutionStateSource | 列挙型 | 実行状態設定のソースを示します。これは、その状態がより高い優先度が設定されている要素で定義されていない場合にのみ、スケーラビリティで状態を変更できるようにするために使用されます。 |
| ENiagara ExpansionMode | 列挙型 | 拡張の原点を以下のいずれかに決定するために Location モジュールで使用される列挙型です。
|
| ENiagaraOrientationAxis | 列挙型 | どの軸で計算するかを決定するために、いくつかのモジュールで使用される列挙型です。
|
| ENiagaraRandomnessMode | 列挙型 | このエミッタで使用される乱数生成のタイプを設定します。有効な選択肢は以下のとおりです。
|
| Float | プリミティブ | 浮動小数値の変数を作成します。 |
| Grid2D Collection | データ インターフェース | シミュレーションの段階で使用するパラメータです。これにより、ユーザーはデータの 2D 配列を読み取ったり書き込んだりでき、シミュレーションの段階でグリッド内でピクセルごとにイテレーションできるようになります。 |
| Int32 | プリミティブ | 整数の変数を作成します。 |
| Linear Color | プリミティブ | カラー ピッカーとして表される RGBA 色の変数を作成します。 |
| Matrix | プリミティブ | 4x4 の行列変数を作成します。 |
| Mesh Tri Coordinate | 構造体 | トライアングル表面の重心座標を伴うトライアングルのインデックスを含む単純な構造体です。 |
| Neighbor Grid 3D | データ インターフェース | シミュレーションの段階で使用するパラメータです。これにより、ユーザーはデータの 3D 配列を読み取ったり書き込んだりでき、シミュレーションの段階でボリューム内でピクセルごとにイテレーションできるようになります。 |
| Niagara ID | 構造体 | パーティクルの追跡に使用される 2 要素からなる構造体です。このパーティクルの間接テーブルのインデックスです。パーティクル データに迅速にアクセスできるようになります。Niagara ID は、現在存続しているパーティクル間において常に一意であり、パーティクルの消滅後には再利用されます。AcquireTag はこの ID が取得されたときの一意のタグです。これを使用すると、特定のパーティクルが消滅し、別のパーティクルがその消滅したパーティクルのインデックスを再利用する際に、それらのパーティクルを区別できます。 |
| Occlusion Query | データ インターフェース | 新しい Occlusion Query データ インターフェース モジュールをエミッタに追加します。このデータ インターフェースは深度バッファ オクルージョン情報の読み取りに使用します。 |
| Particle Attribute Reader | データ インターフェース | 新しい Particle Attribute Reader データ インターフェースをエミッタに追加します。このデータ インターフェースは、他のエミッタからのパーティクル ペイロード値に対するクエリに使用でき、状況によっては Events よりも使いやすい場合があります。 |
| Quat | プリミティブ | 回転を表すクォータニオン変数を作成します。 |
| Simple Counter | データ インターフェース | 新しい Simple Counter データ インターフェース モジュールをエミッタに追加します。このデータ インターフェースにより、スレッドセーフなカウンターを増大させることができます。 |
| Skeletal Mesh | データ インターフェース | これは関数を含むデータ インターフェースで、スケルタル メッシュのボーンまたはソケットとスキン ジオメトリとのやり取りに使用します。 |
| Spawn Info | 構造体 | パーティクルの作成回数を表す Count、スポーンを開始する現在のフレームの開始時間からのオフセットである InterpStartDt、スポーンされるパーティクル間の間隔を定義する IntervalDt、スポーンしたパーティクルを異なるカテゴリに属させる SpawnGroup を指定するためにスポーンで使用される構造体です。 |
| Spline | データ インターフェース | Spline アセットとやりとりするデータ インターフェースです。 |
| Static Mesh | データ インターフェース | これは関数を含むデータ インターフェースで、スタティック メッシュのサーフェスとのやり取りに使用します。 |
| Texture Sample | データ インターフェース | これは関数を含むデータ インターフェースで、GPU 上のテクスチャとのやり取りに使用します。 |
| Vector | プリミティブ | 3 チャンネルの一連の浮動小数値を作成します。 |
| Vector 2D | プリミティブ | 2 チャンネルの一連の浮動小数値を作成します。 |
| Vector 4 | プリミティブ | 4 チャンネルの浮動小数点のセットを作成します。 |
| Vector Field | データ インターフェース | これは関数を含むデータ インターフェースで、ベクター フィールドのクエリに使用します。 |
| Volume Texture Sample | データ インターフェース | 新しい Volume Texture データ インターフェース モジュールをエミッタに追加します。これはボリューム テクスチャのサンプリングに使用できます。 |