2020/3/20追記
この手順では完全にACEScgにすることができないみたいです。
Blenderはまだ対応していないとのことなので、参考程度にしてください。
#カラースペースについて
カラースペースとはどこまでの色をどのように表示するかを定義するものです。色空間とも呼ばれます。
一般にはRGB, CMYK, グレーなどが使われます。
CGの世界ではsRGB, Linear, Rawなどが代表されます。
##OCIOとは
OpenColorIOは、Sony Picture Imageworksが開発したカラーマネージメントソリューションです。
OpenColorIO (OCIO) is a complete color management solution geared towards motion picture production with an emphasis on visual effects and computer animation. OCIO provides a straightforward and consistent user experience across all supporting applications while allowing for sophisticated back-end configuration options suitable for high-end production usage. OCIO is compatible with the Academy Color Encoding Specification (ACES) and is LUT-format agnostic, supporting many popular formats.
(https://opencolorio.org/ より引用)
ソフト側で選ぶだけで簡単にカラースペースを変えられるシステムで、コンポジットソフトであるNukeなどで主に利用されています。
##Blender側でカラースペースを変更する理由
カラースペースをどうこうするのは、映像制作の現場などではコンポジットの段階で行います。
モデリングなどの時点でカラースペースを意識するということはあまりありません。
Blenderにはコンポジットを始めとした多くの機能が備わっており、Blenderだけで作品を完成させることも可能です。その場合はカラースペースをBlender内で意識していく必要があります。
しかし、分業された映像制作の現場ではそういったワークフローはあまりなく、Maya, Substance, Nukeなどを経由して作品を作っていくことが多くなります。
では何故Blenderでカラースペースを変える必要があるのか?
それは、Lookdevを行うからです。
Lookdevというのはルックデベロップメントのことで、モデルにマテリアルを適用させた状態で質感の調整やライティングを行う工程を指します。
最終的なルックを想定しながらマテリアルとライティングの調整を行えば、何回もレンダリングして調整していくリスクが減ります。
Blender 2.80以降にEEVEEレンダラが搭載されてLookdevが容易となったこともあり、もはや必須の工程と言えます。
カラースペースを意識した制作を行いたい場合、このLookdevの時点でカラースペースを変えておく必要があるわけです。逆に言えば、sRGBのままでいいのであればカラースペースを増やす必要はありません。
この記事ではACEScgというカラースペースを導入していきます。
CG画像を扱うために最適化されたカラースペースです。
#config.ocio
NukeやMayaではソフト内の設定でカラースペースがたくさん備わっており、難しい設定をせずにカラースペースを変えることができます。
しかし、Blenderにデフォルトで備わっているカラースペースは少ないのが現状で、今後のアップデートで増えるかどうかも不明です。
ですが、config.ocioというファイルを直接編集することで使えるカラースペースを増やすことができます。
config.ocioは
Blenderインストールフォルダ\2.xx\datafiles\colormanagement\
に配置されています。
これをテキストエディタで開きます。メモ帳でも大丈夫です。
46行目辺りに以下のように書かれた部分があります。
displays:
sRGB:
- !<View> {name: Standard, colorspace: sRGB}
- !<View> {name: Filmic, colorspace: Filmic sRGB}
- !<View> {name: Filmic Log, colorspace: Filmic Log}
- !<View> {name: Raw, colorspace: Raw}
- !<View> {name: False Color, colorspace: False Color}
XYZ:
- !<View> {name: Standard, colorspace: XYZ}
- !<View> {name: DCI, colorspace: dci_xyz}
- !<View> {name: Raw, colorspace: Raw}
None:
- !<View> {name: Standard, colorspace: Raw}
active_displays: [sRGB, XYZ, None]
active_views: [Standard, Filmic, Filmic Log, Raw]
ここを以下のように編集します。
displays:
sRGB:
- !<View> {name: Standard, colorspace: sRGB}
- !<View> {name: Filmic, colorspace: Filmic sRGB}
- !<View> {name: Filmic Log, colorspace: Filmic Log}
- !<View> {name: Raw, colorspace: Raw}
- !<View> {name: False Color, colorspace: False Color}
XYZ:
- !<View> {name: Standard, colorspace: XYZ}
- !<View> {name: DCI, colorspace: dci_xyz}
- !<View> {name: Raw, colorspace: Raw}
ACES:
- !<View> {name: ACES - ACEScg, colorspace: ACES - ACEScg}
None:
- !<View> {name: Standard, colorspace: Raw}
active_displays: [sRGB, XYZ, ACES, None]
active_views: [Standard, Filmic, Filmic Log, Raw]
続いて、その下にcolorspaces:
という項目があるので、一番上で構わないので以下のように追記します。
- !<ColorSpace>
name: ACES - ACEScg
family: ACES
equalitygroup:
bitdepth: 32f
description: |
The ACEScg color space
ACES Transform ID : ACEScsc.ACEScg_to_ACES
isdata: false
allocation: lg2
allocationvars: [-8, 5, 0.00390625]
to_reference: !<MatrixTransform> {matrix: [0.695452, 0.140679, 0.163869, 0, 0.0447946, 0.859671, 0.0955343, 0, -0.00552588, 0.00402521, 1.0015, 0, 0, 0, 0, 1]}
Blenderを再起動し、プロパティのレンダープロパティタブのカラーマネージメントという項目でACESカラースペースに変更することができます!
デフォルトではガンマが1ですが、1.5~2.5程度に上げないとsRGBと比べて暗くなってしまう仕様のようです。
#他のカラースペースを追加する場合
以上の情報はこちらのGitHubのconfig.ocioファイルに基づいています。ACEScg以外のカラースペースを追加したい方はご自分でダウンロードしていただき、目的のカラースペースを探してBlenderのconfig.ocioに導入してみてください。
Blenderでカラースペースを増やす方法はインターネット上にも情報がほぼ無く、正直手探りでここまで行ったのでやり方が間違ってるかもしれません。詳しい方がいましたら訂正していただきたいです。