Substance PainterとMayaで色が合わない?ACES設定と解決策完全ガイド

Substance 3D Painterで完璧なテクスチャを作り込んだのに、いざMaya (Arnold) に持ってくると「色が薄い」「ハイライトが強すぎる」「法線がおかしい」といった現象に悩まされていませんか?

これはバグではなく、CG制作における最大の落とし穴である「カラーマネジメント」の設定ミスが原因です。本記事では、近年標準となったACESワークフローに基づき、SubstanceとMayaの間で「完全に一致した色と質感」を再現するための設定と理論を徹底解説します。

目次

原因は「目のための色」と「計算のためのデータ」の混同

「色が合わない」というトラブルの9割は、画像データを読み込む際の解釈ミスが原因です。コンピュータグラフィックスにおいて、画像は大きく分けて2つの役割を持っています。

モニターが見せる嘘(ガンマ補正の正体)

私たちが普段モニターで見ている画像(sRGB)は、実は人間の目の特性に合わせてデータが加工されています。人間は暗い部分の変化に敏感なため、データ容量を節約するために暗い部分の情報を多く記録し、明るく補正(ガンマ補正)して保存しています。

モニターはこれを暗く表示する特性があるため、プラスマイナスゼロで正しく見えますが、データとしては「歪んだ状態」なのです。

💡 ガンマ補正とは

人間の目は「0から50の明るさ変化」は敏感に感じますが、「200から250の変化」はあまり感じません。この特性を利用して、データを効率的に保存するための「変換曲線」がガンマ補正です。一般的なsRGB画像には、約2.2のガンマ(指数)がかかっています。

レンダラーは正直者(リニアワークフロー)

一方、Arnoldなどの物理ベースレンダリング(PBR)エンジンは、現実世界の物理法則(光の足し算は 1+1=2)に従って計算を行います。

もし、人間用に明るく加工されたsRGBデータを、そのまま計算式(リニア空間)に放り込むとどうなるでしょうか?「本来の0.22の明るさ」を「0.5の明るさ」として計算してしまい、結果として全体的に白っぽくなったり、影が不自然になったりします。

これを防ぐために、読み込み時にガンマ補正を解除して、リニアな数値に戻す作業が必要になります。これがリニアワークフローの基本です。

⚠️ 計算が狂うとどうなる?

例えば、グレー50%のテクスチャ(sRGB値: 0.5)は、実際のリニア値では約0.22です。これをそのまま0.5として計算すると、本来より2倍以上明るい結果になってしまい、質感が完全に崩れます。

決定版!sRGBとRawの使い分けルール

では、具体的にどのテクスチャをどう設定すればよいのでしょうか?答えはシンプルです。「それは人間のための色か?計算のための数値か?」を自問することです。

1. 「色 (Color)」として扱うもの = sRGB

Base Color (Albedo), Emissive (発光)

これらは「赤」「青」「肌色」といった、人間が見たときの色情報です。これらはsRGBのガンマがかかっているため、Maya側でリニアに戻す必要があります。

2. 「数値 (Data)」として扱うもの = Raw

Roughness, Metallic, Normal, Height, Alpha

これらは画像に見えますが、中身は「0.5(50%の粗さ)」や「法線ベクトル」といった物理的な数値データです。

ここにガンマ補正をかけて数値を歪めてしまうと、質感や形状が破綻します。例えばRoughnessにガンマをかけると、0.5(適度なマット)が0.218(ツルツル)に変換され、意図しない強い光沢が出てしまいます。

テクスチャの種類 データの意味 Maya (File Node) 設定
Base Color / Emissive 色 (Color) Utility – sRGB – Texture
※ACEScg書き出しならACEScg
Roughness / Metallic 物理係数 (Data) Utility – Raw
Normal Map ベクトル (Data) Utility – Raw
Height / Displacement 高さ情報 (Data) Utility – Raw
Opacity / Alpha 透明度 (Data) Utility – Raw
📝 覚え方

色に名前がつけられるもの(赤、青、緑など)→ sRGB」
色に名前がつけられないもの(粗さ50%、ベクトル など)→ Raw」

実践設定ガイド:SubstanceからMaya(Arnold)へ

現在、業界標準となっているACES (Academy Color Encoding System) を使用した推奨フローを紹介します。

Step 1: Substance 3D Painter側の設定

1 プロジェクト設定

Edit > Settings > Color Management を開き、以下を設定:

  • Color Management: OpenColorIO
  • Configuration: ACES 1.2

これでビューポートがMayaと同じACES基準になります。

2 エクスポート設定

File > Export Textures で以下を設定:

  • ファイル形式: EXR (.exr) を強く推奨
  • ビット深度: 16-bit half または 32-bit float
  • Output Templates: PBR MetalRough(Arnold用)

JPEGやPNGなどの8bit画像は情報量が足りず、バンディング(階調割れ)の原因になります。

3 書き出し確認

Color Spaceは、OCIO設定であれば自動的に適切な変換が行われます。以下を確認:

  • Base Color: ACEScg または sRGB
  • Normal, Roughness, Metallic: Raw(変換なし)
💡 なぜEXRを推奨するのか

  • HDR対応: 0-1の範囲外の明るい値(ハイライト)も記録できる
  • 高精度: 16bit/32bitで滑らかなグラデーションを保持
  • メタデータ保存: カラースペース情報を埋め込める
  • 業界標準: VFX/映画業界で事実上の標準フォーマット

Step 2: Maya (Arnold) 側の設定

1 カラーマネジメント設定

Windows > Settings/Preferences > Preferences > Color Management で設定:

  • Enable: ON
  • Rendering Space: ACEScg
  • View Transform: ACES 1.0 SDR-video

これでMayaのビューポートとレンダリングがACES基準で動作します。

2 Fileノード設定(重要)

各テクスチャを読み込んだFileノードで、Color Space属性を設定:

Base Color(EXR/ACEScgの場合):

Color Space: ACEScg

Base Color(PNG/JPGの場合):

Color Space: Utility – sRGB – Texture

Roughness / Metallic / Normal:

Color Space: Utility – Raw
3 接続の確認

Hypershadeで以下を確認:

  • Base Color → aiStandardSurface の Base Color
  • Roughness → aiStandardSurface の Roughness(Out Color Rを推奨)
  • Metallic → aiStandardSurface の Metalness(Out Color Rを推奨)
  • Normal → aiBump2d → aiStandardSurface の Normal

よくある失敗:Alpha is Luminanceと法線マップ

Alpha is Luminance の罠

Roughnessマップなどを読み込んだ際、「Alpha is Luminance」にチェックを入れると質感が直るという情報がありますが、これはあくまで回避策です。

最も確実なのは、Fileノードの「Out Color R」をシェーダーのRoughnessなどに直接繋ぐことです。これにより、予期せぬガンマ計算の影響を受けずに純粋な数値データを渡すことができます。

🔧 正しい接続方法

  1. Roughnessファイルノードを選択
  2. Attribute Editor > Color Balance > Out Color R を右クリック
  3. 「Break Connections」して独立させる
  4. Out Color R を aiStandardSurface の Roughness に直接接続

この方法で、グレースケールデータをRチャンネルの生の数値として取得できます。

法線マップのブラックアーティファクト

モデルのエッジに黒い影が出る場合、NormalマップにsRGB補正がかかっている可能性が高いです。

法線ベクトル (0.5, 0.5, 1.0) がガンマ補正で歪むと、光の向きがありえない方向にねじ曲がり、レンダラーが「影」と誤判定して黒く塗りつぶしてしまいます。Normalマップは絶対にRawに設定してください。

🚫 絶対にやってはいけないこと

  • Normal Mapに sRGB を設定する
  • Roughness/Metallicに sRGB を設定する
  • EXRファイルに対してガンマ値を手動調整する
  • 32bitテクスチャをJPEGで保存する

これらは必ず予期しない結果を引き起こします。

トラブルシューティング:症状別解決法

症状1: 全体的に色が薄い・白っぽい

原因: Base Colorが Raw で読み込まれている

解決: File ノードの Color Space を「sRGB – Texture」または「ACEScg」に変更

症状2: ハイライトが強すぎる・テカテカする

原因: Roughness に sRGB 補正がかかっている

解決: Roughness の Color Space を「Raw」に変更し、Out Color R で接続

症状3: エッジに黒い線が出る

原因: Normal Map に sRGB 補正がかかっている

解決: Normal Map の Color Space を「Raw」に変更

症状4: Substanceと色がまったく違う

原因: カラーマネジメントの基準が異なる

解決: 両方のソフトで ACES (OpenColorIO) を有効にして統一

まとめ:プロダクション品質を出す3つの鉄則

✅ 完璧な色合わせのチェックリスト

1 Rendering Spaceの統一
SubstanceとMayaの両方でACES (OCIO)を使用する。

2 RawとsRGBの厳格な使い分け
Roughness, Metallic, Normalは「データ」なので必ずRaw。Base Colorは「色」なのでsRGBまたはACEScg

3 確実な接続
Alpha is Luminanceに頼らず、Rチャンネルを明示的に接続する。

これらの理屈を理解すれば、どんなレンダラーを使っても「色が違う」と焦ることはなくなります。正しいデータ管理で、本来のクリエイティビティを発揮しましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

CAPTCHA


目次