チュートリアル / MayaのXGenを使用したフォトリアルなファー表現
第6回:動物のファーの制作〜シェーディング/レンダリング設定、完成まで
- Maya
- キャラクター・リグ
- ゲーム
- コラム
- チュートリアル
- モデリング
- 学生・初心者
みなさんこんにちは!株式会社クエルトの松田です。
前回の記事では、ベースモデルの制作の工程からXGen Interactive Groomingの初期設定、ベースのファー制作までを解説してきました。
今回はファーの細かい設定から、シェーディング / レンダリングまで行い、ルックの完成までを解説します。
今回でXGen Interactive Grooming解説編も最終回、XGen編と同じく、最後の仕上げでルックは大きく変わってきます。
仕上げの部分までしっかりと解説していきますので、一緒に取り組んでリアルなモデルを制作する足掛かりにしていただければと思います!
モディファイア設定
STEP1 : clumpの設定
前回の記事にて、スカルプ等のベースの設定と毛の生える部分の設定、ガイドを使用して毛の流れを作成する部分までを解説しました。
現状のルックです。
大体のファーの流れは出来ていますが、かなりシンプルで均一なのでCGっぽさが強い状態です。
これからルックをより自然にする為に、モディファイアを上に追加していきます。
まずはclumpモディファイアを使用して、毛に束感を出します。
アトリビュートはこのように細かい設定が可能です。
設定の項目はXGenと似ていますが、より直感的に設定できるようになっています。
Clumpモディファイアは最も使うモディファイアの中の一つなので、各アトリビュートの役目は覚えておいた方が良いと思います。
メインで使用するパラメータの項目を解説していきます。
種類 | 特徴 |
---|---|
Mask | モディファイア全体の影響値です。 |
Clump | Clump周りの影響値です。0にしてもOfffset等clump以外は影響します。 |
Clump Scale | グラフやパラメータでclumpのかかり具合を調整出来ます。 |
Clump Points | クランプのランダム感、密度等を設定出来ます。 |
Clump Map | コントロールマップを使用して、クランプの重ね掛け等を設定出来ます。 |
Advance Shape | 重ね掛けする細かいエフェクトを設定できます。 |
Secondary Effects | セカンダリで載せるエフェクトを設定できます。 |
細かい設定に関しては実際に設定していきながら見ていきましょう。
まずはClump PointsからDensityを設定します。
XGenではGenerate Clumping Mapsから密度設定を行っていましたが、Interactive GroomingはDensityとControl Mapで設定を行います。
リファレンス画像を見ながらDensityを上げていきます。
Clumpをかける上では、大きいクランプを最初にかけ、細かいクランプをその上から重ね掛けしていくことで複雑なクランプを表現するやり方で進めていきます。
ネズミ含め、動物のファーはあまり大きなクランプはないので、プライマリでも割と細かいクランプになるかと思います。
大まかに設定したものがこちらです。
第三回の記事で、クランプモディファイアのマップを設定すると、その下で生成した束を崩さず、その束の中で束を作るように設定できる話をしましたが、Interactive Groomingにも全く同じ内容で設定できる項目があります。
まず、より細かいDensityを設定したClumpモディファイアを作成後、元のClumpモディファイアの上にスタックします。
Clump MapのUse Control Mapにチェックを入れ、設定を有効にした後、Control Usingを使用して重ねる元のマップを選択することで設定できます。
※左がControl Mapを設定せずに重ね掛けしたもの、右が設定後重ね掛けしたもの
このようなフローで、XGenの時と同じくClumpに複雑さを出していきます。
勿論重ね掛けのみだと、いくら重ねても最初に指定したClumpの中でしか複雑な形状ににならず、引きで見るとあまり良いルックにならない為、更に上からマップを指定せずに重ね掛けすることで、より自然なClumpを出していきます。
下の動画ではClump mapとControl Mapの設定について解説しています。
STEP2 : cutの設定
続いてCutモディファイアをアサインします。
Cutモディファイアは毛をカットする為のものなので、パラメータもシンプルで、MaskとAmountでカットする量を調整することと、Cut Modeで絶対的 / 相対的に削るかを選択すること位の、シンプルなものになっています。
今回は生き物特有のランダムな毛の乱れを表現する為に、ランダムに毛をカットしていきます。
Maskでランダムにペイントしていくのは大変な為、ノイズを使用して設定を行います。
Amount項目からCreate Render Nodeを選択、その後を選択し、フラクタルノイズを繋ぎます。
Amount項目からCreate Render Nodeを選択、その後
を選択し、フラクタルノイズを繋ぎます。
フラクタルノイズは白い部分が1(よりカットされる)設定なので、プレビューを見ながら調整していきます。白黒にある程度コントラストがあり、ビューポートで見ておかしくなければ問題ないと思います。
下の動画ではCutモディファイアの設定について解説しています。
STEP3 : noiseの設定
現状かなりのっぺりした質感になってしまっている為、これからノイズを追加してより自然なルックに調整していきます。
追加されたノイズはこのようなパラメータになっていると思います。
こちらもよく使用するモディファイアですので、主要なパラメータを解説していきます。
種類 | 特徴 |
---|---|
Mask | モディファイア全体の影響値です。 |
Frequency | ノイズの振動数です。数値を上げるとより細かいノイズがかかります。 |
Magnitude | ノイズの振幅です。数値を上げるとより大きく動くノイズがかかります。 |
Preserve Length | 数値を上げると、元の長さを保ったままノイズがかかります。 |
Magnitude Scale | グラフの左が毛の根本 / 右が毛先の影響値です。動かして調整します。 |
ノイズの挙動に関してはXGen用ノイズとほぼほぼ同じものだと思ってください。
ノイズの制作においてはClumpの逆で、最初に少なめの調整をかけてから枝毛等の跳ねている毛を重ね掛けして制作していく方法を取っています。
どのフローが正解というのはありませんので、色々と試して自分に合うやり方を見つけてみてください。
最初に毛の先端にかけて、枝毛ほどではないが少し跳ねているような表現を追加しました。
Magnitude Scaleにて先端のみに影響範囲を絞っています。
続いて、より細かく振幅も大きいノイズを追加して自然な毛の乱れを再現していきます。
ハイライトの反射を見ながら調整するとやり易いと思います。
下の動画ではNoiseモディファイアの設定について解説しています。
STEP4 : sculptモディファイアを使用した微調整
ノイズを重ね掛け、全体を見ながらある程度調整した段階で、ファー全体のスケールを調整していきます。
スケールの調整はscaleモディファイアで可能です。
内容もシンプルで、スケールのパラメータを上げるとファーの長さが伸び縮みします。
ノイズを差し込んで調整も可能なので、ランダムに毛先をカットするような使い方も出来ます。
今回はファーのボリュームが足りないと思ったので、少しだけスケールを大きく調整しました。
STEP5 : sculptモディファイアを使用した微調整
眼球付近が顕著ですが、モディファイアのみでの調整だとどうしてもスプラインのエラーや、調整し切れない部分が出てきます。
こういった部分を手動で調整していく為に、sculptモディファイアを使用します。
sculptモディファイアを追加するとこのようなレイヤーが出てきます。
sculptモディファイアのeditを押すと、そのレイヤーのスカルプト機能が有効になります。
この状態で、シェルフ内のgrabブラシを起動します。
grabブラシを起動している状態で、shift+右クリックをすると、sculptに使えるブラシ一覧が出てきます。
ブラシの中で、よく使うものについて解説します。
種類 | 特徴 |
---|---|
Grab | スプラインを直接動かすブラシです。 |
Length | スプラインの長さを変えられるブラシです。 |
Freeze | なぞった部分をフリーズ出来ます。フリーズした部分は動かせません。 |
Noise | なぞった部分にノイズ効果をかけます。 |
種類は色々とありますが、基本的にこの辺りを抑えていれば問題ないかと思います。
例として、飛び出てしまった長い毛を押し込む作業を解説していきます。
sculptモディファイアのeditを有効化し、Freezeブラシで動かしたい毛をなぞります。
Freezeがかかると毛が青くなります。
その後、Grabブラシに切り替え、右クリックをしてオプションを開いた後、Invert Frozen Effectにチェックを入れます。
こうすることでFreezeに対しての効果を逆転させることが出来、Freezeがかかった部分のみを動かすことが出来るようになります。
後はGrabブラシで毛を押し込めば完成です。
下の動画ではSculptモディファイアの設定について解説しています。
ある程度調整が終わったもののルックがこちらになります。
STEP6 : 足りない要素を追加していく
メインのbody部分のファーは完成しましたが、現状気になっている点として以下が挙げられます。
・顔周りの毛の密度感が少し足りない
・耳の周りの毛がない
・手足周りの薄い毛がない
・尻尾周りの薄い毛がない
・髭周りの長い毛がない
特に顔、耳周りのファーはルックに大きく影響してくる為、特に気にして調整していきます。
最終的に下記ルックで要素を追加しました。
・手足周りの薄い毛+尻尾周りの薄い毛
・顔周りの密度を上げる為の毛+耳の周りの毛
▪髭周りの長い毛
必要な要素別にInteractive Groomingを作り直し、組み合わせることでルックを作るアプローチをとっています。
足のファーと尻尾のファー等、毛質が似ていてまとめて制作が出来る場合は、1つのInteractive Grooming内で制作してしまうのが効率的です。
全ての要素を重ね掛けたものがこちらになります。
ファーのシェーディング
STEP1 : ライティングとシーンのセッティング
本番用レンダリングの設定を行っていきます。
今回も光のバウンスが入るように簡易的に背景のボックスを作成し、HDRIを貼ったスカイドームライトを使用して、シンプルにライティングしていきます。
STEP2 : ヘアシェーディング / ワークフローについての解説
ここまで来たら後はもう少しです。
ファーのシェーディングを行っていきます。
第四回でXGenのシェーディングの工程と挙動を解説しましたが、XGen Interactive Groomingのシェーディングも、直接XGenのモデル自体にStandard Hairシェーダを割り当ててシェーディングの設定を行うフローと全く同じやり方で可能です。
レンダリングにおける挙動も同じように機能します。
今回はbase colorとメラニンのパラメータを使用して、動物特有の模様やノイズを使用したランダム感を出していく方向で、シェーディングを行っていきます。
base colorで行う場合、塗った部分がそのまま色になる為、リファレンスを見ながらSubstance Painterを使用して、ファー用の色を塗っていきます。
色がつくだけでかなりルックが近くなってきました。
しかし、リファレンスを見ると、より複雑な模様をしていることが分かります。
色の複雑さは、ノイズでメラニンを制御することで表現することにします。
Noiseノードを使用し、レンダリングを回しながらモデルのルックを見ていきます。
同時にBase Colorの方にもノイズを載せていき、複雑性を出していきます。
最終的に下図のようなルックとなりました。
ビューポートだとこのようになります。
Base Colorとメラニンの重ね掛けで、色を付けつつ、ランダム感も出していく方向性で調整しています。
よりリアルにしたい場合、毛先に汚れのメッシュをを付ける等のアプローチを取ることで、汚れ感を出すやり方もあります。
おまけ : UEにてルック作成
Mayaでのルック構築はこちらで終了ですが、XGen編と被る部分も多かったかと思います。
最終回ということもありますので、おまけ編としてUnreal Engine5にファーを移植して、元のbodyメッシュにファーを紐付ける所までを解説したいと思います。
UEへ入れる場合、まずはMayaからファーのデータを書き出す必要があります。
また、XGenデータは書き出せませんので、Interactive Groomingに変換しておきましょう。
GenerateタブからCache→Export Cacheを選択し、書き出していきます。
アニメーションを入れる必要は無いので、Current Frameを選択します。
alembicで書き出せば、Maya側の作業は完了です。
続いてUEの方で、空のプロジェクトを立ち上げ、下記設定を行います。(細かい設定は省きますので、詳しく知りたい方はUEのドキュメントを参照してください。)
・Groomプラグインを有効にして下さい。
以上の設定を行った後、ベースとなるメッシュ(今回だと毛のないネズミのメッシュ)を読み込み、マテリアル設定等を行います。
モデルの設定が終わったら、先程Mayaから書き出したファーのalembicデータをインポートします。
インポートを行うと、GroomデータとしてUEに取り込まれます。
内部のEnable Simulationにチェックを入れると、毛の物理シュミレーションを切り替えられます。
動物の毛等、あまりにもスプラインの数が多いと重くなってしまうので、今回はoffにしておきます。
インスタンスの詳細パラメータを確認し、追加からGroomを追加します。
Groomの詳細パラメータ内の、グルームにあるGroom AssetとBinding Assetを設定します。
Binding Assetは、Groomを右クリックして作成します。
細かい設定はドキュメントを参考に行って下さい。
出来たものを割り当てた後、ファーがメッシュに紐付けられて、モデルデータとしては完成です。
後はWidth等のGroomの設定や、マテリアルの設定を行って最終的なルックを作っていきましょう。
今回はおまけ編として軽く解説させていただきましたが、UEのマテリアル周りもかなり奥が深く面白いので、是非勉強してみてください!
おわりに
全六回でお届けしてきました、MayaのXGenを使用したフォトリアルなファー表現ですが、今回で最終回となります!
第四回と同じく、動物のファー制作編で作成したMayaのデータも用意させていただきました!
細かい設定の部分は、こちらのデータを見ながら勉強してみてください。
ここまでの記事を読んでくださった皆さんはきっと、機能面については十分に理解されていることでしょう。
しかし、知識を覚えるだけでは十分ではありません。
大切なのは、その知識を使って自分の表現したい内容を具体化できるかどうかです。
この記事を読み終わった後は是非、リファレンスと見比べながら、自分が作りたいものを実際に再現してみてください!
そしてそれを色々な人に見せて、積極的にFBを貰ってブラッシュアップしていきましょう。
そうしていくことで自身の審美眼が磨かれ、より素晴らしい作品を作れるようになるはずです。
この記事が皆さんの制作の一助となれば、大変嬉しく思います。
最後までお読みいただき、ありがとうございました!
松田 空
【X】https://x.com/Sorasan24
【株式会社quelto】https://quelto.co/
【株式会社applibot】https://www.applibot.co.jp/