ライトレイヤー
HD レンダーパイプライン (High Definition Render Pipeline、HDRP) では レイヤーマスク である Light Layers (ライトレイヤー) を使い、シーンで特定のメッシュのみに照明を当てることができます。ライトとメッシュにライトレイヤーを設定し、ライトが該当するライトレイヤーのメッシュのみに影響を与えるようにします。
ライトレイヤーを有効にする
ライトレイヤーを使うには、プロジェクトの HDRP アセット で有効にしなくてはなりません。その後、デフォルトの Frame Settings で Light Layers を有効にし、カメラがライトレイヤーを処理するように設定します。
- Project ウィンドウで HDRP アセットを選択し、Inspector で Lighting > Light Layers に行ってから Enable チェックボックスを有効にします。
- すべてのカメラのデフォルトフレーム設定でライトレイヤーを有効にするには、デフォルト設定ウィンドウ で Default Frame Settings For セクションへ行き、ドロップダウンから Camera を選択してから Lighting セクションで Light Layers チェックボックスを有効にします。
カメラのフレーム設定をオーバライドするには、ライトレイヤーを個別に設定します。
- シーンビューまたは Hierarchy ウィンドウで Camera をクリックし、Inspector 内のプロパティーを表示します。
- General セクションに行き Custom Frame Settings のチェックボックスを有効にします。こうすると Frame Settings Overrides が展開され、このカメラのみをカスタマイズできるようになります。
- Lighting セクションで Light Layers チェックボックスを有効にして、カメラがライトレイヤーを使えるようにします。
ライトレイヤーの使用
ライトレイヤーを有効にしたら、シーンでメッシュと特定のライトを分離できます。この手順は以下の通りです。
- Hierarchy またはシーンビューでライトをクリックして、Inspector で表示します。
- General セクションで 追加オプション を開き Light Layer プロパティーを展開します。
- Light Layer プロパティーのドロップダウンから、ライトが影響を与えるライトレイヤーを選択します。
- ヒエラルキーまたはシーンビューで Mesh Renderer (メッシュレンダラー) または Terrain をクリックし、Inspector 内で表示します。
- Rendering Layer Mask ドロップダウン (ゲームオブジェクト用の メッシュレンダラー または Terrain (地形)用の その他の設定 を参照してください) を使って、どのライトレイヤーがメッシュレンダラーまたは地形に影響を与えるかを選択します。メッシュレンダラーと地形の両方が一致するライトレイヤーを使う場合、ライトレイヤーを有効にすると、ライトはメッシュレンダラーまたは地形のみに影響を与えます。
シャドウライトレイヤー
ライトレイヤーを使う際、メッシュは同じライトレイヤーにある ライト のみに影を落とします。これは HDRP がデフォルトで、ライトを受けるすべてのメッシュが影を落とすように、ライトレイヤーとシャドウライトレイヤーを同期化するためです。ライトの影響なしに、メッシュが影を落とすようにするには、シャドウライトレイヤーをライトのライトレイヤーから分離する必要があります。
これを実行するには、
- Hierarchy またはシーンビューでライトをクリックして、Inspector で表示します。
- Shadows セクションに行き、Link Light Layers チェックボックスを無効にします。
これで Shadows セクションの Light Layers ドロップダウンから、ライトがシャドウイングに使うライトレイヤーを設定できます。さらに General セクションの Light Layers ドロップダウンからもライティングに使うライトレイヤーを設定できます。
ライトレイヤーの名前変更
デフォルトでは、ライト、メッシュレンダラー、Terrain (地形) の UI で、ライトレイヤーは Light Layer 1-7 と名付けられます。より簡単に区別するために、各ライトレイヤーに特定の名前を付けることができます。この手順はまず Default Settings タブ を開いてから、Light Layer Names へ移動します。ここから各ライトレイヤーにそれぞれ名前を設定できます。
ライトレイヤーのシナリオ例
照明器具に クッキー を使うと、セルフシャドウイングやトランスミッション寄与などといった電球のビジュアル面に悪影響が生じる場合があります。その場合はライトレイヤーを利用して電球のメッシュがライトのクッキーから光を受信しないようにし、代わりに別の小さなポイントライトから光を受信するようにすることができます。
ライトクッキーが電球ジオメトリのトランスミッションに、誤って影響しています。
電球のメッシュレンダラーを特定のライトレイヤーに割り当てると、ライトクッキーは電球のメッシュレンダラーに影響しません。
トランスミッションエフェクトを回復するために、ポイントライトを作成して電球のメッシュレンダラーと同じライトレイヤーに割り当てます。これでポイントライトは電球のメッシュレンダラーのみに影響を与え、他のシーンライティングには関与しなくなります。
このプロセスに関する詳細は、Pierre Donzallaz の Unity で高品質の照明器具を作成する エキスパートガイド を参照してください。