>   >  Houdini Cook Book:Vol.96 Advection
Vol.96 Advection

Vol.96 Advection

Fluidの流れを可視化します。

TEXT_秋元純一 / Junichi Akimoto(トランジスタ・スタジオ/ディレクター)
日本でも指折りのHoudini アーティスト。
手がけてきた作品は数々の賞を受賞している。
代表作に、HIDETAKE TAKAYAMA『Express feat. Silla(mum)』など。
www.transistorstudio.co.jp
blog.junichiakimoto.com


EDIT_小村仁美 / Hitomi Komura(CGWORLD)



H17の新Smokeを利用したAdvection

これまでの連載でも何度か登場してきたAdvectionですが、今回はHoudini 17で新しくなったSmokeを利用して再度解説したいと思います。Houdiniで言うAdvectionは、Fluidの流れをParticleに用いることが主流となりますが、そもそもの単語の意味としては、気象用語の「移流」です。その名の通り、流れに乗って動くイメージです。

このAdvectionを使うことで、様々な表現が可能になります。例えば、筆者がよく用いるパターンで言えば、火の粉や空間に舞うホコリをリアルに動かしたい場合などが挙げられます。キャラクターなどが動いた際に、その空間内に発生する気流に基づいて塵を乗せることで、よりリアルで、かつ簡単に空気感を表現することができるのです。リアルな動きに対してさらに情報量を足していくことで、より説得力のある画づくりが可能になります。

今回は、サブ的なエフェクトではなく、メインになりうるようなものを検討してみたいと思います。エフェクトがプロシージャルモデルとなるようなセットアップを考えていきましょう。

今回のHoudiniプロジェクトデータはこちら

01 Smoke Setup

Smokeのセットアップを解説します。

まず、Collisionになるジオメトリを用意し、それをVDB form Polygon SOP【A】でSDF化します【1】。次に、SmokeのSourceとなるエリアをSphereなどで指定し【B】、こちらもSDFに変換します【2】

この2つのSDFをVDB Combine SOP【C】でIntersectionしている箇所だけをPolygon化します【3】。これをPyro Source SOP【D】でPoint化します。今回は、Volumeで内部まで密度をもったSourceに変換しています【4】

その後SourceエリアをEdit SOP【E】などで変形し、VOP【F】を使って、その差分からVectorを作成しVelocityに変換します。それをAttribute Transfer SOP【G】でSourceのPointへ移します【5】。必要に応じて、densityやtemperatureに対してAttribute Noise SOP【H】を使いNoiseを追加します。最後に、Volume Rasterlize Attribute SOP【I】でVolumeに変換すればSourceの完成です【6】

今回は、Collisionの内部にSmokeを閉じ込めるようにしたいので、Collisionもあらかじめ準備しておきます。DOP内部でも準備できますが、より正確に軽く変換したい場合は、SOP上で準備しておく方が良い場合があります。今回はすでにCollisionをVDBのSDFに変換していますので、それをそのまま利用します。また、HoudiniのSDFは複雑な形状が崩れる場合がありますので、今回はこのままVDBを利用したいと思います【J】。また、ContainerのサイズもCollisionを超えることはないので、あらかじめBouding Box SOP【K】でサイズの指針を作成しておきます。

DOP内では、通常のPyroのセットアップをします。Smoke Object DOP【L】は、SOPで指定したBouding BoxのサイズからContainerのサイズを計測します【M】。Static Object DOP【N】のCollision設定は、Volume Sampleを指定してSDFから作成します【O】。そして内部にSmokeを留めるために、Invert Scanを使ってSDF情報を反転します【P】。シミュレーションをして、きちんとCollisionが取れているから確認します【7】


後は、Pyro Solver DOP【Q】でSmokeの挙動を調整していきます。Velocityを表示して、うねり具合などを確認することも重要です【8】。Densityが隅々まで行き届いていることが確認できたら、シミュレーションの調整をいったん完了とします【9】

次ページ:
02 Particle Setup

その他の連載