【已解决】Armature 的一个BUG, 骨骼乱飞 ···求解决啊,

我用的是cocos2dx3.2和cocosStudio1.4, Armature 创建的游戏角色,在播放莫个动作的时候会出现骨骼乱飞的情况,
我检查过,除了某些动作,播放的时候会出现默写骨骼显示不出来,比如一个角色其他动作是对的,但是他在行走的时候,脸部的骨骼(眼睛,眉毛)显示不出来,

还有就是骨骼乱飞的情况了。播放其他动作问题不大,尤其是在死亡这个动作,我播放设置只播放一次,(试果,如果循环让它播放就不会出现问题),就会出现Armature 骨骼乱飞的情况,
不知道有没有人遇到过,求解啊

效果如图,框里面的是整个动画的位置,但是它脸上的部件在播放死亡这个动画的过程中,全部飞走了。

圆圈里面圈的是,乱飞的脸部骨骼

都3.2的cocos2d了 还用1.4~ 直接换最新的吧, 反正cocostudio 向下兼容,并且自动升级低版本文件

已经更换最新了。还是同样的问题

把最后一帧复制一遍,也就是最后两帧紧挨着且相同。

我是上周才把项目从3.0升级到3.2的, 结果发现如果在谷歌动画最后一帧上设置事,并且你最后一关键帧如果ID是单数,有一定机会不会触发,
因为代码
Tween::updateFrameData 中
float playedTime = ((float)_rawDuration - 1) * currentPercent; //((float)_rawDuration - 1) 造成的, 比如rawDuration 是505当currentPercent == 1.0f的时候, (505 - 1)* 1.0f = 504, 永远都到不了505这一帧,

还有就是希望注意一下优化,比如Widget::onEnter(), 调用updateSizeAndPosition(), 这东西很消耗性能, 建议改到 setParent()中尽量减小不必要的性能消耗。

复制最后一帧还是一样的会飞开,还没到最后一帧就,那些要散开的元件就开始飞了

问题基本已经解决咯

请问是怎么解决的呢?

同问啊:12:

同问,求方法

解决了,CCTween.cpp里Tween:play函数里 else if (_movementBoneData->frameList.size() > 1) 换成else if (_movementBoneData->frameList.size() >= 1)

— Begin quote from ____

引用第11楼念枫雪于2014-10-22 16:22发表的 :
解决了,CCTween.cpp里Tween:play函数里 else if (_movementBoneData->frameList.size() > 1) 换成else if (_movementBoneData->frameList.size() >= 1) http://www.cocoachina.com/bbs/job.php?action=topost&tid=220321&pid=1080853

— End quote

mark一下,希望2.0版本能修改

马克 马克