SubstancePainterでテクスチャペイントする際に必ず必要になる作業がベイクです。
テクスチャで擬似的な陰影を表現することができるAOマップ(Ambient Occulusion Map)は便利ですが、ベイクの仕方によっては邪魔になるときもあります。
特にオブジェクトに可動部分などのパーツなどがある場合にテクスチャを貼ってから移動させてしまうと、AOがパーツ同士の影響を受けている部分にまでベイクされてしまうので、ズレて目立ってしまいます。
そこで今回は「メッシュ同士の影響を受けさせずにオブジェクトのみでAOをベイクする手順」について紹介したいと思います。
パーツが多くて且つ可動部分などがあるオブジェクトにテクスチャをペイントする場合の参考にしてみてください。
【SubstancePainter】別のメッシュに影響させずにAOをベイクする方法
例えばこんな感じのパーツが沢山あるオブジェクトの場合はテクスチャを描いたあとでパーツを移動させることがあるかと思います。
上の画像はベイク前の状態です。
SubstancePainterの「BakeMeshMaps」で通常のAOベイクを実行してAOチャンネルを表示した状態です。
この状態だとわかりにくいですがオブジェクト同士の干渉した部分にもAOマップがベイクされています。
他のメッシュの影響を受けてAOがベイクされてしまう
わかりやすい様に別のテクスチャセットにしていた部分を非表示にしてみた状態です。
メッシュ同士が干渉している部分にAOがベイクされています。
さらに別のテクスチャセットで表示した状態です。
影になっている部分にAOが出来ています。
AO込みで作成したテクスチャを書き出してCGツールでテクスチャ画像を接続するとパーツをズラした時にこの影の部分が目立ってしまいます。
シェーディングでの陰影表示ではなくテクスチャの陰影なので、オブジェクトを移動させることによってベイクされたAO部分も一緒に移動してしまうのが原因です。
メッシュごとにAOをベイクする
メッシュ同士の影響を受けさせずに、個別のメッシュでベイクすると干渉している部分に影を作らずにAOを作成することができます。
Bake Mesh Mapsウィンドウ(Ctrl+Shift+B)を開きAmbient Occulusionの項目のみにチェックをいれます。
設定項目のSelf Occulusionを「Only Same Mesh Name」に切り替えます。
Only Same Mesh Name
個別のメッシュごとにAOを作成する。メッシュ同士の干渉によるAOを作成しない設定。
複数のテクスチャセットに適用したい場合は「Apply to all」をクリックして全てのテクスチャセットに適用しておきましょう。
個別のメッシュごとにAOが作成される
「Only Same Mesh Name」でAOをベイクした状態です。
個別のメッシュのみでAO情報がベイクされています。
テクスチャセットをソロ表示にするとよりわかりやすいです。
他のパーツと接していた部分の影が無くなっています。
AOチャンネルのみ表示するとよりわかりやすいですね。
別角度からみた状態。
別のテクスチャセットでソロ表示にしてみた状態です。
通常のAOをベイクだと影部分が真っ黒になっていましたが、メッシュ個別でAOが作成されています。
AOチャンネルで表示するとこのようになっています。
パーツ別で陰影が表現されているので、テクスチャを割り当ててから可動部分を動かしてもAOの切れ目などが目立つことなく自然な表現になります。
パーツが干渉している隙間の部分の陰影表現はできなくなりますが、可動部分のパーツがある場合などはメッシュ個別でのAOベイクがオススメです。
▼Substance Painter初心者の方にオススメの教本
▼キャラクターのテクスチャペイントの参考になりそうな本(バージョンは古め)