Anime Shading Plus
Show / Hide Table of Contents

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

Image

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 を追加します。

Image

次に、シーン内のオブジェクトに新しく Volume を追加するか、既存の Volume を使用して Global Mode に設定します。

Volume の Inspector で Add Override を選択し、ASP ToneMapping を検索して追加してください。
追加後の Volume は、下のスクリーンショットのように ASP Tone Mapping が表示された状態になります。

Image

左側に並んでいる toggle は何を意味するのか

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

Image

現在の 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 が処理されるため、意図どおりの結果になります。

Image

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

Image

パラメータ名 説明
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 を有効にする

    1. Tone Map Type の左側 override toggle を有効にします。
    2. 使用したい Tone Mapping アルゴリズムを選択します。

    💡 2024/08/10 以降は Khronos Neutral も利用できます。トゥーンレンダリングでは、まずこのアルゴリズムから試すのがおすすめです。

  • Ignore Character Pixels を使う

    1. Ignore Character Pixels の override と値を true にします。
    2. これにより、ASP キャラクターピクセルに対する Tone Mapping の影響を弱めたり、実質的に除外したりできます。
  • キャラクターピクセルへの影響を調整する

    1. 最下部の Character Pixel Tone Map Strength を調整します。
    2. 値 0 は、Tone Mapping がキャラクターピクセルに影響しない状態です。
    3. 値 1 は、キャラクターピクセルに対して制限なしで Tone Mapping を適用する状態です。
    4. Filmic を使う場合は、0.25 から 0.7 あたりが調整しやすい範囲です。
    5. 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 でキャラクターピクセルへの影響度を調整できます。

Image

Image

Image

Image

Image

Image

  • Edit this page
In this article
Back to top Generated by DocFX