On this page |
Pyroとは、Houdiniのボリューム流体シミュレーションパッケージのことです。 Pyro Solverは、炎、煙、爆発の動きを取得するために使用しますが、霧や雪崩などの他の流体のような現象をシミュレーションする際にも使用することができます。
Note
FLIPとは対照的に、Pyroは、流体を追跡するのにパーティクルを使用しません。 パーティクルは表面計算で非常に役立つので、Pyroは液体のシミュレーションにはあまり適していません。
シェルフツールを使ってPyroをはじめよう ¶
Simple FXシェルフのツールは、Pyro Solver SOPを使用したPyroシミュレーションネットワークを生成します。 このPyro Solver SOPは、PyroダイナミクスビルディングブロックをSOPレベルでラップしたものです。 これらのツールを使えば、高速で使いやすいユーザ操作ができて、手動でダイナミクスネットワークを構築する手間を回避することができます。
代わりにPyro FXシェルフのツールを使用すると、サンプルのDOP Pyroセットアップを配置することができます。 これらのツールは、ジオメトリレベルに ソース設定 のネットワーク、シミュレーション用の DOPネットワーク 、そのシミュレーション結果をレンダリング可能オブジェクトリに取り込む 出力オブジェクト を含んだPyroネットワークを生成します。
Tip
Simple FXシェルフのツールは、通常では他のツールよりもシンプルで使いやすく、別にダイナミクスネットワークを必要としないので、はじめるのにうってつけです。
これらのシェルフのツールはどれも即席でシミュレーションを作成するのに非常に便利で、それをさらに修正してシーンと融合させることができます。
関連するPyroノード ¶
ソース設定 ¶
ソース設定は、シミュレーションへの注入量を制御する役割を担っています。 例えば、煙突から煙が昇るアニメーションを作成する際に、その煙突内に次々と煤煙(すす)と熱を追加して行きたいです。 これをするには、まず最初にSOPsを使ってこれらのソースボリュームを生成してから、それらのボリュームをシミュレーションにマージします。
ソースボリュームを作成するお勧めの方法は、Pointアトリビュートをラスター化することです。 この手法だと、簡単にソース量を検査して制御することができます。 さらには、パーティクルシミュレーションの結果を使って煙や炎を放出することができるので、当然ながら(爆弾の破片の軌跡といった)もっと複雑なソース設定にも対応することができます。
|
ソースジオメトリを( このノードには、ソースジオメトリの表面上または内部のどちらにポイントをばら撒くのか、何のアトリビュートを作成するのか、既存のアトリビュートをどう扱うのかといったコントロールが備わっています。 |
|
|
ポイント上の |
|
|
爆発の核心部となるソース用のポイントを作成し、爆発のルックの形を定義することができます。 |
|
|
銃口から発砲されるマズルフラッシュ用のポイントを作成し、マズルフラッシュのルックの形を定義することができます。 |
|
|
爆発の核心部から発生する衝撃波のソース用のポイントを作成し、衝撃波の広がりの形を定義することができます。 |
|
|
軌道、火花、様々なパーティクルシミュレーション、爆発から飛び出すリジッドボディのデブリの生成に使用可能なポイントを爆発の核心部に作成します。 |
|
|
Pyro Trail Sourceノードの軌跡として使用するカーブを生成します。 このノードは、そのカーブの形状を制御することもできます。 |
|
|
Pyro Trail Pathの出力を使用して、カーブに沿って移動するポイントソースを生成します。 |
|
|
入力ボリュームからパックソースセットを作成します。 複数のパックソースセットをソースライブラリにまとめることができます。 そのソースライブラリから個々のエレメントをPyroシミュレーションでインスタンス化することができます。 |
|
|
パックソースセットを使用して、Pyroシミュレーションのソーシング用のSpawn Points(生成ポイント)を作成します。 Spawn Points(生成ポイント)を使用することで、ソースライブラリからエレメントをインスタンス化すると同時にその配置とタイミングを正確に制御することができます。 |
|
|
Spawn Points(生成ポイント)からソースインスタンスポイントを作成します。 Pyro Solver SOPは、これらのインスタンスポイントを摂取し、パックソースセットを使用して目的のソーシングを実行します。 |
|
|
RBD Bullet Solverの出力を使用して、粉砕されたピースが直近で離れた領域の付近にポイントソースを生成します。 これは、ビルの破壊のように粉砕されたRBDピースから煙を放出するのに役立ちます。 |
|
|
ポイント上のアトリビュート値にランダムさを加えることで、もっといい感じでリアルな煙と炎のエフェクトを作成します。 |
|
|
DOPsまたはPyro Solver SOPノードに取り込めるようにするために、ポイントとPointアトリビュートからボリュームを生成します。 |
DOPシミュレーション ¶
Pyroダイナミクスネットワークに不可欠なビルディングブロックは、オブジェクト、ソース、ソルバです。 Smoke Object (Sparse)ノードは、必要なすべてのフィールドが入ったシミュレーションオブジェクトを作成します。 Volume Sourceノードは、ソースを取り込んで、そのソースを該当するシミュレーションフィールドにマージする役割を担っています。 最後に、Pyro Solver (Sparse)は、フォースを適用して、流体フィールドを進展させる役割を担っています。
オブジェクト、ソース、ソルバの色々なパラメータを使って色々な煙や炎のルックを表現する方法に関する情報は、Pyroワークフローを参照してください。
|
煙/炎のオブジェクトの3D解像度、シミュレーション領域を制御します。 他にも、オブジェクトの内容を視覚化するための豊富なコントロールが備わっています。 |
|
|
このノードは、ソースネットワークで生成されたSOPボリュームを取り込んで、それをSmoke Objectのフィールドにマージします。 各ソースボリュームをターゲットシミュレーションフィールドに結合するためのマージ処理の方法がいくつか用意されています。 |
|
|
Volume Sourceと同様で、このノードは、ソーシング用にボリュームをシミュレーションフィールドにマージします。 ただし、Volume Instance Sourceはパックソースセットとインスタンスポイントを使用して動作します。 |
|
|
Houdiniには、グリッドベースの煙/炎シミュレーションをするソルバが2つ備わっています。 Smoke Solverは、基本的な流体シミュレーションエンジンを実装しています。 Smoke Solverは、基本的な煙エフェクトに対応していますが、炎をシミュレーションすることができません。 Pyro Solverは、Smoke Solverの上で構築されていて、炎や他のコントロールも追加されています。 Pyro FXシェルフタブ上のツール群で作成されるハイレベルなエフェクトは、このソルバを使用しています。 Pyro Solverには、 |
|
|
炎を除いて煙だけを含んだ単純なエフェクト用ソルバ。 |
|
|
エクスポートとレンダリングができるように(関連オブジェクトのフィールドで構成された)シミュレーション結果をSOPsに戻します。 このノードから取り込まれたボリュームには視覚化情報が埋め込まれないことに注意してください。 しかし、Pyro Bake Volume SOPを使用することで、視覚化データを作成して調整することができます。 |
SOPシミュレーション ¶
Pyroシミュレーションは、完全に単一SOPネットワークで実行することもできるので、コンテキストやディレクトリ間を切り替える必要がありません。 SOPを使ったPyroシミュレーションは、Pyroダイナミクスネットワークの便利ラッパーであるPyro Solver SOPを使用することで可能です。 このノードは、シミュレーションオブジェクトとDOPソルバのパラメータを露出していて、さらにDive Targetが設定されているので、ノードの中に入って、手動でフォースを適用することもできます。 SOPバージョンのPyro Solverは、たいていのシミュレーション表現に十分な機能が備わっているはずです。 さらに、エクスポートされたジオメトリがレンダリング準備できていることを保証するためのビルトインのポストプロセスノードとPyro Bake Volumeノードがあります。
|
高速で使いやすいユーザ操作ができるようにPyroダイナミクスビルディングブロックをSOPレベルでラップしたもので、 手動でダイナミクスネットワークを構築する手間を回避することができます。 |
Simple FXシェルフツール ¶
Simple FXシェルフシェルフ上には、この手法を実証した単純なネットワークを作成するツールがいくつか用意されています。 Tabメニューからでも、これらのツールを見つけることができます。
|
射撃中のピストルの銃口から放たれる閃光を生成します。 |
|
|
球体から上昇する濃い雲のような煙を生成します。 |
|
|
GPU上で完全にシミュレーション可能な爆発を生成します。 |
|
|
GPU上で完全にシミュレーション可能な松明を生成します。 |
|
|
大きく上昇して広がる爆発を生成します。 |
|
|
空中爆発を生成します。 |
|
|
大規模な地面爆発を生成します。 |
|
|
地面の衝撃波を伴って大規模に上昇して広がる爆発を生成します。 |
|
|
Sparse Pyro Solverを使用して焚き火シミュレーションを生成します。 |
|
|
選択したオブジェクトの表面上に広がる炎のシミュレーションを生成します。 |
ポストプロセス ¶
シミュレーションしたボリュームを処理してディスク容量を節約することは重要です。
シミュレーションをディスクに保存すれば、File Cacheを使用してそのシミュレーションを高速に再生することができますが、
ディスク容量を節約したいとなると、Pyro Post-Processノードを使用することで、そのファイルサイズを最適化することができます。
別の方法としては、Pyro Solver SOPの Quick Setups ドロップダウンメニュー内の Optimize Exports メニューオプションでディスクサイズを90%
削減することができます。
|
ディスクに保存できるようにボリュームジオメトリを用意して処理し、シミュレーションされたキャッシュのファイルサイズを大幅に削減することができます。 |
レンダリング ¶
最後の手順は、ビューポートとレンダリングの両方で可能な限り最良のルックを得ることです。
Tip
可能な限り最良のルックを得るには、Houdiniのデフォルトのカラー表示を変更する必要があります。 デフォルトでは、ビューポートはガンマ2.2を使用しますが、これはPyroシミュレーションの表示やレンダリングには適切ではありません。 より正確なカラー表示を使用したいのであれば、シェーディングとレンダリングページのAcademy Color Encoding System (ACES)のセットアップ方法を参照してください。
目的のカラー表示に変更するには、 Open display options ボタンを右クリックして、 Color Correction チェックボックスを有効にしてください。これによって、ビューポートの下部に Color Correction バーが表示されます。
|
ボリュームのビジュアライゼーションを変更する基本的なビルディングブロックノード。 Pyroシミュレーションの出力を扱う場合、シミュレーションのルックを調整するための完全なコントロールセットがPyro Bake Volumeノードに用意されています。 |
|
|
取り込んだPyroフィールドまたは入力ボリュームのビジュアライゼーションを制御することで、レンダリング用のボリュームジオメトリを用意します。
このノードはボリュームに合ったマテリアルも作成するので、この結果のビューポートのビジュアライゼーションはレンダリング結果に非常に近い近似表示になります。
Scatter を有効にすると、Pyro Shaderで使用されている |
|
|
プロダクション品質の煙、炎、爆発を生成するためにレンダーエンジンで使用されるシェーダ。 |