HoudiniのRedshiftとMplayで色が違う時の対処法
- 伸 内堀
- 2023年6月22日
- 読了時間: 3分
定期的に技術的な記事をアップしていきたいと思います。よろしくお願いします! 最初に結論を申し上げると、HoudiniでACESを導入をすれば解決しました。以下は私が試したことをつらつらと。
改めて今回の問題は、Redshiftのレンダービューの色とMplayで表示される色味が変わってしまうことです。

左がRedshiftのレンダービューで、右がMPlayで表示したとき。もちろん、保存した場合も右のように薄い色味になってしまいます。Redshiftレンダービューのsave as image機能を使っても駄目でした。
海外のサイトを調べると、 redshift側では、ACES cg → sRGBでアウトプットしており、 Houdini側(Mplayなど)では、リニアに対して、ガンマの補正値2.2を適用していることにより色が違っているみたいです。
なので、Houdini側でもredshiftと同じくACES経由で出力できるように変更すれば同じ色で表示されるはずです。
そのためには、OCIOを入手する必要があります。 ここまでAcesとOCIOというワードが出てきましたので、簡単に説明を。
ACESとは、映画やテレビの制作過程全体で色を一貫して管理するためのシステムのこと。また、その色空間のことを指します。 Acesを利用することで、異なるカメラフォーマットを同じ色空間で作業できるようになったり、最終的に出力する色空間(sRGB、rec709、DCI-P3など)が変わっても、柔軟に対応できるようになったり、Acesはリニアスペースで色を変換しているので、CGやVFXとの合成もスムーズ。などなどメリットがあり、現在では多くのプロダクションで採用されています。 OCIOとは、レンダリング結果をACESの色空間に変換するための装置、みたいなイメージでいいと思います。OCIOはオープンソースで提供されていて、誰でも利用することができます。 AfterEffectsの最近のバージョンアップで標準でOCIOが導入され、誰でも簡単にAcesワークフローが利用できるようになりました。
OCIOはここからgithubのページからダウンロードできます。右上の<Code>からDowload Zipをクリックで。 解凍してできたフォルダを分かりやすいように「OCIO」とか「OpenColorIO」とかに変更して、お好きな場所に配置してください。どこでも大丈夫です。ただ容量が大きいので、注意してください。
次にHoudini.envファイルを開きます。通常、使用しているHoudiniのバージョンフォルダ直下にあるはずです。
C:\Users\ユーザー名\Documents\houdini19.5
Houdini.envファイルをメモ帳で開き、次の内容を追加してください。なおパス部分はOCIOフォルダを保存した場所に適宜書き換えてください。 私の場合、ACESのバージョンも1.03を使いましたが、1.2の最新のほうがいいかもしれませんね。
OCIO = "F:\OpenColorIO\aces_1.0.3\config.ocio"
これで、HoudiniにOCIOの環境変数が登録されるので、次回以降はこのパスを自動で読み込んでくれます。
Houdiniを起動したら、ツールバーの Edit > Color Settings >Color Correctionタブを開きます。 OCIO Configという項目に先ほど指定したパスが表示されていればHoudiniにOCIOがちゃんと認識されています。

以上で、ACESの導入作業は終了です。
では、実際にレンダリング結果をみてみましょう。

無事に同じ色で表示されていますね。なお、Mplayの下のコントロールバーでAcesを使用するかどうかの選択項目が追加されていると思います。
さらに、Redshift_RoPノードを見てみると

しっかり、ACESのコンフィグファイルの参照場所が自動で変更されています。 それからRedshiftのレンダービューの設定パネル > Color Managementを見てみると

次のように変更されています。 もともとは、ACES 1.0 SDR-videoとなっていますが、 これはHDRからのトーンマッピングの方法だと思いますが、これが空欄(変更も不可)になってしまうのはHoudiniに準拠する設定になった、ということなのでしょうか。この辺は私もよくわかっていません。
色空間については、私もまだまだ勉強中で、もし間違っている部分などあったらご指摘いただければと思います。拙い文章、最後までお読みいただきありがとうございました。