BLOGブログ

2020.07.29UE4/Lighting

[UE4]ライトチャンネルについて

執筆バージョン: Unreal Engine 4.24

 

今回はライティングの際に便利なライトチャンネルについて紹介したいと思います。

ライトチャンネルとは、ライト側のチャンネルとオブジェクト側のチャンネルが一致しているものにライトの影響を与える設定です。

実際にライトチャンネルを使うとライティングがどの様に変化するのか試していきます。

 

ライトチャンネルの効果

デフォルトではライト側もオブジェクト側もライトチャンネルはChannel0のみ有効になっています。
新規作成したLevelを用意し、後に加えるライトがわかりやすいようにデフォルトのDirectional Lightの色を黄色にしています。
また、ライトの影響がわかりやすいように、FogやSkyLightは削除しています。

上記シーンにChannel1のみを有効に設定した青いSpot Lightを配置してみます。
左のボックスはChannel0のみのまま、右のボックスはChannel1のみ、床はChannel0と1両方にチェックを入れてみます。

そうすると、Channel0の左のボックスは黄色のDirectional Lightの影響のみ、
Channel1のみを有効にした右のボックスは青のSpot Lightの影響のみを受けています。

床はChannel0と1両方有効にしているため、Channel0のDirectional Lightの明かりや左のボックスの影、
Channel1のSpot Lightの明かり、右のボックスの影、どちらの影響もうけとっています。
ライトによって発生している影もチャンネルに対応したものが落ちています。

試しに、床をChannel1のみ有効にすると、Channel0に設定されているDirectional Lightからの影は落ちなくなります。

 

ライトチャンネルを使う際の注意点

・ライトのMobility(可動性)

ただし、このライトチャンネルを使用する場合にはライトのMobility(可動性)設定に注意が必要です。

上記に出した図のシーンをライトをStaticにしてLightBuildを行うと、ライトチャンネルの設定は無視されてしまいます。(左図)
比較として、ライトをMovableにしてLightBuildを行っていない状態にして、
床とボックスのライトチャンネルをChannel0、1どちらも有効にすると同じ状態になります。(右図)

ライトチャンネルを使用してライトの影響を切り替えたいときは、ライトのMobilityはStationary、もしくはMovableにしないと効果が出ません。

ちなみにDefaultのLevelを新規作成した場合のDirectional Lightや新規に追加したライトのデフォルト設定はStationaryになっています。
更に、LightBuildを行う前の状態のライトは、そのライトのMobilityが何であれ、一時的にMovableと同じふるまいをします。

・ライトチャンネルが使えるライトの種類

また、ライトチャンネルが使用できるライトの種類は限定されています。
ライトチャンネルが使用できるライトは、
Directional Light
Point Light
Rect Light
Spot Light
です。

Sky Lightではライトチャンネルを設定できません。
Sky Lightはシーンをキャプチャして間接光を与えるライトですので、
Sky Lightを今までのシーンに入れると、ライトチャンネルが対応していないライトでも、間接光は受けるようになります。

その他の注意点としてはライトチャンネルを使用すると負荷が少し上がる点です。
詳しくは公式ヘルプページをご参照ください。
https://docs.unrealengine.com/ja/Engine/Rendering/LightingAndShadows/LightingChannels/index.html

少しややこしいところもあるライトチャンネルですが、メインとなるキャラクターやオブジェクトにだけ影響する特別なライトを当てたい、などといったことができるのでライティングの幅が広がる便利な機能ですので、効果的な部分にはぜひ使っていきたいですね。