前回の記事では、MayaとArnoldでACEScg環境のAOVをマルチパートOpenEXRに出力する設定を解説しました。

この記事では、1本のEXRにdiffuse・specular・transmissionなどのAOVをまとめて出力する方法を扱いました。これは「1つのオブジェクトをパスに分解する」技術です。
今回はもう一段上の話です。シーン内のオブジェクトそのものを「レイヤー」に分けて、別々のEXRファイルとして出力する——それがRender Layerです。
コンポジットで特定の要素だけ色を変えたい・ぼかしたい・後から差し替えたいという場面で必須になる技術です。
そこで今回は、renderSetup(レンダーレイヤー) を使って素材を分けてレンダリングする方法を解説します。



Render Layerとは何か
Render Layerとは、同じシーンを「見え方の設定を変えながら」複数回レンダリングするための仕組みです。
カメラもライトも同じシーン。でもレイヤーAでは「オブジェクトだけ」、レイヤーBでは「背景の地面だけ」という具合に、各レイヤーにオーバーライド(設定の上書き)をかけることで、異なる素材を効率よく書き出せます。
たとえば前回の記事で使ったテストシーン(地面+立方体+トーラスなど)をRender Layerで分けると、次のようになります。
同じシーン(.mb)
├── layer_objects → 立方体・トーラスなど前景オブジェクトのみ
└── layer_background → 地面・背景のみ出力されたEXRファイルはコンポジットソフト(FusionやAfter Effects)で重ねて合成します。
背景だけを差し替えたいとき、前景オブジェクトの色だけ調整したいとき、それぞれを独立して扱えます。
なぜRender Layerを使うのか
シーンを1パスでまとめてレンダリングした場合、すべての要素が1枚の画像に焼き込まれます。そうなると、コンポジット段階で特定の要素だけを操作することができません。
| やりたいこと | 1パス合成済みではできるか |
|---|---|
| 背景だけ別の画像に差し替える | ❌ できない |
| オブジェクトと背景を別々にグレード(色調補正)する | ❌ できない |
| 影の色を変える・ぼかす | ❌ できない |
| 特定のオブジェクトだけ後から差し替える | ❌ できない |
Render Layerで素材を分けておけば、これらがすべて自由になります。
Render Layerの主な活用例
Render Layerはさまざまな場面で使われます。わかりやすい例から順に紹介します。
① オブジェクトと背景の分離(最も基本的な使い方)
前景のオブジェクトと背景を別レイヤーに分けることが、Render Layerの最もシンプルな使い方です。
実写のグリーンバック撮影と同じ発想で、背景だけを丸ごと差し替えることができます。
「やっぱり別の背景にしたい」という変更があっても、オブジェクト側を再レンダリングする必要がありません。
この記事の「実践①」で具体的な手順を解説しています。
② キャラクターを個別に分ける
キャラクターAとキャラクターBを別レイヤーにしておくと、コンポジットで「Aだけ明るく」「Bだけ色調を暗くする」といった調整が独立してできます。
③ キャラクターとエフェクトの分離
炎・煙・魔法エフェクトなどを別レイヤーにしておくと、エフェクトの強さや色合いをコンポで自由に調整できます。
3D側でエフェクトを再レンダリングせずに済むため、イテレーションが高速になります。
④ ライトグループ(Light Select)の分離
特定のライトが照らす成分だけを別レイヤーに書き出し、コンポでライトの色や強さを後から変更できます。過去にこの手法を解説した記事があります(ACEScg対応前の旧バージョンですが、基本的な手順は現在も有効です)。

ACEScg対応の新しい手順は、この連載で将来取り上げる予定です。
⑤ ホールドアウト(Holdout)/影の分離
あるオブジェクトを「影は落とすがカメラには映らない」状態にして、影だけを抽出する手法です。
aiShadowMatte ワークフローでもこの考え方を応用します。①の基本構成をさらに細かく制御する応用版です。この記事の「実践②」で解説しています。
renderSetupの基本
renderSetupは、Maya 2016.5以降に標準搭載されたレンダーレイヤー管理ツールです(旧来の「レンダーレイヤー」機能の後継)。1つのシーンの中に複数のレイヤーを定義でき、レイヤーごとに異なるオーバーライドを持たせてレンダリングできます。
メニューバーの Windows ➔ Rendering Editors ➔ Render Setup から開きます。

パネルの構成は大きく3階層です。
Render Setup
└── レイヤー(Layer) ← 書き出し単位
└── コレクション(Collection) ← そのレイヤーに含めるオブジェクトの定義
└── オーバーライド(Override) ← 設定の上書き内容コレクションにオブジェクトを追加し、そのオブジェクトに対してオーバーライドをかけることで「このレイヤーではこのオブジェクトをこう扱う」という指定ができます。
オブジェクトをコレクションに追加する
- Render Setupパネルで対象のレイヤーを選択し、コレクションを選択します。
- Outlineまたはビューポートで追加したいオブジェクトを選択します。
- Render Setupパネル右側の 「Add」ボタン をクリックします。
または、コレクションの セレクタフィールド(デフォルトは *)に追加したいオブジェクト名またはワイルドカードを直接入力することでも追加できます。
Primary Visibility Overrideを追加する
カメラから見えなくしたいオブジェクトには、Arnold の Primary Visibility をオーバーライドします。
- Render Setupパネルで対象のレイヤーをアクティブにします。
- 非表示にしたいオブジェクトを選択します。
- Attribute Editor → Shapeタブ →
Arnold→Visibilityセクションを開きます。 Primary Visibilityの項目を 右クリック → 「Create Absolute Override for Visible Layer」 を選択します。- Render Setupパネルの該当コレクション配下にオーバーライドが追加されます。チェックを外すと、そのレイヤーでのみカメラから見えなくなります。
実践①:基本の2レイヤー構成(オブジェクトと背景を分ける)
まずは最もシンプルなケースとして、前回のAOV記事で使ったテストシーン(地面+立方体・トーラス・ダイヤモンド・コイルなどのオブジェクト)を2つのレイヤーに分けます。
全体の方針
各レイヤーにコレクションを2つ作成し、「表示したいオブジェクト」と「非表示にしたいオブジェクト」を分けて管理します。オーバーライドは非表示側のコレクションにだけかけます。
layer_objects
├── obj_fg ← 立方体・トーラス・ダイヤモンド・コイル + background(Matteあり)(オーバーライドなし)
└── obj_ground ← ground(Transformノード)
└── obj_ground_shapes ← 自動生成されたShapeノード用(リネーム推奨)
└── Override: Primary Visibility = OFF
layer_background
├── bg_ground ← ground + background(Matteあり)(オーバーライドなし)
└── bg_fg ← 立方体・トーラス・ダイヤモンド・コイル(Transformノード)
└── bg_fg_shapes ← 自動生成されたShapeノード用(リネーム推奨)
└── Override: Primary Visibility = OFFオブジェクトをひとつひとつ別レイヤーに分ける必要はありません。オブジェクト単位の分離はCryptomatte(この連載の別記事で解説予定)が効率的です。
ステップ1:renderSetupでレイヤーとコレクションを作成する
- Render Setupパネルの
+ボタンをクリックし、レイヤーを2つ作成します。layer_objectslayer_background
- 各レイヤーにコレクションを2つずつ作成します。コレクション名は管理しやすい名前をつけておきましょう。
layer_objects→obj_fg(前景オブジェクト+background用)、obj_ground(ground用)layer_background→bg_ground(ground用)、bg_fg(前景オブジェクト用)
- 各コレクションに対応するオブジェクトを追加します。
obj_fgには立方体・トーラス・ダイヤモンド・コイルのほか、Mattにチェックの入った background もあわせて追加します。

ステップ2:layer_objectsの設定(地面を非表示にする)
layer_objects では地面(ground)だけをカメラから見えなくします。前景オブジェクトとbackgroundは通常通り表示します。
layer_objectsのobj_ground(ground)を選択します。- ground を選択し、Attribute Editor → Shapeタブ →
Arnold→Visibility→Primary Visibilityを 右クリック → 「Create Absolute Override for Visible Layer」 を選択します。

obj_groundの下に*(ワイルドカード)を使ったShapeノード用の子コレクションが自動生成されます。これは正常な動作です。ArnoldのVisibility属性はShapeノードに属するため、renderSetupがShape用の子コレクションを自動的に作成します。わかりやすくするためobj_ground_shapesにリネームしておくことを推奨します。obj_ground_shapesのオーバーライドでPrimary Visibilityのチェックを外します(OFF)。

obj_fg(前景オブジェクト+background)はオーバーライド不要です。そのままレンダリングされます。

このレイヤーではオブジェクトだけが透明な背景の上に浮かんだ状態でレンダリングされます。
ステップ3:layer_backgroundの設定(オブジェクトを非表示にする)
layer_background では前景オブジェクトをカメラから見えなくします。地面は通常表示のままです。
layer_backgroundのbg_fg(前景オブジェクト)を選択します。- 前景オブジェクトをすべて選択し、同様に Attribute Editor → Shapeタブ →
Arnold→Visibility→Primary Visibility→ 「Create Absolute Override for Visible Layer」 でオーバーライドを追加します。 bg_fgの下に自動生成された子コレクションをbg_fg_shapesにリネームします。Primary Visibilityのチェックを外します(OFF)。
bg_ground(ground)はオーバーライド不要です。

このレイヤーではオブジェクトの姿は映らず、地面とその上に落ちた影だけがレンダリングされます。
ステップ4:出力設定
Render Settings ➔ File Output で以下を設定します:
- File Name Prefix:
<RenderLayer>/<Scene>と指定するとレイヤー名でフォルダが自動生成されます - Format:
exr、Merge AOVsにチェック
レンダリングを実行すると以下の構成で出力されます:
renders/
layer_objects/
scene.0001.exr ← オブジェクトのみ(透明背景)
layer_background/
scene.0001.exr ← 地面+影のみ得られる素材のイメージ
| 素材 | RGB | Alpha |
|---|---|---|
layer_objects | オブジェクトの色情報 | オブジェクトのシルエット(くっきり) |
layer_background | 地面の色情報+影が落ちた領域 | 地面ポリゴンが存在する範囲のみ不透明(地面が届かないエリアは透明) |
layer_objects はアルファチャンネルでオブジェクトの輪郭が切り取られた状態です。
layer_background はgroundの大きさが有限なため、フレームの端などポリゴンが存在しないエリアのアルファは0(透明)になります。その透明部分に任意の背景色を合成する方法は、こちらの記事で解説しています。

実践②:応用例——aiShadowMatteシーンで影を独立させる
基本の2レイヤー構成が理解できたら、次は応用です。aiShadowMatte を使ったシーンでキャラクターと影を別レイヤーに分けることで、Fusionで影の色を変えたり・ぼかしたりできるようになります。

全体の方針
layer_beauty はオーバーライドなしでそのままレンダリングします。
layer_shadow のみコレクションを2つ作成し、キャラクターだけに Primary Visibility のオーバーライドをかけます。
layer_beauty
└── bty_char ← キャラクターのみ(オーバーライドなし)
※ floor・wall は含めない → アルファはキャラクターのシルエットのみ
layer_shadow
├── shd_stage ← floor・wall(aiShadowMatte)(オーバーライドなし)
└── shd_char ← キャラクター(Transformノード)
└── shd_char_shapes ← 自動生成されたShapeノード用(リネーム推奨)
└── Override: Primary Visibility = OFFlayer_shadow でキャラクターの Primary Visibility をオフにすると、カメラには映らなくなりますが Cast Shadows はデフォルトでオンのまま維持されます。
追加設定なしで影は floor に落ち続けます。
ステップ1:renderSetupでレイヤーを作成する

- Render Setupパネルの
+ボタンでレイヤーを2つ作成します。layer_beautylayer_shadow
layer_beautyにはコレクションを1つ(bty_char)作成し、キャラクターのみを追加します。floor・wall は追加しないことがポイントです。layer_shadowにはコレクションを2つ作成します。shd_stage:floor・wall(aiShadowMatte ポリゴン全て)shd_char:キャラクターメッシュ(複数ある場合はすべて)
ステップ2:layer_beautyの設定
layer_beauty ではオーバーライドは不要です。
aiShadowMatteのシーン設定をそのままに、Background Colorは黒(0, 0, 0) でレンダリングします。
bty_char にはキャラクターのみを追加します。
floor・wall(aiShadowMatte)を含めてしまうと、影のエリアもアルファチャンネルに焼き込まれ、キャラクターのシルエットと影が混在した状態になってしまいます。

キャラクターだけを含めることで、アルファはキャラクターのシルエットのみになります。
ステップ3:layer_shadowの設定(キャラクターを非表示・影は維持)
layer_shadow の shd_char にオーバーライドをかけます。
layer_shadowのshd_char(キャラクター)を選択します。- キャラクターのメッシュをすべて選択し、Attribute Editor → Shapeタブ →
Arnold→Visibility→Primary Visibilityを 右クリック → 「Create Absolute Override for Visible Layer」 を選択します。 shd_charの下に自動生成された子コレクションをshd_char_shapesにリネームします。Primary Visibilityのチェックを外します(OFF)。
shd_stage(floor・wall・aiShadowMatte)はオーバーライド不要です。

このレイヤーではキャラクターの姿は映らず、floor・wall に落ちた影だけが浮かんだ素材が得られます。
ステップ4:出力設定
Render Settings ➔ File Output で以下を設定します(実践①と同じ):
- File Name Prefix:
<RenderLayer>/<Scene> - Format:
exr、Merge AOVsにチェック
レンダリングを実行すると:
renders/
layer_beauty/
scene.0001.exr ← キャラクターBeauty(aiShadowMatteで影は透明)
layer_shadow/
scene.0001.exr ← 影マット素材(キャラなし)という構成でEXRが出力されます。
得られる素材のイメージ
| 素材 | RGB | Alpha |
|---|---|---|
layer_beauty | キャラクターの色情報 | キャラクターのシルエット |
layer_shadow | ほぼ黒(背景色が黒のため) | 影の透過グラデーション |
layer_shadow のアルファチャンネルが影の濃さのマップになっています。
Fusionではこのアルファを使って影に任意の色を乗せたり、Blurをかけたりが自由にできます。
まとめ
以上でrenderSettingによるレンダーレイヤーのレンダリングが完了しました。
renderSetupで分けたEXRをFusionでOver合成する手順は、以下の記事で解説しています。

aiShadowMatte の影に色をつけてぼかす具体的な操作は、連載Vol.4で解説しています。













コメント