Substance Designerでメッシュベイク情報(additional maps / mesh maps)を使ったマテリアルを作成する方法をまとめました。
- メッシュベイク情報?
- メッシュのリソースを作成する
- メッシュ情報をベイクする
- ベイクテクスチャをインプットするノードを作成する
- ベイクテクスチャを使ったグラフを組む
- Substance Painterで使う
- 関連
Substance Designer2019.2.3
Substance Painter 2019.2.3
メッシュベイク情報?
Substance DesignerやSubstance Painterでは、メッシュの情報をからテクスチャを作る(ベイクする)ことでそれらの情報をマテリアルに反映させることができます。
例えば、「ワールド空間の法線」をベイクして法線が上方向を向いている部分だけ白く塗ることで雪を表現できたりします。
ベイクできる情報にうち主要なものは以下の通りです。
- Ambient Occulusion
- Curvature
- Thickness
- World Space Normal
- Normal
- Id(頂点カラーとかを焼き込める汎用的なもの)
- Position
本記事ではこのメッシュ情報を使ったマテリアルの作り方を解説します。
メッシュのリソースを作成する
さてさっそくベイクしていきたいところですが、メッシュ情報をベイクするにはもちろん元となるメッシュが必要です。
もちろん3Dモデルをリソースとして読み込んでもいいですが、お手軽にSubstance Designerの組み込みモデルを使うこともできます。
そこでこの節では、Substance Designerの組み込みリソースをベイク用のメッシュとして使うための下準備を行います。
3Dモデルをリソースとして読み込んでいる場合はこの節は飛ばしていただいて結構です。
さて組み込みモデルをリソース化するために、まずは3DViewで使用したいモデルを選択します。
今回はMat Ballにしました。
これをリソース化するには3DViewからシーン > Create 3D Resource From Current Scene...
を選択します。
リソース名とロケーションを適当に選択してOKします。
エクスプローラに先ほど指定した名前のリソースが追加されれば完了です。
メッシュ情報をベイクする
それでは次にこのメッシュの情報をベイクします。
エクスプローラーのリソースを右クリックして「モデル情報をベイクします」をクリックします。
すると次のようなウィンドウが開かれます。
次にベイクしたいマップを右下のAdd Bakerドロップダウンから選択します。
今回はアンビエントオクルージョンとワールド空間の法線をベイクすることにしました。
ここで、アンビエントオクルージョンをベイクするためにはハイポリのメッシュが必要になるので、
Setup High Definition Meshes欄にエラーが表示されています。
今回はUse low as high definitionにチェックを入れることでハイポリを使わない設定にします。
Start Renderをクリックするとベイクが開始されます。
終了するとエクスプローラに二つのマップが生成されます。
これでベイクは完了です。
ベイクテクスチャをインプットするノードを作成する
次にベイクしたテクスチャをインプットとして扱うためのノードを作成します。
ワールド空間の法線をインプットとして扱うためには、Input Colorノードを作成します。
そしてこのノードのプロパティのATTRIBUTEとINTEGRATION ATTRIBUTEを以下のように設定します。
...というのがちゃんとした方法ではありますが、いちいち設定するのも面倒なのでもう少し簡単な方法を取ります。
まずテンプレートをPainter Generator w/ additional maps
に設定した新規Substanceを作成します。
するとデフォルトでいろんなインプットノードが作成されたグラフが出来上がります。
これらのインプットノードはすでにプロパティが設定済みなので、これを先ほどのグラフにコピペして使えばOKです。
Ambient OcculusionとWorld Space Normalをコピペしました。
後はこれらのノードにベイクしたテクスチャをドラッグすることでグラフ上で使えるようにします。
ベイクテクスチャを使ったグラフを組む
さてそれでは実際にこれらのノードを使っていきます。
まずDustノードを作成し、そのインプットにアンビエントオクルージョンとワールド空間法線を接続します。
Dustノードはアンビエントオクルージョンとワールド空間の法線を使って、埃がたまりやすい部分を抽出できるノードです。
遮蔽された部分や上を向いている部分には埃がたまりやすいので、それを計算してくれます。
今回はわかりやすく、Dustで抽出された部分に赤色を付けてみます。
埃がたまりやすい部分が赤く表示されるマテリアルができました。
Substance Painterで使う
最後にこのマテリアルをSubstance Painterで使用してみます。
マテリアルのエクスポートとSubstance Painterへのインポートは以下の記事にまとめていますのでこちらを参照してください。
Substance Painterにマテリアルがインポートできたら、つぎにSubstance Painter側でMesh mapsをベイクします。
これについては以下の記事にまとめていますのでこちらを参照してください。
Mesh mapsがベイク出来たらすべての準備が完了したので、あとはマテリアルを使ってペイントするだけです。
試しにサンプルモデルを塗りつぶすと以下のようになります。
モデルの情報に基づいて、埃のたまりそうな部分が赤くなっていることを確認できました。