| On this page |
Note
COP PyroはCOPであるものの、使用するにはDOPレベルの権限が必要になります。 つまり、COP PyroはHoudini Coreでは 利用不可 で、Houdini FX、Houdini Apprentice、Houdini Indie、Houdini Educationでは利用可能です。
炎や煙のシミュレーションは、通常ではSOPsやDOPsでボリュームデータを生成することで行なわれます。 COP Pyroは、無限のタイムラインで炎や煙を生成する非常に高速な2D手法です。 COP Pyroは、Sparse GPU Pyroソルバを作成して、炎や煙の外観をリアルタイムで調整することができます。
Copernicusでのブロック ¶
COPネットワークでのブロックは、SOPネットワークでのコンパイルブロックと同様に動作し、複数のノードをカプセル化して、それらを単一オブジェクトのように扱うことができます。
ブロックは通常、Block Begin COPノードと
Block End COPで構成され、その間に他のノードを配置します。
Simulate をオンにすると、シミュレーションモードが有効になり、プロセスがフレームバーと連動し、メモリ内のキャッシュ化とチェックポイント化が可能になるため、再クックとスクラブ操作が高速になります。
もう1つ重要な機能は、Live Simulationです。 これは、Houdiniがほぼリアルタイムで継続的にアニメーションできるようにし、変更内容に対してリアルタイムにフィードバックさせることができます。 これは、ビデオゲームの世界に似ており、あなたが積極的に何かを押しているかどうかにかかわらず、物事が再生されます。 このモードはプレイバーに連動していないものの、常に再クックしています。 そのため、ネットワークに変更を加えると、その結果がビューポート内でライブ再生されます。
COP Pyroを理解する ¶
Pyroブロック ¶
Pyroブロックは、Flowブロックと同様に機能します。
とはいえ、Pyro Disturbance COPや
Pyro Turbulence COPといった包括的なユーティリティを備えているので、リアルな炎や煙のシミュレーションを作成することができます。
Pyroブロックは、Pyro Block Begin COPとデフォルトでシミュレーションモードが有効になっている
Pyro Block End COPで構成されており、
density、v、temperatureの入出力が既にセットアップされています。
とはいえ、他のブロックと同様にシミュレーションを無効にしたり、固定反復回数で実行したり、ライブシミュレーションを有効にすることができます。
Tabメニューを使用して Pyro Block を配置すると、Pyro Configureも作成されることがわかります。
他のCOPノードとは違って、PyroのVDBは疎な性質を持つため、明示的なアクティベーションが必要になります。
Pyro Configure COPは、
density、v、temperature用の空っぽのVDBを作成します。
ポイントまたは他のソースをactivate ptsに接続することで、特定の領域をアクティブにすることができます。
アクティベーションは処理が重く、通常だとサブステップ毎に1回だけ実行すれば良くて、ソースが追加される度に実行する必要がないので、
このPyro Configure COPはPyroブロックの外に置かれていることに注目してください。
また、このPyro Configure COPはシミュレーションの Resolution を制御する場所でもあります。
デフォルトの Resolution は、炎や煙を高速に生成するために100に設定されていますが、これを上げることで品質を向上させることができます。
ソーシング ¶
ポイントをVDBにソース変換するには、Pyro Source from Points COPまたは
Pyro Source from Layer COPを使用します。
これらのノードを使用することで、シミュレーションに
densityとtemperatureを断続的に追加することができます。
これらのノードには、 Noise や Distortion を調整して、炎や煙を崩してその外観を改善させることができるパラメータがあります。
浮力が組み込まれているFlowソルバとは異なり、Pyroソルバでは、Velocityを駆動させるためにPyro Buoyancyといった明示的なフォース系ノードが必要になります。
Velocityが大きくなると、煙は上昇し続けます。
つまり、煙の柱が永遠に上昇し続けるようにするには、より多くの時間とメモリを消費することになります。
これは、
Pyro Block Begin COPの Clip パラメータを設定することで制御することができます。
これによって、カメラの視野を超えてシミュレーションが無限に広がるのを防ぐことができます。
可視化 ¶
COP PyroがSOP PyroやDOP Pyroよりも優れているもう一つの利点は、シミュレーション中にネットワーク内を可視化できることです。
例えば、VBD Visualize Slice COPを使用することで、個々のスライスを確認することができます。
Offset パラメータを使ってスライスを前後に移動させてシミュレーションの異なるスライスを確認したり、プレイバーを前後に動かして時間の経過に伴う変化を確認することができます。
また、
VBD Visualize Velocity COPを使用することで、Velocityの軌跡を確認することができます。
ライティング ¶
Pyro Block End COPの後に
Rasterize Volume COPを取り付けることで、シミュレーションを可視化することができますが、ライトは手動でセットアップする必要があります。
Pyroライトには、
Pyro Light Ambient COP(全方向ライト)、
Pyro Light Scatter COP(VDB内部の光の散乱)、
Pyro Light from Points COP(指向性ポイントライト)の3種類が用意されています。
これらのライトは累積的に作用するため、すべてのライトをネットワーク内でチェーン接続することができます。
キャッシュ化 ¶
Copernicusは、メモリが不足するとデータをCPUにフラッシュします。 この動作のタイミングは、 Edit ▸ Copernicus Settings の Video RAM で制御することができます。 メモリ管理とキャッシュ化の詳細は、クックを参照してください。
リアルタイム調整 ¶
シミュレーションを構築する際、必要に応じてPyro Block End COPの Cache Simulation トグルをオフにすることで、
Pyro Disturbance COPなどのPyroノードをリアルタイムで調整できるようになるので、その変更の効果を即座に確認することができます。
この方法では、スクラブで過去に遡る際にフレーム1から再計算が必要になりますが、Copernicusはこれを処理するのに十分な速さです。
COP Pyroの使い方 ¶
COPsでPyroを使う場合、通常はゼロからPyroソルバを構築する必要はありません。 Houdiniには、学習目的でノードネットワークを配置するPyro Configureサンプルがいくつか同梱されています。 これらのサンプルは、CopernicusのTabメニューから利用することができるので、COPsでPyroを使用する場合にはそのサンプルから始めるのが良いです。 これらの事前に構築されたネットワークを編集することで、独自の炎や煙のシミュレーションを作成することができます。
上昇する濃い煙の雲の単純なセットアップです。 シーン内で煙を作成する際のテンプレートとして利用することができます。
高速に移動する炎の最小限のセットアップです。 シーン内で炎を作成する際のテンプレートとして利用することができます。
上昇する火の玉のセットアップです。 Divergence(発散)を利用してPyroシミュレーションを駆動させる方法を説明しています。
ゆっくり移動する単純な火炎セットアップです。 シーン内で火炎を作成する際のテンプレートとして利用することができます。
下降するドライアイス効果のセットアップです。
Pyroでコライダをセットアップして、ケーブルを利用してpassthroughポートに複数のコネクションを送信する方法を説明しています。
また、煙のラスタライズを深度マップに制限する方法も説明しています。
3色の煙が相互作用するセットアップです。 フィードバックワイヤを使用してシミュレーションにフィールドを追加する方法も説明しています。