Maya2019からMaya2022に移行するときのカラー管理覚書

Maya2022はカラー管理にOpenColorIO(OCIO) v2が採用されています。
OCIOはImageworksが開発しているオープンソースプロジェクトになります。

Maya2022とMaya2019のカラー管理を比較してみるとこんな感じ。
f:id:tm8r:20220309093033p:plain
f:id:tm8r:20220309093030p:plain

Maya2022のViewPortのカラー管理オプションはこんな感じ。
f:id:tm8r:20220309092435p:plain

これがMaya2019からMaya2022に移行する際にどう影響するのかを見てみます。

Maya2019でsRGBで保存したシーンをMaya2022で開く

Maya2019でsRGBで保存したシーンをMaya2022で開いてみると…

ViewPortのカラー設定の状態
f:id:tm8r:20220309093358p:plain

Preferenceのカラー設定の状態
f:id:tm8r:20220309093359p:plain

「Maya-legacy/config.ocio」という設定に切り替わり、ビュー変換が「sRGB gamma(legacy)」になっています。
この状態でシーンを保存すると以下のようなカラー設定の情報が書き込まれます。

select -ne :defaultColorMgtGlobals;
	setAttr ".cfe" yes;
	setAttr ".cfp" -type "string" "<MAYA_RESOURCES>/OCIO-configs/Maya-legacy/config.ocio";
	setAttr ".vtn" -type "string" "sRGB gamma (legacy)";
	setAttr ".vn" -type "string" "sRGB gamma";
	setAttr ".dn" -type "string" "legacy";
	setAttr ".wsn" -type "string" "scene-linear Rec 709/sRGB";

SynColor と呼ばれる Maya の古いカラー管理システムを使用するシーンを開くと、Maya の resources/OCIO-configs/Maya-legacy フォルダ内の config.ocio と OCIO を使用するようにシーンが自動的に更新されます。

https://knowledge.autodesk.com/ja/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2022/JPN/Maya-WhatsNewPR/files/GUID-25BEB90D-E7ED-4635-8440-D530B8554889-htm.html

ということのようです。

Maya2022で再保存したシーンをMaya2019で開く

これ互換性どうなっちゃうの?ということでMaya2022で保存後にMaya2019で開いてみます。

f:id:tm8r:20220309093943p:plain
はい。おつかれさまでした。

「MAYA_RESOURCES」という予約語を使ってインストールパスから環境設定ファイルを参照するのですが、Maya2019には指定されたファイルがないのでエラーになります。
じゃあ「MAYA_RESOURCES」を使用せずにMaya2022のパスをベタに指定して保存したらどうか、というとこれも互換性がないのかうまくいきません。

互換性の解決策を考える

新しいOCIOを使用せず、従来のカラー管理システムであるSynColorを強制する方法も用意されています。
具体的にはMAYA_COLOR_MANAGEMENT_SYNCOLORという環境変数を使用します。

が、これはMaya.envに書いても反映してくれないのでPCの環境変数で設定するか、ランチャーや起動スクリプトなどで対応する必要があります。
起動スクリプトでやるならこんな感じ。

@echo off

rem Variable
set MAYA_INSTALL_PATH=C:\Program Files\Autodesk\Maya2022
set MAYA_BIN_PATH=%MAYA_INSTALL_PATH%\bin

rem Set Env
set MAYA_COLOR_MANAGEMENT_SYNCOLOR=1

rem Launch
start "" "%MAYA_BIN_PATH%\maya.exe"

これでMaya2022で開いても従来のカラー管理が利用できます。

互換性を捨ててOCIOを使用していく

とはいえsynColorいつまでサポートされるん?みたいなのもあるのでOCIO v2についても調べてみます。

ビュー変換の詳細は以下の通り。
knowledge.autodesk.com

Maya2019でsRGBを使用していた場合はおそらくUn-tone-mappedを選択する形になるのかなと思います。

Maya2019で保存したファイルを開くと前述の通り「Maya-legacy/config.ocio」という設定が使用されてしまうので、カラー設定を開いてこれを既定のものに変更します。
f:id:tm8r:20220309095223p:plain
「OCIO 環境設定ファイル」の横の三角アイコンを押して「既定にリセットする」を選択した後、ビューを「Un-tone-mapped」にすればおっけーです。
この設定をしたシーンを再度開くとちゃんと「Un-tone-mapped」が指定されています。

が、新規シーンを開いて「Un-tone-mapped」を指定して保存、その後再度そのシーンを開くと「ACES 1.0 SDR-video(sRGB)」がに切り替わってしまいます。なんで?

f:id:tm8r:20220309095542p:plain
いろいろ調べた結果、どうやらXMLのカラー設定プリファレンスというものを使用すればカラー設定の保存、維持ができるようです。
Preferenceのカラー設定を開いてビューを「Un-tone-mapped」にしたのち、最下部にある「CMプリファレンスを書き出す」をクリックして設定を保存します。

こうすれば新規シーン開いたときも保存済みのシーンを開いたときもXMLに記載された設定通りのカラー設定が適用されるようです。
カラー設定をプロジェクトのメンバー共通にしたい場合、このXMLを全員が参照できるどこかに保存して適用するようにすればよさそうですね。

ちなみにこのXMLのパスは「colorManagementPolicyFileNameHold」というキーでoptionVarに書かれているので、保存先さえ共通にできれば設定の自動化もできそうです。

おわり

Maya2022は結構大きい変更が入ってるのでしゃーなしかなと思いつつ、Maya2022で保存したファイルをMaya2019で開くとダイアログで警告出ちゃうのはなかなか。つらい。

カラー管理以外にもアトリビュート追加とかで別のエラー出たりはするので、それはまた別の記事でまとめます。たぶん。きっと。

スポンサーリンク