ccs1.6做的骨骼动画 cocos引擎3.1 未加帧事件则播放不了最后一帧,加帧事件最后一帧会炸开

我们项目想使用骨骼动画,现在我在试水。不试不知道,一试果然水很深啊!!!!!!

美术那边用ccs1.6做骨骼动画的,我们cocos引擎使用的是3.1

现在有个诡异的问题:
如果不加帧事件,动画播放到倒数第二帧就没了
反之,如果加了帧事件,最后一帧是可以播放到了,但是这一帧会炸开

炸开的问题参考下这个pr
https://github.com/cocos2d/cocos2d-x/pull/9037/files

参考着改,不要直接复制,这个是针对3.3RC0的fix旧版本可能有点不同

多谢回答~
改了还是不行:6:

你怎么改的= =

今天也有个人反馈说改了没用,结果是改错了

不知道是不是我改错了。。。

    _worldInfo->copy(_tweenData);
    if (_dataVersion >= VERSION_COMBINED)
    {
        //TransformHelp::nodeConcat(*_tweenData, *_boneData);
        //_tweenData->scaleX -= 1;
        //_tweenData->scaleY -= 1;
        TransformHelp::nodeConcat(*_worldInfo, *_boneData);
        _worldInfo->scaleX -= 1;
        _worldInfo->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 + _rotationX;
    _worldInfo->skewY = _tweenData->skewY + _skewY - _rotationY;*/

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

    if(_parentBone)

= = 都说让你比较着改咯。。。谁让你抄的。

后头两个宏不需要的

额,抱歉,才接触cocos2dx,很多东西不熟悉~

后面两句改成这样了:
_worldInfo->skewX = _worldInfo->skewX + _skewX + _rotationZ_X;
_worldInfo->skewY = _worldInfo->skewY + _skewY + _rotationZ_Y;

还是会炸开。。。。。

有一点想不明白,加了帧事件才会炸开,不加帧事件的话最后一帧播不出来。。。。。

我也是醉了。。。。。

顺便请教下,骨骼动画怎么调试,拜谢了~~~~

动画给我玩? 不方便可以加我Q