記事の目次

    今回は、制作を通してわかってきた「リアルめな被毛の表現」を後から直感的に修正する方法について共有します。


    TEXT_森田悠揮 / Yuuki Morita(OnenessArt
    EDIT_三村ゆにこ / Uniko Mimura(@UNIKO_LITTLE




    「リアルめな被毛の表現」を後から直感的に修正する

    今回は、Houdiniのファー機能を使用して「リアルめな被毛の表現」を模索していく工程で、最低限のアトリビュート数で様々な応用が利きそうなフローがわかってきたので、共有させていただきます。「密度」、「毛の長さ」、「束感」、「カール具合」などの調節はGuide Processノードというものの中で行うわけですが、そこで活用できそうなアトリビュートを事前にPaint SOPで作っておくことで、後からでも直感的に修正することが可能です。毛の流れに関しても、カーブをメッシュ上に直接描いて指定することで「パッと見」でわかりやすいものになっています。


    直感的かつ「パッと見」でわかりやすく作る

    【1】ヒョウのモデルをFileノードで読み込む
    ZBrushで作成したヒョウのモデルをFileノードで読み込みます。その後、Transformで位置を調整し、Attribute DeleteでZBrushから読み込まれた不要なプリミティブアトリビュートを削除しておきます。



    【2】Attribute Paintノード内で直感的に作成
    ファーの作成時に必要なアトリビュートをAttribute Paintノード内で直感的に作成していきます。長さを制御する[lengthscale]、 毛の立ち具合を制御する[lift]、毛の密度を指定する [density]、束感のコントロールに使用する[clumpscale]。これら4つのアトリビュートをペイントしていきます。



    【3】右半身にのみアトリビュートを描いていく
    後ほどMirrorノードで片方へ転写するので、ペイントするときは右半身にのみアトリビュートを描いていきます。



    【4】適度にランダム感を出すのがポイント
    [clumpscale] や []ift] アトリビュートは、適度にランダム感を出していった方がリアリティのある表現ができます。



    【5】Mirrorノードに繋げる
    Mirrorノードに繋げ、Paintノードで作成した全てのアトリビュートを左右反転コピーします。



    【6】[attributeblur]でアトリビュートをぼかす
    必要ならば[attributeblur]でアトリビュートをぼかすと良いでしょう。



    【7】毛の幅を指定するためのアトリビュートを作成
    毛の幅を指定するためのWidthアトリビュートをWrangleで作成しておきます。



    【8】SkinとVDBを分岐作成
    アトリビュートのセットアップが終わったら、SkinとVDBを分岐作成しておきます。これらはHair生成時のノードで使用します。



    【9】OBJ階層でGuideGroomGeoノードを作成
    続いて、OBJ階層でGuideGroomGeoノードを作成します。Skin SourceとSkin VDBへ先ほどのSkinとVDBのパスを指定することで、メッシュに毛のガイドを作成できるようになります。 グルームカーブの本数は、イニシャルで少なめにしておくと作業の軽量化にもなるので、今回は5,000本ほどにしています。



    【10】ヘアのガイドカーブを作成
    Guide Groomノード内で、ヘアのガイドカーブを作成していきます。まずはDraw CurveノードでSkinサーフェス上にカーブを描いていき、これによりグルームカーブや毛の向きを指定していきます。



    【11】毛の流れをカーブとして指定
    画像のように、毛の流れをカーブとして指定していきます。カーブの数が多くなってくると描画スピードがかなり遅くなるので、左右どちらかの必要最低限の流れから指定していくのが良いでしょう。



    【12】描いたカーブを反転コピーする
    描いたカーブをResampleした後、Mirrorで反転コピーします。



    【13】カーブをベロシティアトリビュートへ変換
    Volume Velocity from Curvesノードで、描いたカーブをベロシティアトリビュートへ変換します。



    【14】グルームカーブ全体の流れを変更
    Guide Advectノードで、そのベロシティアトリビュートを基にグルームカーブ全体の流れを変更します。画像のように、しっかりとガイドカーブ全体に流れが生まれました。



    【15】毛の長さや形状をコントロール
    Guide Processノードで、先に作成した[lengthscale] や [lift] アトリビュートなどを基に、毛の長さや形状をコントロールしていきます。その後、Guide Skin Attribute Lookupノードを接続し、ガイドグルームの作成は終了です。



    【16】最終的にレンダリングされる毛を生やしていく
    もしポージングやアニメーションのついたメッシュへガイドグルームカーブを移植する場合は、「Guide Deform」というノードが必要です。さてガイドカーブが完成したので、それを基に最終的にレンダリングされる毛を生やしていきます。Hair GenerateノードをOBJ階層へ作成します。



    【17】ポーズのついたメッシュへ毛を移植
    今回はポーズのついたメッシュへ毛を移植するため、Guide Deform Geo内の「Animated Skin」のスロットへDeformされたSkinメッシュを指定しています。



    【18】Groom OBJとVDBのSOP Pathを指定
    Hair GenerateノードでGroom OBJとVDBのSOP Pathを指定することで、しっかりとDeformメッシュにガイドが付いて来ました。それでは、Hair Generateノード内で最終的な毛の作成を行なっていきます。



    【19】Guide Processノードを必要なだけ繋げる

    階層内でGuide Collide With VDBノードを作成後、Guide Processノードを必要なだけ何個も繋げて行き、長さや曲がり具合、束感の調整をひたすら行なっていきます。このとき、初めに作成した [clump] や [lift]、[lengthscale] アトリビュートを活用すると調節が楽です。



    【20】ヒゲや顎下の毛なども別ノード内で作成

    今回の作例では、その他の髭や顎下の毛なども同様の手順で別ノード内で作成しました。



    【21】レンダリング

    今回はRedshiftでのレンダリングを行いました。その際「Hair Generateノード→Render内のHair Generationタブ」はUse SOP Geometryに変更しておく必要があります。後は、Hairマテリアルを割り当て質感調節を行い完成です。

    【完成】



    Profile.

    • 森田悠揮 / Yuuki Morita
      フリーランスキャラクターデザイナー/デジタルアーティスト/造形作家

      国内外問わずアート、映画、ゲーム、広告、デジタル原型など様々なジャンルで活動しているフリーランスのアーティスト。ZBrushでの生物や怪獣などのクリーチャーデザインを得意とする傍ら、Houdiniを用いた動画、アート制作なども行う。
      初の著書 『the Art of Mystical Beasts』ボーンデジタルから発売中。

      website: itisoneness.com
      Instagram: yuukimorita
      Twitter: @YuukiM0rita