今やエフェクト制作にとどまらず、ハイエンドな映像制作にはなくてはならないツールとなったHoudini。昨年11月にリリースされた最新バージョンHoudini 16.5でも様々な機能拡張が話題となった。そのひとつである改良されたグルーミングツールについて、ver. 16.5のキービジュアルに登場するタランチュラを例に、SideFXのVFXアーティストが特別にそのTIPSを解説。日本語版をCGWORLD.jpで独占公開する。

TEXT_Sara Rascón Espinoza(SideFX
EDIT_小村仁美 / Hitomi Komura(CGWORLD)
TRANSLATION_株式会社 Bスプラウト / B-Sprout, Inc.


Houdini 16.5 Sneak Peek from Go Procedural on Vimeo.


  • サラ・ラスコン・エスピノーザ/Sara Rascón Espinoza
    VFXアーティスト。現在はカナダ、トロントのSideFXにインターンとして勤務
    www.sararascon.com

タランチュラの体毛をプロシージャルに作成する12のステップ

この記事の目標は、コバルトブルー・タランチュラの本質を捉え、この小さくもゾッとさせられる生き物がまとう繊細な体毛をシーンに描き出すことです。Houdini 16.5の新しくなったグルーミングツールを使用しながら、精密でリアルなルックを可能にするプロシージャルワークフローの理解を深めましょう。また、Houdini独自のプログラミング言語VEXを使い、複雑なカスタムシェーディングを作成する方法も学びます。この方法なら、1本1本のHairの根元から先端まで、色やブレンドパターンを完全にコントロールできます。さらには、シェーダに頼らずにテクスチャマップをインポートすることも可能です。



STEP 01:Densityアトリビュートを使ってFurを追加する

Guide GroomオブジェクトのSkinアトリビュートを使って作成したグルーム。メッシュ上にマスクをインタラクティブにペイントすると、そこにガイドが生成されます。


STEP 02:プロシージャルグルーミング

Houdiniのプロシージャルワークフローの利点は、最初のメッシュやグルーミングツール自体の調整など、あらゆる時点において、任意の上流工程にさかのぼることが可能な点です。Guide Groomオブジェクトは、後でシミュレーションされる初期ガイドを定義します。Hair Generateオブジェクトは、このガイドのカーブに基づいてレンダリング時にHairを生成します。したがって、細かいスタイリングのほとんどはここで行います。今回は特にFrizz、Clumping、Bendツールを使用しました。


STEP 03:Curve Advect

Houdini 16.5で新しく導入されたCurve Advectノードは、 Initialize Guidesノードと同じように機能します。Hair全体の方向を定義できるだけでなく、ジオメトリ上に直接カーブを描画してグルームガイドの流れを個別のパスを使ってコントロールできます。タランチュラのグルーミングには、このCurve Advectノードが有効でした。各脚のHairの方向を、胴体から外に広がるように定義しました。


STEP 04:重複するHairを取り除く

Guide Groom SOPノードでは「Length Adjust」や「Surface Brush」などのブラシツールが使用できます。ここでは、眼窩など、Hairを生成したくない場所のガイドを削除するため「Cut」ブラシが活躍しました。


STEP 05:Guide Collide With VDB

カーブがスキンジオメトリを貫通しないようにするには、Guide GroomまたはHair Generateサブネットワーク内のチェーンの最後に、Guide Collide With VDBノードを作成します。そうすれば、スキンサーフェスからカーブをオフセットまたは一定距離遠ざけることができます。なお、Hair Generateの場合、カーブの一部分(例えば根元に近い部分など)だけを対象に操作できます。


次ページ:
STEP 06:Groom Merge

[[SplitPage]] STEP 06:Groom Merge

Groom Mergeノードも新しい機能で、これを使えば、個別に設定されたグルームオブジェクト複数をまとめて操作できます。タランチュラのプロジェクトでは、Hairを体の部位ごと(腹部、脚、腹板、口など)にグループ分けしました。Guide Groomのカーブをスタイリングした後にGroom Mergeを使えば、複数のシステムをまとめて1つのガイドセットとし、デフォームさせたりシミュレーションしたりできます。さらに、Groom Mergeで作成したグループをHair Generateで選択し、ガイドを滑らかにブレンドするといったことも可能です。


STEP 07:コリジョンをキャッシュする

Guide Groomのレスト状態のスキンのVDBの設定をデフォルトの「From Skin Geometry」としても作業はできますが、レンダリング速度を上げるには、前もってVDBボリュームをキャッシュすることをオススメします。この場合、Tポーズのメッシュとアニメーションメッシュを個別にキャッシュする必要があるため、単純にVDB From PolygonsノードにFile Cacheノードを繋げます。なお、この方法は穴の開いていないメッシュで最適に動作します。穴は必ずふさいでおきましょう。


STEP 08:頂点カラーをディフューズカラーとして使用する

カスタマイズしたカラーパターンをグルームに適用するには、Paintノードを使ってベースメッシュに直接ペイントします。この精度はCdアトリビュートを格納するジオメトリの頂点数に左右されるため、あらかじめジオメトリを細分化しておくと良いかもしれません。

Cdアトリビュートを転送するには、次の方法がベストです。まずFile Cacheノードを使用して、ペイントしたジオメトリをフレーム単位でキャッシュします。それからHair Generateオブジェクト内のFileノードにbgeoファイルを読み込み、ペイントされたCdアトリビュートをAttribute Transferノードを使ってコピーします。キャッシュのbgeoファイルは、デフォームメッシュと一致していなければなりません。つまり、グルーミングに初めに使用した静的なTポーズジオメトリは使えません。Tポーズのメッシュを最初にペイントした場合は、Paintノードをコピーして、デフォームメッシュの下に貼り付けます。

STEP 09:Hair Generateにテクスチャマップを読み込む

Attribute Wrangleを作成し、最初のインプットに上のHAIRS SOPからのワイヤを繋ぎます。続いて、2番目のインプットにメッシュのキャッシュした.bgeoファイルをつなぎます。これでUVアトリビュートがHairにダイレクトに転送されます。VEXpressionには、画像のように入力します。

次に、直下にAttribute From Mapノードを配置して、テクスチャパスを設定します。ここではわかりやすいようにトラ柄にしました。


STEP 10:根元と毛先のブレンドをカスタマイズする

ここでの方法は Point WrangleノードとVEXが必要ですが、この方法によるブレンドの利点は、Hairシェーダに頼らずに、1本1本のHairの根元から先端までディフューズカラーを完全にコントロールできることです。Paintノードを使ってペイントしたメッシュを使用することも、テクスチャファイルのCdアトリビュートをHair Generateに直接読み込むことも、あるいはこの両方を組み合わせることも可能です。

カスタムブレンドに使用するVEXpressionの設定は、画像を参照してください。ここではわかりやすいように3色を使っています。根元はマゼンタ、先端はオレンジ、そして根元と先端のブレンド部分はタランチュラのメッシュ上に直接ペイントした頂点カラーです。

Hair Generateオブジェクト内にAttribute Renameノードを作成しCdをrootDiffuseColorに設定します。さらにAttribute Createノードを作成し、アトリビュート名をtipDiffuseColor、サイズを3に設定します。パラメータボックスの一番下の最初の3つの値でHairの先端の色が決まります。Attribute RenameとAttribute Createは、Point Attribute Wrangleの2番目と3番目のインプットにそれぞれ繋ぎます。


STEP 11:Hair1本1本をマスクする

Guide Maskノードは非常に便利です。様々なタイプのノイズやHairの長さに基づいてマスクできる上、ランダムに散らばったHairから1本抜き出し、マスクすることも可能です。また、グループ化してFrizzやClumpingといった各種ガイドプロセスを適用したり、色で設定したりすることもできます。画像は、タランチュラの腹部に長さマスクを使用して、長いHairをグループ化したところです。


STEP 12:デプスパス

Mantra ROPの[Extra Image Planes]タブで[+]ボタンをクリックしイメージプレーンを新規に作成、[VEX Variable]を[Pz]に設定します。[Sample Filter]を[Closest Surface]、[Pixel Filter]を最大の領域をもつオブジェクト(minmax idcover)に設定すると、確実かつアーティファクトのないデプスパスがレンダリングされます。



また、Houdini 16.5のグルーミングツールを活用した事例として、2月にSideFX公式サイトにて公開された、アメリカのVFXプロダクションJAMM Visualによるハムスターのメイキング動画に日本語字幕が追加されたので、そちらも併せてご覧いただきたい。

SideFX公式サイトでの動画紹介ページはこちら


JAMM Visual - Kia Soul Turbo "The Arrival" // Houdini Connect from Go Procedural on Vimeo.