在虚幻引擎中,如果我们想要实现一个简单的电梯,实现电梯的缓慢上升与缓慢下降,通常会想到用时间轴来制作。
首先先创建本次案例的蓝图,保持简洁用最基础的Actor即可:

命名创建的蓝图为电梯,然后打开蓝图为其添加一个平面组件:

初步的打算是,当玩家的鼠标点击电梯时,电梯向上移动。因此创建出的平面组件需要响应点击事件:

为了制作移动动画,新建一个时间轴:

打开时间轴,将时间轴的长度改为1秒,并添加一条浮点曲线,命名为混合。这个曲线只需要两个关键帧,在第0秒也就是开始时为0,在第1秒也就是结束时为1。如下:

这些准备工作完成后,便可以着手具体的位置变化功能的制作了。主要的逻辑是设置平面组件的相对位置:

创建一个向量插值节点,这个节点的具体含义是根据Alpha来选择具体的位置(数学上可称之为向量),Alpha为0时输出A位置,Alpha为1时输出B位置,介于0~1之间会进行过渡,比如Alpha为0.5时将正好处于A与B的中点。这里保持A不变,将B的z轴数值设置为450。

此时与时间轴做如下连接,当时间轴播放时,便可以根据时间轴的混合曲线输出的值在A位置与B位置缓慢过度:

想要实现场景中的物体可以点击,需要对玩家控制器做一些设置,在游戏开始时显示鼠标光标并启用点击事件,具体蓝图如下:

然后当玩家点击电梯时,播放这个时间轴即可:

效果如下:

如果希望电梯可以向下移动,只需添加一个flip flop节点,这个节点的含义是第一次执行,执行A;第二次执行,执行B;下一次执行时又会执行A,在A与B之间来回跳变。同时还需要时间轴的快退节点,由于谜之翻译可能难以直接知晓含义,其实这个节点具体作用是倒着播放时间轴,在本例中正好可以用来实现电梯下降:

效果如下(可以看到电梯又返回到地面):

以上皆为一般思路,事实上对于这样的移动组件动画,官方早已造好了轮子,封装好了现成的节点供用户使用。这个节点便是今天的真正主角,将组件移至:

只需要指定具体的组件、目标位置和移动所需时间(即Over Time引脚),便可以轻松的实现移动动画,同时这个节点甚至实现了缓入缓出效果,勾选Ease Out便有缓出效果,同理勾选Ease In会有缓入效果。
删除先前蓝图中的逻辑,只保留如下节点:

此时添加两个将组件移至节点即可,注意指定目标相对位置:

这同样实现了一个简单的电梯。如果希望玩家站立到电梯上,电梯自动运行,只需添加碰撞体与相应的检测重叠事件即可,扩展起来十分简单。



暂无关于此日志的评论。