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

当ページのリンクには広告が含まれています。
Fusion_vol4アイキャッチ

前回の記事(Vol.3)では、renderSetupで分けた layer_objectslayer_background をFusionでOver合成する基本を解説しました。あのVol.3の終盤、aiShadowMatteシーンで影を別レイヤーに分けた場合のノード構成をさらっと紹介したのを覚えているでしょうか。「影レイヤーの具体的な扱いはVol.4で解説します」と予告したあれです。今回がその回です。

aiShadowMatte シーンをrenderSetupでキャラクター(Beauty)と影(Shadow)に分けてレンダリングした素材を使い、Fusionで次の3つを後から自由にコントロールできるようにします。

  • 背景色の差し替え(好きな色に変えられる)
  • 影の色変更(黒い影を青や茶に変えられる)
  • 影のぼかし(くっきりした影の輪郭を柔らかくできる)

3Dのレンダリングをやり直さずに、Fusionだけで後からいくらでも調整できる状態が目標です。

ただし、今回(Vol.4)ではVol.3にはなかった 重要な落とし穴 が1つあります。影のアルファが「グラデーション(半透明)」であることです。不透明なオブジェクトとは違い、半透明アルファはそのままOver合成するとエッジに黒ずみが出ます。この問題の原因と解決法が、今回(Vol.4)の核心です。

INDEX

今回使う素材

renderSetupの実践②で出力した2枚のEXRを前提にします。

EXR内容RGBAlpha
layer_beauty.exrキャラクターのみキャラクターの色情報キャラクターのシルエット(くっきり)
layer_shadow.exrfloor・wall(aiShadowMatte)+影ほぼ黒(Background Colorが黒のため)影の透過グラデーション

layer_shadow のアルファチャンネルが、影の濃さのマップになっています。Fusionではこのアルファを使って、影に任意の色を乗せたり、Blurで輪郭を柔らかくしたりします。

Maya側の前提 Fusionで背景を差し替える場合、レンダリング時の Background Colorは黒(0, 0, 0) にしてください。グレーベージュのまま書き出すと、影エリアのRGBに背景色が焼き込まれ、Fusionで色が二重計上されます(詳しくはaiShadowMatteのTips記事を参照)。

完成イメージ:ノードの全体構成

完成形

シアン(Cyan)の背景に、赤い影をぼかした状態を完成形として話をすすめます。

最終的な合成の流れは次のとおりです。

flowchart TD
    BG[Background_Cyan]
    ACES_BG[ACES Transform<br>sRGB → ACEScg]
    SHADOW[merge_color_shadow<br>加工済み影]
    BEAUTY[Loader_beauty<br>layer_beauty]
    
    M_SHADOW[Merge_shadow_bg]
    M_FINAL[Merge_final]
    ACES_OUT[ACES Transform<br>ACEScg → sRGB]
    OUT[[MediaOut]]

    BG --> ACES_BG
    ACES_BG --> M_SHADOW
    SHADOW --> M_SHADOW
    M_SHADOW --> M_FINAL
    BEAUTY --> M_FINAL
    M_FINAL --> ACES_OUT
    ACES_OUT --> 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;

影処理サブグラフ の中身が今回(Vol.4)の核心です。

flowchart TD
    L_SHADOW[Loader_shadow<br>layer_shadow.exr]
    MC[MatteControl / Blur]
    BG_RED[Background_red_shadow]
    ACES_RED[ACES Transform<br>sRGB → ACEScg]
    
    M_COLOR[merge_color_shadow<br>出力:赤い影]

    L_SHADOW --> MC
    MC --> M_COLOR
    BG_RED --> ACES_RED
    ACES_RED --> M_COLOR
    MC -.-> M_COLOR

    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;
    linkStyle 4 stroke:#00A2FF,stroke-width:2px;

奥から順に:Background_Cyan → 赤い影 → キャラクターVol.3と同じ「奥から積み上げる」ルールです。

ステップ1:素材を読み込む

  1. Loader ノードを2つ追加します。
    • Loader_beautylayer_beauty.exr
    • Loader_shadowlayer_shadow.exr
  2. 各LoaderのInspector → Format タブで PartRGBA に設定します。

Vol.3と同様、Over合成ではBeauty相当のRGBAパスをそのまま使います。

プリマルチプライ?Arnold × Fusionなら気にしなくていい

Vol.3の予告で「半透明アルファにはプリマルチプライの問題がある」と触れました。

ここで答えを言ってしまいます。

ArnoldはEXRをプリマルチプライ形式で書き出し、FusionはプリマルチプライEXRを前提として設計されています。

両者の仕様がぴったり一致しているため、LoaderでEXRを読み込んでMergeで合成するだけで、エッジのフリンジや色の狂いは発生しません。

補正作業は不要です

これはFusionがVFX・CGコンポジット向けに作られているからこその強みです。After Effectsなどストレートアルファ前提のアプリでArnoldのEXRを扱おうとすると、プリマルチ補正が必要になって面倒なことになります。Fusionはそこを気にせず作業に集中できる環境です。

ちなみに、VFX業界の標準コンポジットツールであるNukeも、FusionとまったくおなじくプリマルチプライEXRを前提として設計されています。「いつかNukeを使いたい」と思っている方にとっては、Fusionで今学んでいるノードベースの考え方やプリマルチの扱いは、そのままNukeに応用できます。Fusionは無料でNukeの思想を学べる環境でもあります

このVol.4のワークフロー全体を通じて、プリマルチプライに関して特別な操作は一切不要です。安心して次のステップへ進みましょう。

ステップ2:影をぼかす

影の輪郭を柔らかくしたい場合は、MatteControlInspector 内の Blur パラメータを使います。別途 Blur ノードを追加する必要はありません。

  1. MatteControl ノードを選択し、Inspectorを開きます。
  2. Blur の値を調整します(小さい値から試す)。
shadow_blur
影をぼかした状態

実質的にはアルファの輪郭がぼける効果になります。キャラクター本体には影響しません(影は layer_shadow 側で独立しているため)。

ステップ3:影に色をつける

ぼかした(またはそのままの)影マットに、任意の色を乗せます。「透明な背景の上に、影の形だけ切り抜いた色面」 を作るイメージです。

考え方

MatteControl を通した layer_shadow は、透明な背景の上に黒い影が乗った素材です。

Fusionのビューアでは透明部分がチェッカーボード柄で表示されるため、「チェッカー背景に黒い影」として見えます。影の外側はアルファ = 0(透明)です。

この素材の アルファチャンネルが「影の形・濃さのマップ」 になっています。MatteControl の出力を 黄色(Background)と青(Effect Mask)の両方に接続することで、「影の形の中だけに色を適用する」という範囲指定ができます。

Effect Maskを接続しないと、緑端子の Background_red_shadow(単色)がマスクされず画面全体を覆ってしまいます。 影の色が変わらない・全面が影の色になるトラブルの原因はほぼこれです。

flowchart TD
    BG_RED[Background_red_shadow]
    ACES_RED["ACES Transform<br>赤・ACEScg変換済み"]
    MC[MatteControl の出力]
    M_COLOR["merge_color_shadow<br>透明背景+赤影"]

    BG_RED --> ACES_RED
    ACES_RED --> M_COLOR
    MC --> M_COLOR

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

手順

flowchart TD
    SCR[shadow_color_Red]
    ACES3[ACESTransform3]
    LS[Loader_shadow]
    MC1[MatteControl1]
    M3[Merge3]

    SCR --> ACES3
    ACES3 --> M3
    LS --> MC1
    MC1 --> M3
    MC1 -.-> M3

    linkStyle 0 stroke:#4CAF50,stroke-width:2px;
    linkStyle 1 stroke:#4CAF50,stroke-width:2px;
    linkStyle 2 stroke:#4CAF50,stroke-width:2px;
    linkStyle 3 stroke:#F4C430,stroke-width:2px;
    linkStyle 4 stroke:#00A2FF,stroke-width:2px;
  1. Background(BG)ノードを追加し、ノード名を Background_red_shadow に変更します。色をに設定します。
  2. ACES Transformノードを追加し、Background_red_shadow の直後に接続します。
    • ACES Version: ACES 2.0
    • Input Transform: sRGB(Texture) - CSC
    • Output Transform: ACEScg - CSC
  3. Merge(MRG)ノードを追加し、ノード名を merge_color_shadow に変更します。
  4. 接続します:
    • ACES Transform(赤をACEScgに変換後)→ merge_color_shadow の 緑色(Foreground)
    • MatteControl の出力 → merge_color_shadow の 黄色(Background)
    • MatteControl の出力 → merge_color_shadow の 青色(Effect Mask)
  5. merge_color_shadow のInspector:
    • Apply Mode: Normal
    • Alpha Gain: 1.0
    • Subtractive/Additive: 0.0

これで「影の色 × 影のアルファ」が透明背景の上に乗った状態が完成します。影の濃淡はアルファのグラデーションがそのまま反映されるため、輪郭が自然にフェードします。

黒いままでいい場合は? 影の色を変えなくていい場合(黒い影のまま使う場合)は、このステップを省略できます。ステップ5で Blur(または MatteControl)の出力を直接 Merge_bg_shadow の緑端子に接続してください。

ステップ4:背景色・影・キャラクターをOver合成する

影処理サブグラフができたら、Vol.3と同じ要領で3段Over合成します。

手順

  1. Background(BG)ノードを追加し、ノード名を Background_Cyan に変更します。色をシアンに設定します。
  2. ACES Transformノードを追加し、Background_Cyan の直後に接続します。
    • ACES Version: ACES 2.0
    • Input Transform: sRGB(Texture) - CSC
    • Output Transform: ACEScg - CSC
  3. Merge(MRG)ノードを追加し、ノード名を Merge_shadow_bg に変更します。
    • ACES Transform(シアンをACEScgに変換後)→ 黄色
    • merge_color_shadow の出力(赤い影)→ 緑色
    • Over設定
      • Alpha Gain: 1.0
      • Subtractive/Additive: 0.0
  4. Merge(MRG)ノードを追加し、ノード名を Merge_final に変更します。
    • Merge_shadow_bg の出力 → 黄色
    • Loader_beauty(layer_beauty)→ 緑色
    • 同じOver設定
  5. Merge_finalACES Transform(ACEScg → sRGB)→ MediaOut
flowchart TD
    SCR[shadow_color_Red]
    ACES3[ACESTransform3]
    LS[Loader_shadow]
    MC1[MatteControl1]
    M3[Merge3]
    
    BG[Background_Cyan]
    ACES1[ACESTransform1]
    M_BG[Merge_bg]
    
    LB[Loader_beauty]
    M_FINAL[Merge_final]
    ACES2[ACESTransform2]
    OUT[[MediaOut1]]

    SCR --> ACES3
    ACES3 --> M3
    LS --> MC1
    MC1 --> M3
    MC1 -.-> M3
    BG --> ACES1
    ACES1 --> M_BG
    M3 --> M_BG
    M_BG --> M_FINAL
    LB --> M_FINAL
    M_FINAL --> ACES2
    ACES2 --> OUT

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

BackgroundはsRGBなのでACEScgに変換してから合成する(Vol.2と同じルール)
FusionのBackgroundノードで選んだ色はsRGB色空間の値として扱われます。ACEScgのリニア空間で書き出されたEXRとそのまま合成すると色がズレるため、合成前に ACES Transform(sRGB→ACEScg)で変換します。これはVol.2と同じ方針です。

PhotoshopなどsRGB画像を背景に使う場合も同じ
PhotoshopやLightroomで書き出したJPEG・PNGなどもsRGBなので同様に変換が必要です。Loader の直後に ACES Transform(Input: sRGB(Texture)-CSC / Output: ACEScg-CSC)を挿入してから合成してください。

これで、背景・影・キャラクターをそれぞれ独立して調整できる状態が完成します。

調整のヒント

やりたいこと触るノード方法
背景色を変える最終Background色やグラデーションを変更
影の色を変える影用Background影のBackgroundノードの色を変更
影をぼかすMatteControlInspector内の Blur パラメータを上げる
影を濃く/薄くするMerge_shadow または GradeEffect Maskの前後にBrightnessContrastを挟む
キャラクターの明るさLoader_beauty の後ろGradeノードで独立調整

3D側を再レンダリングせずに、Fusionだけで「背景を青に」「影をもっとソフトに」「影を暖色に」といった変更ができます。

Vol.2・Vol.3との違い(おさらい)

Vol.2Vol.3Vol.4(今回)
素材1枚のEXR(AOV加算済み)layer_objects + layer_backgroundlayer_beauty + layer_shadow
影の扱いBeautyのアルファに影が混在地面レイヤーに影が含まれる影だけ独立したEXR
影の色・ぼかし3D再レンダリングが必要地面ごと再レンダリング影レイヤーだけ加工可能
プリマルチプライEffect MaskでBeautyアルファ復元不透明オブジェクト中心FusionがEXRを自動処理・補正不要

renderSetupで影を分けておくことのメリットが、Vol.4で初めてフルに活きます。

まとめ

ポイント内容
素材layer_beauty(キャラ)+ layer_shadow(影マット)
合成順背景色 → 加工した影 → キャラクター
影の色Background + Effect Mask(影のアルファ)
影のぼかしMatteControl Inspector内の Blur パラメータ
プリマルチプライFusionがACEScg EXRを自動処理するため補正不要
ACES Transform①BackgroundノードのsRGB色→ACEScgに変換(合成前)
②Merge_final出力→sRGBに変換(MediaOut直前)

Maya側でrenderSetupにより素材を分け、Fusion側で影を独立して加工する——この2段構えが、マネ風ステージのような「境界なき空間」を自由にいじるための基本ワークフローです。

次回Vol.5では、このシーンを完成させる最後のピース——コイルの発光を仕上げます。

よくあるトラブルと対処

影のエッジにフリンジ(元の背景色の縁)が出る

原因: Maya側のレンダリング時に Background Color が黒(0, 0, 0)以外になっている。影の半透明エッジのRGBにMayaのBackground Colorが焼き込まれているため、Fusionで背景を差し替えてもエッジに元の色が残ります。

対処: Maya の Render SettingsEnvironmentBackground Color黒(0, 0, 0) にしてから再レンダリングしてください(ステップ1の前提条件を参照)。

FusionはACEScg EXRのプリマルチプライを自動処理するため、プリマルチプライ起因のフリンジはこのワークフローでは発生しません。

影の色を変えたのに変わらない・全面が影の色になる

原因①(最多): MatteControl の出力が Merge_shadow青端子(Effect Mask) に接続されていない。

Effect Maskが空のままだと、Background_shadow(色ノード)が影の形でクリッピングされず、設定した影の色(例:赤)が画面全体を覆ってしまいます

対処: MatteControl の出力は 黄色(Background)と青(Effect Mask)の両方に接続します。3本の線が正しく繋がっているか確認します:

  • ACES Transform(影の色・ACEScg変換済み)→ 緑(Foreground)
  • MatteControl の出力 → 黄色(Background)
  • MatteControl の出力 → 青(Effect Mask)

原因②: Background_shadow の色が 緑端子(Foreground) ではなく 黄端子(Background) に接続されている。

対処: 色を適用したい Background_shadow は必ず 緑(Foreground) に入れます。

影がまったく表示されない(透明になる)

原因: layer_shadow.exrPart が正しく設定されていない可能性があります。

対処: Loader_shadow のInspector → Format タブ → PartRGBA になっているか確認してください。Part が別のAOVになっていると、アルファのない素材が読み込まれます。

最終出力のビューアでキャラクターが暗すぎる、または色が変

原因: ACES Transform の Input Transform が ACEScg - CSC 以外(ACESccACEScct)になっている。Vol.3のACEScc混同トラブルと同じ症状です。

対処: ACES TransformInput TransformACEScg - CSC になっているか確認してください。

次回予告:Vol.5 ライトセーバーをシネマチックに仕上げる

Vol.1〜Vol.4でコンポジットの土台は完成しました。

次回はついに「発光エフェクトの極意:emissionパスを使い、あのネオン管をシネマチックで美しい発光へと仕上げる」です。

次回Vol.5は、Vol.1で書き出したEXRをそのまま使います。

再レンダリングは不要、新しいシーンも不要。手元にあの emission パスが入ったEXRがあれば、今すぐ始められます。

やること:

  • emission_pass のLoaderをネットワークに追加し、Glowエフェクト用のサブグラフを組む
  • Blur ノードでボケ足を作り、Merge でBeautyの上に重ねてコイルを光らせる
  • specular_pass をGradeで強調し、ハイライトに艶を出す

コイルが「ただの光るオブジェクト」から「映画の中のライトセーバー」に変わる瞬間がVol.5です。

Fusion_vol4アイキャッチ

この記事が気に入ったら
フォローしてね!

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

この記事を書いた人

フリーの3DCGアニメーター。
メインツールはMaya(使用歴20年以上)です。お仕事ではSoftimage(XSI)やMotionBuilderの使用経験もあり。思いに手付け(キーフレームアニメーション)が多いですが、キャプチャーもいけます。サブスキルとしてはリグ(Maya限定ですが)も少々いけます。

ゲームが昔から大好きなので「ゲーマー」としての側面からもいろいろ発信出来ればと考えています。
CG歴よりもゲーマー歴のほうがずっと長いもので(笑)。

twitterアカウント
@inopoa1

よろしくお願いします。

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

INDEX