armature里有多个part,各part帧数不一样时动画错乱

主要是那些只有1帧的part,到处乱飞

我也发现了,目前在编辑器将各个帧序列补全成同样帧数,就ok了。

问题修复了,void Bone::update(float delta) 这个方法里面:
if (_dataVersion >= VERSION_COMBINED)
{
TransformHelp::nodeConcat(*_tweenData, *_boneData);
_tweenData->scaleX -= 1;
_tweenData->scaleY -= 1;
}

    _worldInfo->copy(_tweenData);

    _worldInfo->x = _tweenData->x + _position.x;
    _worldInfo->y = _tweenData->y + _position.y;
    _worldInfo->scaleX = _tweenData->scaleX * _scaleX;
    _worldInfo->scaleY = _tweenData->scaleY * _scaleY;
    _worldInfo->skewX = _tweenData->skewX + _skewX + _rotationZ_X;
    _worldInfo->skewY = _tweenData->skewY + _skewY - _rotationZ_Y;

污染了 _tweenData。 当帧数较少时,其他帧序列在更新,而这个帧序列不更新 _tweenData,所以会导致它累积 _boneData 进去。
修改后的代码如下:
_worldInfo->copy(_tweenData);
if (_dataVersion >= VERSION_COMBINED)
{
TransformHelp::nodeConcat(*_worldInfo, *_boneData);
_worldInfo->scaleX -= 1;
_worldInfo->scaleY -= 1;
}

    _worldInfo->x += _position.x;
    _worldInfo->y += _position.y;
    _worldInfo->scaleX *= _scaleX;
    _worldInfo->scaleY *= _scaleY;
    _worldInfo->skewX += _skewX + _rotationZ_X;
    _worldInfo->skewY += _skewY - _rotationZ_Y;

官方最新代码还没有修复呢,谁来提交一下。。
https://github.com/cocos2d/cocos2d-x/blob/v3/cocos/editor-support/cocostudio/CCBone.cpp

好顶赞~~解决了大BUG~