>   >  Houdini Cook Book:Vol. 101 Bind Vellum
Vol. 101 Bind Vellum

Vol. 101 Bind Vellum

Vellumを使用した拘束のアプローチを紹介します。

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


EDIT_小村仁美 / Hitomi Komura(CGWORLD)



Vellum Constraint

前回に引き続き、今回もVellumを紹介していきたいと思います。Vellumは拘束な弾性体のシミュレーションが可能ですが、その高速さから様々なセッティングを試すことが容易にできます。今回は、Vellumが表現可能な中でも面白く、今までのHoudiniでは難しかった表現にチャレンジしていきたいと思います。

まず大きなパーツとして、バルーン状のものを作成していきます。さらに、それをロープで拘束するような表現をしていきたいと思います。どちらの表現もVellumで行うことで、かなりシンプルなセッティングでシミュレーションまでたどり着くことが可能です。

Vellumの特徴として、衝突判定はあくまでもParticleベースで行い、それらをConstraintで結びつけるようにすることで、様々なマテリアルを表現できることがあります。そのため、衝突判定自体が非常に高速であること、Constraintのセッティングがあらかじめ多数用意されていることもあいまって、非常に手軽にセットアップすることができます。また、バルーンやロープもVellum同士でシミュレーションすることで、さらに簡略化することができます。今回は、2つの要素を混ぜてシミュレーションする際のアプローチにも注目してください。

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

01 Balloon Source Setup

バルーンソース作成のフローを解説します。

まず、バルーン状にするジオメトリを準備します。ベースとなるジオメトリを準備したら【A】、VDB from Polygons SOP【B】を使ってVDBのSDFへ変換します【1】。これをVDB Reshape SDF SOP、VDB Smooth SDF SOPを使ってある程度なめらかにして、PolygonへConvert VDB SOPを使ってコンバートします【C】。これによって、ある程度ディテールが除外されて、シミュレーションの邪魔になる細かな突起などをなくすことができます【2】

次に、Remesh SOP【D】を使って、均一なPolygonへ変換します【3】。この工程は、Vellumをきれいに、低コストでシミュレーションするために重要なポイントです。無駄なディテールはシミュレーションの邪魔になるばかりでなく、高コストになるだけで、あまり良い結果を得ることができません。当然、シワなど、シミュレーションでできるディテールが欲しい場合はRemeshの時点である程度細かくするなどの対応は必要ですが、ある程度均一なPolygonになっているに越したことはありません。最後に、この工程が重いようなら、File Cache SOP【E】などで中間キャッシュをとっておきます。ジオメトリの準備ができたら、初期位置へレイアウトしておきます【4】

02 String Source Setup

今回、拘束用の紐は、レイアウトしたジオメトリからプロシージャルに生成できるようにセッティングします。まず、VDB【A】を使って、ベースのジオメトリを包むような形状へ調整します【1】。次に、そのPolygonをReduce SOP【B】を使って、紐をイメージしながら数を調整します。PolygonのEdgeが紐になるイメージです【2】

これをConvert Line SOP【C】でPolygon Lineに変換して、Resample SOP【D】でPointを追加します。また、それぞれ離れているPointをFuse SOP【E】でつなぎ合わせます。これがバルーンを拘束するための紐になります。次に、ReduceされたPolygonをGroup SOP【F】のNormal方向で、-Y方向を向いているPointを抽出します【3】。このPointに対し、For Loop【G】を使って段階的にくっついていくようなアプローチで、最終的に数箇所にまとまるようなしくみを作ります【4】

ここは複雑なので、参考データをよく確認してもらうのが良いと思いますが、垂直に下におろしても問題はありません。見た目的な問題でこのようにしています。このPointをAdd SOP【H】を使ってつなげ、Resample SOPやConvert SOP【I】などをつかって、なめらかなカーブに変換します【5】


Group Expression SOP【J】をつかって、今作ったカーブの最初と最後のPointをグループにします。最後に、Fuse SOP【K】を使って、網状の紐と垂直の紐をつなげます。Fuse SOPでつなげる際に、Pointが交差する箇所をグループにしておくと、後で結び目を作成する際に役立ちます【6】


次ページ:
03 Vellum Flow

その他の連載