cocos2d-x 3.17.2 升级spine到最新4.1稳定版

cocos2d-x 3.17.2 升级spine到最新4.1稳定版

前言:由于cocos2d-x 3.17.2 只支持spine 3.8 以下版本,美术同事想使用性能更好、效率更高的spine版本,所以花时间升级了一下cocos2d-x 3.17.2的spine版本

备注:

  • spine的数据是不向下兼容的,比如:美术使用spine3.7,项目里也必须加入spine runtimes 对应的版本。即使项目接入的spine runtimes 版本是4.1 也无法正常播放spine3.7导出的动画数据.。升级之前想清楚,否则项目旧的spine动画资源无法正常播放。
  • spine runtime 官网

正文

一、代码调整

  • 1.1 从spine runtime 官网clone 项目并切到4.1分支。如图所示:spine 最新的稳定版本是4.1 image
  • 1.2 移除掉项目目录frameworks\cocos2d-x\cocos\editor-support\spine下的所有相关spine文件,并将D:\projects\spine-runtimes\spine-cpp\spine-cppD:\projects\spine-runtimes\spine-cocos2dx\spine-cocos2dx\src\spine下的文件全部拷贝到项目刚刚的目录。
    • 复制spine-cocosedx相关文件到项目里image
    • 复制 spine-cpp相关文件到项目里
      image
  • 1.3 使用cocos2d-x自带的lua bindings工具生成新的lua_cocos2dx_spine_auto.hpplua_cocos2dx_spine_auto.cpp。工具目录frameworks\cocos2d-x\tools。不懂lua绑定流程的在社区自己找找,有很多相关指导文章。文末附件包含了绑定好的文件。
  • 1.4 由于spine4.1和spine3.7差别很大,新增了很多接口,所以lua_cocos2dx_spine_manual.cpp也得修改一下。具体也可以搜索一下:怎样手动绑定lua接口。文末附件包含了绑定好的文件。

二、工程调整

  • 2.1 windows端

  • libSpine项目重新导入spine文件,如图所示:image

  • libluacocos2d项目导入新增的lua_spSkeletonData.cpplua_spSkeletonData.hppimage

  • lua_module_register.cpp里添加新增的register_spSkeletonData_manual(L),image
    点击项目重新生成。

  • 2.2 android 端
    我这边是ndk-build,按照格式修改下面的文件(建议删除原来的文件列表,重新手动添加)

    • frameworks\cocos2d-x\cocos\editor-support\spineAndroid.mk
    • frameworks\cocos2d-x\cocos\Android.mk
    • frameworks\cocos2d-x\cocos\scripting\lua-bindings\proj.androidAndroid.mk
  • 2.3 ios 端
    大体和Windows端一样,移除spine原文件后重新导入就可以了

三、spine4.1简介

  • 创建animation接口说明
    spine 4.1 使用上并没有太大区别。使用有三种接口:
    SkeletonAnimation.createWithJsonFile 普通的通过*json生成
    SkeletonAnimation.createWithBinaryFile 新增的二进制数据格式,貌似说性能提升不少
    SkeletonAnimation.createWithData 通过数据生成,这个数据可以重复使用。
  • 新增 ANIMATION_INTERRUPT 和 ANIMATION_DISPOSE 两种事件类型
sp.EventType =
{
    ANIMATION_START = 0,
    ANIMATION_INTERRUPT = 1,
    ANIMATION_END = 2,
    ANIMATION_COMPLETE = 3,
    ANIMATION_DISPOSE = 4,
    ANIMATION_EVENT = 5,
}

附件

2赞

可以的,老哥辛苦了

3.x能升级吗

cocos2djs 钉子户顶一下

1赞

原理都是一样的,可以升级

creator好升级吗

没研究过哦,creator看帖子有人处理过,你可以找找

Oh! Jack! I find you.

哦,大哥啊!!!想念你怼策划的第***天 :rofl:

点赞,点赞,点赞

有没遇到过同样的Spine文件,在unity上显示的顶点数和SpineEditor的一样,但是Cocos2dx上顶点数是2倍多。

大佬,升级成功了嘛?