我們現實世界中是24小時的晝夜循環機制,所以很多生存類的游戲中也會模擬這種晝夜循環,白天和夜晚會有不一樣的機制,可以給玩家帶來更刺激的體驗。接下來就交給大家如何在UE4中制作一個簡單的晝夜循環效果。
首先我們需要創建新工程,您也可以在現有工程中創建一個新場景。在新建場景時選擇“Default”模板,因為這個模板自帶天空盒和燈光,這正是我們所需要的。
創建完成之后我們根據自己的需要對場景進行微調。選擇Floor,將其縮放調整為(100,100,1),其他保持默認。在正式制作晝夜循環之前我們首先分析一下思路。場景中的LightSource和SkySphere兩個物體比較關鍵,LightSource為場景中的主光源,本質是Directional Light。SkySphere是場景中默認的天空盒,這個天空盒比較強大,自帶朝陽、正午、夕陽和夜晚等各個時段的效果。稍微仔細觀察就會發現兩個物體之間還是有關聯的。點擊SkySphere的Directional Light Actor屬性旁邊的放大鏡圖標可以定位到LightSource物體,這說明天空盒的燈光來源是LightSource。
通過上面的分析可以得知,我們只需要控制LightSource的旋轉,之后刷新SkySphere即可。接下來我們按照這個思路去實現。
因為需要實時刷新,所以需要借助Tick函數,這個函數每幀調用。首先將LightSource和SkySphere引入到關卡藍圖中。然后在Tick函數中控制LightSource的旋轉,通過測試會發現,沿著Y軸旋轉是我們想要的效果,所以我們需要調用LightSource的AddActorWorldRotation函數,修改Y軸的旋轉,每幀增加1度的旋轉,目前的關卡藍圖如下所示。
如果此時運行會發現場景中的燈光并沒有改變方向,并且在停止運行之后還會報錯,如下圖所示。
大體意思是如果想對燈光進行變換,那么必須將燈光設置為 Movable 類型。
修改完之后運行游戲,發現場景中陰影和亮度已經有效果了,但是天空盒并沒有刷新,依然是白天的樣子,所以接下來我們需要刷新天空盒。SkySphere中有一個函數叫Update Sun Direction可以根據燈光朝向刷新天空盒的材質球。完善之后的關卡藍圖如下
做完上面的步驟,運行游戲可以發現已經初步實現了晝夜交替的效果。
這只是最簡單的晝夜變換,您還可以繼續完善,例如晝夜變換時燈光的亮度不一樣等等功能。
>>本文地址:http://www.028benet.com/zhuanye/2021/64808.html
聲明:本站稿件版權均屬中公教育優就業所有,未經許可不得擅自轉載。
1 您的年齡
2 您的學歷
3 您更想做哪個方向的工作?