ボリューム
Universal Render Pipeline (ユニバーサルレンダーパイプライン、URP) では、ボリューム (Volume) フレームワークが使用されます。ボリュームは、各ボリュームへのカメラの相対位置に基づきシーンのプロパティをオーバーライドまたは拡張できます。
URP では、ポストプロセス エフェクトにボリュームフレームワークが使用されます。
URP には、ボリューム専用のゲームオブジェクトとして Global Volume、Box Volume、Sphere Volume、Convex Mesh Volume が実装されています。
Volume コンポーネントには、ボリュームがグローバル (Global) かローカル (Local) かを定義する Mode プロパティが含まれています。
Mode が Global に設定されている場合、ボリュームはシーン内のどこにあるカメラにも影響します。Mode が Local に設定されている場合、ボリュームはコライダーの境界内にあるカメラに影響します。詳細については、ローカルボリュームの使用方法 を参照してください。
Volume コンポーネントはどのゲームオブジェクトにも追加できます。シーンには Volume コンポーネントが含まれている複数のゲームオブジェクトを含めることができます。1 つのゲームオブジェクトに複数の Volume コンポーネントを追加できます。
Volume コンポーネントは、シーンのプロパティが含まれている ボリュームプロファイル を参照します。ボリュームプロファイルにはすべてのプロパティの初期値が含まれ、それらはデフォルトで非表示になっています。Volume オーバーライド を使用すると、ボリュームプロファイル 内のデフォルトプロパティを変更または拡張できます。
ランタイムには、URP によってシーン内のアクティブなゲームオブジェクトにアタッチされている有効なすべての Volume コンポーネントが処理され、最終的なシーン設定への各ボリュームの影響が決められます。URP では、カメラ位置と Volume コンポーネントのプロパティを使用して影響が計算されます。URP によって影響がゼロではないすべてのボリュームの値が補間され、最終的なプロパティ値が算出されます。
Volume コンポーネントのプロパティ
Volumes コンポーネントには、カメラへの影響や他のボリュームとの相互作用を制御するプロパティが含まれています。
プロパティ | 説明 |
---|---|
Mode | ドロップダウンを使用して、URP でボリュームがカメラに影響するかどうかを計算するために使用される方法を選択します。 • Global: ボリュームの境界をなくし、シーン内のすべてのカメラに影響を与えられるようにします。 • Local: 境界内のカメラのみに影響するようボリュームの境界を指定できます。コライダーをボリュームのゲームオブジェクトに追加し、それを使用して境界を設定します。 |
Blend Distance | URP でブレンドが開始される、ボリュームのコライダーから最も遠い距離です。値を 0 にすると、入力した時点ですぐに URP によってこのボリュームのオーバーライドが適用されます。 このプロパティは、Mode ドロップダウンから Local を選択した場合にのみ表示されます。 |
Weight | シーンに対するボリュームの影響の大きさです。URP でカメラ位置と Blend Distance を使用して算出される値にこの乗数が適用されます。 |
Priority | URP では、シーンへの影響の大きさが等しいボリュームがある場合にどのボリュームを使用するか決めるために、この値が使用されます。優先度の高いボリュームが先に使用されます。 |
Profile | Volume コンポーネントが含まれているボリュームプロファイルアセットであり、URP でこのボリュームの処理に使用するプロパティが格納されます。 |
ボリュームプロファイル
Profile フィールドには、URP でシーンのレンダリングに使用するプロパティが含まれている ボリュームプロファイル アセットが格納されます。このボリュームプロファイルを編集するか、別のボリュームプロファイルを Profile フィールドに割り当てることができます。また、New ボタンをクリックして、新しいボリュームプロファイルを作成することや、Clone ボタンをクリックして、現在のボリュームプロファイルのクローンを作成することもできます。
ローカルボリュームの使用方法
このセクションでは、ローカルボリュームを使用して位置ベースのポストプロセスエフェクトを実装する方法について説明します。
この例では、カメラが特定のボックスコライダー内にある場合に URP によってポストプロセスエフェクトが適用されます。
シーン内に新しいボックスボリュームを作成します (GameObject > Volume > Box Volume)。
Box Volume を選択します。Inspector で、Volume コンポーネントの Profile フィールドにある New をクリックします。
Unity によって新しいボリュームプロファイルが作成され、Add Override ボタンが Volume コンポーネントに追加されます。
シーン内に他のボリュームがある場合は、Priority プロパティの値を変更し、このボリュームからのオーバーライドの優先度が他のボリュームよりも高くなるようにします。
Add Override をクリックします。Volume Overrides ダイアログボックスで、ポストプロセスエフェクトを選択します。
Collider コンポーネントで、Size プロパティおよび Center プロパティを調整し、ローカルのポストプロセスエフェクトにするボリュームの範囲をコライダーが占めるようにします。
Is Trigger チェックボックスがオンになっていることを確認します。
これで、カメラがボリュームのボックスコライダーの境界内に入ると、URP でボックスボリュームからの Volume オーバーライドが使用されるようになります。