Niagara Fluids は、リアルタイム シミュレーションをプロジェクトに簡単に追加できるテンプレートを提供するプラグインです。次のようにさまざまなタイプのテンプレートがあります。
-
2D Gas (2D 気体)
-
2D Liquid (2D 液体)
-
3D Gas (3D 気体)
-
3D Liquid (3D 液体)
-
Shallow Water (浅い水)
2D シミュレーションは効率性が高く、ゲームやリアルタイムでの使用に適しています。3D シミュレーションではよりリアルな外観を実現できるものの、それと引き替えにメモリおよび GPU の負荷が増大します。そのため、3D シミュレーションは、ヒーロー エフェクトやシネマティックスに最適です。また、必要に応じて、結果をフリップブックにベイクし、テクスチャに適用することで、リアルタイムに使用する際のパフォーマンスを高めることもできます。
このリファレンス ガイドでは、設計原理の例として、「Grid 3D Gas Fire」テンプレートの概要を説明します。
テンプレートからNiagara 流体シミュレーションを作成する
Niagara 流体シミュレーションを作成するには、[Content Drawer (コンテンツ ドロワー)] で右クリックして、Niagara システム を選択します。ウィザードで、[New system from a template or behavior example (テンプレートまたは動作例に基づく新しいシステム)] オプションを選択します。この方法では、流体テンプレートに適切な継承がすでに設定されており、必要なすべてのエミッタがシステムに追加されます。プラグインを有効にして、最初のプロジェクトを作成する方法の詳細については、「Niagara Fluids クイック スタート ガイド」を参照してください。
選択可能なさまざまなタイプの 3D 気体の例が表示されます。
画像をクリックするとフルサイズで表示されます。
継承
流体エミッタは徐々に機能を追加するために継承を使用します。たとえば、3D 気体エミッタの継承構造を示す次の図を参照してください。
画像をクリックするとフルサイズで表示されます。
各エミッタの目的は次のとおりです。
エミッタ | 目的 |
---|---|
Grid3D_Gas_Emitter | これはコア シミュレーションです。 |
Grid3D_Gas_Controls_Base_Emitter | このエミッタは、一元化コントローラー、デバッグ スライス機能、およびより優れたレンダリング サポートを追加します。これらのコントロールは、[Emitter Summary (エミッタの概要)] で公開されます。 |
Grid3D_Gas_CONTROLS_Emitter | このエミッタは、パーティクル ソースのサポートを追加します。濃度、温度、速度は、2 つ目のエミッタからシミュレーションに追加されます。 |
Grid3D_Gas_CONTROLS_CINE_Emitter | これは、パーティクル ソースのアルゴリズムに、より遅く、より決定論的な形式を使用する代替コントロール エミッタです。高度なテクスチャ座標を含み、シネマティックな使用を想定して作成されています。 |
Fluids エミッタの概要
シミュレーションの外観および動作を変更するために調整する必要のあるすべてのパラメータは、[Emitter Summary] に表示されています。整理しやすいように、この概要は、以下のセクションに分けられています。
-
Grid (グリッド)
-
Simulation (シミュレーション)
-
Render (レンダリング)
-
Debug (デバッグ)
-
Scalability (スケーラビリティ)
-
Source (ソース)
画像をクリックするとフルサイズで表示されます。
このリファレンス ガイドでは、これらのセクションで使用可能なパラメータについて説明します。
Grid (グリッド)
気体シミュレーションは、セルに分割されたグリッドで表現されます。各セルには、その位置での媒体の濃度、温度、速度に関する情報が含まれています。グリッド セルが小さいほどシミュレーションの品質が高くなるものの、その分パフォーマンスが低下します。
画像をクリックするとフルサイズで表示されます。
パラメータ | 説明 |
---|---|
Grid Bounds Overlay | レベル エディタ でシミュレーションをクリックすると、[Override Parameters (パラメータをオーバーライド)] にトグルが追加されます。そのトグルで、シミュレーションの周りの赤いボックスの可視性を切り替えることができます。 |
Cell Size Guides | レベル エディタ でシミュレーションをクリックすると、[Override Parameters] にトグルが追加されます。そのトグルで、各主要軸のガイド セルの可視性を切り替えることができます。 |
World Space Size | レベル エディタ でシミュレーションをクリックすると、[Override Parameters] にユーザーが設定するフィールドが追加されます。ここで、シミュレーションのコンテナ ボックスのサイズを変更します。 |
Local Pivot | シミュレーションの原点である必要のある位置のオフセットを変更します。 |
Resolution Max Axis | レベル エディタ でシミュレーションをクリックすると、[Override Parameters (パラメータをオーバーライド)] にトグルが追加されます。そのトグルで、シミュレーションの解像度を最長辺を基準に設定することができます。解像度を高くすると、より正確な外観が得られるものの、パフォーマンスは低下します。 |
Open Boundary +/- X/Y/Z | これらのオプションを切り替えて、シミュレーションの端の部分をパーティクルが通過できない固体の壁として処理するかどうかを調整します。 |
Simulation (シミュレーション)
このシミュレーション セクションは、[Simulation (シミュレーション)]、[Collide Against (衝突)]、[Turbulence (乱流)] の 3 つのサブセクションに分割されます。これらすべてのパラメータは、濃度、温度、浮力などのプロパティに基づいてシミュレーションが時間の経過とともにどのように変化するかに影響します。
画像をクリックするとフルサイズで表示されます。
Simulation (シミュレーション)
画像をクリックするとフルサイズで表示されます。
パラメータ | 説明 |
---|---|
Override Delta Time | この値を設定すると、エンジンのデルタ時間を固定のデルタ時間でオーバーライドすることができます。 |
Delta Time Scale | [Override Delta Time (デルタ時間をオーバーライド)] がオンになっていない場合は、エンジンのデルタ タイムが使用されます。[Delta Time Scale (デルタ時間のスケール)] に値を入力すると、エンジンのデルタ時間をこの量だけ変更することができます。 |
Vorticity Confinement | 渦巻きはシミュレーションの回転を定義します。この値を入力すると、シミュレーションの渦巻きが値の量だけ増幅されます。 |
Pressure Relaxation | この値は、圧力ソルバの収束を定義します。0 ~ 1 の間の値を入力します。この値は、「1」に近い値を維持することをお勧めします。 |
Pressure Solve Iterations | ソルバのイテレーションが多くなるほど、精度は上がりますが、速度は低下します。パフォーマンスを引き換えにすることなく、十分な精度が得られる値をこちらに入力します。 |
Density Dissipation | この値は、濃度がゼロまで消散する速度を定義します。数値が大きいほど、より迅速に消散します。 |
Temperature Dissipation | この値は、温度がゼロまで消散する速度を定義します。数値が大きいほど、より迅速に消散します。 |
Velocity Dissipation | この値は、速度がゼロまで消散する速度を定義します。数値が大きいほど、より迅速に消散します。 |
Density Buoyancy | この値は、シミュレーションに適用される下方向の速度の大きさを、その密度に基づいて定義します。この値が大きいほど、下向きの速度が大きくなります。 |
Temperature Buoyancy | この値は、シミュレーションに適用される上方向の速度の大きさを定義します。数値が大きいほど、上方向の速度が大きくなります。 |
Gravity | シミュレーションの重力の方向と大きさを設定します。 |
Collide Against (衝突)
レベルのアクタに対してシミュレーションを反応させることができます。最も一般的な方法は、それらのアクタがシミュレーションと接触した場合に衝突させることです。[Collide Against] セクションのパラメータの有効/無効を切り替えることで、該当するタイプのオブジェクトのデータ インターフェースを追加または削除します。
[Collide Against] が有効な場合は、レベル エディタでシミュレーションを選択して、[Override Parameter] を調整し、特定のアクタを選択します。それらのアクタは、シミュレーションと衝突します。この例については、「Niagara Fluids クイック スタート ガイド 」を参照してください。
画像をクリックするとフルサイズで表示されます。
Turbulence (乱流)
エミッタの 3 つの帯域の乱流を有効にすることができます。[Seed Turbulence (シード乱流)] は、初期化フレームのみに適用されます。。[Turbulence 1] と [Turbulence 2] は、シミュレーションの実行中に適用されます
画像をクリックするとフルサイズで表示されます。
パラメータ | 説明 |
---|---|
Seed Turbulence Gain | 乱流の強さを設定します。これは初期化フレームのみに適用されます。 |
Seed Turbulence Frequency | これは、乱流機能のサイズを設定します。この数値が小さいほど、表示される特長が大きく見えるようになります。これは初期化フレームのみに適用されます。 |
Seed Turbulence Speed | 乱流の移動速度を設定します。これは初期化フレームのみに適用されます。 |
Seed Turbulence Local Space | 有効な場合、乱流はシミュレーションのローカル空間に追従します。When disabled, turbulence will be fixed in world space.これは初期化フレームのみに適用されます。 |
Turbulence Density Gain | 乱流の強さを設定します。これは、密度または温度、あるいはその両方として設定できます。 |
Turbulence Density Band | 濃度の定義された範囲内に乱流を制限します。 |
Turbulence Temperature Gain | 乱流の強さを設定します。これは、密度または温度、あるいはその両方として設定できます。 |
Turbulence Temperature Band | 温度の定義された範囲内に乱流を制限します。 |
Turbulence Frequency | これは、乱流機能のサイズを設定します。この数値が小さいほど、表示される特長が大きく見えるようになります。 |
Turbulence Speed | 乱流の移動速度を設定します。 |
Turbulence Bias | 乱流の方向を指定するために、ノイズをゼロから遠ざけるバイアスをかけます。 |
Turbulence Local Space | 有効な場合、乱流はシミュレーションのローカル空間に追従します。無効な場合、乱流はワールド空間に固定されます。 |
Render (レンダリング)
[Render] プロパティは、[Render] と [Lights (ライト)] という 2 つのサブセクションに分かれています。
Render (レンダリング)
画像をクリックするとフルサイズで表示されます。
パラメータ | 説明 |
---|---|
Render Step Size Mult | シミュレーションは、ボリュームをセルに分割して、それらのセルでシミュレーションをサンプリングすることで、計算されます。デフォルトでは、ボリュームを通るステップ サイズはセルのサイズと一致します。 この乗数の値を小さくすると、セルごとにシミュレーションを複数回サンプリングします。これは、テクスチャがシミュレーション データを変調している場合や、詳細な災をレンダリングする場合に役立ちます。 |
Render Density | このオプションは、濃度をレンダリングするかどうかを制御します。[None (なし)]、[Linear (リニア)]、[Curve (カーブ)] から選択できます。リニア マッピングは、グリッドのデータを気体のオパシティにマッピングします。また、カーブを設定することで、より細かく制御することができます。 |
Render Density Range | レンダリングする濃度の範囲を設定します。最初の値は透明に設定したい濃度値で、2 番目は最も高いオパシティを指定する濃度値にする必要があります。 |
Render Density Curve | [Render Density (レンダリング濃度)] を [Curve] に設定した場合、このパラメータを使用してカーブを設定することができます。このフィールドを拡張すると、カーブ エディタにアクセスできます。 |
Render Density Gain | この値は、レンダリングされる最終的な濃度に乗数を追加します。 |
Render Density Albedo | この値は、煙を黒から白に着色する浮動小数点数です。 |
Shadow Quality | ベイクされたシャドウは、ボリュームをセルに分割し、それらのセルでシミュレーションをサンプリングするためにボリュームをステップスルーすることによって計算されます。この値を調整すると、セルごとにシミュレーションを複数回サンプリングすることができます。 |
Shadow Max Steps | シャドウのサンプリングを行う際に実行するステップ数を制限します。 |
Render Temperature | [Temperature (温度)] コンポーネントのレンダリング方法を選択します。[None]、[Black Body]、または [Curve] から選択できます。 [None] では、温度値がレンダリングされません。 [Black Body] は、黒から赤、オレンジ、黄色、白の順で、環境的にリアルな炎をレンダリングします。 [Curve] では、独自のカラー値を設定することができます。 |
Render Temperature Range | [Render Temperature (レンダリング温度)] にマッピングする温度値の範囲を設定します。これは、[Render Temperature] が [Black Body (黒体)] または [Curve] に設定されている場合にのみ適用されます。 |
Render Temperature Curve | [Render Temperature] が [Black Body] に設定されている場合、このカーブのアルファ コンポーネントが炎のオパシティを定義します。 [Render Temperature] が [Curve] に設定されている場合、このカーブは気体の色およびオパシティの両方を定義します。 |
Render Temp Color Gain | 気体のカラーにさらに乗数を追加します。 |
Render Temp Opacity Gain | 気体のオパシティにさらに乗数を追加します。 |
Lights (ライト)
[Lights] セクションには、レベルで [Override Parameters] を使用して設定したディレクショナル ライトを取り込むための複数のデータ インターフェースが含まれています。これらのデータ インターフェースにライトが接続されていない場合、デフォルトのライティングが適用されます。デフォルトのライティングのプロパティを調整するには、[Show Advanced (詳細を表示)] ボタンをクリックします。
画像をクリックするとフルサイズで表示されます。
パラメータ | 説明 |
---|---|
Light1/2 | このデータ インターフェースは、レベル エディタで Niagara システムの [Override Parameters] に接続したライトから属性を読み取ります。 |
Lgt1/2 Shadow Density | 濃度コンポーネントがどのくらいライトをオクルードするかを設定します。 |
Lgt1/2 Default Intensity | デフォルト ライトの強度を設定します。 |
Lgt1/2 Default Color | デフォルト ライトのカラーを設定します。 |
Lgt1/2 Default Direction | デフォルト ライトの方向を設定します。この方向はワールド空間で設定されるベクターです。 |
Debug (デバッグ)
これらのオプションを使用して、シミュレーションをデバッグします。
画像をクリックするとフルサイズで表示されます。
パラメータ | 説明 |
---|---|
Debug Sources | このオプションを有効にすると、フレームごとにグリッド データをソース データで上書きします。これにより、ソースがシミュレーションに導入している内容を確認できます。 |
Render Debug Slice | このオプションを有効にすると、グリッド内で 2D スライスがレンダリングされます。濃度は赤チャンネルでレンダリングされます。温度は緑チャンネルでレンダリングされます。結合されたライトの強度は青チャンネルでレンダリングされます。 |
Render Debug Slice Axis | スライスの向きを合わせる軸を選択します。 |
Render Debug Slice Offset | 軸に沿ってどのくらい遠くまでスライスをレンダリングするかを設定します。この値は 0 ~ 1 の間で、0.5 が中心点となります。 |
Render Debug Slice Lights | このオプションを有効にすると、ライトの強度が青チャンネルでレンダリングされます。 |
Scalability (スケーラビリティ)
スケーラビリティの設定を使用して、シミュレーションの [Quality (品質)] 設定に基づくパラメータをオーバーライドします。デフォルトでは、スケーラビリティのオーバーライドは、エンジンが [Cinematic (シネマティック)] 品質で実行されているときに適用されます。
スケーラビリティ オーバーライドを使用する場合のある例として、[Movie Render Queue] でシネマティック シーケンスをレンダリングする必要がある場合が挙げられます。ムービー レンダー キューには、[Game Overrides (ゲーム オーバーライド)] という設定があります。この設定は、レンダリング時に自動的に品質レベルを [Cinematic] に変更します。こうすることで、[Scalability Override (スケーラビリティ オーバーライド)] 品質を [Cinematic] に設定しても、低画質でありながら、迅速な設定で、シーンでインタラクティブな作業が可能です。そして、ムービー レンダー キューの [Render (レンダリング)] ボタンを押すと、高品質の設定が有効になります。
画像をクリックするとフルサイズで表示されます。
ソース (Source)
ソース パラメータを調整すると、入力されるパーティクルの情報を変更できます。
画像をクリックするとフルサイズで表示されます。
パラメータ | 説明 |
---|---|
Particle Attribute Reader | このデータ インターフェースは、システム内の別のエミッタから読み取ります。 |
Scale Emission by dt | これを有効にすると、エンジンのティック レートが変化しても、ソース データの一貫性を保つことができます。 |
Use Falloff | これを有効にすると、パーティクルのエッジでデータにアンチエイリアスを適用することができます。これにより、解像度が変わってもソースの一貫性を保つことができます。 |
Scatter Density | これにより、解像度が変わってもソースの一貫性を保つことができます。 |
Scatter Temperature | これを有効にすると、入力されるパーティクル ソースの温度属性 fluids_source_temperature を検索します。 |
Scatter Velocity | これを有効にすると、入力されるパーティクル ソースの速度属性 fluids_source_velocity を検索します。 |
Use Radius | これを有効にすると、パーティクル半径 fluids_source_radius に基づいてシミュレーションのすべてのセルをオーバーラップします。これにより、解像度が変わってもソースの一貫性を保つことができます。 |
Density Mult | 入力されたパーティクルの濃度属性に乗算する値を入力します。 |
Splat Size Density | [Use Radius] が無効である場合、パーティクル濃度データを使用してスタンプするセルの個数を設定する値を入力します。最も近いセルを示すには「1」を入力し、最も近いセルと最も近いセルに接しているセルを示すには「2」を入力します。この数値を大きくすると、書き込まれるセルの数が大幅に増えます。 |
Temperature Mult | 入力されたパーティクルの温度属性に乗算する値を入力します。 |
Splat Size Temperature | [Use Radius] が無効である場合、パーティクル温度データを使用してスタンプするセルの個数を設定する値を入力します。最も近いセルを示すには「1」を入力し、最も近いセルと最も近いセルに接しているセルを示すには「2」を入力します。この数値を大きくすると、書き込まれるセルの数が大幅に増えます。 |
Local Space Particles | この値を有効にすると、パーティクルがこのシミュレーションに対してローカルになるように設定されます。 |
Velocity Mult | 入力されたパーティクルの速度属性に乗算する値を入力します。 |
Splat Size Velocity | [Use Radius] が無効である場合、パーティクル速度データを使用してスタンプするセルの個数を設定する値を入力します。最も近いセルを示すには「1」を入力し、最も近いセルと最も近いセルに接しているセルを示すには「2」を入力します。この数値を大きくすると、書き込まれるセルの数が大幅に増えます。 |
テクスチャ
Grid 3D Gas Explosion Cine のテンプレートには、一連の追加パラメータがあります。Grid3D_Gas_CONTROLS_CINE_Emitter に対して [Emitter Summary] を選択します。次に、[All (すべて)] タブを選択して、[Texture (テクスチャ)] セクションを特定します。
このエミッタには、シミュレーションを通じてテクスチャ座標を移動させるシミュレーション ステージが含まれています。付属の MI_RayMarch_Fire_Ramps_Tex マテリアルは、これらの座標を使用してノイズでレンダリングを調節します。
画像をクリックするとフルサイズで表示されます。
パラメータ | 説明 |
---|---|
Texture Smoke Density Gain | ノイズで濃度を調節する値を入力します。 |
Texture Smoke Color Gain | ノイズで煙のアルベドを調節する値を入力します。 |
Texture Fire Density Gain | ノイズで災の影響のオパシティを調節する値を入力します。 |
Texture Fire Color Gain | ノイズで災の色の強さを調節する値を入力します。 |
Texture Scale | ノイズ パターンのサイズを調整する値を入力します。 |
Texture Remap To 0 | このパラメータは自動調整操作を行います。「0」に再マッピングされる値を入力し、エフェクトにコントラストおよびバイアスを追加します。 |
Texture Remap To 1 | このパラメータは自動調整操作を行います。「1」に再マッピングされる値を入力し、エフェクトにコントラストおよびバイアスを追加します。 |
Value Data | テクスチャの影響を [Density (濃度)] または [Temperature (温度)] のどちらに限定するかを選択します。ここで選択したオプションにより、[Value Band Min (値範囲の最小値)]、[Value Band Max (値範囲の最大値)]、[Value Band Sharpness (値範囲のシャープネス)] の各パラメータを適用する方法が決定されます。 |
Value Band Min | テクスチャを適用するシミュレーション データの下限値を設定します。 |
Value Band Max | テクスチャを適用するシミュレーション データの上限値を設定します。 |
Value Band Sharpness | 範囲内でテクスチャがどのように遷移するかを設定します。シャープネス値に「0」を入力すると、範囲内ではゆっくりと遷移し、[Value Band Min] と [Value Band Max] の中間点で完全に影響を受けます。シャープネスの値に「1」を入力すると、データが範囲内のいずれかの部分に該当するとすぐに影響を及ぼします。 |
Loop Duration | 座標がリセットされ、前後に遷移することでストレッチングを回避できます。ループの持続時間を調整する値を入力します。ループの持続時間を長くすると、さらに多くのストレッチングを確認できます。 |
Debug Texture | このオプションを有効にすると、マテリアルがオーバーライドされ、テクスチャリング値のみが表示されます。 |