初めに
SunPositionCalculatorプラグインを使用すると地理的に正確な太陽の位置を指定できるようになるので、日照シミュレートなどに使えるかと思います。
UE公式ドキュメントに具体的な使用方法が書かれているのでここでは説明は割愛させていただきます。
「日照シミュレートに使用できる」と記載しましたが、UE5.3ではバグがあり東京の夏ごろを指定すると夜の時間帯でも夕方に見えるようになってしまいます。
今回はこちらの修正方法を紹介したいと思います。
UE5.3以外では確認していませんが、もしかすると以前のバージョンでも同じバグが発生している可能性もあります。
環境情報
Windows 11
UE 5.3.2
問題の事象
今回の検証ではVRテンプレートを用いてBP_SunPositionをレベル上に配置してDetailsから必要な設定を行っています。
具体的な設定は下記の通りです
・Latitude:東京タワーの緯度です
・Longitude:東京タワーの経度です
・TimeZone:UTCが基準になるのでJSTで考えると+9時間になります
・North Offset:北方向の設定なので今回は特に設定していないです
・Year:2023
・Month:8
・Day:1
・Hours:23
・Minutes:0
・Seconds:0
2023/08/01 23:00の東京タワー近辺のシミュレーションです。画像の通り指定している時間は完全に夜ですが、どう見ても夕方の空になっています。↓
一応2023/01/01 23:00にすると若干夜っぽくなりますがまだ明かりが見えています。↓
修正方法
BP_SkySphereのUpdateSunDirectionでSunHeightに設定する値が大きくなってしまっているのが問題の原因です。
夜の場合は-1に近い値が設定される必要があるのですが、想定より大きい値が設定されてしまっています。
昼の場合は問題ないので、MapRangeUnclampedからの値が0より小さい際に2~3ぐらいの値を乗算してClampで-1~+1に収まるようにして値を補正しています。
こちらの対応で2023/08/01 23:00の場合にしっかりと夜の空になっています。今後のエンジンのアップデートで修正されるとは思うので応急処置として使えるのではないでしょうか。