Adobe Photoshop でルックアップテクスチャをオーサリングする
以下のプロセスは Photoshop を使っていますが、DaVinci Resolve や Nuke など、その他のデジタルコンテンツ作成ツールを使うことも可能です。
ステップ 1: HDRP アセットを設定します
プロジェクトに使うルックアップテクスチャ (LUT) サイズを決め、プロジェクトの HDRP アセット で設定します。LUT サイズは、HDRP アセットの Grading LUT Size プロパティーを使って設定します。
このサイズは固定されますので、もし後から変更する場合は、LUT のすべてを再度ベイクする必要があります。リアルタイムの使用には、32 のサイズで十分な精密性が出せます。
ステップ 2: カメラビューを EXR ファイルにレンダリングします
既存の カメラ のビューをログエンコードされた EXR ファイルにエクスポートします。手順は以下の通りです。
- シーンビューまたはヒエラルキーで、カメラコンポーネントを含むゲームオブジェクトを選択します。
- Edit > Render Pipeline > Render Selected Camera to Log EXR を選択します。(または Ctrl+Shift+Alt+E を押します。)
- EXR ファイルを保存します。
EXR ファイルをエクスポートしたら、データを Unity が使うフォーマット (Alexa LogC El.1000) からリニアRGB 空間に変換し、外部ソフトウェアが使えるようにします。HDRP には即時変換可能な LUT が用意されています。これらは次の手順で取得します。
- Package Manager ウィンドウを開きます (メニュー: Window > Package Manager)。
- 左側にあるパッケージリストから High Definition RP を選択します。
- Samples セクションで、Additional Post-processing Data の隣の Import into Project を選択します。
- これにより LUT が Assets/HDRP Sample Content/Post-processing/Cube LUT/ にインポートされます。
ステップ 3: Photoshop で EXR ファイルを設定します
EXR ファイルを Photoshop にインポートします。これはログエンコードされた Raw ファイルなため、色あせて見えます。
非破壊的な Color Lookup 調整レイヤーを画像に追加します (メニュー: Layer > New Adjustment Layer > Color Lookup…)。それから新しいレイヤーの Properties で以下を行います。
- Data Order を RGB に設定します。
- Table Order を BGR に設定します。
- 3DLUT File ドロップダウンから、Load 3D LUT… を選択し、Unity ログからリニアファイルを選んで LUT を利用可能なカラースペースに変換します。これは Assets/HDRP Sample Content/Post-processing/Cube LUTs/ にある、Unity プロジェクトフォルダーで見つかります。
ステップ 4: カラーグレーディングを適用します
これで画像のグレーディングを開始できます。なお、必ず非破壊的な調整レイヤーを使用し、グローバルなカラー操作を実行するようにしてください。LUT はローカル操作または隣接するピクセル (ブラーなど) に影響するフィルターを格納することはできませんので、ビジュアルアーティファクトを生んでしまいます。ログ入力に直接グレードを施すつもりがなければ、すべての調整レイヤーを Color Lookup レイヤーの上に配置してください。
ステップ 5: 作品を CUBE ファイルとしてエクスポートします
グレーディングが終了したら、作品を CUBE ファイルとしてエキスポートします。Photoshop でこれを実行するには、File > Export > Color Lookup Tables を選択します (別のデジタルコンテンツ作成プログラムを使用する場合は、それぞれのドキュメントを参照してください)。Grid Point プロパティーを、プロジェクトの HDRP アセット 内の Grading LUT Size と同じ値に設定します。
CUBE ファイルを Unity プロジェクトの Assets フォルダーに保存します。
ステップ 6: CUBE ファイルをシーンにインポートして使います
Unity は CUBE ファイルを利用可能な Texture3D アセット として自動変換します。このCUBE ファイルは、ボリューム内の Tonemapping オーバーライドで使うことができます。これは次の手順で行います。
- シーンまたはヒエラルキービューで、ボリュームコンポーネントを含むゲームオブジェクトを選択し、Inspector で表示します。
- Inspector で Add Override > Post-processing を選択し、Tonemapping を選びます。
- Tonemapping の Inspector で、Mode を有効にし External に設定します。
- CUBE テクスチャを Lookup Texture プロパティーに割り当てます。
- Contribution を変更し、どれくらいの Lookup Texture がシーンに付与するかを設定します。
引き続き Photoshop でカラーグレードを行い、以前保存した CUBE ファイルをオーバーライドできます。Unity は変更を含んだシーンのグレーディングを自動更新します。