首先我们需要了解时间轴的基本作用是什么,如下创建一个时间轴

其中play:运行,update:在设置好的时间里每一帧就会输出一次(当前游戏每秒60帧,我设置的时间轴为3秒,那么就会输出180次),finished:当整个时间轴播放完后就会输出一次。

双击时间轴可以编辑时间轴:添加不同类型的轨道(track),设置时间长度(length)

建好轨道后如下图,横轴代表时间,竖轴代表值。随着时间的推移可以输出不同的值,我们可以再时间轴里插入不同的节点,再不同的时间输出对应的值。

当我们设置好轨道以及时间长度后回到蓝图,时间轴上会出现我们设置好的轨道(line1),此时line1是用于获取我们所设置的值的,如上图,我设置了两个节点,节点1:time:0.0,value:0.0 ;节点2:time:3.0,value:10,那么当我们使用line1获取它的值并打印,则会在3秒内输出从0到10的值。

而如果我们不获取line1的值,直接打印则是在3秒内的每一帧不断打印我们所输出的值。

如下图:

除了时间轴,我们还需要了解一个节点lerp(vector),也叫差值运算。

其中A,B是代表三维空间中的位置,Alpha则是AB之间的位置比例0到1(相当于从A变化到B),如图:

比如,我们给A的x设置为0,B的x设置为5,Alpha设置为0.5,最后打印输出的结果为2.5。

了解以上内容我们就可以做一个建议的触碰动画了。

我们先获取主角的位置赋值给lerp中的B值,再获取食物的位置赋值给A值(食物要向主角的位置移动,A向B移动),然后我们通过时间轴控制移动的时间,其中length值设置为1.5(在1.5秒内从A移动到B),设置两个节点,节点1:time:0.0,value:0.0 ;节点2:time:1.5(我们设置的时间长度最大为1.5),value:1(lerp节点中的alpha值最大为1),我们将我们设置好的时间节点line1赋值给alpha,最后我们将lerp的值输出给Set Actor Location(设置新位置),并且由update每一帧输出,这代表着,食物将在1.5秒内从原点移动到主角身上。最后当update全部输出完后,我们用finished销毁我们的食物,就可以完成一个食物飞向主角并被吃掉的简易画面了。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐