03 Vellum Flow
ソースの準備が整ったら、Vellumのセッティングに入ります。まずはバルーンから設定していきます。Tab MenuにはVellum Configure Balloonという設定があらかじめ存在します。これは、Vellum Constraint SOPを2つ使ったものです。
1つ目【A】は外皮をClothの設定にしたもので、Stretchの値を低くもたせることで、ゴムのような伸縮性を表現します。2つ目【B】はPressureを設定したもので、これはすべてのPointをひと続きにつなげたもので、全体で1つのConstraintにしています。こうすることで、全体に均一に圧力を分散するようなしくみをとっています。
この2つのConstraintを組み合わせることで、風船状の表現を可能にしています。次に紐の設定です。こちらはVellum Configure SOP【C】で、Constraint Typeの設定をStringに設定しています。こうすることで、カーブ全体でを紐状のConstraintを作ることができます。同じような設定にHairがありますが、それはこの設定だとFuseしたPointがバラけてしまうので、今回はStringを使用しています。
2つのVellumをVellum Solver SOP【D】へつなぐ際、GeometryとConstraintはそれぞれ別のMerge SOP【E】でつなぐ必要があります。種類が違うのでこのようにする必要があるのですが、もし1つのMergeでつなぎたい場合、Vellum Pack SOPを挟むと解決します。ただ、その後はVellum Unpack SOPでバラす必要があるため、シチュエーションに応じて選択してください。
Vellum Solver SOPの内部では、POP Force DOP【F】を使って、風船に対してだけ浮遊する力を加えています。逆に、紐にだけは重力を加えています【G】。数値は、浮力に対してほど良くなるように、お互いを調整し合います。また、Vellum Constraint Property DOP【H】では、pressureのConstraint【1】にだけ、Rest Length Scale【2】の数値を高くして、膨らむように調整します。
ここには、アニメーションも組み込むことができます。これでVellum I/O SOP【I】でキャッシュを取り完成です【3】。また、Vellum Post Process SOP【J】では、Stretch Stressなどを可視化することも可能です【4】。
04 Render Geometry
最後に、レンダリング用のジオメトリを準備します。今回のように、実際のジオメトリをプロキシ化して簡略化したシミュレーションの場合、最終的なものに戻す必要があります。Houdiniではそういった方法は多数存在していますが、今回は最も簡易的に行える方法として、Point Deform SOP【A】を使用したアプローチを紹介します。
これは、元のジオメトリをシミュレーション前のプロキシジオメトリでキャプチャして、シミュレーション後のジオメトリの形状に変形させるというものです。プロキシジオメトリ自体のトポロジーは同一であることが条件なのと、形状に大きな差がないことが求められます【1】。今回のようなケースでは問題なく変形が行えるかと思います。また、Point Deform SOPは、Wrangleベースの設計になっており、非常に高速です。
次に、StringのVellumの結果をロープ状にします。これは、カーブそのものをPolygonメッシュの状態に生成し直します。今回は、Polywire SOP【B】を使って、カーブに直接厚みをつけます。また、あらかじめ用意しておいた結び目【C】を、Fuseする際に作成しておいたGroupの箇所にCopy【D】などを使って配置します【2】。
これらを合わせてロープの完成です【3】。最後に、めり込みなどが目立たないか確認して完了です【4】。