【Unity基础知识】UE4昼夜循环制作

发布 : Unity培训      来源:Unity干货资料

2021-01-08 14:38:19

我们现实世界中是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可以根据灯光朝向刷新天空盒的材质球。完善之后的关卡蓝图如下

做完上面的步骤,运行游戏可以发现已经初步实现了昼夜交替的效果。



这只是最简单的昼夜变换,您还可以继续完善,例如昼夜变换时灯光的亮度不一样等等功能。

THE END  

声明:本站稿件版权均属中公教育优就业所有,未经许可不得擅自转载。

领取零基础自学IT资源

涉及方向有Java、Web前端、UI设计、软件测试、python等科目,内容包含学习路线、视频、源码等

点击申请领取资料

点击查看资料详情 

收起 


 相关推荐

问题解答专区
返回顶部