SubstancePainter-テクスチャベイクのワークフロー

SubstancePainter(サブスタンスペインター)のチュートリアルからテクスチャをベイクするワークフローについてご紹介します。

 

テクスチャベイクの流れ

ベイクできる要素の各設定

 

SubstancePainterでは切っても切れないベイクの話。

基礎知識として頭に入れておきたいですね

 

参考

SubstancePainter>Baking

 

 現在のバージョンはSubstancePainter2019.2.2
スポンサーリンク

公式動画

公式ドキュメント

https://docs.substance3d.com/spdoc/substance-painter-20316164.html

公式ページからはサンプルファイルのDLもできるので、すぐにチュートリアルを始めたい!という人にも優しい設計になっています。

SubstancePainterでベイクする

シンプルなワークフローは

  1. TEXTURE SET SETTINGSからBake Mesh MapsをクリックBakingダイアログを表示する
  2. CommomParameters>OutPutSizeから出力したい解像度を設定
  3. Commonでベイクしない要素(あれば)のチェックを外す
  4. CommomParameters>Hight Definition MashesでハイポリやIDの振り分けられたメッシュを読み込む
  5. Bake all Texture Setsでベイクする

 

ノーマルマップベイクの際は、プロジェクト設定の法線の方向(OpenGL又はDirectX)によって決まるので注意してください

 

関連記事UnityとUE4で法線の方向は変わります

スポンサーリンク

Baker リスト-ベイクされる要素-

デフォルトでベイクされる要素は以下の7つです。

今はドキュメントを読んでいるだけなので、パラメーターあたりは実際使って行ったら補足していきます。

  1. Normal
  2. World Space Normals
  3. ID
  4. Ambient Occlusion
  5. Curvature
  6. Position
  7. Thickness

 

参考

SubstancePainter>Baker List

 

 現在のバージョンとドキュメントにズレがあるようで、呼称の違いやパラメーターの解説がない箇所もいくつかありました

パラメーター変更時の注意点:必要に応じて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-曲率-

メッシュに関連する凹凸情報を抽出して保存します

 

  • 黒の値は凹面領域を表します
  • 白の値は凸領域を表します
  • グレーの値は、中立/平坦な領域を表します。

 

moco
バンプマップみたいなものなのかな??

パラメーター

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翻訳に突っ込んだ訳

パラメーター

Mode:

  • All axis: RGBチャネルのX、Y、Z軸の位置をベイク処理します
  • One axis: グレースケール画像に単一の軸を焼き付けます

Axis: 「One axis」モードが選択されている場合、どの軸をベイク処理するかを選択します

Normalization:

  • BBox:バウンディングボックスの長さに従って各軸を正規化します
  • BSphere: バウンディングスフィアに従ってすべての軸を正規化します

 

 Tri-Planar projectionsのマスクジェネレーターを使用する場合は、「All axis」と「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: 最も明るいポイントが純粋な白に設定され、最も暗いポイントが純粋な黒に設定されるように、厚さマップを自動レベル調整するかどうかを定義します。

まとめ

各要素、思ったよりパラメーターが沢山ありました。

特にIDに関してはデフォルト設定のままだときれいに色分けがされない場合もあるようで、知っておくことは大事だなと思いましたね。

そこは別途まとめたいと思います

 

 

Twitterでフォローしよう

おすすめの記事