SubstancePainterでテクスチャペイントする時に便利なのがIDマップです。
マテリアルをモデルの部位ごとに割り当てて、TextureSetListを作成して塗り分けるのがスタンダードな手法ですが、最終的に作成したテクスチャを書き出すと、SetListごとにマップ画像が作成されて管理が大変になってくるのが難点。
そこでカラー情報でマスクを簡単に作成することができるIDマップを使うことで、テクスチャセットを増やさずに必要最低限のマップ数でテクスチャを作成することができるようになります。
IDマップマップをベイクするにはいくつか方法があるのですが、今回は「MAYAでマテリアルカラーをベイクしてIDマップ画像を作成、SubstancePainterで画像をIDマップとしてインポートする方法」について紹介します。
MAYAでオブジェクトに割り当てたマテリアルカラーでUVに沿ったカラー画像を作成できるので、好きなパーツに好きなカラーを割り当ててマスクを作成しつつテクスチャペイントをするなんてこともできます。
【MAYA】マテリアルカラーをベイクしてIDマップ画像を作成【SubstancePainter】
下準備としてMAYAでモデルにマテリアルを割り当てて好きなカラーに設定しておきます。
ここでは3つのマテリアルカラーを割り当ててあります。
このままFBXとして書き出して使用するとマテリアルごとのTextureSetListが作成されてしまいます(3つ分)。
しかし今回TextureSetはひとつだけ作成して、IDマップで塗り分けができるようにしていきたいので、
マテリアルで設定したカラー情報をベイクしてUVに合わせた画像を作成して、SubstancePainterにインポートしてIDとして使います。
UVを重ならないようにしておく
カラー情報をベイクする際の注意点として、UVは重ならないようにしておくことをオススメします。
UVを1枚にしておく理由として、ひとつのTextureSetで使用するのでUVは一枚にしておかないとペイントができないから。
またマテリアルカラーのベイクがうまく実行できない場合があるからです。
このモデルも最初はUVがパーツごとに分かれていましたが、ベイクするに当たってひとつのタイルにLayoutを実行しました。
重なった状態でベイクすると真っ黒の画像になってしまうといったことが多発したので、よほどテクスチャの範囲を節約したい場合を覗いて、UVシェルは重ならないようにしましょう。
マテリアルカラーをベイク
マテリアルカラーを割り当てたらメッシュにベイクしていきます。
マテリアルをアサインしたモデルを複製します。
ベイクを実行するメッシュと、ベイクするソース元(マテリアルカラーを割り当てた)メッシュが必要なので、わかりやすく複製して名前を変更しておきました。
セットメニューをRenderingに切り替えます。
Lightning/Shading▶︎Transfer Mapsをクリックします。
Target Meshes欄でTargetモデルを選択した状態でAdd Selected。
Source Meshes欄でSourceモデルを選択した状態でAdd Selected。
これでどのメッシュをどのメッシュでベイクするかが決まります。
Output Maps欄でDiffuseをクリックして、出力する画像をカラーマップにします。
出力先のパスを選択したら、Connect Output MapsのConnect maps to shaderのチェックを外します。
Maya Common Output欄でマップのサイズを設定します。
Transfer inを「UV Space」に設定します。
これでUVに合わせてカラーマップが作成されるようになります。
UVシェル間を塗りつぶしておきたい場合はFill texture seamsの数値を変更します。
設定が終われば「Bake」をクリックしてカラー画像を出力します。
設定に問題が無ければ、こんな感じのUVシェルに沿ってマテリアルカラーが割り当てられた画像が作成されます。
この画像をIDマップとしてSubstancePainterにインポートして使います。
マテリアルを割り当ててFBX書き出し
IDマップを作成する際に使用したモデルを複製して、マテリアルを割り当てます。
TextureSetList用のマテリアルなので、部位ごとではなく全体にひとつのマテリアルを割り当てています。
このモデルをFBXとして書き出しておきます。
SubstancePainterにIDマップ用画像をインポート
FBX書き出ししたモデルをSubstancePainterで開きます。
1度BakeMeshMapsからベイクしておきます。
File▶︎Import resourcesをクリック。
Add resourcesから作成したカラー画像を選択して、Importします。
Mayaで作成したIDマップ用の画像をインポートしたら、TEXTURE SET SETTINGSのIDの部分にドラッグ&ドロップします。
これでベイクしたマテリアルカラーの画像をIDマップとして使用できるようになります。
Bキーを押してID表示にすると、作成したカラー画像がIDマップとして表示されます。
まとめ
今回はMayaで設定したマテリアルカラーをベイクしてカラー画像を作成、SubstancePainterでIDマップとして使用する方法について紹介しました。
細かく部位ごとに塗り分けたいけど、書き出すマップ画像は少ない方が良いと感じている方には便利な方法になっています。
手順をまとめると
カラーマップをベイクして作成、IDマップとしてインポート
- UVを展開したモデルにマテリアルを割り当て
- 作成したいIDマップごとにマテリアルカラーを変更
- モデルを複製
- Transfer Mapsでターゲットメッシュにソースメッシュをベイク
- モデルをFBXに書き出ししてSubstancePainterで開く
- BakeMeshMapsでベイク
- カラー画像をインポート
- IDに作成した画像をドラッグ
少しめんどくさい方法ではありますが、テクスチャペイント作業のしやすさとマップ画像の管理のしやすさを考えると個人的にこれが一番楽だと思っています。
PhotoshopなどのソフトでUVにそってマテリアルカラーを描いた画像をIDマップとして使うことも出来ますが、作るのが非常に面倒なので、楽したい方はこの方法を試してみてください。
▼「IDマップを使用して塗りつぶす方法」
-
【SubstancePainter】IDマップを使用して塗りつぶす方法
SubstancePainterのIDマップを使うと、カラー情報を使用してマスクを部分ごとに塗りつぶすことができます。 この記事ではIDマップを使ってマスクを部分的に塗りつぶす基本的な手 ...
続きを見る
▼【マテリアルカラーをIDマップとしてベイクする方法】
-
【SubstancePainter】マテリアルのカラーをIDマップとしてベイクする方法
SubstancePainterでテクスチャペイントをする際にはベイクが必須ですが、ベイクで作製できるIDマップはマスクを切る際に非常に便利な使い方ができます。 ただ普通にベイクした場合 ...
続きを見る