Creator + Spine: 关于精确获取播放中动画边界的问题

引擎版本:2.4.3
脚本语言:Javascript
目标平台:Native(iOS + Android)


问题描述:在代码加载并播放Spine动画之后,希望能够精确获取到执行中动画的边界。


尝试方案:
1.通过cc.class生命周期中的update方法,不断的使用attachment.computeWorldVerticess方法获取和更新目标边界框组件的顶点属性。(尝试效果:边界框大小与实际动画播放范围差异大,无法精确匹配)
2.通过cc.class生命周期中的update方法,不断的使用spine私有属性_skeleton的getBounds方法获取其Rect属性。(尝试效果:边界框大小部分匹配,但仍然不精确)


期望支持:请问官方是否有有效的方法能够实现‘原生平台下精确获取到执行中动画边界’的目标?

参考一下自带的 example,新建一个 example-cases 工程,打开 assets/cases/spine/SpineCollider.fire 场景试试

是这样的,我看了示例,方法是生成挂点并添加碰撞组件嘛。然后我试了看,确实是能得到偏移量,但是例如技能释放中范围和大小的变化还是没办法准确捕获到,请问我这边应该如何更进一步的处理呢?

这个方法应该是正确的. 有算上 spine 节点本身的 transform 吗?

我是通过这个方法获取顶点,然后用bone的worldX和worldY计算的offset,这样可以达到挂点类似的效果,就是能拿到一个随动画移动的边框。但是我看动画有时候会有一个很大范围变化或者说缩放的效果,而我这边的边框大小基本是固定的。
然后我通过获取_skeleton的rect属性能获取到随动画缩放变化的一组弹性值,这样画出来边框部分时候是能匹配上动画的一个演变过程,但有时候还是不够准确,就这方面不是很明白应该要怎么继续。所以想请教一下这部分- -

这个方法在安卓上用不了,请问有替代方法吗

改用数据模型了,糟心得很