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

本文详细介绍了在Unreal Engine 4 (UE4)中实现动画暂停与恢复的具体步骤及遇到的问题。作者最初考虑使用自定义时间变量来记录动画播放进度,但最终选择了内置的MontagePause和MontageResumes方法。这些方法简化了流程,使得能够精确地从暂停的位置继续播放动画。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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



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


通过查找,我找到了一个叫做Montage Play的方法:可以看到在return value type的选项中,可以选择Duration选项,可以看到这个选项的意思是 也就是montage播放的长度。将这个值赋给Time,之后可以看到输出值里面有个In Time To Start Montage At。这个接口就是决定了接下来会在哪个位置播放动画。


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



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

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


全部蓝图:


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

倍速


暂停功能


再次开始


后退



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


效果:




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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值