記事の目次

    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

    [[SplitPage]]

    03 Operators

    主要ノードを解説します。

    ●Vellum関連ノード

    今回紹介するノードは、Vellum関連のノードです。これらは、主にHDAで構成されています。

    特に重要なのが、Vellum Constrains SOPです。このノードは、ジオメトリをVellum用に変換するための機能をもっており、その名の通り、最も重要なConstraintsを作り出しています。中央のアウトプットはConstraintsが出力されていますが、ここが性質などを決定する重要なAttributeを備えています。

    Vellum Solver SOPは、主にDop Networkを内包して構成しています。 その内部でVellumを生成するためには、ジオメトリの他にConstraintsが重要になってきます。これを手動で作成するのはかなり骨が折れる作業なので、これらのHDA群は非常にありがたい存在です。

    Vellum Constraints SOPは、Constraints Typeを変更するだけで、主な設定を完了することができる設計です。ClothやBalloon、SoftbodyにGrain、Hairに至るまで、このノードが要になります。その他にもユーティリティ的な役割をする、WeldやGlueなども完備しています。それも、Constraintsに一任するという設計が重要でしょう。


    • 「Houdini COOKBOOK +ACADEMY」
      Houdiniを基礎から楽しく学ぶオンライン講座

      公開日程:毎週金曜日公開(予定)
      価格:1,200円(税込)
      ※第一回「Houdiniの基本概念とインターフェイス」は無料公開中
      受講対象:Houdiniをこれから学びたい方、Houdiniの勉強で挫折した方など
      cgworld.jp/special/houdinicookbookacademy