こんにちは!!マサ@annoonblogです。元々海外での生活や就職情報の記事を中心に始めたこのブログですが、最近はチュートリアル系の記事に力を入れて発信しています。モデリング系の記事がやや多いのでこのあたりで前編・中編1・中編2・後編の4回に分けてSubstance Paiterの使い方をまとめたいと思います。何を塗ろうか少し迷った結果、僕が今作っているパーソナルワークに配置する予定のアンティークなランプをモデリングしたのでそちらを塗りながらステップ毎に進めていきます。各種マップのベイクやプロジェクション、マスク、様々な塗りのtips、凹凸のある文字の作成、ガラスの質感の表現等盛りだくさんの内容をなるべくわかりやすく紹介していきますよ〜!!!
第一回目は準備からマップのベイクまでの内容にフォーカスします。Substance Painterでの作業はマップをいかに綺麗にベイクできるかが非常に大切です。実際にテクスチャリングが始まるまでに多数の工程がありますが、ひとつひとつ丁寧に行う事で最終のクオリティーがぐっと上がり、作業効率もよくなります。準備を制するものはテクスチャリングを制すです!!笑
それでは早速いってみましょう!!!
C→カラーチャンネル表示
このページの目次
モデリング完了からSubstance Painter読み込みまでの準備
今回テクスチャリングをするにあたってリファレンスにしたのがこのアンティークなランプの画像です。僕がこれから作りたいと思っていたパーソナルワークの世界観にとても合っていたので、こちらを元にモデリングを行いました。
1.UV展開
次にUV展開を行いました。テクスチャリングをする際はパーツ毎にマスクを作る必要があり、その際にUVから選択範囲を取る事があるのでUV展開はできる限りきれいに行いましょう。また、タイリング系のテクスチャをする事も考えてUVの向きもなるべく90度等整頓した形で配置する用にすると後々助かります。今回はこのような形でUV展開してみました。
2.モデルの複製とネーミング
UV展開が終わったらモデルを複製して、下図の用にひとつひとつのモデルの末尾に『_low』『_high』という名前をつけます(グループだけでなく個々のパーツもすべてです)。Substance Painterで各マップをベイクする際にMatchという項目があり、ここで各パーツのマップのベイクを名前の一致するもの同士で行なうか、単純に隣接するもので計算するか設定する事になるのですが、名前を設定した方が綺麗に処理する事ができます。
今回の作例ではZbrush等のスカルプトソフトは使っておらず、ローポリとハイポリの区別はないのですが、全く同じモデルを複製して名前だけをlowとhighで分ける形にしました。
ちなみにモデルを複製した後にすべてのパーツの名前を一つ一つ手作業でリネームすると時間がかかってしまうので、その際はModify→Search and Replace Namesをクリックして下図の様に末尾の名前を入力すれば_lowという名前を_highに一括でリネームできて便利です!!選択しているモデルのみリネームしたい場合はselectedにチェックしてみて下さい。
3.マテリアルの適用とカラーの変更
次にSubstance Painter内で効率よくマスクを作るためにMAYAの中で色を分けておきます。単純にLambertを適用して色を変えるだけで構いません。塗り分けたいパーツ毎に違う色を適用します(※色はhighのモデルの方に適用します)
さらに今回は大まかに分けるとガラスと鉄という二つの異なる物質が使用されているので、そこを区別してテクスチャリングする為にガラスのモデル(上記画像の青の部分)にはphongを、その他にはLambertを割り当てました。これにより Substance Painter内でTEXTURE SET LISTが別々になります(※texture set listを分けるためのマテリアルはlowモデルの方に適用します。新規でlambertを複数作成、適用という形でも大丈夫です)
異なる物質の質感を表現する為にはshaderの設定もそれぞれ変えなければならないので、違う物質の数だけ異なるマテリアルをアサインしましょう。これはかなり重要です!!
まだテクスチャリングが始まっていないにも関わらず、ここまでたくさんの工程がありましたね(汗)しかしMAYAでの準備はここまでなので安心してください。FBXでlowモデルとhighモデルをそれぞれ書き出していよいよSubsutance Painterの作業に入りましょう。
4.モデルの読み込みと各種マップのベイク
Substance Painterでlowモデルを読み込みます。今回は下図のような設定にしました。今回UDIMが三つあるのでUV Tileを使うという部分にチェックが入っています。解像度はいつでも変更できるのでこの時点で必ずしも4K等の高画質にする必要はありません。
Substance Painterでのペイントの醍醐味はモデルの形状に合わせて簡単に汚れやエッジの剥がれた質感を表現したり、表面の凹凸等を作成できるところですが、これらは全てアンビエントオクルージョンやCurvatureマップ、ノーマルマップ等に基づいて作り出されます。なのでまずはそれらのマップをベイクするところから始まります。
TEXTURE SET SETTINGタブにあるBake Mesh Mapsをクリックしましょう。
High Definition Meshesという項目があるので、Highモデルを読み込みます。
Dilation Widthは32にAntialiasingは4×4に設定しました。
さて、ここで先述させていただいたMatchの項目の設定を行います。ここをBy Mesh Nameに変更する事で名前に基づいて各マップをベイクを処理する形に変更できます。その下のsuffixの部分は今回は_lowと_highにしましたが、わかりやすい任意のもので設定する事も可能です。
次にIDのタブでColor Sourceの部分をMaterial Colorに変更します。これでMayaで各パーツに設定した色がSubstance Painterに再現されます。
基本的な設定が終わったのでこれで一旦ベイクしてみます。まずは512等の低い解像度でマップのベイクがうまくいくか試してから、高い解像度でのベイクを行なうと効率がいいです。その結果、各マップが綺麗にベイクできました!!カラーIDもきちんと再現されています。各マップの表示の切り替えはBキーでできます。
Matchの設定の検証
せっかくなので先述したMatchの設定をalwaysにした場合とBy Mesh Nameに設定したマップを見比べてみましょう。
上記の結果のように特にパーツが交差する部分でマップが綺麗にベイクされない事があるので、それを避ける為にlowとhighのモデルを作成してBy Mesh Namesに設定するする事をおすすめします!!
5.カラーIDを元にマスクを作る
ベイクが一通り終わったところで、スマートマテリアルから一つベースとなりそうなマテリアルを適用してみます。リファレンス画像に近そうなBronze Armorを選んでみました。
これをメーターがあるパーツ(カラーIDの赤い部分)だけにマスクしたいので早速やってみましょう!!
レイヤーを右クリックしてAdd mask with color selectionを選択します。
そしてPick colorでカラーIDの赤の部分をクリックします。
これでカラーIDが赤の部分だけ金色になりました。
次に違う質感のマテリアルをまっすぐなパイプの部品の部分に適用しようと思ったのですが、カラーIDをまがったパイプの部分まで同じ黄緑色にしてしまったのでこれではカラーIDを使って一発でマスクを作る事ができません。。。我ながらやってしまいました(汗)
しかし心配いりません。こんな時はPolygon Fillという機能を使って直接該当のポリゴンを選択してマスクを作る方法があります。
6.Polygon Fillを使ったマスクの作成
やり方は簡単です。画面左にあるPolygon Fillボタンをクリックして該当のポリゴンを選択するだけです。形状が複雑な場合はUVの表示に切り替えて選択すると楽です。右下にあるFillモードとColorは状況に応じて設定しましょう。今回はUVからポリゴンを選んだのでUVモードを選びました。また色は白が表示、黒が非表示になります。Xキーで反転できます。
さ〜っとポリゴンを選択してみました。選択した部分に色がついていきます。
このような形で参考画像に近いマテリアルを各パーツに塗る事ができました。さらなるディテールについてはこの次の中編の記事で調整していきます。
少々長くなってしまいましたが、Substance Painterで作るランプテクスチャの作例前編はいかがだったでしょうか。塗る前の工程がとても多く、ひぇ〜っていう感じですが、丁寧に作業する事でメリットがたくさんあります。
次回は実践編という事でペイント方法のtipsをたくさん紹介します!!
今後も役立つ情報を発信していくのでTwitterフォロー是非よろしくお願いします!!!
関連書籍
次の記事:Substance Painterの使い方 ペイント編
関連記事:キャラクターモデリング
顔のモデリング編
関連記事:Maya UV展開完全版
関連記事:海外で働くCGアーティストの平均給与
関連記事:【背景CG】Mayaで森や山を作る。
アニメ面白ネタまとめ記事もありますので、仕事で疲れた時は楽しんでみてください!!笑