ポストプロセスボリューム
Tutorial
·
Beginner
·
+10XP
·
20 mins
·
Unity Technologies

Post Processing Volumes (ポストプロセスボリューム) は、シーンの全てまたは一部に影響を与えることができます。本チュートリアルでは、グローバルポストプロセスボリュームとローカルポストプロセスボリュームの両方を使用し、1 つのシーンで両方を使用する方法について説明します。
Languages available:
1. ポストプロセスボリューム
本チュートリアルは、Unity 2019 LTS と Post-Processing 2.3.0 を使用して検証されています。
Post Process Volumes (ポストプロセスボリューム) は、シーンの全てまたは一部に影響を与えることができます。本チュートリアルでは、 グローバルポストプロセスボリュームとローカルポストプロセスボリュームの両方を使用し、1 つのシーンで両方を使用する方法について説明します。
ポストプロセスはパッケージマネージャーを介して行うことができます。
1. Window ドロップダウンから Package Manager を選択し、Package Manager を開きます。
2. 「post processing」で検索します。
3. post processing をクリックして選択し、Install をクリックします。
4. Package Manager を閉じます。
2. エディターカメラでポストプロセスを有効にする
1. クリックすると、Hierarchy ビューで Main Camera が選択されます。
2. Post-process Layer を追加します。
3. 速度低下を防ぐためには、Post-Process Volume (ポストプロセスボリューム) を独自のレイヤーに配置し、それに合わせてメインカメラのポストプロセスレイヤー (Post-processing layer) を設定する必要があります。
4. Inspector で、クリックすると、ポストプロセスレイヤーの LayerMask が Nothing に設定されます。
5. Inspector の右上にある Layer ドロップダウンをクリックし、Add Layers を選択します。

Alt-Text:Inspector タブには、Layer ドロップダウンが表示されます。
6. Post-Processing Volumes という新しい Layer を追加します。

Alt-Text:Inspector タブには、User Layer 8 に追加された「Post-Processing Volumes」が表示されています。
7. Hierarchy ビューで Main Camera をクリックします。
8. この新しいレイヤーを使用するように、Post-process Layer コンポーネントを設定します。

Alt-Text:Inspector ウィンドウ内の Layer ドロップダウンが開き、Post-Processing Volumes がハイライト表示されています。
9. Inspector ウィンドウ内の Layer ドロップダウンが開き、Post-Processing Volumes がハイライト表示されています。

Alt-text:Inspector ウィンドウの中で、Layer に Post-Processing Volumes を設定
3. ポストプロセスボリューム内のプロパティ

Alt-text:Inspector 内の Post-process Volume コンポーネント
Is Global: 有効にすると、このポストプロセスボリュームはシーン全体に影響します。ローカルのポストプロセスボリュームは、メインカメラが入ってきても優先されます。グローバルボリュームとローカルボリュームを混在させることや、複数のグローバルボリュームを持つことも可能です。ボリューム間の衝突は、Weight と Priority の設定により解決されます(下記参照)。ローカルポストプロセスボリュームとグローバルポストプロセスボリュームのように、相反する 2 つのボリュームでこれらの数値が同じである場合、カメラが入っているボリュームが優先されます。例えば、カメラがローカルボリューム内にある場合は、そのボリュームの効果が適用されます。そうでない場合は、グローバルポストプロセスボリュームの効果が使用されます。
Blend Distance:0 より大きく設定すると、エフェクトがフェードインするようになります。これについては、少し後でローカルポストプロセスボリュームを作成する際に少し検討してみましょう。
Weight:ポストプロセスボリュームの効果の強さを決定します。Weight を 0 に設定すると、ポストプロセスボリュームを効果的に無効にすることができます。
Priority:ポストプロセススタックにおけるボリュームの優先順位を設定します。負の値も可能で、Weight に影響を与えます。
Profile:このファイルは、overrides (オーバーライド) の設定を保持します。オーバーライドの設定はそれぞれ独自のプロファイルを持つ必要がありますが、異なるポストプロセスボリュームが同じオーバーライドの設定を表示する場合は、すべて同じプロファイルを使用することができます。
Overrides:このオプションは、プロファイルが適用されている場合にのみ表示されます。これは、ポストプロセス効果のオーバーライドのリストです。各オーバーライドのインスタンスは、プロファイルごとに 1 つだけ許可されます。
4. グローバルポストプロセスボリュームの作成
1. GameObject ドロップダウンから Create Empty を選択して、空のゲームオブジェクトを作成します。名前を Kansas とし、レイヤーを Post-process Volumes に設定します。
2. Post-process Volume コンポーネントをアタッチします。
3. Is Global にチェックを入れると、このポストプロセスボリュームはシーン全体に適用されます。他のボリュームをより高い優先度に設定することで、このボリュームをオーバーライドすることができます。
4. New をクリックすると、新しい Post Process Profile が作成されます。既存のボリューム/プロファイルと同じエフェクトや設定を使用するポストプロセスボリュームを作成する場合は、代わりにソケットをクリックして既存の Post Process Profile を選択することもできます。

Alt-text: Profile の右にある New ボタンがハイライト表示された Post-process Volume コンポーネント
5. Add effect… をクリックし、Unity>Color Grading と選択します。

Alt-text:Overrides セクションで、Add effect… ボタンを押すと Color Grading がハイライト表示されます。
6. Tone セクションでは、Saturation を有効にするチェックボックスをクリックし、スライダーを -75 の値までドラッグします。
7. Color Filter にチェックを入れ、色を (255,125,0) に設定して、少しセピア調にしてみましょう。

Alt-text:Tone セクションでは、カラーフィルターを (255,125,0) に設定し、セピア調にしています。彩度は -75 に設定されています
8. 最後に、シーンにムーディーなコントラストを与えるために、Tonemapping の Mode の隣にあるチェックボックスをクリックして、モードを ACES に設定します。

Alt-text:セピア調のポストプロセスエフェクトを施したシーン
5. ローカルポストプロセスボリュームの作成
1. 新しい空のゲームオブジェクトを作成します。名前を Oz とし、レイヤーを Post-process volumes に設定します。
2. このボリュームはローカルなものなので、そのドメインを定義する方法が必要です。Box Collider コンポーネントを追加し、Is Trigger に設定します。
3. Box Collider のサイズを 1000,1000,1000 に調整します。
4. Post-process Volume コンポーネントを追加します。
5. Is Global のチェックは外したまま、Blend Distance を 100 に設定します。
6. New をクリックすると、新しいポストプロセスプロファイルが作成されます。
7. Add effect… をクリックし、Color Grading を選択します。
ポストプロセスボリュームをネスト化する際には、2 つのオプションがあります。より大きな(またはグローバルな)ボリュームのエフェクトの一部のみをオーバーライドすることを選択でき、両方のボリュームの Effect Overrides を機能させることができます。例えば、大きい/グローバルなボリュームに Grain Override があり、ローカル/ネスト状のボリュームには Grain Override がない場合、カメラが小さいボリュームの中にいて影響を受けていても、Grain Effect Override は適用され続けます。
もう一つの方法は、グローバルボリュームと同じオーバーライドを使用して、同じ効果を有効にし、デフォルト/ニュートラルな値を設定することです。これにより、小さい/ネスト状のボリュームが完全に引き継がれます。ここでは、Oz の場合を例に説明します。
8. Tonemapping を有効にして、ACES に設定します。グローバルボリュームの設定のほとんどをリセットしたいのですが、Tonemapping モードを切り替えると、ダイナミックレンジに違和感が生じます。
9. Color Filter を有効にして、白に設定します。
10. Saturation を有効にして、0 に設定します。Tonemapping モードとは別に、これでグローバルポストプロセスボリュームを無効にすることができます。
クラシックな超高彩度の映画風にしてみましょう。単純にシーンで彩度を上げてもいいのですが、ここではアナログフィルムのエフェクトに近いものを目指します。
11. Channel Mixer で Red を選択し、Red、Green、Blue の横のボックスにチェックを入れます。Red は 100 のまま、Green と Blue は -25 に設定します。

Alt-text:Color Grading の設定の表示
12. Channel Mixer の Green をクリックし、すべての色を有効にして、Red と Blue を -25 に設定します。

13. Channel Mixer で Blue を選択し、再度、すべての色を有効にして、Red と Green を -25 に設定します。

14. カンザスを出発する準備ができました。メインカメラを Oz の Blend Zone のすぐ外側に配置し、グローバルのカンザスのポストプロセスボリュームが完全な効果が得られるようにします。
15. ゆっくりと Oz にドラッグしていきます。Blend Zone を通過すると、セピア調の色合いと彩度の低さが解消されるのがわかります。

Alt-text:ポストプロセスボリュームは、Unity の Scene ビューでハイライト表示されます。
6. 次のステップ
このチュートリアルでは、1 つのシーンで複数のポストプロセスボリュームを使用する方法を学びました。シーン全体に影響する設定をグローバルポストプロセスボリュームで適用し、それをローカルポストプロセスボリュームでオーバーライドする方法を学びました。ローカルポストプロセスボリュームをネスト化したり、大きなワールドシーンをエリアごとに分割して、それぞれのエリアにローカルポストプロセスボリュームを設置して、それぞれの雰囲気を出してみるなど、さらなる冒険ができます。