今回はZBrushとHoudiniで制作した「蛾」のメイキングです。

HoudiniでFurを作る

まずZBrushでDynaMeshを使って形状を完成させます。次に、ZRemesherでリダクションを行いUV Masterで簡易的にUV展開して、ポリペイントでベースのペイントを行なっていきます。その後、Houdiniへモデルデータを読み込んでFurを生成するというながれです。FurはHoudiniの「GuideGroom」と「Hair Generate」を使用しました。ガイドカーブを生成した後、それに対してGuideProcessノードを数段階に分けて繋ぎ、毛の長さや方向、曲がり具合などを調整していきます。パラメータでの調節が可能なので非常に素早くでき、かつ小回りの利く使い勝手の良いアプローチかと思います。

【1】「DynaMesh_Sphere」をLightboxから読み込む

今回は「DynaMesh_Sphere」をLightboxから読み込んで造形を始めていきました。

【2】ボディを作成する

まずはDynaMeshの状態で蛾のボディを作成します。ボディが毛に覆われているため、なかなか蛾の形状を掴むのが難しいかもしれませんが、資料をたくさん集めてカバーしましょう。

【3】ZRemesherで簡易的なリトポロジーを行う

形状がある程度できてきたら、ZRemesherで簡易的にリトポロジーしていきます。

【4】UV MasterでUV展開

UV MasterでUVを開きます。シームが気に入らない場合は、ポリグループに分けてからUV展開すると狙った部分にシームが生成されます。

【5】羽根や触覚、脚などのパーツを作成する(1)

羽根や触覚、脚も作成していきます。羽根は新規SubToolにSphereを作成し、スケールでZ方向に潰してから、Moveブラシで形を変えて作成しました。

【6】羽根や触覚、脚などのパーツを作成する(2)

脚や触覚も同様に、SphereをMoveブラシやSnakeHookブラシで変形させて形を作っていきました。

【7】リトポロジー&UV展開

全てのパーツをリトポロジーしてついでにUV展開も行います。

【8】羽根や脚の質感をスカルプトする

Subdivision Levelを上げて羽根や脚の質感をスカルプトしていきます。

【9】ポリペイントで全体の色味を付ける

形が完成したら、全体の色味をポリペイントで塗っていきます。塗った後の色味調節にはAdjustColor機能を使います。色相や彩度を後から変更可能なのでとても便利です。

【10】ANormal MapとColor Mapをエクスポートする

ベースカラーとスカルプトディテーリングが終了したら、Normal MapとColor Mapをエクスポートします。Multi Map Exporterで行いましょう。SubToolsのオプションをONにしておくと、ビュー上に表示されている全てのSubToolのテクスチャを一気に出力してくれます。

【11】OBJ形式で書き出してHoudiniへ

羽根、胴体、脚をOBJ形式で書き出して全てHoudiniへ読み込みます。

【12】触覚を滑らかにする

触覚も同様にOBJで読み込み、エッジを抽出してからPolyWireノードでエッジに対して厚みのあるポリゴンを生成します。Smoothをかませて少し形状を滑らかにすると自然に見えました。

【13】Houdiniで毛を生成する

いよいよHoudiniで毛を生やす作業に移ります。必要なノードは、「GuideGroom(画像では「mothGeo_groom」という名称が付いているノード)」、「GuideDeform(モデルにアニメーションが付いている場合に必要)」、「HairGenerateノード」の3種類です。これらをOBJ階層に作成します。

【14】ガイドカーブを生成する

毛を生成するにあたり、まずはガイドカーブが必要になります。GuideGroomノード内に入ってカーブを生成していきましょう。必要となるアトリビュートはものによって異なるので、一概に「これだけあれば良い」といったものではありませんが、ここでは「ClumpScale」と「Length」という2種類のアトリビュートをまずは用意しました。Attribute Paint SOPでfloat値アトリビュートとして「ClumpScale」と「Length」アトリビュートをペイントして生成しています。

【15】数値に色をアサインして頂点ペイント

画像のように0~1の数値を「0→紫」、「1→赤」として頂点ペイントしていきます。

【16】ガイドの長さや曲がり具合を設定する

ペイントした2種類のアトリビュートを基に、GuideProcessノードでガイドの長さや曲がり具合を設定していきました。間にCombノードを使用することで、ガイドの流れを直感的に制御することも可能です。

【17】生成したガイドカーブを確認

生成したガイドカーブです。このガイドを基に、HairGenerateノードが毛を生やしてくれるというわけです。

【18】毛の束感を設定する

続いてHairGenerateノード内に移動します。先ほどGuideGroomノード内で作成したClumpScaleアトリビュートを基に、HairClumpノードで毛の束感を設定していきました。その後GuideProcessノードを複数回はさむことで、1本1本の毛の長さや曲がり具合、ちぢれ具合を設定します。本数を増やしすぎるとビュー上の表示が重くなるので、レンダリングとき以外はなるべく本数を少な目にした方が良いかもしれません。

【19】SetLengthオペレーションで毛の長さを数値で制御する

GuideProcessノードの「SetLengthオペレーション」は、毛の長さを数値で制御できるため今回何度か使用しました。もともとあるLengthアトリビュートに乗算(Multiply)するかたちで、毛の長さのランダム感を出しています。

【20】毛の質感を調整してレンダリング

HairGenerateノードの設定にある[Thickness]で毛の太さを決め、レンダリングして確認していきます。納得のいく毛の質感ができるまで、ひたすらGuideProcessノードやLength、ClumpScaleアトリビュートを調節していきます。

【完成】

森田悠揮 / Yuuki Morita

フリーランスキャラクターデザイナー/デジタルアーティスト/造形作家

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

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

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