書き出しで質感が崩れる原因は主に3つ:ノーマルマップ規格(DirectX/OpenGL)の不一致、sRGB設定の漏れ、16-bit深度の未設定。UE5・Unity・Maya別の正しい設定を解説する。
Substance Painterのビューポートで完璧に仕上げたテクスチャが、インポート後に「金属が白飛びする」「凹凸が逆転する」「バンディングが出る」——これらはすべて書き出し設定の規格不一致が原因だ。本記事ではエンジン・レンダラー別の正しい書き出し設定を一挙にまとめた。
テクスチャ解像度とテクセル密度はどう決める?
作業解像度と書き出し解像度は独立している。ペイントは低解像度で進めて、書き出しだけ高解像度に切り替えられる。
Substance Painterは非破壊ワークフローを採用しており、1024×1024で作業しながら書き出しだけ4096×4096に切り替えることが可能だ。品質とパフォーマンスを両立するにはテクセル密度の管理が重要になる。作業解像度を4Kまで上げるとビューポートとベイクがVRAMを大きく消費するので、動作が重いと感じたらSubstance Painterが重いときの推奨スペックで必要量の目安を確認したい。
| アセット種別 | 推奨テクセル密度 |
|---|---|
| 背景プロップ | 5.12 px/cm(512 px/m) |
| ヒーローアセット | 10.24 px/cm(1024 px/m) |
ノーマルマップは16-bit出力が必須な理由は?
8-bitで出力すると滑らかな曲面に「バンディング(等高線のような段差)」が発生する。NormalとHeightマップは16-bit RGBAで出力すること。
BaseColor・Roughness・Metallicは8-bitで十分だが、NormalマップとHeightマップの8-bit出力は緩やかなグラデーション部分に段差を生む。Substance Painterの内部ベイクは標準で16-bit RGBAで処理されており、Export Texturesの「Bit Depth」を16 bits RGBAに変更するだけで品質を維持できる。
DirectXとOpenGL——ノーマルマップ規格の見分け方は?
唯一の違いはY軸(緑チャンネル)の向き。間違えると凸凹が逆転して見える。書き出し前にエンジン別の規格を確認しよう。
| ソフト / レンダラー | 規格 | Y軸の向き |
|---|---|---|
| Unreal Engine 5 | DirectX | -Y(下向き) |
| Unity(URP/HDRP) | OpenGL | +Y(上向き) |
| Maya / Arnold | OpenGL | +Y(上向き) |
| Blender / Godot | OpenGL | +Y(上向き) |
間違えた場合はエンジン側で「Invert Green Channel(緑チャンネルを反転)」するだけで修正できる。再エクスポートは不要だ。
UE5向け書き出し:ARMパッキングとsRGB設定の落とし穴
プリセット「Unreal Engine 4 (Packed)」を使うとARMテクスチャが自動生成される。インポート後にsRGBを必ずオフにすること。
File > Export TexturesでOutput Templateを「Unreal Engine 4 (Packed)」に設定(UE5でも完全互換)。ARMテクスチャは1枚にAO(R)・Roughness(G)・Metallic(B)を格納したチャンネルパッキングテクスチャだ。
最重要:Content BrowserでARMテクスチャのインポート後、Texture EditorのsRGBチェックを必ず無効化すること。忘れると金属が白飛びしてプラスチックのような質感になる。マテリアルエディタでは個別のR/G/B出力ピンからAO・Roughness・Metallic入力へ接続すること。
Unity向け書き出し:HDRPとURPで仕様が異なる
HDRPはMask Map(4チャンネルパッキング)、URPはMetallicのアルファにSmoothnessを格納する仕様。プリセットを確認してから書き出そう。
| チャンネル | HDRP Mask Map |
|---|---|
| R(赤) | Metallic |
| G(緑) | Ambient Occlusion |
| B(青) | Detail mask |
| A(アルファ) | Smoothness(ラフネスの逆数) |
HDRP向けはプリセット「Unity HD Render Pipeline (Metallic Standard)」、URP向けは「Unity Universal Render Pipeline (Metallic Standard)」を使用する。どちらもインポート後にsRGB(Color Texture)を無効化すること。
Maya (Arnold) 向け書き出し:カラースペース設定が命
Arnoldへの接続で一番陥りやすい罠はカラースペースの不一致。数値マップは必ずColor Space=「Raw」に設定する。
| テクスチャマップ | Color Space設定 |
|---|---|
| Base Color | sRGB |
| Metalness / Roughness | Raw(リニア) |
| Normal(bump2d経由) | Raw(リニア) |
NormalマップはArnoldにbump2dノードを経由させ「Use As」を「Tangent Space Normals」に変更してから接続する。ArnoldはOpenGL(+Y軸)を採用しているのでPainterの出力テンプレートでOpenGLを選択することも忘れずに。
Specular/Glossinessで書き出すときは何が変わる?
ここまではMetallic/Roughness(メタルネス)ワークフロー前提で書いてきた。UE5やUnityに渡すならこれが正解で、業界の標準もこちらだ。ただしArnoldやV-Rayを使うオフラインレンダリング/VFX系のパイプラインでは、いまもSpecular/Glossinessが現役で、渡す先によっては切り替えを求められる。
| Metallic/Roughness | Specular/Glossiness | |
|---|---|---|
| 出るマップ | Base Color + Metallic + Roughness | Diffuse + Specular Color + Glossiness |
| 反射の指定方法 | 金属か非金属かの二択。非金属の反射率は固定 | スペキュラを色で直接指定できる |
| ラフネス/グロス | Roughness(黒=つるつる) | Glossiness=Roughnessの白黒を反転したもの |
| 主な使い先 | UE5・Unity・リアルタイム全般 | Arnold・V-Ray など映像・広告のオフラインレンダリング |
⚠️ 後から変換すると情報が落ちる: Metallic/Roughnessは非金属の反射率を約4%に固定する仕様のため、Specular/Glossinessで作った色付きのスペキュラを変換すると、その色情報は再現できません。逆方向も完全には戻りません。渡す先が決まっているなら、最初からそのワークフローでプロジェクトを作るのが唯一の正解です。「あとで変換すればいい」で進めると、映像案件で手戻りになります。
迷ったらMetallic/Roughness
ポートフォリオや個人制作でどちらを選ぶか迷うなら、Metallic/Roughnessで問題ありません。ゲームエンジンもWeb系のビューアもこちらを前提にしています。Specular/Glossinessは「指定された場合に選ぶもの」と考えて構いません。
不透明度(Opacity)を書き出したいのにマップが出てこないときは?
葉っぱ、金網、ガラス、髪の毛のような抜けのある表現を渡すには不透明度のマップが要る。ところが書き出しウィンドウにOpacityが出てこないという詰まり方が非常に多い。原因はほぼ1つで、プロジェクトにOpacityチャンネルが無いためだ。
チャンネルの一覧はいつでも足したり外したりできます。ここに無いものは書き出しの候補にも出てきません。逆に、Opacityチャンネルを持っているマテリアルは書き出し時のアルファモードが自動的に「Blend」になり、持っていなければ「Opaque」になります。
Export Maps のパネルで対象のテクスチャセットを選び、Opacityにチェックを入れます。プリセットによっては最初から含まれています。
PNGかTGAを選んでください。JPEGはアルファチャンネルを持てないので、ここでつまずくと「設定は合っているのに透明にならない」という状態になります。可逆圧縮で対応ソフトも多いPNGが無難です。
💡 UE5に渡す場合の注意: マテリアルのBlend ModeをMaskedかTranslucentにしないと、Opacityマップを繋いでも見た目に反映されません。Painter側で正しく出していても、エンジン側の設定で止まっていることがあるので、両方を確認してください。
まとめ:書き出し設定5大チェックポイント
- Normal/Heightは16-bit出力:8-bitはバンディングの原因
- ノーマルマップ規格の確認:UE5はDirectX、Unity・Maya・BlenderはOpenGL
- UE5のARMテクスチャ:インポート後にsRGBをオフ、R/G/B個別ピンで接続
- Unity HDRPのMask Map:SmoothnessはAlpha格納、sRGB無効化必須
- Maya ArnoldのRaw設定:数値マップはColor Space=Raw、Normalはbump2d経由
なお、Substance Painter 9.1以降の「Send to(Substance Connector)」機能を使えばUE5・Unity・Maya向けのチャンネルパッキング・ノード接続がワンクリックで全自動化される。まずは手動の設定を理解したうえで、自動化への移行を検討しよう。
テクスチャを書き出す前にベイク設定も確認しておこう。Substance Painterのベイクエラー解決策では黒いノイズ・UV割れ・ズレの原因と対策を詳しく解説している。

コメント