Maya2022はカラー管理にOpenColorIO(OCIO) v2が採用されています。
OCIOはImageworksが開発しているオープンソースプロジェクトになります。
Maya2022とMaya2019のカラー管理を比較してみるとこんな感じ。
Maya2022のViewPortのカラー管理オプションはこんな感じ。
これがMaya2019からMaya2022に移行する際にどう影響するのかを見てみます。
Maya2019でsRGBで保存したシーンをMaya2022で開く
Maya2019でsRGBで保存したシーンをMaya2022で開いてみると…
ViewPortのカラー設定の状態
Preferenceのカラー設定の状態
「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で開いてみます。
はい。おつかれさまでした。
「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」という設定が使用されてしまうので、カラー設定を開いてこれを既定のものに変更します。
「OCIO 環境設定ファイル」の横の三角アイコンを押して「既定にリセットする」を選択した後、ビューを「Un-tone-mapped」にすればおっけーです。
この設定をしたシーンを再度開くとちゃんと「Un-tone-mapped」が指定されています。
が、新規シーンを開いて「Un-tone-mapped」を指定して保存、その後再度そのシーンを開くと「ACES 1.0 SDR-video(sRGB)」がに切り替わってしまいます。なんで?
いろいろ調べた結果、どうやらXMLのカラー設定プリファレンスというものを使用すればカラー設定の保存、維持ができるようです。
Preferenceのカラー設定を開いてビューを「Un-tone-mapped」にしたのち、最下部にある「CMプリファレンスを書き出す」をクリックして設定を保存します。
こうすれば新規シーン開いたときも保存済みのシーンを開いたときもXMLに記載された設定通りのカラー設定が適用されるようです。
カラー設定をプロジェクトのメンバー共通にしたい場合、このXMLを全員が参照できるどこかに保存して適用するようにすればよさそうですね。
ちなみにこのXMLのパスは「colorManagementPolicyFileNameHold」というキーでoptionVarに書かれているので、保存先さえ共通にできれば設定の自動化もできそうです。
おわり
Maya2022は結構大きい変更が入ってるのでしゃーなしかなと思いつつ、Maya2022で保存したファイルをMaya2019で開くとダイアログで警告出ちゃうのはなかなか。つらい。
カラー管理以外にもアトリビュート追加とかで別のエラー出たりはするので、それはまた別の記事でまとめます。たぶん。きっと。