Shadows
Shadows Volume コンポーネントオーバーライド は、HDRP がシャドウカスケードおよび パンクチュアルライト からのシャドウをレンダリングする最大距離を制御します。カスケードスプリットを使い、カメラからの距離にかけてディレクショナルライトが投影する影の品質を制御します。
Shadows の使用
Shadows は Volume フレームワークを使うため、Shadows プロパティーを有効化し変更するには、シーンで Shadows オーバーライドを Volume に追加しなければなりません。
Shadows オーバーライドは、Scene Settings ゲームオブジェクトを作成するときの (メニュー: GameObject > Rendering > Scene Settings) デフォルトです。また手動で Shadows オーバーライドを任意の Volume に追加することもできます。Shadows を Volume に追加する手順は以下の通りです。
- シーンまたは Hierarchy ビューで、Volume コンポーネントを含むゲームオブジェクトを選択し、Inspector で表示します。
- Inspector で Add Override > Shadowing へ行き、Shadows をクリックします。これで Shadows オーバーライドを使って、Volume に対するシャドウ設定を変更することができます。
API
ランタイム中このオーバーライドにアクセスし制御するためには、Volume スクリプティング API を使用します。Volume システムの仕組みにより、プロパティーは標準 Unity コンポーネントとは異なる方法で編集されます。また、各プロパティーに overrideState があるなど、他にも注意する点があります。これは Volume システムが、設定したプロパティー値と Volume Profile に保存されているデフォルト値のうち、どちらを使うかを指示します。API を正しい利用法についての詳細は、 Volume スクリプティング API を参照してください。
プロパティー
Volume コンポーネントのオーバーライドのプロパティーを編集するには、プロパティーの左にあるチェックボックスを有効にします。これにより HDRP も Volume コンポーネントに対して、デフォルト値ではなく特定されたプロパティー値を使うことになります。チェックボックスを無効にすると、HDRP は設定されたプロパティーを無視し、Volume のデフォルト値を代わりに使います。
プロパティー | 説明 |
---|---|
Working Unit | ドロップダウンからカスケードスプリットを定義するために使いたい単位を選択します。br />• Metric: カスケードスプリットと境界線をメートルで定義します。 • Percent: カスケードスプリットと境界線を Max Distance のパーセンテージとして定義します。 |
Max Distance | HDRP がシャドウをレンダリングする最大距離を設定します (メートル単位)。HDRP はこれをパンクチュアルライトに使うとともに、最終カスケードの最終境界線として使います。 |
Transmission Multiplier | ディレクショナルライトが厚いオブジェクトに当てるライトに HDRP が適用する乗数を設定します。 |
Cascade Count | スライダーを使って、シャドウを投影するディレクショナルライトに使うカスケード数を設定します。カスケードはシャドウの LOD として機能します。各カスケードにはそれぞれ独自のシャドウマップがあり、カメラから遠ざかるにつれてカスケードエリアは徐々に大きくなっていきます。HDRP は各カスケードエリアに同一の解像度シャドウマップを広げるため、カメラにより近いカスケードは、カメラから遠いカスケードよりも、よりクオリティーの高いシャドウを実現できます。 |
Split 1 | 第一カスケードと第二カスケード間のスプリット距離を設定します。Working Unit はこのプロパティーが使う単位を定義します。 |
Split 2 | 第ニカスケードと第三カスケード間のスプリット距離を設定します。Working Unit はこのプロパティーが使う単位を定義します。 |
Split 3 | 第三カスケードと最終カスケード間のスプリット距離を設定します。Working Unit はこのプロパティーが使う単位を定義します。 |
Border 1 | 第一カスケードと第二カスケードスプリット間の境界線のサイズを設定します。HDRP はこれら 2 つのセクション間のシャドウカスケードをこの境界線でフェードします。Working Unit はこのプロパティーが使う単位を定義します。 |
Border 2 | 第ニカスケードと第三カスケードスプリット間の境界線のサイズを設定します。HDRP はこれら 2 つのセクション間のシャドウカスケードをこの境界線でフェードします。Working Unit はこのプロパティーが使う単位を定義します。 |
Border 3 | 第三カスケードと最終カスケードスプリット間の境界線のサイズを設定します。HDRP はこれら 2 つのセクション間のシャドウカスケードをこの境界線でフェードします。Working Unit はこのプロパティーが使う単位を定義します。 |
Border 4 | 最終カスケードスプリットの終わりで境界線のサイズを設定します。HDRP はこの距離で最終シャドウカスケードをフェードアウトします。Working Unit はこのプロパティーが使う単位を定義します。 |
シャドウカスケードの可視化
シャドウオーバーライドを使って、Inspector でカスケードサイズを可視化するだけでなく、リアルタイムでシーンに現れるカスケードの境界線を可視化することができます。
Inspector で Cascade Splits バーを使い、相対的に各カスケードのサイズを確認します。バーは他にも以下のような使い道があります。
- 各カスケードスプリットの位置を移動します。スプリットの上にあるタブをクリックし、ドラッグしてカスケードスプリットの位置を調整します。
- 各境界線の位置を移動します。スプリットの下にあるタブをクリックし、ドラッグして境界線の位置を調整します。
シーンビューおよびゲームビューで、カスケード可視化機能を使うと、シーン中の各カスケードの境界線を見ることができます。各カラーは別のカスケードを表し、Cascade Splits バーにある色と一致します。これにより、どの色がついたエリアがどのカスケードと一致するかを確認することができます。
シーンビューおよびゲームビューで、カスケード可視化機能を使うと、シーン中の各カスケードの境界線を見ることができます。各カラーは別のカスケードを表し、Cascade Splits バーにある色と一致します。カスケード可視化機能を有効にするには、Shadows プロパティーのリストの上部にある Show Cascades ボタンをクリックします。これでシーンビューおよびゲームビューでシャドウマップを見ることができます。
- シーンビューカメラを使うと、シーン中を動き回り、異なるエリアのシャドウマップを素早く可視化できます。
- ゲームビューカメラを使うと、エンドユーザーの視点からシャドウマップを可視化できます。プレイモード中に Show Cascades 機能を使うことができますが、これはカメラの位置と回転を制御する方法がいくつかあり、プロジェクト内で異なる視点からシャドウマップを見たい場合に役立ちます。