Adobe Substance 3D Painter(以下 Painter)のスマートマテリアルやジェネレーターが、エッジだけを削ったり、くぼみに汚れをためたりできるのは、モデルの形から作ったメッシュマップを材料にしているからです。本記事では、10種類のメッシュマップの役割、Baking モードでの基本的な焼き方、解像度とアンチエイリアスの決め方、ジェネレーターとの関係を、操作の順番で整理します。
ハイポリ・ローポリ・ケージの関係や DCC 側の準備といったベイクの全体像は「ベイク全体論|MayaとPainterの責任分界とエラー対処」で扱っています。本記事はその Painter 実機編の入口です。
夕宮たいだふぁ……みんな〜、今日はメッシュマップのお話だよぉ。スマートマテリアルがうまく効かないときの原因、だいたいここにあるんだぁ。一緒に見ていこ〜。
この記事の前提
ひとことで:Painter 12.1 の英語UIで、メッシュマップの役割とベイクの基本設定までを扱います。
- 対象バージョン:Adobe Substance 3D Painter 12.1(2026年9月時点の最新は 12.1.5)。項目名は英語UIの表記で、バージョンによって表記が異なります
- ベイクの画面:8.3 以降、ベイクは専用の Baking モードで行います。古い解説に出てくる、Texture Set Settings の Bake Mesh Maps ボタンで開くダイアログは、このモードに置き換わりました。12.1 ではマップ一覧の操作ボタンや自動再ベイクが加わっています
- 扱わない範囲:ケージの詰め方や名前の対応、アーティファクトの直し方は「Substance 3D PainterのHigh to Lowベイク実務」で扱います
手順は Adobe の公式ドキュメント(How to bake mesh maps、Mesh map settings)と、ベイカー共通の資料である Substance Bakers のドキュメントに基づいています。
メッシュマップとは
ひとことで:モデルの形から計算して作る参照用のテクスチャで、色を塗るチャンネルとは別物です。
メッシュマップは、メッシュの形から焼いた「位置」や「遮蔽(光のさえぎられ方)」などの情報を持つテクスチャです。Base Color や Roughness のように塗る対象ではなく、ほかの機能が参照する材料です。
- 焼いたマップは、Texture Set ごとに Texture Set Settings の Mesh maps の欄へ割り当てられます
- ジェネレーター、スマートマテリアル、スマートマスク、フィルターがこれを読んで、マスクや質感を作ります
- Normal と Ambient Occlusion は、ビューポートの陰影にも使われます
- ベイカーの出力は 16bit の RGBA で、最終的なビット深度は書き出す形式で決まります
10種類のメッシュマップと役割
ひとことで:10種類それぞれに「何を記録しているか」と「何に使われるか」があります。
| メッシュマップ | 記録している情報 | 主な使い道 |
|---|---|---|
| Normal | ハイポリの凹凸を面の向きとして記録(タンジェント空間。形式は Normal Map Format に従う) | 陰影、Normal チャンネルとの合成 |
| World Space Normal | 各面がワールド空間でどちらを向いているか | 上向きの面にほこりや雪を乗せるマスク |
| ID | 頂点カラー、マテリアルの色、メッシュごとの色分け | 色で範囲を選ぶマスク(Add mask with color selection) |
| Ambient Occlusion | 環境光が周囲の形にさえぎられる度合い | 陰影、汚れがたまる場所の判断 |
| Curvature | 出っ張り(白)、くぼみ(黒)、平らな面(灰色) | エッジの摩耗、くぼみの汚れ |
| Position | 各点の位置を、軸ごとに 0〜1 の色で記録 | 上下・左右のグラデーション |
| Thickness | 内側に向けて測った厚み(薄い=黒、厚い=白) | サブサーフェス、薄い部分のマスク |
| Height | ハイポリの表面がローポリからどれだけ離れているか | 凹凸の補助 |
| Bent normals | 環境光が平均してどの方向から届くか | 陰影の補助 |
| Opacity | レイがハイポリに当たらなかった部分を黒にした白黒のマップ | 切り抜き用の不透明度 |


10種類すべてを毎回焼く必要はありません。ただし、次に説明するジェネレーターが使うマップは、最初にそろえておくと後の作業が楽になります。



ほえ〜、10種類もあるんだぁ。でも、全部をいきなり覚えなくて大丈夫。「どのジェネレーターが、どのマップを使うか」から逆算すればいいんだよぉ。
ジェネレーターとの関係
ひとことで:ジェネレーターはメッシュマップを材料にマスクを作るので、必要なマップが無いと正しく動きません。
ジェネレーターは、焼いたマップをもとにモデルの形に沿ったマスクを作る機能です。マスクを右クリックして Add generator を選び、Properties の Generator ボタンから種類を選びます。公式ドキュメントで、主なジェネレーターが入力に使うメッシュマップは次のとおりです。
| ジェネレーター | 使うメッシュマップ |
|---|---|
| Ambient Occlusion | Ambient Occlusion・Position・World Space Normal |
| Curvature | Curvature・Position・World Space Normal |
| Dirt | Curvature・Ambient Occlusion・Position・World Space Normal |
| Metal Edge Wear | Curvature・Ambient Occlusion・Position・World Space Normal |
| Mask Editor | Thickness・Curvature・Ambient Occlusion・Position・World Space Normal |
| Position | Position・World Space Normal |
| 3D Linear Gradient | Position |
多くのジェネレーターが Ambient Occlusion・Curvature・Position・World Space Normal を使います。これに Thickness と Normal を加えた6種類を、最初に焼く基本セットにすると迷いません。スマートマテリアルやスマートマスクも、焼いた Curvature や Normal などを前提にしています。





メッシュマップを焼かずにスマートマテリアルを置いて「効かない〜」って悩むの、絶対ダメだよ! 先にベイク、それからスマートマテリアル。この順番なんだぁ。
Baking モードでの基本手順
ひとことで:Baking モードに切り替え、焼く対象・マップ・共通設定を選んで、Bake ボタンで焼きます。
- 手順1 Baking モードに切り替える:ビューポート右上のクロワッサン形のボタン、Mode > Bake Mesh Maps、F8 キーのいずれかで切り替えます(Painting モードへは F9 キー)
- 手順2 Texture Set を選ぶ:Texture Set list のチェックボックスで、焼く Texture Set(UV タイルを使う場合はタイル番号も)を選びます
- 手順3 マップを選ぶ:Mesh map bakers パネルのチェックボックスで、焼くメッシュマップを選びます
- 手順4 共通設定を決める:Common settings パネルで Output size や Dilation width、ハイポリを指定します。ハイポリが無い場合は Use Low Poly Mesh as High Poly Mesh を有効にします
- 手順5 焼く:ビューポート下部の Bake ボタンで開始します。12.1 では、ボタンに焼く枚数(Texture Set 数 × UV タイル数 × マップ数)が表示されます
- 手順6 Baking Log を確認する:エラーがあれば、メッセージ横の矢印から該当する設定へ移動できます
12.1 の Mesh map bakers パネルには、マップごとに表示・クイックベイク・Auto-rebake(設定の変更で自動的に焼き直す)・Texture Set 間の同期のボタンがあります。Common settings は Texture Set ごとの設定なので、Texture Set が複数あるときは Synchronize settings で同期します。
解像度・Dilation・アンチエイリアスの決め方
ひとことで:Output size は Texture Set と同じか1段上にし、アンチエイリアスは必要な場面だけ上げます。
Output size(出力解像度)
- 焼くメッシュマップの解像度です。鍵のボタンを外すと、縦と横で異なる解像度にできます
- 目安は Texture Set Settings の Size と同じか1段上です(最終が 2048 なら 2048 か 4096)。低い解像度で焼いてから上げると、エッジが甘くなります
- 値は選んだすべてのマップに共通です。Normal だけを高解像度にしたい場合は、ほかのマップを焼いたあと Normal だけにチェックを入れ、Output size を上げて焼き直します
Dilation width と Apply diffusion
Dilation width は、焼いた情報を UV アイランドの外側へ何ピクセル広げるか(パディング)を決めます。Apply diffusion は、その外側をなだらかなグラデーションで埋めます。どちらもミップマップで縮小されたときに UV の境目が線として浮くのを防ぐ後処理で、UV の外側に色が引き伸ばされた模様が出ても問題ありません。
Antialiasing(アンチエイリアス)
UV の境界付近に出る黒い点やギザギザを減らす設定です。高い解像度で計算してから縮小するため、2048 に 2×2 を使うと内部では 4096 相当を計算し、時間が大きく伸びます。ベイカーの資料では既定値は None で、Painter では Supersampling と倍率で表記されます(バージョンによって表記が異なります)。
公式ドキュメントでは、境界のギザギザへの対処として、出力解像度を上げる、Antialiasing を上げる、DCC 側で UV の境界をピクセルのグリッドに合わせる、UV のテクセル比を改善する、の4つが挙げられています。AO のノイズが気になるときは、そのマップの Secondary rays(レイの本数)を先に増やすほうが短時間で済むこともあります。





解像度もアンチエイリアスも、上げれば上げるほどきれい……だけど、待ち時間もどんどん伸びるんだぁ。むずかしいねぇ。最初は Texture Set と同じ解像度、アンチエイリアスなしで1回焼いてみよ〜。
ハイポリなしで焼く・ハイポリから焼く
ひとことで:最初はローポリ自身から焼いて流れをつかみ、ハイポリからのベイクは次の段階で覚えます。
ハイポリが無い場合は、Common settings の Use Low Poly Mesh as High Poly Mesh を有効にして、プロジェクトのメッシュ自身から焼きます。レイの距離の調整が要らず、位置ずれによる取りこぼしも起きません。Ambient Occlusion・Curvature・Position・Thickness・World Space Normal はローポリの形からでも役立ちますが、ハイポリとの差を記録する Normal や Height には細部が入りません。
ハイポリを使う場合は、次の設定が入口になります。
- High definition meshes:ハイポリのファイルを追加します(複数可)
- Cage:Distance based(ローポリを一定の距離だけふくらませる)、Automatic (experimental)(自動生成)、Custom file(ケージ用メッシュを読み込む。ローポリと同じ頂点数が必要)から選びます。Distance based では、ケージとモデルの交差を示す赤い部分が消えるように Frontal と Rear の距離を調整します
- Match:Always ではケージ内のすべてのハイポリを焼きます。隣のパーツの形が焼き込まれる場合は By mesh name にして、名前の末尾(既定は _low と _high。大文字と小文字も区別)で対応させます
詳しい実務は「Substance 3D PainterのHigh to Lowベイク実務」で扱います。
焼いた結果を確認する・差し替える
ひとことで:B キーで1枚ずつ確認し、おかしなマップは焼き直すか、Texture Set Settings から外します。
- Painting モードで B キーを押すと、メッシュマップが1枚ずつソロ表示されます(Shift+B で逆順)。Curvature はエッジが白くくぼみが黒いか、Ambient Occlusion はくぼみだけが暗いかを見ます
- 焼いた直後にモデルが真っ黒に見えるときは、AO などが真っ黒に焼けている可能性があります。ハイポリの読み込みエラー、名前の対応のミス、UV が 0〜1 の範囲外にある、などを Baking Log で確かめて焼き直すか、そのマップを Texture Set Settings から外します
- Normal Map Format や Compute Tangent Space per Fragment を変えたら、メッシュマップを焼き直します
- 別のツールで焼いたマップは、New project の Import baked maps で読み込めます。自動で割り当てるには「Texture Set 名_メッシュマップ名」の命名が必要です(例:DefaultMaterial_ambient_occlusion.png)
- 焼いたマップ自体を書き出すときは、File > Export Textures の出力テンプレートで Mesh Maps を選びます



ぁぅ……焼いた直後にモデルが真っ黒になると、ほんと焦るよねぇ。まずは B キーで1枚ずつ見て、どのマップが原因か探してねぇ。
よくある失敗と対処
ひとことで:マップの不足、解像度の不足、レイの当たり方、焼き直し忘れのどれかに切り分けます。
| 症状 | 主な原因 | 対処 |
|---|---|---|
| ジェネレーターやスマートマテリアルの結果がおかしい | 必要なメッシュマップを焼いていない | 基本セット(Normal・AO・Curvature・Position・World Space Normal・Thickness)を焼く |
| 焼いた後にモデルが真っ黒になる | AO などが真っ黒に焼けている | Baking Log で原因を確かめて焼き直すか、そのマップを外す |
| UV の境界に黒い点やギザギザが出る | 解像度の不足、UV が細くピクセルに乗らない | Output size や Antialiasing を上げ、UV の配置とテクセル比を見直す |
| 隣のパーツの形が焼き込まれる | レイが別のパーツのハイポリに当たっている | Match を By mesh name にし、ケージや距離を詰める |
| Normal が面ごとにカクカクしている | ローポリのすべてのエッジがハードエッジになっている | DCC 側で頂点法線を整えて書き出し直す |
頂点法線の整え方は「Mayaのスムージングと頂点法線」、UV とテクセル比の考え方は「UVとテクセル密度の設計|チームで品質を揃える数値基準」を参照してください。
チェックリスト
ひとことで:ベイクの前後に、次の項目を確認してください。
- 焼く Texture Set(と UV タイル)にチェックが入っている
- Normal・Ambient Occlusion・Curvature・Position・World Space Normal・Thickness を焼いた
- Output size が Texture Set の解像度と同じか1段上になっている
- Texture Set が複数ある場合、Common settings がそろっている
- ハイポリを使う場合、ケージの交差を示す赤い部分が出ていない
- Baking Log にエラーが出ていない
- B キーで各メッシュマップを1枚ずつ確認した
- Normal Map Format などを変えたあとに焼き直した
次に読む記事
- ベイク全体論|MayaとPainterの責任分界とエラー対処:ハイポリ・ローポリ・ケージの関係と DCC 側の準備
- Substance 3D PainterのHigh to Lowベイク実務:名前の対応、ケージ、アーティファクトの対処
- Substance 3D PainterのPBR入門|正しい値の塗り方と書き出し:焼いたマップの上で正しい値を塗って書き出す
- ノーマルマップとタンジェント空間|DCCとエンジンで一致させる:Normal の規約の背景
- UVとテクセル密度の設計|チームで品質を揃える数値基準:解像度と UV の配分



ふぁ……これでメッシュマップの基本はおしまい……かな? 焼いて、B キーで見て、ジェネレーターで使う。この流れができれば十分だよぉ。ハイポリからのベイクは、次の記事でねぇ。





