🔧 17. トーンマッピング後処理

ASP では、追加の Tone Mapping アルゴリズムとして Filmic と Khronos PBR Neutral の 2 種類を提供しています。
また、Tone Mapping がキャラクターピクセルに与える影響の強さも追加パラメータで調整できます。
💡 状況によっては、画面全体よりもキャラクターピクセルに弱めの Tone Mapping をかけたい場合があります。特に
Filmicではキャラクターの彩度が下がりやすいためです。ASP では、その影響を弱めて彩度を保ちやすくする追加パラメータを用意しています。
1. Tone Mapping 用の Renderer Feature と Volume Override を追加する
まず、現在のプロジェクトで使用している Universal Renderer Data に ASP ToneMapping を追加します。

次に、シーン内のオブジェクトに新しく Volume を追加するか、既存の Volume を使用して Global Mode に設定します。
Volume の Inspector で Add Override を選択し、ASP ToneMapping を検索して追加してください。
追加後の Volume は、下のスクリーンショットのように ASP Tone Mapping が表示された状態になります。

左側に並んでいる toggle は何を意味するのか
Unity の Volume は、Volume Override という仕組みで動作しています。
簡単に言うと、左側の override toggle を有効にして初めて、右側の toggle や値の設定が有効になります。左側を有効にしていない場合は、その後処理エフェクトのデフォルト値が使われます。

現在の ASP Tone Mapping では、Tone Map Type の override が有効になっているときに Tone Mapping が有効として扱われます。
そのため、Volume 側で Tone Mapping を使いたい場合は、Tone Map Type の左側 override toggle を有効にしてから、右側で使用するアルゴリズムを選択してください。
2. プロジェクトの Grading Mode を High Dynamic Range に設定する(重要)
カスタム Tone Mapping を正しく適用するには、URP Asset の Grading Mode を HDR に設定してください。LDR 設定だと、Unity が Post Processing の途中で内部的に Color LUT を適用してしまい、最終的な Tone Mapping の結果が崩れます。HDR 設定であれば、Tone Mapping 適用後に Color LUT が処理されるため、意図どおりの結果になります。

3. Tone Mapping パラメータを設定する

| パラメータ名 | 説明 |
|---|---|
| Tone Map Type | 使用する Tone Mapping モデルです。現在は Filmic と Khronos Neutral を選択できます。 |
| Filmic Exposure | Filmic Tone Mapping の露出量です。 |
| Ignore Character Pixels | 追加パラメータを使って、ASP/Character と ASP/Eye マテリアルに対する Tone Mapping の影響を弱めるかどうかを指定します。 |
| Character Pixel Tone Map Strength | Ignore Character Pixels を有効にしたときに、ASP/Character と ASP/Eye マテリアルへ Tone Mapping がどの程度影響するかを調整します。 |
Tone Mapping を有効にする
Tone Map Typeの左側 override toggle を有効にします。- 使用したい Tone Mapping アルゴリズムを選択します。
💡 2024/08/10 以降は
Khronos Neutralも利用できます。トゥーンレンダリングでは、まずこのアルゴリズムから試すのがおすすめです。Ignore Character Pixels を使う
Ignore Character Pixelsの override と値をtrueにします。- これにより、ASP キャラクターピクセルに対する Tone Mapping の影響を弱めたり、実質的に除外したりできます。
キャラクターピクセルへの影響を調整する
- 最下部の
Character Pixel Tone Map Strengthを調整します。 - 値
0は、Tone Mapping がキャラクターピクセルに影響しない状態です。 - 値
1は、キャラクターピクセルに対して制限なしで Tone Mapping を適用する状態です。 Filmicを使う場合は、0.25から0.7あたりが調整しやすい範囲です。Khronos Neutralを使う場合は、もともと彩度を保ちやすいため、Ignore Character Pixelsや追加パラメータを使わなくても十分なことが多いです。
- 最下部の
4. 効果比較
以下は、Tone Mapping なし・Filmic Tone Mapping・Khronos Neutral Tone Mapping の 3 パターンの比較画像です。
Khronos Neutral Tone Mapping は彩度を保ちやすいのが特徴です。Filmic では Character Pixel Tone Map Strength でキャラクターピクセルへの影響度を調整できます。





