シェルフツールを使ってシミュレーションを作成する方法をご紹介いたします。
原文はこちら:http://www.sidefx.com/docs/houdini/pyro/pyro
方法
目的... | 行うこと |
煙やpyroのエフェクトを作成する |
|
煙/炎の最大サイズを大きくする | デフォルトでは、自動サイズ変更ボックスの最大サイズはPyro / Smokeオブジェクトのサイズを反映します。 ダイナミクスネットワークでオブジェクトを選択し、PropertiesタブをクリックしてSizeparameterを設定します。 |
急速に変化するシミュレーションのサイズ変更を調整する | resize_containerであるGas Resize Fluid Dynamicノードの[Boundary]タブで[Padding]パラメータを増やします。 シミュレーションの現在のサイズの周りに余分なスペースを追加して、リサイズノードがサイズを変更する前に急激に増加するシミュレーションがコンテナのエッジに当たらないようにします。 |
Pyro ノードネットワーク
ネットワーク | 重要なノード | |
ソースオブジェクト内では、ソースボリュームを作成するサーフェスノードが追加されます。 | Fluid source node |
Pyroシミュレーションを実施するのに適したボリューム(温度と燃料)に初期ジオメトリを変換します。 このノードのパラメータを使用して、ソースボリュームなどのノイズを制御することができます。 Fluid sourcing にて多くの情報を確認可能です。 |
DOPネットワークでは、ツールがダイナミクスノードを設定してpyro / smokeオブジェクトを作成し、ジオメトリネットワークからソースをインポート、Pyroソルバーに接続、pyroコンテナを自動的にサイズ変更します。 | Pyro/Smoke object | 煙/炎オブジェクトの3D解像度、サイズ変更可能なコンテナの最大サイズ(デフォルト)、およびコンテナが両側で開いているかどうかを制御します。 また、オブジェクトの内容を視覚化するための広範なコントロールも備えています。 |
Pyro solver または Smoke solver(エフェクトに依存) |
シミュレーションがどのように発展するか(熱によってどのくらいの浮力が発生するかなど)、ノイズ、炎の形状などのルールを制御します。 また、ソルバによって作成された力を視覚化するための広範囲な制御(shreddingなど)もあります。 | |
このツールは、オブジェクトレベルの表示とレンダリングのためにシミュレーションの出力をインポートする別のオブジェクトも作成します。 | DOP Import | 1つのDOPインポートノードはレンダリングのためのすべてのフィールドをインポートし、もう1つはビューポートに表示するための高速の表示関連フィールドのみをインポートします。 |
Fields
- Multifieldは熱(炎)と密度(煙)を可視化します。
- ソースはシミュレーションに温度と燃料を追加します。
- 燃料が存在し、温度がある点を上回る場合、「燃焼」が生成されます。
- 燃焼は熱(目に見える炎)を作ります。 燃え尽きると、燃費効率が悪くなります。
- Gas released = expansion(ガス放出=膨張)
- 冷却速度、散逸
- Velocity = start velocity + temperature * buoyancy(速度=開始速度+温度*浮力)
- Advection(移流)は温度、熱、密度、燃料に影響する*
Houdiniでは、temperature = buoyancy, velocity = momentum(温度=浮力、速度=運動量)
Temperature(温度)は、シミュレーションを実行するための最も重要なフィールドの1つ(Velocityと一緒に)で、シムの振る舞いや見た目を大幅に拡張するコントロールです。レンダリングやビジュアライゼーションによく使用されるわけではありませんが、内部的には多くの力とシェイプオペレーター(Buoyancy/浮力、Shredding/破砕、Dissipation/散逸など)が発生します。
災シミュレーションを作成するとき、その制御は燃焼モデルに拡張されます。 Temperature Diffusion(温度拡散)とCooling Rate(冷却速度)はtemperature field(温度フィールド)に直接作用し、速度とシミュレートされたディテールにおけるシミュレーションの減衰を大幅に制御します。
衝突および拡張フィールド
Smoke / Pyroソルバーを使用すると、衝突フィールド(煙/災が避けるエリア)と拡張フィールド(シミュレーションに外向きの速度を加えるエリア)を追加できます。
これらのツールは、Pyroツールが燃料源として使用するのと同じSOPボリュームセットアップを作成しますが、ソルバに燃料フィールドを提供する代わりに、衝突または拡張フィールドを提供します。
目的... | 行うこと |
オブジェクトを衝突フィールドに変換する |
|
オブジェクトをフィールドフィールドに変換する |
|
拡張フィールドは、フィールド内のシミュレーションに外向きの速度を追加します。 その後、その速度は移送され、連続的な外向きの力を生成します。 これは、あなたのシミュレーションを素早く爆破することができます
爆発を作成しているのであれば、それは望ましいことかもしれませんが、もっと微妙なことを望むなら、次のことを試すことができます:
- ソルバーの後にDrag force ノードを追加して、velocity が永遠に続くのを防ぎます.
- 拡張ソースを縮小します(Source volume DOP > Scale Source Volume)、またはアニメーションをオン/オフします。
DOPのフォースを使って煙/火を押し込むこともできます。 しかし、ソルバーのプロジェクトの非発散ステップによって、力の効果が弱められます。 拡張フィールドをソルバーへの直接入力として設定するため、ソルバは拡張フィールドをプロジェクトの非発散計算から除外することができます。
pyroを使用してDOPジオメトリのポイントを運ぶ方法
pyroシミュレーションのフィールドを使用して、DOPジオメトリのポイントを運ぶことができます。
- Smokeコンテナに編集可能なジオメトリデータを添付します。 編集可能なジオメトリを作成するには、SOP Geometry DOPを使用してジオメトリをインポートし、Copy Geometry DOPを使用してジオメトリをコピーします。 次に、Apply Data DOPを使用して、ジオメトリを煙オブジェクトDOPにアタッチします。 コピーしたジオメトリのデータ名をジオメトリに設定します。
- Pyroソルバー(3番目の緑色の入力)のAdvection入力にガス流を接続します。Gas Advect のGeometryパラメータを編集可能なジオメトリのデータ名に設定する(Geometry)Velocityフィールドをvelに設定し、Collisionフィールドを衝突に設定します。
Smoke solver vs. Pyro solver
Houdiniには、グリッドベースの煙/災シミュレーションのソルバが2つ含まれています。 Smokeソルバは、基本流体シミュレーションエンジンを実装します。 基本的な煙の効果をシミュレートしますが、火をシミュレートしません。 PyroソルバはSmokeソルバの上に構築され、災や制御を追加します。
Pyro FXシェルフタブのツールで作成されたハイレベルのエフェクトは、Pyroソルバを使用します。
Temperature diffusion(温度拡散)とviscosity(粘性)はブラー
Temperature diffusion(温度拡散)は温度フィールドでのぼけです。 増やすと、高温と低温の境界がぼやけて、ソースからシステムへの温度の拡散が増えます。
Viscosity(粘性)は速度フィールドのぼけです。 これを増やすと、シュレッディングや渦巻き(小さなピンホイールタイプの渦)などの速度変化がぼやけます。 好ましい見た目を持っていても、速度ノイズがあまりにも大きければ、それをぼかしていくために少しViscosity(粘度)を加えてみてください。
これらのコントロールはフィールドをぼかすので、高い拡散/粘度値はシステムの温度/速度を低下させ、温度/速度の高い領域(例えば、ソースの近く)と周囲の(通常はるかに大きい)領域とを平均化しているためです。
Pyroエフェクトをレンダリング
- レンダリングする前に、コンテナの分割サイズを小さくする(つまり、解像度を上げる)ことができます。
- マイクロポリゴンエンジン(Mantraレンダーノード>Propertiesタブ>Renderタブ>Rendering Engine)を使用してPyroエフェクトをレンダリングします。
- ライトのシャドウパラメータ(Light object > Shadowタブ)を設定し、シャドウタイプをデプスマップシャドウ、ピクセルサンプルを2×2、シャドウクオリティを2に設定します。
- レンダーの詳細を取得するには、レンダラーのVolume step size を小さくしてみてください(Mantraレンダリングノード>Propertiesタブ>Samplingタブ)。 レンダリングの詳細が不足している理由がPyroボリュームのコンテナが低解像度である場合、変化はありません。