macOS で Blender を使うときのカラーマネジメント設定

2024-01-01 追記。「」

2022-01-30 追記。続きを書きました。Mac の Blender でレンダリングした画像のカラープロファイル

長年悩んでいたことの解決策をけさ見つけたので興奮して書き残しておきます。

Mac で Blender を使うときに困ることとしてビューポートやレンダリングの色が期待するものと一致しないということがあった。これは Blender の Render Properties にある [Color Management] の [Display Device] が “sRGB” しか選べず、いっぽうでさいきんの Mac のディスプレイはより広色域の Display P3 を搭載しているためだ。

Display P3 のモニタで sRGB のつもりで描画している画を映すとどうなるかというと、じっさいよりも色がどきつく出る。そしてその設定でレンダリングするとこんどは鮮やかさに欠けた色になって出てきてしまう。

“sRGB” と “XYZ” しか選べない。

この [Display Device] に “Display P3” の選択肢がない以上これを解決する方法はなく、いままではしかたなく sRGB で使ってレンダリング結果を自分の感覚でレタッチするみたいな使いかたをしていた。しかしこれだと不便である。作業中ビューポートの色を信用できないのもつらい。

ところが、さいきん知ったのだが Troy James Sobotka さんという方が、最新の Blender カラーマネジメント設定を GitHub で配布しているのである。この方はそもそもいまの Blender で採用されている Filmic 変換を作ったお方なので、ある意味本家である。Blender 本体に Filmic が取り込まれたあともアップデートは続けられていたみたいで、この最新版(といっても2018年のだけど)の Filimic 設定に、Apple Display P3 のディスプレイプロファイルが含まれている。

Filmic と色変換については Blender Guru のすばらしい解説があります。

この動画はまだ Blender に Filmic が取り込まれていなくて、Sobotka 氏の設定をインストールするところから解説していることに注意。いまは sRGB 環境ではなにも追加で作業することなく、デフォルトで Filmic 変換が設定されている。……のだが、Mac だと上述のような不便があるので、最新版の Filmic をダウンロードして Blender に入れるということをやる。

Filmic 変換のインストール方法は GitHub のプロジェクトページに書いてあるのでわざわざここには書かないでいいかなと思ったけど、Mac の場合は App パッケージの中に設定が入っているのでちょっとだけ注記しておく。

ダウンロードは ZIP ファイルになっているのでこれは展開する。filmic-blender-master というフォルダになると思うのであとの便宜のためにこれを colormanagement にリネームしておくといいです。

Blender はアプリケーションフォルダに入っていると思うので、アイコンを右クリック(or Ctrl+クリック)してコンテキストメニューを出し、[パッケージの内容を表示] を選択すると Finder でアプリの中身に入れる。この中の Contents/Resouces/2.93/datafiles フォルダの中に、colormanagement フォルダがある。”2.93″ の部分はバージョン番号なので Blender のバージョンによって違うはず。

このフォルダをダウンロードしたものと入れ換えるわけだが、そのまま上書きすると元に戻せないので、元のフォルダを colormanagement.orig などにリネームしておいてダウンロードしたフォルダを datafiles に入れるとよい。

これで Blender を起動すると、カラーマネジメントで [Display Device] に “Apple Display P3” が選べるようになっているはず。

“Apple Display P3” が選べる!

モニタで見たとおりの色でレンダリングできるのはすばらしい。

さて、GitHub で説明されている Filmic のインストール方法にはもうひとつあって、それはこのフォルダに含まれている config.ocio ファイルの場所を環境変数で設定してやるというやりかた。これはオプショナルなのでさっきのフォルダコピーのインストール方法でいいやという人はやる必要はない。しかしそれだとこの先アプリをアップデートするたびに Filmic をコピーしなおさなければいけないという不便がある。設定一式をホームディレクトリのどこかに置いといて環境変数でそこを参照するようにしておけばその必要はなくなる。

私は ~/Library/Blender/datafiles というフォルダを作ってそこに colormanagement という名前でダウンロードした最新 Filmic 設定を置いてみた。場所はどこでもよい。

ターミナルで環境変数を使うときは setenv でやればいいのだけど Mac の GUI アプリで環境変数設定された状態で起動できるのかというと launchctl コマンドを使うとできる(というのを調べた)。

ターミナルを立ち上げ、launchctl setenv OCIO $HOME/Library/Blender/datafiles/clolrmanagement/config.ocio を実行し、その後ふつうに Blender を起動すると、先ほどと同様のインストール結果になるはずである。

しかしこの環境変数は Mac 再起動すると消えてしまうんだと。再起動時に自動で任意の環境変数を設定する方法はと調べたところ、plist ファイルを作って所定の場所に置けばいいということがわかった。(『macOSでlaunchctlを使ってアプリの環境変数を設定する – CrossBridge』

以下のような XML ファイルを作成し ~/Library/LaunchAgents/ に置いた。ファイル名は ocio.blender.plist にした。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>ocio.blender</string>
    <key>ProgramArguments</key>
    <array>
      <string>/bin/launchctl</string>
      <string>setenv</string>
      <string>OCIO</string>
      <string>/Users/mshibata/Library/Blender/datafiles/colormanagement/config.ocio</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
  </dict>
</plist>

できたら Mac を再起動させるとほかの方法同様に最新版の Filmic 設定で Blender を使える。

で、Mac で Blender をまともな色で使おうとするとこの手順は必須だと思うのだが、私はこれをわかりやすくガイドしている記事はいままでひとつも見つけられなかった。英語でもなかったと思う。みんな私みたいにおかしな色で使ってたの?

まあとにかくこうして解決策がわかったわけなので、Mac で Blender 使う人たちは今後はこの手順を踏んで幸せに使っていきましょう。Blender 3.0 が出たら最初から Display P3 選べるようになってたらいいな。