【Unity】ライトレイヤーでリフレクションプローブの影響を制限する

投稿者: | 2021-07-10

HDRPのライトレイヤーを使って、リフレクションプローブの影響を受けるオブジェクトを限定してみました。

ライトレイヤーを有効にする

ライトレイヤーを使うには、まずHDRP Assetを開いて、Lighting > Light LayersのEnableにチェックを入れます。

また、Default Frame SettingsのLighting > Light Layersにもチェックを入れます。

リフレクションプローブを使う

部屋に鏡を置いて、リフレクションプローブを作りました。鏡や部屋の壁、床などを影響範囲に入れて、リフレクションプローブの「Bake」ボタンを押すとリフレクションプローブを使って反射するようになり、鏡に部屋の中が映りました。

この部屋は角が窪んだ形をしているので、影響範囲が少し外に出ています。

すると、部屋の外の壁も部屋の中のリフレクションプローブの影響を受けて、不自然に明るくなっています。

部屋の中と外に明暗の差があると目立つので、ライトレイヤーを使って、部屋の中のものだけが部屋の中のリフレクションプローブの影響を受けるようにしてみます。

ライトレイヤーを設定

まず、リフレクションプローブのライトレイヤーでデフォルトのみが選択されているので、デフォルトを切って、使っていない他のライトレイヤーを選びます。

これで、このライトレイヤーが設定されているメッシュレンダラーだけが反射するようになります。鏡のオブジェクトではデフォルトが選択されているので、何も映らなくなりました。

次に、部屋の中のメッシュレンダラーの付いているゲームオブジェクトを同時選択してインスペクタを見ます。

そして、メッシュレンダラーで、リフレクションプローブと同じライトレイヤーも選択されるようにします。

複数選択したので「Mixed…」と表示されました。

これで部屋の中のものは反射するようになります。

部屋の外の床や壁のメッシュレンダラーでは、デフォルトのライトレイヤーだけが選択されているので、不自然な反射がなくなりました。

コメントを残す

メールアドレスが公開されることはありません。