【Unity】ライトマップやライトプローブの明るさを後から変える

投稿者: | 2021-06-07

HDRPの「Indirect Lighting Controller」ボリュームコンポーネントで、ライトマップやライトプローブの明るさを後から変えてみました。

まず、暗いシーンに壁や床とポイントライトを置いてライトマップをベイクしました。ライトは「Mixed」モードで、間接光だけがベイクされるようになっています。

壁や床では、インスペクタの右上のStaticにチェックを入れています。

間接光をベイクした後にライトのIntensityの値を0にすると、直接光はなくなりますが、間接光は残ります。

そこで、「Indirect Lighting Controller」を使って、間接光の強さを変えてみます。

ボリュームコンポーネントを追加する

まず、ヒエラルキーウィンドウで「Global Volume」を追加します。

これを選択して、インスペクタの「New」ボタンを押して、新しいボリュームプロファイルを作ります。

すると、「Add Override」ボタンから「Indirect Lighting Controller」ボリュームコンポーネントを追加できるようになります。

「Indirect Lighting Controller」の各プロパティは左のチェックを入れると値を変えられるようになります。「All」をクリックするとすべてのチェックが入ります。

明るさを変える

一番上の「Indirect Diffuse Lighting Multiplier」を下げると、間接光が弱まります

壁や床はリフレクションプローブなどからの反射にも照らされています。その明るさを変えることもできます。

ライトレイヤーを使う

特定のライトレイヤーだけに影響を与えることもできます。ポイントライトのLightコンポーネントの右上の歯車アイコンをクリックするとライトレイヤーを設定できるようになります。

プルダウンから、デフォルトでないライトレイヤーに新しくチェックを入れました。

また、壁を一つ選択して、インスペクタでメッシュレンダラーの「Rendering Layer Mask」のプルダウンメニューを開きます。

ここで、同名のライトレイヤーにチェックを入れます。「Light LayerDefault」のチェックは切りました。

そして、「Indirect Lighting Controller」ボリュームコンポーネントの「Indirect Diffuse Lighting Layers」のプルダウンメニューで、「Light LayerDefault」だけにチェックが入っている状態にしました。

これで、間接光の明るさを変えると、ライトレイヤーを変えた壁の明るさは変化しなくなりました。

ポイントライトでは、他のライトレイヤーも有効にしたので、直接光はあたっています。ライトのIntensityを下げると暗くなりました。

無料ホラーゲームを作りました

コメントを残す

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