All posts

【Resolve Fusion Vol.3】Over合成入門|renderSetupで分けた別EXRをMergeノードで重ねる基本

【Resolve Fusion Vol.3】Over合成入門|renderSetupで分けた別EXRをMergeノードで重ねる基本

Vol.1では、Maya+ArnoldでACEScg環境のAOVを1本のマルチパートOpenEXRに出力し、Fusionで加算マージしてBeautyを再構築する方法を解説しました。

Vol.2では、その1枚のEXRを使って背景色を差し替える実践を扱いました。

今回のVol.3は、別の切り口です。

Maya側でrenderSetupを使い、オブジェクトと背景を別々のEXRファイルとして書き出した素材を、FusionでOver合成して重ね合わせます。

関連記事【Resolve Fusion Vol.2】AOV加算マージ後に背景を差し替える──アルファ消失をEffect Maskで解決する方法関連記事【Maya×Arnold】ACEScgでAOVレンダリングする基本設定関連記事【Maya x Arnold】MayaのrenderSetup完全ガイド|背景・キャラクター・影を別EXRに分ける方法関連記事【DaVinci Resolve Fusion Vol.1】ACEScg AOV加算マージの基礎関連記事DaVinci Resolve Fusion コンポジット完全ガイド関連記事【完全保存版】Maya Arnold レンダリング&AOV出力設定まとめ関連記事Maya Arnold➔Fusion連携ワークフロー完全ロードマップ

Vol.1・Vol.2・Vol.3——何が違うのか

この連載では「Over合成」という言葉がVol.2でもVol.3でも出てきます。混同しやすいので、先に整理しておきます。

Vol.1Vol.2Vol.3(今回)
Maya側1本のEXRにAOVをまとめて出力同左renderSetupで別EXRに分けて出力
Fusion側の目的AOVを加算してBeautyを再構築再構築したBeautyの背景色を差し替え別々のEXR同士を前後関係で重ねる
Mergeの主な設定Alpha Gain: 0.0(加算)Alpha Gain: 1.0(Over)+Effect MaskAlpha Gain: 1.0(Over)
アルファの扱い加算中はアルファを無視Effect Maskで手動復元が必要各EXRのアルファをそのまま使える

Vol.2は「1枚のEXRの中で背景を差し替える」話。

関連記事【Resolve Fusion Vol.2】AOV加算マージ後に背景を差し替える──アルファ消失をEffect Maskで解決する方法

Vol.3は「Maya側で分けた2枚以上のEXRを、Fusionで重ねる」話です。

AOV加算マージとOver合成——Merge設定の違い

FusionのMergeノードは、2枚の画像を「どのように重ねるか」を設定で切り替えます。

同じMergeノードですが、目的によって設定が変わります。

今回扱う(Vol.3)の内容は、わかりやすく言うとAfterEffectsやPhotohopで行うレイヤーを上に重ねる方法と同じです。

AOV加算マージ(Vol.1)Over合成(Vol.3)
目的同じオブジェクトの光の成分(diffuse・specularなど)を足し合わせて1枚のBeautyを作る別々の素材(オブジェクト・背景・影など)を前後関係に従って重ねる
Apply ModeNormalNormal
Alpha Gain0.0(アルファ無視)1.0(アルファを使う)
Subtractive/Additive1.0(完全加算)0.0(通常Over)
アルファの役割無視(光は足すだけ)前景の「切り抜き形状」として使う

加算マージは光を数値として足し算する処理で、アルファは関係ありません。Over合成は前景のアルファを使って穴を開けた形で背景の上に乗せる処理です。

Mergeノードの端子の復習

Mergeノードの端子ルールはVol.1で詳しく解説しています。簡単におさらいすると:

  • 黄色(Background):奥に敷く素材
  • 緑色(Foreground):手前に重ねる素材
  • 白(Output):合成後の出力

Over合成では、この端子ルールを守りながらアルファを活かす設定にします。

Over合成の基本設定

MergeノードのInspectorを以下のように設定します。

設定項目値
Apply ModeNormal
Subtractive/Additive0.0(重要!)
Alpha Gain1.0

これがFusionにおける「Over合成」の設定です。

前景のアルファチャンネルが正しく出力されていれば、輪郭に沿って背景の上に綺麗に重なります。

Subtractive/Additive は0.0にしないとダメ?

📌 プレビューの罠に注意! 前景オブジェクトの背景が真っ黒なEXR素材をOver合成する場合、Subtractive/Additive を 0.0 にしても 1.0 にしても、中央の不透明な部分はプレビュー上で一見違いが無いように見えます。 しかし、1.0 のままだとオブジェクトの輪郭(エッジ)の半透明な部分で計算が二重に行われ、エッジが白く浮いたり、チリチリしたノイズ(フリンジ)の原因になります。

Photoshopと同じ「正しいOver合成」を行うため、Alpha Gain: 1.0 のときは、Subtractive/Additive は必ず 0.0 に下げる と覚えておきましょう!

Vol.2との違い Vol.2ではAOV加算マージのあとにアルファが消えていたため、Effect Mask(青端子)で復元する必要がありました。renderSetupで分けたEXRは、書き出し時点でそれぞれ独立したアルファを持っているため、Vol.3ではEffect MaskなしでOver合成できます。

ACEScg環境での注意:ACES Transformは最後に

Vol.1と同様、今回もACEScgでレンダリングしたEXRをFusionで扱います。Over合成もリニア(ACEScg)の数値のまま行い、すべての合成が終わった一番最後に ACES Transform ノードを挟んでsRGB表示用に変換してください。

AOV加算の途中やOver合成の途中でACES Transformを挟むと、色空間が壊れて合成結果が破綻します。

ACES Transformの設定(Vol.1と同じ)

  1. 最終Mergeノードの直後に ACES Transform ノードを挿入します。
  2. Inspectorで以下を設定します:
    • ACES Version: ACES 2.0(または利用可能な最新版)
    • Input Transform: ACEScg - CSC
    • Output Transform: sRGB piecewise

この設定で、Mayaのレンダービュー(View Transform: sRGB (ACES))と一致した表示になります。

詳細はVol.1を参照してください。

【要注意】Input Transform:ACEScg / ACEScc / ACEScct — 似た名前だけど全く別物

ACES Transform の Input Transform プルダウンを開くと、 ACEScg - CSC・ACEScc - CSC・ACEScct - CSC が並んでいます。

実は、間違ってしまって混乱してしまいました。

Over合成が終わって ACES Transform を繋いだ瞬間、テストシーンの 青いライトセーバー(コイル)が真っ白に白飛び しました。

「emission が強すぎるのか?」「Merge の設定がおかしいのか?」とMaterialやノードを総点検したあと、原因は、どこかの Input Transform(または変換ノード)が ACEScc - CSC になっていただけ、というオチでした。

これをやらかすと、リニアデータ(ACEScg)をログデータ(ACEScc)として誤変換してしまうため、数値が数百倍に跳ね上がります。
結果、テストシーンの青いライトセーバー(コイル)だけでなく、後から敷いたはずの背景色まで巻き込んで、画面全体が太陽の表面のように真っ白に大爆発(白飛び)します(上の画像は背景にもACES Transformを適用指定ない状態です)。

ACEScg - CSCACEScc - CSCACEScct - CSC
データの性質リニア(ガンマなしの生の光の数値)ログ(純粋な対数カーブ)ログ(シャドウに toe 付きの対数カーブ)
主な用途3DCGレンダリング・AOV加算・Over合成などの コンポジット作業カラーグレーディング(旧来のログ作業空間)カラーグレーディング(現行のログ作業空間)
Maya(ACEScg)のEXRに使う?✅ これが正解❌ 使わない❌ 使わない
間違えたときの症状—全体が明るく浮く、発光部分が真っ白に潰れる同左

ACEScc と ACEScct の違いは、どちらも「ログ」である点は同じで、グレーディング用です。

違いはシャドウの扱いだけ——ACEScc は純粋なログカーブ、ACEScct は従来のフィルムログのように シャドウ側に toe(なだらかな曲線) を足した改良版です。

Resolve のプロジェクト設定で Color Science を ACEScct にしている場合、プルダウンに ACEScct が目に入りやすくなりますが、Maya の EXR を Fusion でコンポする場面ではどちらも Input Transform として選んではいけません。

公式ドキュメントでも ACEScc は ACEScct に置き換えられ、新規ワークフローでは非推奨とされています(ACESccは、ACEScgと間違わせるための罠だと思って良いでしょう)。

覚え方 Maya のレンダリング Color Space が ACEScg なら、Fusion の Input Transform も ACEScg - CSC です。

  • cg = Computer Graphics(3DCG向け・リニア)
  • cc = Color Correction(グレーディング向け・ログ・旧版)
  • cct = Color Correction Tool(グレーディング向け・ログ・現行版)

コンポ用は cg だけ。cc も cct も名前が紛らわしいので、Maya EXR には使わない、と覚えておけば安全です。

白飛びや色が狂ったときは、Merge の設定より先に Input Transform が ACEScg - CSC かどうか を確認してください。私の場合、ここを直しただけで Maya のレンダービューとピクセル単位で一致しました。

実践:renderSetupの2枚をOver合成する

renderSetupの記事で出力した素材を使います。

layer_background
layer_objects
EXR内容アルファ
layer_background.exrground+影groundがある範囲のみ不透明。groundが届かないエリアは透明
layer_objects.exr立方体・トーラス・ダイヤモンド・コイルオブジェクトのシルエット(くっきり)

手順(2枚合成)

  1. Loader ノードを2つ追加し、それぞれのEXRを読み込みます。
    • Loader_bg:layer_background.exr
    • Loader_obj:layer_objects.exr
  2. 各LoaderのInspector → Format タブで Part を RGBA に設定します(Beauty相当のカラー+アルファをそのまま使います)。
  3. Merge ノードを1つ追加します。
  4. 接続します:
    • Loader_bg → Merge の 黄色(Background)
    • Loader_obj → Merge の 緑色(Foreground)
  5. MergeノードのInspector:
    • Apply Mode: Normal
    • Alpha Gain: 1.0
    • Subtractive/Additive: 0.0
  6. Merge → ACES Transform → MediaOut と接続します。
flowchart TD
    L_BG[Loader_bg<br>layer_background]
    L_OBJ[Loader_obj<br>layer_objects]
    M1[Merge1]
    ACES[ACESTransform1]
    OUT[[MediaOut1]]

    L_BG --> M1
    L_OBJ --> M1
    M1 --> ACES
    ACES --> OUT

    linkStyle 0 stroke:#4CAF50,stroke-width:2px;
    linkStyle 1 stroke:#F4C430,stroke-width:2px;
    linkStyle 2 stroke:#4CAF50,stroke-width:2px;
    linkStyle 3 stroke:#4CAF50,stroke-width:2px;

layer_background の上に layer_objects が重なり、1パスレンダリングに近い絵が再現されます。

ただし layer_background だけでは、groundの外側(空の部分)はまだ透明です。

実践:3枚合成(背景色 → 地面 → オブジェクト)

Background
Background + layer_background
Background + layer_background + layer_objects

renderSetupの記事でも触れた通り、groundがフレーム全体を覆いきれない場合は、任意の背景色を一番奥に敷く必要があります。Vol.2と同じ発想ですが、今回はAOV加算パイプラインではなく、renderSetupで分けたEXR同士のOver合成です。

手順

  1. Background ノードを追加し、差し替えたい背景色(例では黄色)を設定します。
  2. Merge1 を追加します。
    • Background → 黄色
    • Loader_bg(layer_background)→ 緑色
    • Over設定(Alpha Gain: 1.0 / Subtractive/Additive: 0.0)
  3. Merge2 を追加します。
    • Merge1 の出力 → 黄色
    • Loader_obj(layer_objects)→ 緑色
    • 同じOver設定
  4. Merge2 → ACES Transform → MediaOut
flowchart TD
    BG[Background1]
    ACES2[ACESTransform2]
    L_BG[Layer_background]
    L_OBJ[Layer_objects]
    
    M1[Merge1]
    M2[Merge2]
    
    ACES1[ACESTransform1]
    OUT[[MediaOut1]]

    BG --> ACES2
    ACES2 --> M1
    L_BG --> M1
    M1 --> M2
    L_OBJ --> M2
    M2 --> ACES1
    ACES1 --> OUT

    linkStyle 0 stroke:#4CAF50,stroke-width:2px;
    linkStyle 1 stroke:#F4C430,stroke-width:2px;
    linkStyle 2 stroke:#4CAF50,stroke-width:2px;
    linkStyle 3 stroke:#F4C430,stroke-width:2px;
    linkStyle 4 stroke:#4CAF50,stroke-width:2px;
    linkStyle 5 stroke:#4CAF50,stroke-width:2px;
    linkStyle 6 stroke:#4CAF50,stroke-width:2px;

奥から順に積み上げる——Background → layer_background → layer_objects——の順序が基本ルールです。

レイヤーが3枚以上の場合

renderSetup実践①(テストシーン)の場合

groundがフレーム全体を覆いきれないときは、上記の3枚合成(Background → layer_background → layer_objects)が基本形です。

aiShadowMatteシーン(renderSetup実践②)の場合

影を別レイヤーに分けた場合(以下の記事を参照)は、Mergeノードを奥から順番にチェーンします。

関連記事MayaのArnoldでマネの『笛を吹く少年』風「境界なき空間」をレンダリングする(aiShadowMatteの使い方)
flowchart TD
    BG[Background]
    L_SHADOW[layer_shadow<br>※影の加工はVol.4で解説]
    L_BEAUTY[layer_beauty<br>※キャラクターBeauty]
    
    M1[Merge1]
    M2[Merge2]
    ACES[ACESTransform1]
    OUT[[MediaOut1]]

    BG --> M1
    L_SHADOW --> M1
    M1 --> M2
    L_BEAUTY --> M2
    M2 --> ACES
    ACES --> OUT

    linkStyle 0 stroke:#F4C430,stroke-width:2px;
    linkStyle 1 stroke:#4CAF50,stroke-width:2px;
    linkStyle 2 stroke:#F4C430,stroke-width:2px;
    linkStyle 3 stroke:#4CAF50,stroke-width:2px;
    linkStyle 4 stroke:#4CAF50,stroke-width:2px;
    linkStyle 5 stroke:#4CAF50,stroke-width:2px;

後から「影だけ色を変えたい」「キャラクターだけ明るくしたい」という場合も、各Loaderの後ろにGradeノードを挟めば独立して調整できます。影レイヤーの具体的な扱い(色・ぼかし・プリマルチプライ)はVol.4で解説します。

関連記事【Resolve Fusion Vol.4】aiShadowMatteの影をぼかして色を変える|背景差し替えコンポジット

AOV加算マージとの組み合わせ方(発展)

renderSetupで書き出した各EXRにも、Maya側で Merge AOVs をオンにしていればAOVが含まれています。各レイヤーごとに色調や光の成分を細かくいじりたい場合は、Over合成の前にVol.1のAOV加算マージをレイヤー単位で済ませます。

flowchart TD
    subgraph OBJ_AOV [layer_objects.exr]
        DP[diffuse_pass]
        SP[specular_pass]
        TP[transmission_pass]
        EP[emission_pass]
        M1_OBJ[Merge1]
        M2_OBJ[Merge2]
        M3_OBJ[Merge3<br>合成済みオブジェクト素材]

        DP --> M1_OBJ
        SP --> M1_OBJ
        M1_OBJ --> M2_OBJ
        TP --> M2_OBJ
        M2_OBJ --> M3_OBJ
        EP --> M3_OBJ
    end

    L_BG[layer_background.exr<br>RGBAをそのまま使用]
    M_OVER[Over合成 Merge]
    ACES[ACESTransform1]
    OUT[[MediaOut1]]

    L_BG --> M_OVER
    M3_OBJ --> M_OVER
    M_OVER --> ACES
    ACES --> OUT

    linkStyle 0 stroke:#4CAF50,stroke-width:2px;
    linkStyle 1 stroke:#F4C430,stroke-width:2px;
    linkStyle 2 stroke:#4CAF50,stroke-width:2px;
    linkStyle 3 stroke:#F4C430,stroke-width:2px;
    linkStyle 4 stroke:#4CAF50,stroke-width:2px;
    linkStyle 5 stroke:#F4C430,stroke-width:2px;
    linkStyle 6 stroke:#4CAF50,stroke-width:2px;
    linkStyle 7 stroke:#F4C430,stroke-width:2px;
    linkStyle 8 stroke:#4CAF50,stroke-width:2px;
    linkStyle 9 stroke:#4CAF50,stroke-width:2px;

Vol.3の基本手順ではRGBAパスをそのまま使います。AOVまで分解してからOverする必要がある場面だけ、上記の2段構えを使います。

まとめ

ポイント内容
Vol.3の位置づけrenderSetupで分けた別EXR同士をOver合成する
Over合成の設定Alpha Gain: 1.0 / Subtractive/Additive: 0.0
端子ルール黄色=背景(奥)、緑色=前景(手前)
合成順必ず奥から順番に積み上げる
アルファrenderSetup素材はEffect Maskなしで使える
ACES Transform①BackgroundノードのsRGB色→ACEScgに変換(合成前)
②Merge_final出力→sRGBに変換(MediaOut直前)

次回のVol.4では、このOver合成の応用として aiShadowMatte の影レイヤーに色をつけてぼかす手順を解説します。

aiShadowMatte(影だけが浮かぶ「絵画的なステージ」)を使ったシーンで、コンポ段階から背景色を自由に差し替えるチュートリアルです。

  • aiShadowMatte は影の透過グラデーションをアルファにベイクする特殊マテリアルです。単純なEffect Maskで接地影をそのまま保ちながら背景色を変えようとすると、キャラクターの輪郭がジャギー(ガビガビ)になる問題が起きます。
  • その原因は 「プリマルチプライ(Pre-multiplied Alpha)」 の扱いにあります。Vol.3ではこの問題の正体と、Fusionのノードで一発で解決する方法を解説します。

📌 プリマルチプライについて ArnoldのEXRはプリマルチプライド(Pre-multiplied Alpha)で出力されます。Vol.3で扱う layer_objects のような不透明オブジェクトでは、この記事の手順でそのまま問題なく合成できます。ただし、Vol.4で扱う layer_shadow のように影の輪郭がグラデーションする半透明アルファを扱う場合は、MatteControlでのPre-Divideが必要になります。詳しくはVol.4を参照してください。

← 前の記事(Vol.2) | 親ロードマップに戻る(シリーズ読了)

関連記事【Resolve Fusion Vol.4】aiShadowMatteの影をぼかして色を変える|背景差し替えコンポジット関連記事MayaのArnoldでマネの『笛を吹く少年』風「境界なき空間」をレンダリングする(aiShadowMatteの使い方)関連記事【Maya×Arnold】ACEScgでAOVレンダリングする基本設定関連記事DaVinci Resolve Fusionでノードベースのコンポジット関連記事MayaのArnoldでAOVの出力方法 まとめ関連記事Maya Arnold➔Fusion連携ワークフロー完全ロードマップ

コメント

まだコメントはありません