SubstancePainter(サブスタンスペインター)のチュートリアルからテクスチャをベイクするワークフローについてご紹介します。
fa-check-circle-oテクスチャベイクの流れ
fa-check-circle-oベイクできる要素の各設定
fa-check-circle-o参考動画
SubstancePainterで作業を開始するにはまずベイクから!
とい切っても切れないベイクの話。
基礎知識として頭に入れておきたいですね
参考
関連記事Bake設定のあるTEXTURE SET SETTINGS
コンテンツ
SubstancePainterでのベイクとは
メッシュベースの情報をテクスチャに変換する作業のことです。
ベイクすることで、アンビエントシャドウの位置や、ジオメトリのエッジの位置など、様々な情報をSubstancePainterに計算させることが出来るので、シェーダーやサブスタンスフィルターを使用するSubstancePainterでのテクスチャ作成時に利用されます。
例えば、スマートマテリアルやスマートマスクなど。
ベイクの2つの用法
ベイクには大きく分けて2つの用法があります。
- 1つのメッシュに焼き付ける:現在のメッシュの関連情報を生成します。テクスチャ作成時に必要とする場合です。
- 別のメッシュへの焼き付け:ソースとなるメッシュから情報を計算し、その結果を別のメッシュに転送します。
ノーマルマップ等ハイポリ情報をローポリへ情報を焼き付ける場合ですね。
関連記事ベイクしたマップをカラー作成に使用する
SubstancePainterでベイクする
シンプルなワークフローは
- TEXTURE SET SETTINGSからBake Mesh MapsをクリックBakingダイアログを表示する
- CommomParameters>OutPutSizeから出力したい解像度を設定(②)
- Commonでベイクしない要素(あれば)のチェックを外す(③)
- CommomParameters>Hight Definition MashesでハイポリやIDの振り分けられたメッシュを読み込む
- Bake all Texture Setsでベイクする(④)
ノーマルマップベイクの際は、プロジェクト設定の法線の方向(OpenGL又はDirectX)によって決まるので注意してください
関連記事UnityとUE4で法線の方向は変わります
Baker リスト-ベイクされる要素-
デフォルトでベイクされる要素は以下の7つです。
今はドキュメントを読んでいるだけなので、パラメーターあたりは実際使って行ったら補足していきます。
- Normal
- World Space Normals
- ID
- Ambient Occlusion
- Curvature
- Position
- Thickness
参考
パラメーター変更時の注意点:必要に応じてApply to all
設定の変更をすべてのテクスチャセットに反映させてい場合には、各パラメーターの右上にあるApply to all を押して全テクスチャセットに反映させます。
その工程を見落としており、選択したテクスチャセット(TextureSetに反映されているレイヤー)のみがベイクされてしまいしばらく悩みました。
Normal-ノーマル(法線)マップ-
高解像度メッシュからノーマルマップを作成できます。
出力できるのはTangent Space ノーマルマップ又はWorld Space ノーマルマップのいずれか。デフォルトの設定ではTangent Space ノーマルマップが出力されます。
World Space Normals-ワールド空間のノーマル(法線)マップ-
モデルからワールド空間の法線マップを作成できます。
法線をベイク処理する際に、低ポリゴンメッシュに加えてワールド空間法線を計算します。
ID
サブオブジェクトごとに頂点カラー、マテリアルカラー、またはランダムカラーを 高解像度メッシュから現在のモデルに投影できます。
ZBrush PolypaintまたはMaterial IDを焼くために使用することが出来ます。
パラメーター
Color Source:
- Vertex Color: 高解像度メッシュから頂点カラーを読み取ります
- Material Color: 高解像度メッシュからマテリアルカラーを読み取ります(FBXファイルでのみ機能します)
- File ID: 高解像度メッシュからオブジェクトごとに色を割り当てます
- Mesh ID/Polygroup : 高解像度メッシュからサブオブジェクト(エレメントとも呼ばれる)ごとに色を割り当てます
Color Generator (Mesh IDやPolygroup/Submesh IDでのみ):
- Random: 各オブジェクト/サブオブジェクトはランダムな色で色付けされます
- Hue Shift: オブジェクト/サブオブジェクトは一意の色相で色付けされます
- Grayscale: 各オブジェクト/サブオブジェクトは、一意のグレースケール色で色付けされます
Ambient Occlusion-アンビエントオクルージョン-
高解像度メッシュを使用してオクルージョンを計算し、ローポリゴンメッシュに一致するテクスチャに保存します。
パラメーター
Secondary Rays: オクルージョン光線の量(高いほどノイズが少なくなります)
Min Occluder Distance:オクルージョン光線が高ポリゴンジオメトリに到達する最小距離。
Max Occluder Distance: オクルージョン光線が高ポリゴンジオメトリに到達する最大距離。
Relative to Bounding Box:
- off: Max Frontal Distance(CommomParameters>Max Frontal Distance) とMax Rear Distance(CommomParameters>Max Rear Distance)で使用される単位はメッシュをエクスポートするときに定義された単位(m, cm又はシーンのエクスポート設定).
- on: 単位はオブジェクトのバウンディングボックスに相対的であり、1.0はバウンディングボックスの対角線の長さです。
Distribution(分布): オクルージョン光線の角度分布
Ignore Backface(背面を無視): 光線が背面への届くかを無視するかどうかを定義します。 ほとんどの場合、このオプションをアクティブにする必要があります。
Attenuation(減衰): Occluder Distanceによってオクルージョンを減衰させる方法を定義します
Curvature-曲率-
曲率のテクスチャを抽出することができます。このテクスチャには、ジオメトリに関連するキャビティとエッジの情報が含まれています。
- 黒:凹面領域を表します
- 白:凸領域を表します
- グレー:平坦な領域を表します。
パラメーター
Algorithm:
- Per Pixel: ベースのジオメトリと入力したノーマルマップの両方に基づいてcurvature mapを計算します
- Per Vertex: ジオメトリのみに基づいてcurvature mapを計算します
Details: 値を大きくすると、curvature mapのディテールがはっきりします
Enable Seams: チェックを入れる、curvature mapにシーム(縫い目)が表示されます
Seams intensity:シーム(縫い目)の強度を設定します。 これは、「Enable Seams」オプションがチェックされている場合にのみ機能します。
Position-位置-
Positionマップを作成できます。
位置マップ(ワールドポジションパスと呼ばれることもあります)は、各ピクセルのR、G、Bカラー値が3Dワールド空間の対応する頂点のx、y、z座標を表す画像です。 動作的には、位置マップは3Dディスプレイスメントの一種として機能します。
つまり、画像内のすべてのピクセルを、それが表す頂点の空間内の実際の位置に移動します。
※Google翻訳に突っ込んだ訳
Position Mapping
パラメーター
Mode:
- All axis: RGBチャネルのX、Y、Z軸の位置をベイク処理します
- One axis: グレースケール画像に単一の軸を焼き付けます
Axis: 「One axis」モードが選択されている場合、どの軸をベイク処理するかを選択します
Normalization:
- BBox:バウンディングボックスの長さに従って各軸を正規化します
- BSphere: バウンディングスフィアに従ってすべての軸を正規化します
Thickness-厚み-
メッシュの厚みに関連する情報を抽出して保存します
アンビエントオクルージョンと非常に似ていますが、サーフェスの法線の反対方向に光線を投射します。 (つまり、AOを法線を逆にしてベイクしているようです)。
- 黒の値は、モデルの薄い部分を表します。
- 白の値は、モデルの厚い部分を表します。
Sub Surface Scattering(SSS)シェーダーで使用するか、diffuse/albedoで直接使用して、SSS効果を偽造できます。
パラメーター
Secondary Rays: 二次光線の量(高いほどノイズが少なくなります)
Min Occluder Distance: 二次光線がハイポリゴンジオメトリに到達する最小距離
Max Occluder Distance:二次光線がハイポリゴンジオメトリに到達する最大距離
Relative to Bounding Box:
- off:
- Max Frontal Distance(CommomParameters>Max Frontal Distance) とMax Rear Distance(CommomParameters>Max Rear Distance)で使用される単位はメッシュをエクスポートするときに定義された単位(m, cm又はシーンのエクスポート設定).
- on: 単位はオブジェクトのバウンディングボックスに相対的であり、1.0はバウンディングボックスの対角線の長さです。
Spread Angle: オクルージョン光線の最大広がり角.
Distribution: オクルージョン光線の角度分布。
Ignore Backface: 光線が背面への届くかを無視するかどうかを定義します。ほとんどの場合、このオプションをアクティブにする必要があります。
Automatic Normalization: 最も明るいポイントが純粋な白に設定され、最も暗いポイントが純粋な黒に設定されるように、厚さマップを自動レベル調整するかどうかを定義します。
公式動画
fa-arrow-circle-right公式ドキュメント
https://docs.substance3d.com/spdoc/substance-painter-20316164.html
公式ページからはサンプルファイルのDLもできるので、すぐにチュートリアルを始めたい!という人にも優しい設計になっています。
まとめ
各要素、思ったよりパラメーターが沢山ありました。
特にIDに関してはデフォルト設定のままだときれいに色分けがされない場合もあるようで、知っておくことは大事だなと思いましたね。
関連記事ID分けに関して別途まとめました
実際に買ったもの、見たもの。単なるメモと色々揃えております 2021年に刊行された書籍で基礎を学ぶにはおすすめの書籍です。 CG用語については多少省かれている部分もあるのでCG自体初心者の方は注意。 現役の海外モデラーの方がやっているモデリング他チャンネル。 再生リストにSubstancePainterがあるので要チェック! SubstancePainterで検索した際に見かけたチャンネル。未だ拝見していませんが追々見ていきたいと思います。メモSubstancePainterの教材
作りながら覚える Substance Painterの教科書
HigaCGチャンネル
KMBL