【Maya×Arnold】ACEScgでAOVレンダリングする基本設定

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

今回は、MayaとArnoldを使って複数のAOV( Arbitrary Output Variable )に分けてレンダリングを行う「基礎編」です。

以前執筆した内容のアップデート版で、映像・CG業界標準の OCIO(OpenColorIO)ACES(ACEScg) ワークフローに対応する形に書き直しました。

「ACEScg環境でAOVを出力してコンポで再構築するにはどう設定するの?」という疑問を、現場でよく使われる手法でまとめます。ここで書き出した素材(OpenEXR)は、次の記事で DaVinci ResolveのFusion を使ったコンポジット手順に直結します。

目次

「OCIO」と「ACEScg」の強み

以前の3DCG制作では リニアワークフロー(sRGB Linear)が主流でした。

現在は異なるソフト間で色を統一するために、OCIO(OpenColorIO)フレームワークを用いた ACES(Academy Color Encoding System) ワークフローが業界標準です。

CG制作の作業スペースとして使われるのが 「ACEScg」 です。

なぜACEScgを使うべきなのか?

  • 広い色域(Wide Gamut):  sRGB(Rec.709)より広い色域で、強いハイライトや高彩度のブレンドがよりリアルに計算されます。
  • ライトの減衰が破綻しない 強いライトが当たった箇所が白飛びしにくく、フィルムのような自然なロールオフが得られます。
  • コンポソフトとの色一致 MayaでレンダリングしてDaVinci ResolveやNukeに読み込んでも、色が一致します。

Maya 2022以降では、デフォルトのカラーマネジメントが「OCIO v2」ベースになり、標準でACEScg環境が整っています。

今回はACEScg環境(Color Space: ACEScg / View Transform: sRGB (ACES))を前提に進めます。

なぜ「Lambert」や「Phong」をArnoldで使ってはいけないのか?

lambertphongblinn は長年3D業界を支えてきたシェーダーですが、Arnoldなどの物理ベースレンダラー(PBR)では原則として使わない のがルールです。

避けるべき4つの致命的理由:

  • エネルギー保存則を無視している:古いシェーダーはハードウェアが非力だった時代のフェイクな計算式で動いています。ライティングを強くすると物理的にあり得ない白飛びが起き、質感が安っぽくなります。
  • AOVのバグ(コンポの天敵): ArnoldはAOVのピクセルを aiStandardSurface の数値から振り分けます。Lambertを混ぜると変換バグが発生し、「Specular AOVを出しているのに反射が真っ黒」などの欠落が起きます。
  • ACEScgとの相性が悪い: sRGBの狭い色域しか想定していないため、ACEScgの広い色域に置くとハイライトが濁ります。
  • レンダリング速度の低下: Arnoldのエンジンは ai シリーズ専用に最適化されており、Maya標準マテリアルが混ざると強制変換でレンダリングが遅くなります。

基本ルール:
反射をなくしたい場合は lambert ではなく aiStandardSurface を使い、Specular > Weight0.0 に設定して完全マットにする。

検証に使う「テストシーン」の構成

コンポジットの仕上がりを確認しやすいように、カメラワーク付きの簡単なアニメーションシーンを用意します。Maya標準のポリゴンオブジェクトのみで構成します。

  1. A:マットな地面(Plane)
    • aiStandardSurface をアサイン。Base Colorに「Checker」ノードを接続。
    • Specular > Weight0.0(完全マット)。
    • 役割:diffuse の影と、ネオンの間接光を受ける地面。
  2. B:マットな立方体(Cube)
    • Arnoldプリセットの Clay をアサイン(Specular > Weight は自動で 0.0)。
    • 役割:純粋な diffuse の陰影検証用。角を少しBevelで丸める。
  3. C:金属ドーナツ(Torus)
    • Arnoldプリセットの Gold をアサイン。
    • 役割:specular(鏡面反射)の検証用。
  4. D:ダイヤモンド(Platonic Solid)
    • Arnoldプリセットの Diamond をアサイン。
    • 役割:transmission(透過・屈折)の検証用。
  5. E:ネオン管(Helix:螺旋)
    • マテリアル設定は次のセクションで解説。
    • 役割:emission(自己発光)の検証用。

メッシュライトの罠:「Emission(マテリアル発光)」の正しい設定

ネオン管のような自発光オブジェクトを作る際、オブジェクトを「メッシュライト(Mesh Light)」に変換する手法がありますが、Arnoldではこれに注意が必要です。

メッシュライトの罠:
「発光しているネオン管」の真下に、メインライトに照らされたクッキリとした影が落ちてしまいます。Cast Shadows をオフにしても、メッシュライト化されたオブジェクトはライトサンプリングの対象になるため影を消せません。

解決策:メッシュライトを使わず、発光マテリアル(Emission) を使う。

  1. ネオン管(Helix)に aiStandardSurface をアサイン。
  2. Render StatsCast Shadows のチェックを外す。
  3. マテリアルの設定:
    • Base > Weight: 0.0(周囲のライトに不自然な立体感がつくのを防ぐ)
    • Specular > Weight: 0.0(テカリをオフ)
    • Emission > Weight: 1.52.0 程度
    • Emission > Color: 鮮やかなシアン(エメラルドグリーン系)

ArnoldはデフォルトでGI(間接光)の計算が優秀なため、この設定だけでネオン管は影を落とさず、周囲の床やドーナツをふんわり照らします。

「地平線」でアルファが切れる問題とその対処

レンダリング画像の背景が黒いと一見きれいに見えますが、アルファチャンネルを確認すると、床のPlaneが終わる地平線の位置でスパッとアルファが切れていることに気がつきます。

床をどれだけ広げても、遠近法の限界やカメラのFar Clip Planeで埋めることはできません。このままFusionに持っていくと、地平線の切れ目が背景グラデーションとの合成で不自然に浮き出てしまいます。

対処法: カメラの後ろに、フレーム全体を覆う巨大な背景プレーンを1枚置き、床プレーンと交差させます。このプレーンに aiFlat(色は黒) を使います。

aiFlat は、ゲームエンジンでいう「Unlit」マテリアルです。ライトも影も一切受け付けず、常に指定した色(黒)をフラットにカメラに返します。これにより空間全体をアルファ1.0で塞ぎつつ、手前のライトの減衰で境界線は自然に闇に沈みます。

コラム:Arnoldの「Matte」と「Opaque」の違いと、ガラスの黒影バグ

アトリビュートエディタの Arnold タブにある OpaqueMatte。デフォルトでは Opaque のみにチェックが入っています。

Matte(マット)

「3D空間の前後関係をキープしたまま、自分自身を完全に透明(アルファ0、RGBも0)にするホールドアウト機能」です。

  • Matteオフ(デフォルト): 普通にレンダリングされ、アルファは不透明(1.0)
  • Matteオン: オブジェクトが透明な切り抜きマスクに化けます。RGBは黒(0.0)、アルファも透明(0.0)

今回の地平線対策での活用:背景プレーン(aiFlat)の Matte をオンにすることで、

  1. 床の切れ目の奥を背景プレーンが物理的に遮蔽します。
  2. レンダリングデータ上は「完全に透明(アルファ0)」として出力されるため、Fusion側で置いた背景グラデーションが地平線の奥に自然に透けて重なります。

Opaque(不透明)

「このオブジェクトは光を100%遮断するから、裏側への透過計算をスキップしていい」という最適化スイッチです。

  • Opaqueオン(デフォルト): 透過計算をスキップしてレンダリングが速くなります。今回の背景プレーンはオンのままで正解。
  • Opaqueオフ: 裏側まで光が回り込む厳密な計算を行います。

ガラスの影が真っ黒になるバグの正体

ガラスや透明素材をレンダリングした際に「オブジェクト自体は透明なのに、影だけ真っ黒な板になる」現象があります。原因は Opaque がオンのままになっていることです。マテリアル側でTransmissionを設定していても、ShapeのOpaqueがオンだとArnoldは影の透過計算をスキップして黒い影を作ります。

ガラス・半透明の絶対ルール: TransmissionやアルファマスクをつかうオブジェクトはArnoldタブの Opaque のチェックを外す。

AOVとカラーマネジメント(ACEScg)のレンダリング設定

出力するAOVの種類

RGBAビューティ画像は、光や物質の質感ごとに個別のAOVへ分割できます。コンポで加算(足し算)することで、元のビューティを劣化なく再構築できます。

今回は最も基本となる4種類+Zデプスを出力します。

  • diffuse(拡散反射成分): 光がオブジェクトの表面で乱反射して広がる、最も基本的な「マットな質感や色・影」の情報です。今回のシーンでは、床のチェッカー模様や赤い立方体の陰影がこれに該当します。
  • specular(鏡面反射成分): 光がオブジェクトの表面で鏡のように反射する「金属のハイライトやツヤ・テカリ」の情報です。ゴールドのドーナツの硬質な反射光を表現するために欠かせません。
  • transmission(透過・屈折成分): 光がオブジェクトの内部を通り抜ける「ガラスや水の透明感・屈折」の情報です。ダイヤモンドが美しく透き通り、内部で虹色に屈折する表現を成立させます。
  • emission(自己発光成分): オブジェクト自体が自ら放つ「ネオンやライトの光」の情報です。今回、コンポ側で綺麗な発光に仕上げるための主役素材となります。

この4つに分けて出力することで、コンポ側で「金属のテカリだけを抑える」「ガラスの屈折だけを鮮やかにする」といった直感的な調整が可能になります。

テクスチャの「Color Space」設定

ACEScg環境で画像ファイル(Fileノード)を読み込む場合、用途に応じて Color Space を正しく設定しないと色の濁りやノーマルマップのバグが発生します。

  • カラー情報(Base Color、Emission Colorなど): Color Spaceを Utility - sRGB - Texture に設定。sRGBの画像をACEScgへ正しく色変換します。
  • データ情報(Normal, Roughness, Metalnessなど): Color Spaceを Raw にし、Alpha is Luminance にチェックを入れる。カラー変換による数値の歪みを防ぎます。

今回の床のChecker(プロシージャルテクスチャ)はMaya内部でACEScgとして計算されるため、Color Spaceの設定は不要です。

AOVの追加と「Zデプス」フィルター設定

  1. Render Settings > AOVs タブ を開きます。
  2. AOV Browser の左側から以下の5つを Active AOVs に追加します。
    • diffuse(床のチェッカー、キューブの影)
    • specular(ゴールドドーナツの反射・テカリ)
    • transmission(ダイヤモンドの透明な屈折・プリズム)
    • emission(ネオン管の光 & 背景の aiFlat の黒色)
    • Z(★ボケ・被写界深度の追加に使う深度マスク。将来のピント調整のための必須パスです!)

追加すると下部のアトリビュートテーブルに以下の設定が自動で入ります。

AOVData TypeFilter
diffuse, specular等rgbgaussian
Zfloatclosest

なぜ「Z」だけ floatclosest なのか?

  • float Zデプスはカメラからの距離(数値)を記録するため、1チャンネルの32-bit浮動小数点が必要です。
  • closest Zデプスにアンチエイリアス(gaussian)をかけると、手前のオブジェクトと奥の背景の距離が境界線で混ざり、コンポでボケ(DoF)に使った際に不自然なフチ(ハローバグ)が出ます。closest はピクセル内で最も手前の距離をそのまま返すため、この問題を防げます。

EXR出力とカラーマネジメント(Commonタブの設定)

レンダリング設定(Render Settings)の Common タブにて、書き出されるOpenEXRファイルの設定と、カラースペースのメタデータタグを設定します。

Image format → exr

32bitリニアの階調データを欠損なく保存できる業界標準フォーマット。

Merge AOVs → チェックを入れる

diffusespecular、Zデプスなどのバラバラのファイルを1つの .exr にまとめる設定です。

チェックを外すとAOVごとに大量のファイルが書き出されて管理が大変になります。マージしておけばFusionに読み込む連番ファイルが1系統で済みます。

Multipart → チェックを入れる

OpenEXR 2.0以降の規格で、複数チャンネルを効率よく保存する仕組みです。Fusionで特定チャンネルだけ読み込む際、他のデータを解析せずに必要な部分だけロードできるため、コンポ作業中のプレビューが軽くなります。

Tiled → チェックを外す(推奨)

Tiledをオフにすると「Scanline(1行ずつ)」形式で保存されます。FusionはScanline形式に最適化されているため、読み込みとキャッシュ処理がスムーズです。

Metadata > Color Space → Raw

コンポソフトでのAOV加算(光の足し算)が正しく成り立つのは、ガンマ変換がかかっていないリニアデータの状態のときだけです。

Use Output Transform などにするとsRGBガンマが焼き付いてしまい、コンポで加算すると絵が異常に白飛びします。Raw にすることで、カラー変換なしの生データをそのまま出力します。

Renderable Cameras > Depth channel (Z depth) → チェックを外す(重要)

MayaのレガシーなZデプス機能で、現代のArnoldワークフローでは使いません。

  • AOVタブの「Z」パスと競合・重複してしまいます。
  • このレガシーZデプスは精度が低く(0〜1に圧縮されることが多い)、実際の距離計算に使えません。
  • AOVの「Z」と同時にオンにすると1ファイルに2つのZデプスが出力され、Fusionで読み込みエラーの原因になります。

現代のレンダー設定ではこの Depth channel (Z depth)必ずチェックを外す

Arnoldのライト強度と色温度のセオリー

背景を黒くして各オブジェクトを引き立たせるため、ライトはすべてArnoldの aiAreaLight(白:1.0, 1.0, 1.0)で3点照明(Key, Fill, Rim)を配置します。

  • 色温度(Use Color Temperature)はあえてオフ: 3D側でライトにオレンジや青色を焼き付けてしまうと、コンポで色を変えたくなった時に色の引き算が難しくなり破綻します。すべてを純粋な白(1.0, 1.0, 1.0)でレンダリングしておけば、Fusionの段階で再レンダリングなしに好きな色温度へ変えられます。
  • 強度の調節: Arnoldのライトは Intensity ではなく Exposure(露出) で調節するのが基本です。強度は Color × Intensity × 2^{Exposure} で計算されるため、スマートな数値範囲で適切な光量を得られます。
Color×Intensity×2Exposure\Huge \begin{equation} Color × Intensity × 2^{Exposure} \end{equation}

まとめ & 次回予告:Fusionでのコンポジットへ

れでMaya/Arnold側のレンダリング準備は完了です。

今回の重要ポイント:

  • 物理法則を守る aiStandardSurface に統一する。Lambert・Phongは使わない。
  • 自発光オブジェクトは影をオフにした Emission マテリアル で作り、メッシュライトの影バグを回避する。
  • アルファを綺麗に満たすため、背景に aiFlat を適用した巨大プレーンを置く。
  • Zデプスのフィルターはバグ防止のため必ず closest
  • Render Settings の Depth channel (Z depth) は必ずオフ(AOVの「Z」と競合するため)。
  • EXRのメタデータは Raw にし、Merge AOVsMultipart を有効化して書き出す。

次回はこのマルチパートEXRを DaVinci ResolveのFusion に読み込んで、AOVを加算合成してBeautyパスを再構成するコンポジット手順を解説します

maya-rendering-kihonsettingアイキャッチ

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

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

この記事を書いた人

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

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

twitterアカウント
@inopoa1

よろしくお願いします。

コメント

コメントする

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

目次