70万PV達成おめでとうございます!
祝!! 70万PV達成 おめでとうございます!

チュートリアル / CharacterArpeggio~3ds Max 2017 キャラクター作成術~
第5回:テクスチャ作成~3Dペイント専用ツールで!~

  • 3ds Max
  • アニメ
  • キャラクター・リグ
  • ゲーム
  • コラム
  • ジェットスタジオ
  • チュートリアル
  • マテリアル・シェーダー・UV
  • 中級者
  • 学生・初心者
  • 教育
  • 映画・TV

※今回の使用ツール:3ds Max2017, Vray3.40.03, xNormal3.19.2, QuixelSUITE2.2, SubstancePainter2.4.1, PhotoshopCS4

前回ディティールを追加したモデルに質感をつけていきましょう。テクスチャ制作には3Dペイント専用のツールを使用します。快適に作業するならある程度スペックの高いグラフィックカードが必要になりますが、2Dと3Dを行き来することなく直感的にテクスチャ制作ができます。ちなみに今回動画撮影を行ったPCのグラフィックカードはGTX970です。

マテリアルについて

テクスチャを作る前にまずマテリアルについての基礎を確認しておきます。ここではVrayマテリアルを使用しますが物理ベースのマテリアルであれば基礎はだいたい同じです。
マテリアルにはいろいろなパラメータが備わっていますが、シンプルな質感であれば赤矢印の項目だけで十分です。透明性が無いのであればRefractもいらないので設定が必要なのは4項目くらいですね。必要なテクスチャの数もこの程度です。

まず気にすべきは金属か否かです。金属の場合はDiffuseではなくReflectionで色を決定しFresnel reflectionsを切ってしまいます。非金属の場合はDiffuseで色を決定しReflectは白、Fresnel reflectionsを有効にし適切なIOR値を入力します。狙った質感を上手に作っていくために最低限のルールは把握しておくと良いいでしょう。以下の参考サイトで非常に分かりやすく解説をされているのでマテリアル設定が苦手な方はまず見てみてください。自分の作りたい質感にはどんなテクスチャが必要なのか、頭の中でシミュレーションしておいてから作業に入っていきましょう。

参考:物理ベースでの絵作りを通して見えてきたもの/アグニのデザイナーが語るリアルタイムワークフロー GameSpark - 国内・海外ゲーム情報サイト

必要なマップの準備

3Dペイントツールに移る前に最低限必要なマップを事前に用意しましょう。ここでは以下の3種類を用意します。
・ノーマルマップ(前回作成したもの)
・IDマップ(質感ごとに色分けしたもの)
・AOマップ(アンビエントオクルージョン)

まずはIDマップから。
モデルのマテリアルIDを設定し下の画像のようなマルチサブオブジェクトマテリアルをアサインしたら、スキャンラインレンダラーでDiffuseMapをベイクします。

次はAOマップ。
AOの生成にはVRayDirtマップを使います。VRayMtlのDiffuseにVRayDirtを接続したらVRayDiffuseFilterMapをベイクします。
Zbrushでスカルプトしたものは擬似的なものになりますがDisplaceマップをAOに変換し上乗せしました。xNormalの「Height map to occlusion map」を使用しています。

テクスチャの作成~DDO編~

右腕のメカパーツのテクスチャをDDOを使って作成してみます。
まずはじめに、肝心のモデル出力をしましょう。マテリアルごと(UVごと)にオブジェクトを分けOBJ形式でエクスポートすると、DDOでロードしたときに振り分けがされます。複数オブジェクトを同時に確認しながらペイントが可能です。

各種スロットにOBJとマップ類をロードし新規プロジェクトを作成します。[動画 00:00:00~] 複数オブジェクトがある場合はそれぞれマップをロードしましょう。ここでロードしているノーマルマップは既に3ds Max用に最適化されているものなので3DOの表示に合わせてFlipYにチェックを入れています。また、Curvatureマップは事前に用意していないので Bake in 3DO にチェックを入れましょう。
重要なのは“Export Target”です。[動画 00:00:33~] VRayマテリアルでのレンダリングを想定している場合、この中から「V-Ray(sRGB)」を選択したくなりますが、今回は使いません。「Metalness PBR」を選択します。理由は後述の「3DペイントツールとV-Rayのレンダリング結果を合わせたい」にて。

PBR参考:
Physically-Based Rendering, And You Can Too! – Marmoset
PBR Guide allegorithmic

プロジェクトの作成が完了したら、ライブラリから良さげなスマートマテリアルを選んで適用してみましょう。[動画 00:04:50~] スマートマテリアルとはマテリアルをレイヤー化しひとまとめにしたプリセットのようなものです。この黄色いスマートマテリアルの場合は「最下層の金属」⇒「黄色い塗装」⇒「細かい傷」の順で重なっています。それぞれのレイヤーに対して色やマスクを適宜調整します。[動画 00:08:16~] マスクはAOやCurvatureをもとにプロシージャルに生成されているのでパラメータを調整すればある程度の調整は出来ますが、部分的な調整はペイント機能を使っていきます。[動画 00:10:15~] だいたいこの作業の繰り返しです。

最後にデカールを貼っていきます。単色の場合は新規レイヤーを作成し、マスクペイントでカスタムのアルファをロードしペタペタ貼っていきましょう。[動画 00:51:50~]

単色でない場合は3D上で貼り付けることは出来ないのでPhotoshop側で配置します。[動画 00:56:18~] ここだけ急に2D作業に戻るのが気持ち悪いですが他に手段が無いので仕方ありません。Albedoマップにデカールを配置したら右上のメニューから「Copy layer to all maps」で他のマップにも展開します。[動画 00:58:48~] 展開が出来たら色調整を行います。

テクスチャができたらマップを出力します。左上のボタンからExporterを起動しそのまま出力します。特に細かい設定は必要ありません。[動画 01:02:20~]

テクスチャの作成~SubstancePainter編~

顔のテクスチャ作成にはSubstancePainterを使ってみましょう。
こちらもまずはモデルの出力からです。マテリアルごと(UVごと)に仮のマテリアルをアサインしFBXまたはOBJ形式(OBJの場合は.mtlも出力)でエクスポートします。SubstancePainter側でマテリアルを基準にオブジェクトがグループ化されます。ここではまつ毛や髪等の確認用モデルも一緒にエクスポートしています。目を閉じ、口を開けたモデルを共通のUV・マテリアルで出力しておくとペイントする際に塗りやすいほうを選べて便利です。

Substance内でCurvature等をベイクする際はこれらのアタリモデルは邪魔になるのでベイクするモデルだけでも出力しておきます。

新規プロジェクトを作成します。まずベイク用のモデルからです。[動画 00:00:00~]
ノーマルマップやAOマップも同時にロードし必要なマップをベイクします。Export Texturesからベイクしたマップを全て出力し[動画 00:02:42~] 、次はペイント用にプロジェクトを作成しなおします。[動画 00:03:43~]
Templateは出力の形式には影響しないので「pbr-metal-rough」のままで構いません。Normal map format も「DirectX」が3ds Maxと同じ方式なのでこのままで。先ほどベイクしたマップを全てロードしてペイントを開始します。解像度はTextureSet Settingからいつでも変えられるのであまり気にせずに。

こちらも、基本はスマートマテリアルを適用しマスク調整をしていく作業になります。Shelfによさげな肌のマテリアルがあったので、これをベースに作っていきます。[動画 00:06:50~] プロシージャルに汚しをモリモリ入れるようなテクスチャではないのであとはほぼペイントの作業です。手描き用のレイヤーを追加する場合は通常のレイヤーではなく Add a fill layer から塗り潰しレイヤーを作成しマスクにペイントしていきましょう。[動画 00:08:31~] 通常のレイヤーはマテリアルブラシで塗っていくイメージなので後で質感編集がしにくく、あまりオススメはしません。

テクスチャができたらマップを出力します。Export TexturesでVrayのプリセットを選択し出力します。デフォルトのままでも構いませんが不要なマップ、追加したいマップがある場合はプリセットをコピーして編集しましょう。[動画 01:07:15~]

3DペイントツールとV-Rayのレンダリング結果を合わせたい

さて、大変便利で強力な3Dペイントツールですが、いくらリアルタイムにルックを確認しながらペイントできるとはいえそれを再現できなければ結局ツール間の無駄な行き来が増えてしまいます。ここでDDO(3DO)及びSubstancePainterのプレビューとVrayMtlでのレンダリング結果はどうすれば揃うのかどうか確認しておきましょう。

まずはDDOから。
Export Target を V-Ray(sRGB) に設定しDiffuse、Specular、Glossでマテリアルを設定します。フレネルも合わせたいのでAdd New MapからIORも追加してみます。Exportするとdiffuse、reflect、rGlossiness、normal、bump、iorの6枚が出力されます。VRayMtlに適用し確認してみましょう。diffuseとreflect以外はリニアで読み込みです。

※3DOにはカスタムのHDRIを読み込む機能が無いのでVRayに3DOのHDRIを持って来ました。3DO内で使用されているHDRIはここからダウンロードできます。

これはひどいですね。いろいろと違います。反射が弱すぎるしボケ具合も違う。IORについてはどう見ても違います。

IORは自分で設定してみます。左側は非金属なので1.6くらい、右側は金属なのでFresnel IORを真っ黒(≒フレネルしない)にしてしまいます。

いくらか合ってきた気がしますがやはり反射が違います。非金属部分のReflectは白にして、Glossinessはとりあえず目合わせで寄せてみます。

無理矢理合わせた結果、原形を留めているのはDiffuseとNormalのみになってしまいました。

IORはまったく信用ならない上にreflectもrGlossinessもなんだか怪しいので、Export Target を Metalness PBR に設定しAlbedo、Metalness、Roughnessの形式で試してみます。albedo、metalness、roughness、normal、aoの5枚が出力されます。VRayMtlに適用し確認してみましょう。albedo以外はリニアで読み込みです。金属と非金属に分けてマテリアルを作成し、ブレンドマテリアルのマスクにmetalnessを使います。

若干glossinessがズレている気がしますがわりといいいかんじになりました。IORマップが機能していなかったため相変わらずフレネルは手動入力ですが、これは今後のアップデートに期待しておきましょう。このブレンドマテリアルを「Metal-Rough ⇒ VRayMtl」変換のテンプレとして使っていきます。

次はSubstancePainterです。
プロジェクト作成時のTemplateは pbr-metal-rough に設定し、Export時にVRayのプリセットを選択します。Diffuse、Reflection、Glossiness、ior、Normalの5枚を出力しました。VRayMtlに適用し確認してみましょう。DiffuseとReflection以外はリニアで読み込みです。

バッチリですね。
開発者曰く、 「非金属のReflectionは白(1.0)固定で出力され、いわゆる強度はフレネルによって決まる。」らいしです。また、IORについては「非金属は0.666(1/0.666 = FresnelIOR:1.5)金属は黒(1/0.0 = FresnelIOR:無限)で出力。」らしいです。微調整したい場合はFresnelIORは自分で設定したほうが良さそうですが、こちらはあまり細かいことは気にせずマップの接続だけで再現ができそうです。

さて、ちょっと本制作から話がそれましたが、上記の方法はあくまでペイントツールとの見た目を合わせることだけを考えています。結局のところ最終ルックは最終出力をする場所(今回はVRay)での微調整は必須かと思いますので、あまり再現に固執はせず無駄な試行錯誤をしないための予備情報として頭に入れておきましょう。

テクスチャをマテリアルに

出力したテクスチャを3ds MaxでVRayのマテリアルにアサインしていきます。画像はほんの一部ですが他のマテリアルも全てこれらと同じような構造です。 肌にはSkinMtlを使ったので前項の再現方法はもはや関係ないですね。。。

最後に第3回で使用したチェックレンダリングのセットを使用してレンダリング結果を確認してみます。

真顔が気になります!早く表情とポーズをつけてあげないと!

さて、今回はちょっとした検証も含めDDOとSubstance Painterを使って進めてきました。これらの3Dペイントツールは事前にマップのベイク作業が必要だったりPBRマテリアルの知識についても多少は理解が必要だったりとPhotoshopだけでの制作とは異なる部分は多いですが、クオリティや効率が格段に上がるもはや必須のツールです。初期状態でも十分強力ですが、マテリアルライブラリを充実させればさらに幅が広がります。

それぞれ特徴はありますが、DDOのメリットはデフォルトでリアルなマテリアルライブラリが充実している点やPhotoshopとの連携により使い慣れた機能を活かせることでしょうか。あと価格も比較的低めです。写真ベースのライブラリが充実しているため“手っ取り早くいい感じにする”にはかなり向いている気がします。グラフィックカードのスペックが足りないときは3DOを起動せず2Dベースで作業するという力技もあるようです。Substanceのメリットは何と言っても“非破壊”な点ですかね。限界はありますが解像度だけでなくモデルやUVさえも後で変更できます。パーティクルブラシも強力な機能の一つですね。SubstanceDesigner等と連携することで無限にライブラリを広げられる可能性もあります。制作の規模やライブラリのことも考えてツール選びをするといいかもしれませんね。

最後に、両方を同時に使ってみて思ったことですがテクスチャやマテリアルの仕様がキメラにならないようにだけは気をつけていきたいです。少しだけ反省しています!

ではまた!

まとめ

・マテリアルの仕様と必要なテクスチャを考える。
・3Dペイントには事前準備が大事。
・Quixel DDO や Substance Painter でテクスチャ制作!

製品購入に関するお問い合わせ
オートデスク メディア&エンターテインメント 製品のご購入に関してご連絡を希望される場合は、こちらからお問い合わせください。