初心者の備忘録です。
公式ドキュメントの和訳が若干分かりづらかったのでまとめ直しているところがあります。
ライトに赤いバツがついた
ご覧のようにライトに赤いバツがついてしまいました。
なぜ?
Stationaryライトが1つのオブジェクトに対して影響を与えられるのは4つまでという制限があるため。
ライトアクタのMobility(可動性)
アクタ、今回は特にライトアクタのMobilityについての理解を深めることで、この事象が解決します。
Static(静的)
Staticは、ゲームプレイ中に移動も更新もしないライトアクタの状態です。
Lightmass(ライトマップを作成するシステム)によって事前計算されるライトマップに反映されます。
このライトはシーンを照らし、StaticおよびStationaryに設定されたアクタ用のライティングデータを生成しますが、Movableの場合は、Indirect Lighting Cacheに保存されたライティングデータまたは Volumetric Lightmaps によって照明され、それらを照らします。
その名の通りStaticですので、変更が生じた場合は都度ビルドをかける必要があります。
影にPreviewなどが表示されている場合、そのライティングはビルドが必要なことを示しています。
逆に言えば、一度ライティングのビルドが完了してしまえば、その後はStaticライトがランタイム時のパフォーマンスに影響を及ぼすことはありません。
Stationary(固定)
Stationaryは、ゲームプレイ中に変化はできますが、移動はできないライトアクタの状態です。
ゲームプレイ中に色や強度を変えたり、または、オフにしたりと、何らかの方法で変化させることができます。
Stationaryライトは、Lightmassによって事前計算されたライトマップに反映されますが、移動可能(Movable)オブジェクトに動的な影を生成することもできます。
そのため、Stationaryライトにはコストがかかり、1つのオブジェクトに対して同時に影響を与えることができるライトの数が最大4つに制限されています。
Movable(可動)
Movableは、ゲームプレイ中に追加・削除・移動が可能なライトアクタの状態です。
このライトは、ゲームプレイ中に移動させることができ、また、色や強さなどのライトのプロパティを変更することができます。
影の生成にかかるコストが最も高いため、このMobilityを持つライトを使用するときは注意が必要です。
ただし、影を生成しないMovableライトは計算コストが非常に低く、ディスクに保存する必要のあるライティングデータがないため、Staticライトよりもコストが低くなります。
それぞれのMobilityの関係性
Mobility | 品質 | 可変性 | 負荷 |
---|---|---|---|
Static | 中 | 低 | 低 |
Stationary | 高 | 中 | 中 |
Movable | 低 | 高 | 高 |
※相対的な評価です
ライトにバツをつけさせない方法
方法1: ライトのMobilityを変更する
そのライトが動かず、変更の可能性がなければ、Staticに変更します。
それ以外の場合はMovableに変更します。ただ、負荷が高いので多く配置する場合は注意が必要です。
方法2: アクタにライトが影響しないようにする
具体的には、Stationaryライトを減らす、もしくは、ライト同士を遠ざければ良いです。
しかし、これはライティングを変えることになるので、あまり現実的な回避方法ではないかもしれません。
まとめ
- アクタにはMobilityがある
- Staticは移動も更新もしないライト
- Stationaryは変更する可能性はあるが、移動しないライト
- Movableは追加・削除・移動するライト
- 1つのオブジェクトに対して影響を与えられるStationaryライトは4つまで配置できる
- Stationaryライトは負荷が高いため