>   >  Houdini Cook Book:Vol. 103 FLIP and RBD
Vol. 103 FLIP and RBD

Vol. 103 FLIP and RBD

FLIPとRBDを組み合わせた例を紹介します。

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


EDIT_小村仁美 / Hitomi Komura(CGWORLD)



FLIPとRBDのエミット

今回は、FLIPのシミュレーションとRBDのシミュレーションを同時に行い、それぞれを発生させるようなセットアップを紹介します。ただ、よくあるシミュレーションだと面白くないので、今回は、少し趣向を凝らしたようなアプローチを目指したいと思います。粘性をもった液体と、細かく発生するRBDをいかに制御するかがキーになります。

昨年はHoudini 18が登場し、FLIPのシミュレーションも大きく進化しました。今回は新機能を紹介するわけではありませんが、どんどん進化するHoudiniに置いて行かれないよう習得のモチベーションを保つためにも、新機能はある程度追いかけておいたほうが良いと思います。実際筆者は置いて行かれ気味で、一抹の寂しさを感じています。隙間を見つけて新しい発見を続けていけるよう精進しますので、引き続き本連載をお願い致します。

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

01 Source Setup

ソースのセットアップを解説します。


まず、FLIPのシミュレーション用にソースの作成を行います。今回は通常のFLIP発生源と共に、RBDも同時に発生するようなしくみを作ります。まず、発生源になるSphereに対して、サーフェスの下方向をエリアにするAttributeを作成します【A】。Wrangleを使って-Y方向と法線方向の内積から作成します【1】。そのエリアから、Particle【B】を発生させます。このタイミングが、RBDの発生タイミングになるため、必要な量になるように調整します。それに対してPscaleをランダムな値で作成し、SphereなどのRBD用ジオメトリをCopyします【2】。続いて、"name"のAttributeを作成します。今回の場合は、1フレーム1つ以下の発生なので、フレーム番号を入れ込んでいます。それ以上発生する際は、"id"などと組み合わせると良いと思います【C】

次に、ソースを自然に揺らすためにアニメーションします【D】。キーフレームを打つのは面倒なので、Motion FX【E】を使ってアニメーションを追加します【3】。この発生源と先ほど作成した発生源をFLIP Source【F】を使ってソース化します。さらに、余分な部分のPoint【G】取り除いてソースの完成です【4】

最後に、CollisionになるジオメトリをVDB from Polygons SOPを使ってSDFに変換します【H】【5】。このようにすることで、きれいなCollisionを行うことができます。


02 Sim Flow

シミュレーションのフローを解説します。


シミュレーションのセットアップをします。まず、CollisionとなるGroud PlaneとStatic Object【A】を準備します。Static ObjectのCollision設定は、Volume Sample【1】を使って、SDFから生成します【2】。続いて、RBD Fractured Object DOP【B】で、Particleから作成したソースからRBDを発生させます。このとき、Creation Frameは毎フレームにします【3】。こうすることで、"name"によって切り分けられたRBDを作成することが可能です。

次に、FLIP Object DOP【C】を作成し、Volume Source DOP【D】でエミットの準備をします。FLIP Solver DOP【E】を作成し、Volume Limitを設定してください。今回のような場合、遠くに飛ぶようなFluidが作成される可能性が十分考えられますので、範囲は最小限にしたほうが軽量化できます。液体自体にViscosityを設定し粘性を加えます【4】。これで、RBDと同時に発生させることができます【5】

また、Collisionにまとわりつくような雰囲気を作りたいので、Stickyの設定を追加します【6】。これにより、Collisionに張り付きます【7】。最後に、Collision Fieldがきちんと生成されているか、ビジュアライズして確認することも大事です【8】


次ページ:
03 Cache Flow

その他の連載