ここでは二つの独立したシミュレーションを作成し、片方をもう一方によってコントロールする方法を紹介する。具体的には、Pyro (流体)による煙のシミュレーションと、パーティクルのシミュレーションを別々に作成、煙の動きでパーティクルをコントロールできるようにする。
これは、Houdini Advent Calendar 2016 の 25日目の記事です。
使用したビルド: 15.5.673
シーンファイルへのリンクは一番下にあり。
1. Pyro Smoke の作成
初めに、もとになる煙を作成する(ここの1.と同じ)。
- Create シェルフから Sphere を作成 (Torus でも Box でも何でも良い)。
- 作成したオブジェクトを選択したまま、Pyro シェルフから Billowy Smoke を実行。
再生すればこんな感じ。
- sphere_object1: 最初に作成した形状
- pyro_sim: この煙のシミュレーションのネットワーク
- pyro_import: シミュレーションの結果を表示・レンダリングするためのボリューム(形状)。
2. 独立したパーティクルシミュレーションの追加
今の状態で、例えば Particles シェルフの Location Particle Emitter をクリックすれば、パーティクルシミュレーションのネットワークは、既に存在する pyro_sim の中に統合されてしまう。そうではなく、別のシミュレーションとして作成するには以下の手順で行なう。
- 画面右下の脳みそのようなアイコン () をクリックし、Create New Simulation を実行。
- この時点で Particles シェルフの Location Particle Emitter をCtrl キーを押しながらクリック。
- パーティクルエミッターが原点に作成され、このエミッターにまつわるシミュレーションネットワークは、/obj/AutoDopNetwork 以下に作成された。
- 再生してみる。
- AutoDopNetwork 内に行き、gravity1 の バイパスフラグ (ノードの左側の黄色いフラグ) を有効にし、重力の効果を無効にする。
- 再び再生してみる。
3. パーティクルをPyroで動かす
次にパーティクルが煙の動きによって動くようにする。
- パーティクルシミュレーションを構成する /obj/AutoDopNetwork 以下、location ノードと popsolver1 ノードの間に POP Advect by Volumes ノードを挿入する (厳密には merge2 の下流)。
- popadvectbyvolumes1 ノードのパラメータビューに行き、Parameters タブ以下の SOP テキストフィールドに、 /obj/pyro_import/import_pyrofields を指定。
再生をすれば以下の通り。
シーンファイル
- シーンファイル: 2sims.zip (202KB)
最終更新: 2020-12-23
0 件のコメント:
コメントを投稿