我们现实世界中是24小时的昼夜循环机制,所以很多生存类的游戏中也会模拟这种昼夜循环,白天和夜晚会有不一样的机制,可以给玩家带来更刺激的体验。接下来就交给大家如何在UE4中制作一个简单的昼夜循环效果。
首先我们需要创建新工程,您也可以在现有工程中创建一个新场景。在新建场景时选择“Default”模板,因为这个模板自带天空盒和灯光,这正是我们所需要的。
通过上面的分析可以得知,我们只需要控制LightSource的旋转,之后刷新SkySphere即可。接下来我们按照这个思路去实现。
因为需要实时刷新,所以需要借助Tick函数,这个函数每帧调用。首先将LightSource和SkySphere引入到关卡蓝图中。然后在Tick函数中控制LightSource的旋转,通过测试会发现,沿着Y轴旋转是我们想要的效果,所以我们需要调用LightSource的AddActorWorldRotation函数,修改Y轴的旋转,每帧增加1度的旋转,目前的关卡蓝图如下所示。
如果此时运行会发现场景中的灯光并没有改变方向,并且在停止运行之后还会报错,如下图所示。
大体意思是如果想对灯光进行变换,那么必须将灯光设置为Movable类型。
修改完之后运行游戏,发现场景中阴影和亮度已经有效果了,但是天空盒并没有刷新,依然是白天的样子,所以接下来我们需要刷新天空盒。SkySphere中有一个函数叫UpdateSunDirection可以根据灯光朝向刷新天空盒的材质球。完善之后的关卡蓝图如下
做完上面的步骤,运行游戏可以发现已经初步实现了昼夜交替的效果。
这只是最简单的昼夜变换,您还可以继续完善,例如昼夜变换时灯光的亮度不一样等等功能。
涉及方向有Java、Web前端、UI设计、软件测试、python等科目,内容包含学习路线、视频、源码等