SubstancePainter

Substance Painterの使い方 (5) AO Mapを割り当て編

More than 3 years have passed since last update.

Substance Painter内ではAO Mapを作成することはできません。
ここでは、他ツールで作成したAO MapをSubstance Painterでそれっぽく反映する方法について記載します。

Substance Painter 1.3でAOや法線含む各種ベイク機能が実装されるとのこと。
その際に本解説を一新することになりそう、、、。

AOって何?

AO(Ambient Occlusion)とは、ポリゴンメッシュの各頂点もしくは面上のある点から半球状にレイを複数飛ばし、それが他の形状とぶつかる確率を遮蔽情報として与える方法です。
遮蔽が多い場合は全体的に暗くし、遮蔽少ない場合に明るくします。
これは、黒~白のグレイスケールで与えられます。

以下の図の場合は、地面の赤い点の位置から5本のレイを飛ばして、1つだけ衝突した場合。
この場合は、1/5の影濃度になることになります。
aomap_00_20150217.png

これは光源とは関係ない遮蔽となりますのでニセモノの陰影ですが、それっぽい色合いになります。
通常は、拡散反射にAO Mapのテクスチャを乗算合成して使用することになると思います。
AO Mapとは、テクスチャ上にUVが与えられている場合に、UVに対応する元の3D空間でのジオメトリでの面上のAO計算結果を、テクスチャに対して焼き付け(ベイク)たものです。
このときのUVは、他の面で重ならないように配置されている必要があります。

Substance PainterでのAOなしと、AOありの比較。
Skeleton_aomap_substance_painter_20150217.jpg

AO Mapの作成

Substance DesignerでのAO Map作成は「Substance DesignerでAO Mapを作成」に記載してみました。

Shade 3DでのAO Map作成については、「ポリゴンメッシュでキャラクタを作成(AO 編)」に記載させていただきました(Shade3Dのマーケットプレイス内)。

Substance PainterでAO Mapを反映

AO Map用のテクスチャを読み込み

メインメニューの「File」-「Import image」より、AO Mapとして使用するテクスチャを読み込みます。
テクスチャは、2の累乗サイズである必要があります。

AO Map用のレイヤを追加

各TextureSetのレイヤの一番上に、Fill Layerを追加。
これの右上をクリックしドロップダウンより「Multiply」を選択します。
これは、レイヤを乗算合成するための指定になります。
レイヤの一番上に置いておくことで問答無用にAOの乗算が入りますので、その下のレイヤはいくら塗りたくっても大丈夫です。

sp_ao_01_20150217.png

Fill parametersビューで、color以外のheight/rough/metalをクリックしてOffにします。これはトグルになっており、再度クリックすると有効になります。

Base Colorをクリックして、AO Mapのテクスチャを選択します。

sp_ao_02_20150217.png

これで、AOでの影の遮蔽的な表現ができるようになります。
AOの影響度を抑えたい場合は、レイヤの100となっているところをクリックし、スライダで値を下げるようにしてください。
この場合は、Base ColorだけにAO Mapの乗算合成してますので、Base Colorに対してAOの影響が反映されます。

以下、左がAOなし、右がAOありの最終画像です。
AOありのほうがよりリアルに見えますね。

sp_ao_03_20150217.jpg

ただ、Substance PainterでAO込みでDiffuseに焼きつけた形で最終的なテクスチャをエクスポートするか、UnityなどでShaderでAOを乗算させるか、の選択があると思います。
ので、必要にあわせてAOをOn/Offにする(レイヤの左端のマルを選択して表示/非表示を切り替える)ようにしてみてください。