Cocos Creator Spine动画时间轴(事件时间轴,骨骼时间轴)

cocos版本:2.3.4spine版本:3.8帧同步和Spine动画同步的问题这个主要是做帧同步时,spine动画上有自定义事件抛出,且动画骨骼上绑定了伤害判定的盒子。因为动画不是逻辑帧来驱动的,所以不同客户端播放动画速度不一样,那么在相同逻辑帧时, 可能A已经播放完成,而B还在播放动画中,那么判断就会不一致。例如一个人物挥拳,伤害判定盒子在拳头上,A在逻辑帧10的时...
摘要由CSDN通过智能技术生成

cocos版本:2.3.4

spine版本:3.8

 

帧同步和Spine动画同步的问题

这个主要是做帧同步时,spine动画上有自定义事件抛出,且动画骨骼上绑定了伤害判定的盒子。

因为动画不是逻辑帧来驱动的,所以不同客户端播放动画速度不一样,那么在相同逻辑帧时, 可能A已经播放完成,而B还在播放动画中,那么判断就会不一致。

 

例如一个人物挥拳,伤害判定盒子在拳头上,A在逻辑帧10的时候,动画播放到第20帧,拳头伸出,抛出damageEvent事件,计算伤害。

而B在逻辑帧10,动画可能播放到18帧,拳头没有完全伸出,也没有抛出帧事件damageEvent。

 

而spine动画没法用逻辑帧去驱动,那么动画会卡顿。动画本身是渲染层的东西,不应该涉及到逻辑层。

 

这里尝试根据时间轴来判定逻辑,将事件和伤害判定范围划分到驱动帧上。

例如事件帧damageEvent在挥拳动画0.13秒抛出。

那么根据逻辑帧50ms一帧, damageEvent就应该是在第3个逻辑帧执行,无论动画播放到哪。在第三帧去获取拳头碰撞盒子的位置,进行逻辑判断。

这样所有客户端,都会在相同的逻辑帧,执行相同的伤害判断逻辑,有相同的碰撞范围,产生相同的结果。

 

 

 

Spine动画事件时间轴的获取

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值