>   >  Houdini Cook Book:Vol. 100 Vellum Peeling
Vol. 100 Vellum Peeling

Vol. 100 Vellum Peeling

Vellumを使用したピーリングエフェクトを紹介します。

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


EDIT_小村仁美 / Hitomi Komura(CGWORLD)



Vellumで実現するリアル・高速なピーリングエフェクト

VellumはPBDをベースにした、高速な弾性体向けのシミュレーションです。これまでのClothやFEMに比べると、かなり高速に結果を得られるようになっています。また、SOPベースでのセットアップが可能になっており、セッティングの手間もかなり省けるように設計されています。

また、HDAで用意されているVellum関連のノードは、プリセット的に様々な要素を組み上げられるようになっており、シンプルでユーザビリティが高いのも魅力です。これまでは、低速だったため、トライ&エラーの回数も制限されて、なおかつ結果にたどり着くまでのセッティングも面倒なところがあり、割と敬遠されていたように思います。そういった部分を排除することで、アーティストが新たなエフェクトを開拓する道筋ができたのではないでしょうか。

今回のピーリングエフェクトはよく見かけるものですが、これまでよりもリアルに、なおかつ高速に結果を得られるようになりました。弾性体といっても、今回のような薄いものをシミュレーションすることは比較的困難ではありましたが、Vellumを使うことでそれが容易になったのは言うまでもありません。

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

01 Source Flow

今回準備したジオメトリ【A】は、ハイメッシュでディテールのあるものなので、そのまま【1】では非常にシミュレーションに負荷がかかってしまいます。そのため、Poly Reduce SOP【B】を使って、最小限までリダクションします【2】。続いて、コリジョンより布の厚み分、Peak SOP【C】で太らせます【3】




続いて、VOP【D】を使ってNoiseによって"cost"のAttributeを作成します【4】。これは、Edge Fracture SOP【E】でエッジを切り分けをする際に、ばらつきを作り出すために行います【5】。"cost"の値が高いほどカットされる道筋がその部分を通らなくなり、低いほど通りやすくなります。すなわち、値が高ければ大きな塊になり、低ければ細かくカットされやすくなると言うことです【6】


Edge Fracture SOPでカットする前に、Rest SOP【F】を使い、現状のPositionを"rest"に変換し、VOP【G】を使ってNoiseによってデフォームします【7】。この状態でEdge Fractureをかけて【8】元にもどす【H】ことで、通常よりもうねった形でカットすることが可能になります。

このジオメトリに対し、Group SOP【I】のBounding Boxを使ってPoint Groupを作成します【9】。このPoint GroupからAttribute Create SOP【J】で、"active"と言うAttributeを作成します【10】。ここまでで準備が完了です。

02 Vellum Flow


ソースの準備が完了したら、Vellum Constraints SOP【A】でConstrains TypeをClothに設定し、ジオメトリをVellum用のジオメトリに変換します。このノードは3つのインプットとアウトプットをもっていて、左から、ジオメトリ、コンストレイン、コリジョンになっています。このノードでは、Cloth用にConstraintsを作成しています【1】


続いて、Vellum Constrains SOP【B】でConstraints TypeをWeld Pointsに設定します。これによって、Edge FractureでカットしたエッジがWeldされます【2】。また、Breakingをアクティブにして、Thresholdの値でどのくらいの力がかかったら破れるかを設定します【3】

次に、Vellum Solver SOP【C】でシミュレーションの準備をします。このノードは内部に入ることができ、そこでPOP Force【D】を設定します。これにより、Particleのように力をかけて扱うことが可能になります。また、SOP Solver DOP【E】を使って、SOPで作成した、"active"の値をここに読み込みます。これは、Attributeにアニメーションが入っているため、このように読み込む必要があります。Object Merge SOP【F】で値を読み込み、Attribute Copy SOP【G】でそのまま値を流し込みます。これで、徐々に破れていくようなアニメーションを作成することができます【4】。必要があれば、Vellum Postprocess SOP【H】でジオメトリを整理して、さらにClean SOP【I】で余分なAttributeやGroupを削除し、キャッシュを出力し完成です【J】


次ページ:
03 Operators

その他の連載