Indirect Lighting Controller
Indirect Lighting Controller (間接ライティングコントローラー) は、ベイクされたまたは事前計算された間接ライティングを全体的に制御できる、 Volume コンポーネントです。
このオーバーライドはライティングを全体的にアニメ化する必要がある場合に役立ちます。
Indirect Lighting Controller の使用
Indirect Lighting Controller は Volume フレームワークを利用するため、Indirect Lighting Controller プロパティーを有効にし変更するためには、シーンの Volume に Indirect Lighting Controller オーバーライドを追加しなければなりません。Volume に Indirect Lighting Controller を追加する手順は以下の通りです。
- シーンまたは Hierarchy ビューで、Volume コンポーネントを含むゲームオブジェクトを選択し、Inspector で表示します。
- Inspector で Add Override > Lighting へ行き、Indirect Lighting Controller をクリックします。これで Indirect Lighting Controller を使って、ベイクされた、または事前計算された間接ライティングを制御できます。
API
ランタイム中このオーバーライドにアクセスし制御するためには、Volume スクリプティング API を使用します。Volume システムの仕組みにより、プロパティーは標準 Unity コンポーネントとは異なる方法で編集されます。また、各プロパティーに overrideState があるなど、他にも注意する点があります。これは Volume システムが、設定したプロパティー値と Volume Profile に保存されているデフォルト値のうち、どちらを使うかを指示します。API を正しい利用法についての詳細は、 Volume スクリプティング API を参照してください。
プロパティー
Volume コンポーネントのオーバーライドのプロパティーを編集するには、プロパティーの左にあるチェックボックスを有効にします。これにより HDRP も Volume コンポーネントに対して、デフォルト値ではなく特定されたプロパティー値を使うことになります。チェックボックスを無効にすると、HDRP は設定されたプロパティーを無視し、Volume のデフォルト値を代わりに使います。
プロパティー | 説明 |
---|---|
Indirect Diffuse Lighting Multiplier | ライトマップ、ライトプローブ、ライトプローブボリューム、スクリーンスペースグローバルイルミネーション、および レイトレースによるグローバルイルミネーション 用の乗数です。HDRP はこれらすべてからのライトデータとこの値を乗算します。 |
Indirect Diffuse Lighting Layers | 間接拡散ライティングに ライトレイヤー を特定します。ライトレイヤーを有効にすると、シーンでメッシュと上記の乗数を分離することができます。 |
Reflection Lighting Multiplier | ベイク、リアルタイム、またはカスタムの Reflection Probe と Planar Probe、Screen-Space Reflection、Ray-Traced Reflection、スカイリフレクション用の乗数です。HDRP はこれらすべてからのライトデータとこの値を乗算します。 |
Reflection Lighting Layers | リフレクションライティングに ライトレイヤー を特定します。ライトレイヤーを有効にすると、シーンでメッシュと上記の乗数を分離することができます。 |
Reflection/Planar Probe Intensity Multiplier | ベイク、リアルタイム、またはカスタムの Reflection Probe と Planar Probe 用の乗数です。HDRP は Reflection Probe のデータとこの値を乗算します。 |
詳細
Indirect Lighting Controller が役立つ状況の例として、カメラが暗がりにあるエリアに突然照明を当てたい場合が挙げられます。このエフェクトを作り出すには、次の手順に従います。
- Scene Settings GameObject を作成し (メニュー: GameObject > Rendering > Scene Settings)、Indirect Lighting Controller を追加します (Scene Settings GameObject をクリックしてから Inspector 内の Volume コンポーネントで Add Override をクリックし Indirect Lighting Controller を選択します)。
- Scene Settings GameObject に Collider を追加して Is Trigger チェックボックスを有効にします。コライダーの Size を間接ライティングを変更したいエリアのサイズに設定します。
- Indirect Lighting Controller で Indirect Diffuse Intensity と Indirect Specular Intensity を 0 に設定します。これですべての間接ライティングが黒くなります。
- エリアに照明を当てる際、 Volume の Weight プロパティーを 1 から 0 の遷移に (タイムラインまたはアニメーションを使って) アニメ化します。これにより、 Volume 内で設定された値とカメラに影響するその他の Volume からの値の間が、徐々に補間されます。
- その結果、間接ライティングは全体的にフェードインします。フェードの速度はアニメーションの長さを変更て調整します。