UE4でゲーム中動的に夜から朝にする!

2019年3月3日

焚き火が映えるように夜にしましたが、このままではゲーム中ずっと夜のままです。

今回はゲーム中にSky SphereのLight Sourceを制御して、朝から夜という一日の概念を作りたいと思います!

 

スポンサーリンク

ブループリントでLight Sourceを回転させる!

 

前回で夜にした時は、アウトライナ上のLight Sourceの回転パラメーターを詳細ウィンドウ上で手作業で行いました。

これをゲーム中の時間経過によって回転させ、日が昇る、日が落ちるといった演出になるようにしたいと思います。

Light Sourceの位置や回転といったパラメーターをゲーム中動的に変更するのに必要な設定があります。

Light Sourceの詳細パネルより、可動性の部分を「ムーバブル」に設定します。これでゲーム中動的にLight Sourceの移動、及び回転が可能になります。

続いて、回転を行うブループリントですが、とりあえずレベルブループリント上に記述したいと思います。

アウトライナパネル上のSky SphereとLight Sourceをレベルブループリント上に直接ドラッグ&ドロップする事で取得する事ができます。

イベント TickのDelta Secondsから自前の変数Day Speedを掛け合わせて回転値を生成しています。

後は回転値をLight Sourceに対してAddActorLocalRotationで加算しています。

最後はUpdate Sun DirectionでLight Source回転の結果をSky Sphereに反映しています。手動で夜にしていた時も、Light Sourceを回転したらSky SphereのRefresh Materialのチェックボックスをクリックしないと結果が反映されなかった事もあり、必要な処理なんだと思います。

 

ついに夜が明ける・・・・!

 

ゲーム中動的に夜から朝へと変更する事ができました!

確認が容易となるようにDay Speedを早めに設定してますので、切り替わりがあっという間ですが、調整すれば緩やかな一日の経過を見る事ができます。

スポンサーリンク