准备工作
- 打开UE4的项目选择界面
- 新建一个项目,选择蓝图下的空白项目并且具有初学者内容,这样可以方便快速的搭建我们所需要的场景。保存路径最好不要放在C盘,名称尽量使用英文!
- 打开后,选择关卡蓝图,进入蓝图界面。
- 进入蓝图界面后,我们需要思考一下问题。
- 什么的移动能够改变太阳的移动?
- 怎么使它移动?
过程
- 太阳的移动是随着太阳光源的移动而移动,所以我们需要先将太阳光拖入到蓝图界面来,先回到游戏界面,然后选择Light Source并拖动它。
- 拖动进来后,我们需要用某种方法改变它的值!
- 由上图可见 ,改变Light Source的Y轴就可以使灯光移动,我们添加一个方法 AddActorLocalRotation 增加目标的角度,将 Light Source连接到目标上。
- 我们需要将 AddActorLocalRotation 的Delta Rotation属性提出来方便我们赋予它值,添加一个make Rotator。
- 然后,我们需要改变其中的Y值,我们使用累加来增加Y的角度,使用float+float。
- 该节点左侧的值上面的是触发该节点的事件驱动,下面为每次运行时需要加的值,右侧为目标Y的值,默认累加1.000000。现在,我们添加一个变量来控制每次运动的距离,也就是太阳运动的速度。该变量的类型为浮点型,也就是float。
- 拖进蓝图,选择获得,连接到下面的值后。添加一个事件驱动 事件Tick。它是游戏中每一帧运行所触发的事件。
- 目前蓝图的意思是,每次运行时增加目标的Y值。但是仅仅是一个数值而已,事件驱动并没有连接到该事件上,所以没有赋值给Light Source。现在,我们连接一下。
- 连接后,我们已经将角度赋给了目标,但是由于光照的特殊性,我们不仅仅只是改变角度就能改变场景中的光照,所以我们还需要在这之后更新一遍天空的方向。现在,我们将天空球拖入到蓝图。
- 我们给这个节点添加方法 update Sun Direction 将节点连接到目标,然后将事件驱动延伸到update Sun Direction 方法上。理论上,我们应该是完成了昼夜变化。
11 迫不及待试过的同学应该发现,天空还是动不了。因为我们需要将 Light Source的移动性更改为可移动的。(这样很烧资源),回到游戏界面。 - 设置[Light Source]->[Light]->[Cast Static Shadows]取消勾选项
找到[Cast Static Shadows]选项并取消勾选项 - 现在,太阳已经可以开始移动啦!但是,速度是不是有点慢呢? 我们可以改变speed的值使其加快速度,打开蓝图界面,选择 sunSpeed 改变默认值即可。
- 运行试试效果。
运行后发现场景中的物体,物体表面是有灯光效果的,但是物体下面没有阴影显示。需要将物体阴影设置动态
1、选中场景中的物体,如椅子
2、[Details]->[Lighting]选项中
将取消[Cast Static Shadow]勾选
将[Cast Inset Shadow]勾选
3、需要重新烘焙(菜单Build)
运行后当阳光转动后,物体的阴影也跟着阳光移动
还有一点需要说明一下
如果 UE4开了低画质后,就不在渲染地面阴影了。