On this page |
flameフィールド ¶
flame
フィールドは、炎と爆発のシミュレーションで重要な部分です。
このフィールドには、流れによって輸送される(燃料などの)反応物の残りの寿命を格納します。
このフィールドは、ソースから補充され、Pyro Solverは、( Flames タブの設定に基づいて)その値を減らし、目的の出力を生成する役割を担います。
反応物が枯渇に近づくにつれて、それらの反応物から色々な 出力 を生成することができます。
これらの反応物は、煤煙(すす)を放出し、温度を上げ、爆発を引き起こすことができます。
さらに、flame
を emission フィールドとして使用することで、視覚化とレンダリングをすることができます。
単純な例を挙げると、“若い”時に大量の熱を放出してから、使い果たされると煤煙(すす)を放出し始める反応物が欲しいとします。 Pyro Solverの Flames タブの出力パラメータを適切に設定することで、これを実現することができます。 詳細は、出力を参照してください。
レガシーPyroとの違い ¶
Houdini 18以前は、燃焼を伴うPyroシミュレーションは、fuel
フィールドを使用していました。
熱い領域のfuel
が発火して、瞬間的にburn
フィールドを発生させます。
次に、このburn
フィールドがheat
フィールドを更新して、煙の放出部分を取り込みます。
最後に、累積したheat
フィールドと瞬間的なburn
フィルドから出力が生成されます。
お勧めの新しいワークフローは、SOPsで瞬間的なburn
を生成し、それをソースの一部として取り込む必要があります。
この分かりやすい例が、Sparse Fireballシェルフツールです。
-
burn
ボリュームを起爆のソースとして作成します。 -
この瞬間的な
burn
は、オブジェクトのflame
フィールドとdivergence
フィールドにマージします。
この手法は、予測可能で制御しやすいメリットがあります。
例えば、爆発性の燃料を上昇させたい場合は、正確に望み通りの速度でburn
ソースをアニメーションすることができます。
燃料ソースから火炎を広げる必要ある場合には、Pyro Source Spread SOPを使用すると良いでしょう。 このノードは、入力のポイントクラウドから拡散の挙動をシミュレーションするので、特に広がる炎を制御するのに役立ちます。
Tip
Sparse Pyro FX シェルフのSpreading Fireツールは、オブジェクトの表面に広がる炎のシミュレーションをセットアップすることができます。
寿命 ¶
Pyroのflame
値は、ソース設定を介して増加します。
Volume Source DOPでのflame
フィールドのソース設定のお勧めのマージオペレーションは Maximum です。
これによって、ソースからflame
値が更新されるわけですが、 Add オペレーションで起こりがちな過剰な累積が回避されます。
Pyro Solverは、流れと共にflame
フィールドを移流させます。
さらに反応物を使い果たして、有効にした出力を生成し、それに応じて、flame
フィールド内の値が減らされます。
Pyro Solverが反応物を使用するレートは、 Flames タブの Flame Lifespan パラメータで制御します。
値が大きいほど反応が 遅く なります。
もっと正確に言うと、 Flame Lifespan パラメータの値を2
にすると、これは初期のflame
値の1
を完全に使い果たすのに2
秒かかることを意味します。
Note
一般的には、flame
値のf
を使い果たすのにL*f
秒かかります。L
は Flame Lifespan です。
出力 ¶
反応物が存在する(flame
値がゼロでない)限り、反応がシミュレーション中に継続的に起こります。
これらの反応の直接的な効果は、(上記の寿命セクションで説明しているように)反応物の可用性の低下です。
オプションで、反応からシミュレーションに影響を与える様々な出力を生成することもできます。
例えば、これらの出力は、ガスの温度を上げたり、爆発を誘導させることができます。
Pyro Solverの Flames タブのパラメータを使って、これらの出力の特性を制御することができます。
設定可能な3つの出力は、 Smoke 、 Temperature 、 Expansion です。
これらの出力は、それぞれdensity
、temperature
、divergence
のフィールドに影響します。
各出力には、生成を制御するための独立したパラメータセットが備わっていて、 Flame Range の基本乗数、flame
フィールドをリマップするオプションで構成されています。各ボクセルで生成される出力は、以下のように計算されます:
-
flame
値は、 Flame Range から0-1
の範囲にフィットされます。 Remap Flame を有効にすると、前の工程で再フィットさせた結果でさらに Flame Ramp が評価されます。Note
Flame Ramp の端点がゼロでない場合、ランプのその側にあるすべての
flame
値も、それぞれの出力を生成します。 -
リマップした結果がベース量で乗算されて、出力値が取得されます。このベース量は、 Smoke では Emission Amount 、 Temperature では Temperature Amount 、 Expansion では Expansion Rate に該当します。
-
出力値は、ターゲットフィールドにマージされます。このターゲットフィールドは、 Smoke では
density
フィールド、 Temperature ではtemperature
フィールド、 Expansion ではdivergence
フィールドに相当します。
設定可能な3つの出力のそれぞれの詳細は、以下で説明しています。
Smoke ¶
Smoke 出力は、炎や爆発から煤煙(すす)を放出するのに役立ちます。
この出力は、density
フィールドに寄与します。
Emission Amount は、煙の生成に関連した基本乗数で、生成される煙の可視の厚みを制御します。
出力をターゲットフィールドにマージする方法が2通りあります: Max と Add 。
Merge Method を Max に設定すると、最終のdensity
結果は、フィールドの現行値と計算された出力の最大値になります。
Merge Method を Add に設定すると、出力は、タイムステップで正規化されて、density
フィールドに加算されます。
このモードでは、 Emission Amount は、 標準フレーム (1/24
秒)毎にdensity
フィールドに加算する量を制御します。
Max モードのメリットは、まだ飽和していない領域にのみ煙を放出し、density
値が無制限に肥大化してしまうのを回避できることです。
既に存在する煙の量を考慮せずに煙を注入したいのであれば、代わりに Add モードを使用します。
Temperature ¶
Temperature 出力は、temperature
フィールドが変更された時の発熱反応の効果をシミュレーションすることができます。
この出力は、爆発で非常に役立ちます。火の玉に運ばれた反応物は、temperature
フィールドを高温のままに上昇し続けるようにすることができます。
Temperature Amount は、出力の全体的なスケールを制御します。
Smoke 出力と同様に、出力をターゲットフィールドにマージする方法が2通りあります。
Add は、ここでも同じ動作をします: (タイムステップを補正した後に)出力がtemperature
フィールドに加算されます。
Pull モードでは、タイムステップに依存しない方法で、出力をtemperature
値にブレンドします。
Strength パラメータは、そのブレンドの割合を制御し、値が大きいほど出力に近くなります。
Pull モードに設定すると、出力が現行値を超えた領域でのみtemperature
フィールドが影響を受けます。
これによって、反応は周辺のガスを加熱することができると同時に冷却しないようにすることができます。
Add と比べてこのマージメソッドのメリットは、ガスを反応温度までしか加熱できないようにすることができる事です。
Expansion ¶
Expansion 出力は、外向きのVelocityをシミュレーションに取り込んで、起爆以降も爆発を継続させることができます。 この出力は、火の玉を上昇させるのに特に役立ちます。 Velocityを加算することで、煙に“ローリング”効果が発生し、制御可能な方法で火の玉の膨張を続けることができます。
Expansion は、divergence
フィールドを変更することで誘導されます。
シミュレーションに対するこのフィールドの影響に関する情報は、Pressure Projectionのヘルプを参照してください。
Expansion Rate は、この効果の全体的なサイズを制御します。
値が大きいほど、もっと急速な爆発が生成されます。