继续上半周的工作。在不熟悉Montage动画中各种方法的情况下,最开始的想法是,创建一个Time变量,记录从开始播放到当前播放的时间,重新播放时,将Montage动画在刚才记录的位置进行播放。

先做暂停的部分,这个部分一点单击右键,就会发现有一个方法叫做:Montage Pause。这个方法字面意思就很明白了。暂停Montage。(这里有一个小插曲,我最开始选的是Montage Stop,这个方法虽然可以停止正在播放的动画,但是也会会造成动画回复到起始状态,不能正确的显示当前位置。)

(个人)VR实时交互的太极拳学习系统创新实训第三周(2)

(个人)VR实时交互的太极拳学习系统创新实训第三周(2)

接着先一次的时候那个Play的判断布尔值,如果play为假的时候那么就进行这个方法:

(个人)VR实时交互的太极拳学习系统创新实训第三周(2)

通过查找,我找到了一个叫做Montage Play的方法:可以看到在return value type的选项中,可以选择Duration选项,可以看到这个选项的意思是(个人)VR实时交互的太极拳学习系统创新实训第三周(2) 也就是montage播放的长度。将这个值赋给Time,之后可以看到输出值里面有个In Time To Start Montage At。这个接口就是决定了接下来会在哪个位置播放动画。

(个人)VR实时交互的太极拳学习系统创新实训第三周(2)

在之后的预览发现,Time的值一直是一个定值,无法改变,这怎么办呢。之后就想到了设置一个定时器:可以时刻获取从montage开始到点击暂停之间的时间。之后两个时间一减,就可以得到已经播放的时间。

(个人)VR实时交互的太极拳学习系统创新实训第三周(2)

(个人)VR实时交互的太极拳学习系统创新实训第三周(2)

使用这种方法之后,发现在使用1倍速播放时,一切都是正常的,但是在使用其他倍速的时候都会出现问题,因次还需要在时间节点上乘上需要的倍速的系数,这样就增加了运算量。

之后通过自己的尝试,发现了原来UE4里面自带了一个方法Montage Resumes,让我们看一下这个方法的解释:Resumes a paused  Animation Montage ,这个方法就可以直接得到当前关卡中被暂停的Montage动画,然后将它**,这样动作还是从暂停的地方开始播放。

(个人)VR实时交互的太极拳学习系统创新实训第三周(2)

全部蓝图:

(个人)VR实时交互的太极拳学习系统创新实训第三周(2)

接下来让我们看一下效果:

倍速

(个人)VR实时交互的太极拳学习系统创新实训第三周(2)

暂停功能

(个人)VR实时交互的太极拳学习系统创新实训第三周(2)

再次开始

(个人)VR实时交互的太极拳学习系统创新实训第三周(2)

后退

(个人)VR实时交互的太极拳学习系统创新实训第三周(2)


接下来,让我们设置一下相机视角的转动,这样可以使用户更好地体验。设置相机的旋转为局部坐标系下的。通过A和D键可以让相机分别向左右旋转。

(个人)VR实时交互的太极拳学习系统创新实训第三周(2)

效果:

(个人)VR实时交互的太极拳学习系统创新实训第三周(2)

(个人)VR实时交互的太极拳学习系统创新实训第三周(2)


以上就是本周完成的观看模式的开发。

相关文章:

  • 2021-11-25
  • 2021-12-18
  • 2022-01-12
  • 2021-08-26
  • 2021-08-03
  • 2021-05-31
  • 2021-04-30
  • 2021-08-27
猜你喜欢
  • 2021-04-25
  • 2022-01-05
  • 2021-12-14
  • 2021-11-08
  • 2021-06-07
  • 2021-11-25
  • 2021-09-15
相关资源
相似解决方案