【UE4】蓝图实现 昼夜交替

准备工作

  1. 打开UE4的项目选择界面 
    这里写图片描述
  2. 新建一个项目,选择蓝图下的空白项目并且具有初学者内容,这样可以方便快速的搭建我们所需要的场景。保存路径最好不要放在C盘,名称尽量使用英文! 
    这里写图片描述
  3. 打开后,选择关卡蓝图,进入蓝图界面。 
    这里写图片描述
  4. 进入蓝图界面后,我们需要思考一下问题。 
    1. 什么的移动能够改变太阳的移动?
    2. 怎么使它移动?

过程

  1. 太阳的移动是随着太阳光源的移动而移动,所以我们需要先将太阳光拖入到蓝图界面来,先回到游戏界面,然后选择Light Source并拖动它。 
    这里写图片描述
  2. 拖动进来后,我们需要用某种方法改变它的值! 
    这里写图片描述
  3. 由上图可见 ,改变Light Source的Y轴就可以使灯光移动,我们添加一个方法 AddActorLocalRotation 增加目标的角度,将 Light Source连接到目标上。 
    这里写图片描述
  4. 我们需要将 AddActorLocalRotation 的Delta Rotation属性提出来方便我们赋予它值,添加一个make Rotator。 
    这里写图片描述
  5. 然后,我们需要改变其中的Y值,我们使用累加来增加Y的角度,使用float+float。 
    这里写图片描述
  6. 该节点左侧的值上面的是触发该节点的事件驱动,下面为每次运行时需要加的值,右侧为目标Y的值,默认累加1.000000。现在,我们添加一个变量来控制每次运动的距离,也就是太阳运动的速度。该变量的类型为浮点型,也就是float。 
    这里写图片描述
  7. 拖进蓝图,选择获得,连接到下面的值后。添加一个事件驱动 事件Tick。它是游戏中每一帧运行所触发的事件。 
    这里写图片描述
  8. 目前蓝图的意思是,每次运行时增加目标的Y值。但是仅仅是一个数值而已,事件驱动并没有连接到该事件上,所以没有赋值给Light Source。现在,我们连接一下。 
    这里写图片描述
  9. 连接后,我们已经将角度赋给了目标,但是由于光照的特殊性,我们不仅仅只是改变角度就能改变场景中的光照,所以我们还需要在这之后更新一遍天空的方向。现在,我们将天空球拖入到蓝图。 
    这里写图片描述
  10. 我们给这个节点添加方法 update Sun Direction 将节点连接到目标,然后将事件驱动延伸到update Sun Direction 方法上。理论上,我们应该是完成了昼夜变化。 
    这里写图片描述
    11 迫不及待试过的同学应该发现,天空还是动不了。因为我们需要将 Light Source的移动性更改为可移动的。(这样很烧资源),回到游戏界面。 
    这里写图片描述
  11. 设置[Light Source]->[Light]->[Cast Static Shadows]取消勾选项
    找到[Cast Static Shadows]选项并取消勾选项



  12. 现在,太阳已经可以开始移动啦!但是,速度是不是有点慢呢? 我们可以改变speed的值使其加快速度,打开蓝图界面,选择 sunSpeed 改变默认值即可。 
    这里写图片描述
  13. 运行试试效果。
    运行后发现场景中的物体,物体表面是有灯光效果的,但是物体下面没有阴影显示。需要将物体阴影设置动态
    1、选中场景中的物体,如椅子
    2、[Details]->[Lighting]选项中
    将取消[Cast Static Shadow]勾选
    将[Cast Inset Shadow]勾选

    3、需要重新烘焙(菜单Build)
    运行后当阳光转动后,物体的阴影也跟着阳光移动

    还有一点需要说明一下
    如果 UE4开了低画质后,就不在渲染地面阴影了。


猜你喜欢

转载自blog.csdn.net/zhangmei126/article/details/80705773