Cocos Creator Spine动画产生位移时,动画位置获取问题 (root的使用)
版本:2.3.4 参考: CSDN Unity-Spine动画位移问题 CNBolg 使用Spine动画制作动作游戏 网上搜了一下Spine动画位置的解决方案,参考了两篇文章吧。在制作spine动作时,不可避免的动画会产生位置,动画师不能一直将动画固定在原地。 比如跑步动画,这个可以原地踏步,动画做在原地就行了。 但是做出攻击,或者一些炫酷动作时,难免会产生位移。这个位移可能是曲线的,非线性运动,直接让程序或者策划去微调出和动画师制作的一样效果有些困难。 例如如下攻击动画。人物位置移动了,但是动画位置还在原地呢。这样做碰撞检测或者其他位置相关判断的时候,还在检测原地的位置,这显然是不合适的。 这个解决方案就是让动画师制作动画时,让根骨骼root跟随动画一起移动。 下图root根骨骼就是人物脚下那个十字图标 在cocos中获取root的位置。在做位置相关判断时,加上root的位置就行了。 start() { let sk:sp.Skeleton = this.hero.getComponent(sp.Skeleton); sk.setAnimation(0,"attack1_1",true); let root = sk.findBone("root"); let rootX = root.x; let rootY = root.y; console.log("root位置:"