UE学习篇ContentExample解读------Blueprints Advanced-下-批次阅览

时间:2024-10-06 07:44:02

2.1 Timeline animation

时间线动画

在这里插入图片描述

**翻译:**一个使用使用时间线制作针对Static Mesh 组件的动画,它通过事件跟踪一个具体的时间点,来一个生成发射器(特效)。

蓝图分析:

在这里插入图片描述

  • 组件结构
    在这里插入图片描述

    只有一个根组件,带了一个求的静态网格组件

  • 参数介绍

  • 构造脚本

  • 事件图表
    在这里插入图片描述

    我们发现,只有一个时间线名为Bounce的节点,甚至没有Event BeginPlay,这是怎么回事呢?其实时间线里面有一些选项,我们双击来看一下:
    在这里插入图片描述

    我们观察蓝色选中的按钮,第一个选中的就是循环播放,第二个是自动播放,所以就是为什么他并没有连接执行节点,也能够执行的原因!

    我们在观察一下,所谓的时间线,就是一个曲线,如上,上面有两个曲线,一个叫:Impact的事件轨道、一个Movement的浮点数轨道!

(1)Impact的事件轨道

在轨道中,我们发现差不多在1.5s的样子,有一个白点,这个触发事件的时机,对应到事件图标,就是Impact的执行节点执行逻辑,如下:

在这里插入图片描述

他的逻辑就是在位置处生成一个Emitter,也就是所谓的一个特效

(2)Movement的浮点数轨道

我们观察他,他分两段:0-1.45s左右,值逐渐从1.0降低到0.0,然后从1.55-3s左右,值又从0.0恢复到1.0,这个纵坐标的值对应Movement的输出节点,对应一下逻辑!

在这里插入图片描述

(3)看下第三个轨道,Scale的浮点数轨道

在这里插入图片描述

这个听名字就知道,是控制这个球的缩放因子,如下图对应逻辑所示:

在这里插入图片描述

**综上:**通过时间点,控制球的位置和缩放,并且在碰地的那一刻触发一个特效,从而模拟一个动画的效果

关键概念:

  • Time Line
  • 轨道
  • Spawn Emitter

结果展示:

在这里插入图片描述

2.2 Actor tracking

Actor跟随

在这里插入图片描述

翻译: 事件图表中,当玩家到达一定范围内,它会使得聚光灯转向玩家!

蓝图分析:
在这里插入图片描述

  • 组件结构
    在这里插入图片描述

    关于这个灯的介绍,请参考的1.4

  • 参数介绍
    在这里插入图片描述

    重点关注:Delta seconds、Player in range、Detection range

    • Delta seconds 这个就是Tick事件每次传的帧间隔
    • Player in range 表明玩家是否在范围内
    • Detection range 检测范围,默认是1000
  • 构造脚本
    类似,请参考<BluePrints Advanced-上>!

  • 事件图表

    在这里插入图片描述

    因为很大,咱们分块进行讲解:

    (1)整个逻辑都是处在Tick事件中的,咱们看第一个判断玩家范围
    在这里插入图片描述

    这边的逻辑主要包括:判断自己和玩家的距离是否<=检测范围,并进行设置Player Range变量,同时也更新Delta Seconds变量!

    (2)当我们玩家处于范围内之后,他会计算灯头和玩家的旋转,并且利用RInterp To蓝图节点,进行平滑插值旋转设置,如下:

在这里插入图片描述

继续看RInterp To节点的另一个Target输入值的获取逻辑:

在这里插入图片描述

这一块主要关注Find Look at Rotation这个节点,他用于计算自己的正方向到某个方向的Rotator旋转结构,正常来说就是指自己的X轴旋转到什么地方!同时根据玩家是否在范围内,决定是使用默认的角度,还是朝向玩家的角度,从而Make Rotator!

(3)最后一块就是就是当玩家处于范围内,通过时间线,柔和的调节灯光属性和材质
在这里插入图片描述

关键概念:

  • Look At Rotation
  • RInterp To

2.3 Button Trigger using a blueprint interface

这节跳过,因为比较简单,不重复赘述蓝图接口的运用了,有需要的参考的3.1

2.4 Opening door with trigger

在这里插入图片描述

翻译: 一个使用事件线开关门的案例。门移动的方向取决于玩家在哪边!

蓝图分析:

在这里插入图片描述

  • 组件结构
    在这里插入图片描述

    根组件是门框静态网格体组件,下面有两个子组件:触发器和门的静态网格体

  • 参数介绍
    在这里插入图片描述

    只有一个参数,开的方向是正还是反!

  • 构造脚本

  • 事件图表
    在这里插入图片描述

    逻辑基本上就两块:盒子重叠时,离开盒子时。咱们就分析一个就可以了,另一个就是相反。咱们看看进入盒子,做了什么逻辑:
    (1)我们先看看播放时间线动画之前,做了什么
    在这里插入图片描述

    这里有一个新人可能比较迷的操作:Unrotate Vector,逆旋转,它将玩家指向门的向量根据Actor的旋转进行逆旋转,什么意思呢?

    其实就是将玩家指向门的向量从世界空间变换到局部空间,然后根据向量的X,来判断人是站在门的哪一边,从而决定门是正转还是反转90°!

    (2)开门的逻辑

    在这里插入图片描述

    我们看到就是通过Open Direction这个布尔变量,决定是90°的Yaw还是-90°的Yaw,然后进行设置到这个旋转。这个旋转的插值的逻辑其实是有问题的,如果门在场景中换个角度摆放,可能就有问题了,大家有看出来的小伙伴记得留言哦!

关键概念:

  • 逆变换

结果展示:

在这里插入图片描述

2.5 Child Blueprints

这一节是关于子蓝图的,也不重复赘述,之前的的1.3小节已经提到过了!