因为网上关于利用UE4 设计控制3D动画播放的方法没有教程,因此,制作过程非常艰难,基本处于一边尝试一边制作的状态。也希望通过这篇博客,填补一下这个区域的空白。
主要涉及动画蓝图的制作
1.确定全部的操作,包括:开始,暂停,倍速,后退操作:
2.在你想要控制的模型的骨架右键--创建--动画蓝图:
3.打开这个动画蓝图,可以发现有两个界面,分别是动画图表和事件图表,我们的主要操作在事件图表上打开事件图表。可以发现有两个默认的方法,分别为 blueprint Update Animation,和blueprint Begin Play ,前者表示蓝图在动画播放的每帧都进行更新,后者表示在开始的时候执行。在这里我们主要使用Blueprint Update Animation 事件
4.我们想一下都需要设置什么变量,控制速率的时候需要一个浮点类型的变量show_speed,控制暂停和开始需要一个布尔型变量play,h获取当前播放时间的浮点类型time了,因为将模型放在了一个Pawn上,因此我在pawn的蓝图中创建了这些变量(右边的眼睛表示这个变量是不是public类型):
5.来制作动画播放速率的控制按钮,我这里设定了播放速率在0.5-4之间,当达到4之后会返回为0.5,每点击一次,播放速率增加0.5,为“倍速”按钮添加Onclicked 事件:
因为,show_speed在teacherDemoCharater的蓝图中,因此需要先进行类型转换,之后访问TeacherDemoCharacter蓝图中的变量或者方法。
6.让我们回到动画蓝图中,在这里单击右键,可以看到很多montage的方法,在这中间有一个方法的名字叫做Montage Set Play Rate,有三个输入参数,分别是目标,需要播放的Montage,以及播放的速率,之后,我们获得刚才设置的播放速率接在上面就可以了。
ps:不要忘记在蓝图进行Montage动画的播放:
7.之后让我们看一下效果,为了能够实时看出来效果,将show_speed进行了实时地输出,这也是 一个小技巧,可以让你知道蓝图什么地方出错了,或者不执行了。
8.现在进行相似的后退操作,在后退的button上绑定Onclick事件,这个就是需要将播放速率变成负的就可以了。
9.但是在这个时候就需要在倍速的响应时间那里加上一个判断,因为可以知道,一般进行后退之后,开始播放就会使播放速率变成1 ,因此要设置一下:
10.在倍速的窗口也要进行判断一下。
这就是对Montage动画速率控制的部分的一些讲解。