Substance Painterのベイクエラーは「Painter設定ミス」「命名規則違反」「モデリング側の問題」の3レイヤーに分類できます。症状から原因を絞り込めます。
「ベイクしたら真っ黒」「ノーマルの凹凸が逆転」「隣パーツのテクスチャが混入」——これらは設定の不整合が原因です。症状別に解決策を解説します。
ベイクエラーは「原因の切り分け」から
ベイクはハイポリのディテールをレイキャストでローポリのUVに変換する数学的プロセスです。エラーは①Painter設定ミス②命名規則違反③UV・トポロジーの構造問題の3つに分類できます。
症状から原因を特定するトラブルシューティング
症状1:黒いシミ・ブロック状のノイズが出る
まず、黒いシミが焼いたテクスチャそのものに出ているのか、3Dビューの表示だけなのかを分けます。
焼いたテクスチャに黒い部分が出るなら、Max frontal distance(ローポリの面からどこまで先でハイポリを探すか)が足りず、レイがハイポリに届いていない可能性があります。既定値から少しずつ引き上げて試してください(ケージを使っている場合、この値は効きません=公式)。上げすぎると隣のパーツを拾うので、症状2も合わせて見ます。
3Dビューの表示だけがブロック状に崩れるなら、公式のトラブルシューティングにある既知の不具合(2018.3以降・NVIDIAのGPUドライバーとの相性)です。公式の推奨はGPUドライバーを新しくすること(GeForceは440.97で修正済み)。それでも出る場合の回避策が、Edit > Settings > General の Sparse Virtual Textures にある「Hardware support acceleration」を外して再起動することです(ソフトウェアの処理に切り替わるので遅くなります)。
設定を変えてもベイクが途中で落ちる・極端に遅い場合は、ハイポリの規模に対してメモリとVRAMが不足している可能性があります。数千万ポリゴンのハイポリを4Kでベイクする段階で詰まるなら、Substance Painterが重いときの推奨スペックで必要量の目安を確認してください。
症状2:隣接パーツのディテールが混入する
ベイク設定のMatchを既定の「Always」から「By mesh name」に変更し、パーツをaxeHead_low/axeHead_highのようにベース名一致+サフィックスで命名します。大文字・小文字も区別されます(公式の例では「Vela」と「vela」は一致しない)。Ambient Occlusionなど2次レイを使うベイカーには別にMatch by nameの設定があるので、そちらも有効にします(公式)。
グループ(親子の階層)ごとFBXに書き出すと、書き出し方によってはメッシュ名が想定と違う名前で読み込まれ、一致しないことがあります。一致しないときは、階層をフラットにして書き出し直すと切り分けられます。
症状3:ノーマルマップの凹凸が逆転する
ノーマルマップの形式の食い違いが原因です。DirectX(X+, Y-, Z+)とOpenGL(X+, Y+, Z+)があり、公式の推奨はBlender・Maya・UnityがOpenGL、Unreal Engine・3ds MaxがDirectXです。プロジェクトのNormal Map Formatを使う先のアプリに合わせます。既存のプロジェクトでも Edit > Project configuration で変えられますが、変えたらメッシュマップを焼き直します(公式)。書き出すときは、書き出しテンプレートの法線の形式も確かめます。外から読み込んだOpenGLのノーマルマップをレイヤーに使う場合は、Painterが既定でDirectXとして扱うので、チャンネルの横の矢印から形式を切り替えます(公式)。
症状4:UVシームに黒い線が出る
ベイク設定のDilation Widthを8〜16pxに増やします。Dilation Widthを0にすると、シームだけでなく面全体に濃淡(縁のパディング不足)が出るので、既定のまま0にせず8〜16pxを確保してください。またハードエッジ(シャープ)を設定した箇所は必ずUVシームも入れるのが鉄則です。この組み合わせを守らないと法線補間が破綻してシームにアーティファクトが生じます。
シームではなく面全体に黒や縞が出る場合は、UVアイランドが重なっている(overlap)疑いがあります。症状の見分け方と直し方はUV island overlapエラーの解決方法にまとめています。
「Failed to load 3D scene」でメッシュが読み込めないときは?
ベイク以前にメッシュの読み込みそのものが失敗するケースがある。ログにFailed to load 3D sceneやFBX : Could not create an importerが出て、ベイク時にはMesh resources not foundとなり、FBXを指定しても何も起きないパターンだ。ベイクの設定をいくらいじっても直らないので、先にここを切り分ける。
| 確認する順番 | 症状の見え方 | 対処 |
|---|---|---|
| 1. UVタイルをまたぐ面が無いか | UDIMを使っているプロジェクトで頻発。最も多い原因 | 面は複数のUDIMタイルにまたがれない。DCC側でUVを1タイル内に収める |
| 2. 「Use UV Tile workflow」がオンになっていないか | UDIMを使っていないのに読めない | 新規プロジェクト作成のウィンドウでこのオプションをオフにして読み直す |
| 3. 法線が正規化されているか | 「normalized」を含むメッセージが出る | DCC側で法線を作り直す。Painter側の自動修正に任せきらない |
| 4. 3Dビューの初期化に失敗していないか | プロジェクト作成の瞬間に落ちる | ノートPCで多い。電源管理アプリや省電力設定がGPUを使わせていないことがあるので、高パフォーマンス側に固定する |
| 5. ファイル形式とバージョン | 他人からもらったFBXだけ読めない | 新しいバージョンで保存された形式を古い本体で開こうとしている可能性。DCC側で1つ前の形式に書き出し直してもらう |
切り分けの近道
Mayaのデフォルト球体を1つだけFBXに書き出して、それが読めるか試すのが早いです。読めるなら原因はメッシュ側(UV・法線・形式)、読めないなら環境側(GPU・本体のバージョン)に絞れます。「モデルが悪いのかPCが悪いのか」で延々悩むのを1分で終わらせられます。
💡 ハイポリをZBrushで作っている場合: ダイナメッシュは面を均一に作り直す機能で、UVを持ちません(公式)。ベイク先のローポリにはUVが要るので、ローポリはZリメッシャーなどで別に作ります。Zリメッシャーとの使い分けはZBrushのダイナメッシュとは?Zリメッシャーとの違いと使い分けにまとめています。
モデリングソフト側で必須の事前準備とは?
Painterのパラメータを調整しても直らない場合、原因はエクスポート段階にあります。
最重要がローポリの事前三角化(Pre-Triangulation)です。四角形や多角形を三角形に割る方法には標準が無く、焼いたときと表示するときで割り方が違うと、黒い陰影などのアーティファクトが出ます(Adobeの「Triangulating before baking」)。Blenderなら書き出す前にTriangulateモディファイアを適用して、三角形に割った形で固定します。
プロはSubstance Painterだけでベイクしないこともある
複雑な形状で行き詰まったら、専用ツールへの切り出しが解決策になります。
Marmoset Toolbagでベイクだけを行い、テクスチャはPainterで描く分担もあります。Toolbagはケージの距離(Offset)と投影の歪み(Skew)をペイントで部分的に直せます(公式)。Painterの設定で直らない形状は、ベイクだけを切り出す選択肢として知っておくと便利です。
まとめ:ベイクエラー解決チェックリスト
表示だけならGPUドライバーを更新(それでも出ればHardware support accelerationを外す)
既定値から少しずつ引き上げてテスト(ケージを使うと効かない)
_low/_highサフィックス・大小文字・グループ階層に注意
プロジェクト設定(変えたら焼き直す)と書き出しの設定
TriangulateモディファイアをApplyしてFBXで書き出す
「Failed to load 3D scene」と出てFBXが読み込めません▼
Substance Painterのベイクで真っ黒になる原因は?▼
Match by Mesh Nameが機能しないのはなぜ?▼
ノーマルマップの凹凸が逆転するのはなぜ?▼
Substance PainterとMarmoset Toolbagどちらでベイクすべき?▼
なぜエクスポート前にローポリを三角化する必要があるの?▼

コメント