
昼夜切り替え方法をご紹介します。(暫定版です)
動作環境
当記事の動作環境は以下の通りです。
バージョンや環境によっては、正常に動作しない可能性があります。
また、プロジェクトはサードパーソンプロジェクトの使用を前提とします。
はじめに
当記事では、以下の動画を参考に昼夜切り替え方法を実装しました。
しかし、当サイトの管理人環境では夜に星空が出ない状態になりました。
さらに動画のコメント欄を見ると、昼夜切り替えサイクルの時間を変更すると動かないなどの不具合も報告されています。
そのため、当記事では暫定版しており、解決方法などが見つかった場合は随時追記していきます。
昼夜切り替え方法
DirectionalLightの複製
DirectionalLightを複製し、一方を昼、もう一方を夜にします。

トランスフォームを編集
DirectionalLightについて、トランスフォームを変更します。
夜側の回転を全て-90に設定します。逆に昼側の回転は全て0に設定します。

色の変更
夜側のDirectionalLightについて、Light Colorを青や黒など暗めの色に設定します。
レベルブループリントを編集
レベルブループリントを開きます。


daySpeed変数を作成します。Float型にしてください。
作成後、一度コンパイルして保存します。
作成したdaySpeedに値を設定します。
詳細欄のデフォルト値に「Day Speed」があるはずなので、そこに10を設定します。

続いて、下図のようにノードを接続します。
真ん中は「Multiply」ノードです。

アウトライナーで昼側のDirectionalLightを選択した状態で、レベルブループリントを右クリックして「Create a Reference to DirectionalLight」を選択します。

その後、下図のようにノードを接続します。

ここまでで一度ゲームをプレイしてみると、太陽がぐるぐると回って1日のサイクルができることを確認できます。
さらにこの後、下図のようにノードを接続します。(緑部分は既に作成済み、橙部分を作成)

最後に、上図の右側の「Branch」以降を下図のように作ります。

これで一応完成ですが、最初に記載した通り、管理人の環境では夜空に星が出ないなど不具合がある状況です。
最後に
まだ不完全な機能のご紹介で申し訳ございません。
今後対策等が見つかり次第、随時追加します。
2023.09.30追記
以下の動画を見つけました。こちらを今後試してみます。