我是靠谱客的博主 时尚香烟,最近开发中收集的这篇文章主要介绍cocos2dx-lua播放骨骼动画整理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、简述

cocos studio老版本导出的骨骼动画是.ExportJson,.plist,.png三个文件,较新版本支持Skeleton制作并导出csb和对应的png。cocos studio对于美工来说制作骨骼动画并不友好,一般会用其他工具,例如Dragonbones,Spine等。Dragonbones也有多个版本,导出的数据格式也有差别,对cocos2dx的支持也因各个版本有所不同,【Dragonbones导出格式】。Spine导出的数据格式也不同,而且需要收费。总之,骨骼动画的数据格式多而复杂,一开始在cocos中使用都不容易。

二、几种骨骼动画数据格式在cocos中的使用

环境:win10,cocos studio 3.10,cocos2dx-lua 3.13.1

  1. cocos studio 1.6

    格式:.ExportJson,.plist,.png

    lua中使用示例:

    local effectManage=ccs.ArmatureDataManager:getInstance() effectManage:addArmatureFileInfo("fishing/effect/dabaoza/eff_kill_dayu0.png","fishing/effect/dabaoza/eff_kill_dayu0.plist","fishing/effect/dabaoza/eff_kill_dayu.ExportJson");
    local armatureObj = ccs.Armature:create("eff_kill_dayu");
    armatureObj:setAnchorPoint(cc.p(0.5,0.5))
    armatureObj:getAnimation():playWithIndex(0);
    
  2. cocos studio 3.10 (Skeleton)

    格式:.csb,.png

    lua中使用示例:

    local node = cc.CSLoader:createNode("Skeleton.csb")
    local nodeAction = cc.CSLoader:createTimeline("Skeleton.csb")
    node:addTo(hall)
    node:runAction(nodeAction)
    nodeAction:play("animation0", false)
    
  3. dragonbones pro v5.6

    dragonbones可以导出的数据格式较多 ,龙骨自身json格式,龙骨自身二进制格式,白鹭极速,白鹭MC,spine,有些格式还有不同的版本。

    • 龙骨自身json格式:.json,.json,.png

      在cocos中无法直接使用导出的json格式,不管是ArmatureAnimation还是SkeletonAnimation都无法使用。需要集成C++,官方给出支持3.X集成的例子,https://github.com/DragonBones/DragonBonesCPP/tree/master/Cocos2DX_3.x。这个方式改动稍大,幸亏可以曲线救国。

      曲线救国方式测试:

      • 导出dragonbones json 5.5版本数据格式
        导出格式选取

      • 安装官方转换工具,https://github.com/DragonBones/Tools。

      • 将dragonbones json数据格式转为spine格式

        当前版本为 dragonbones-tools 版本为0.1.0,在导出的骨骼动画数据文件下运行 db2 -t spine,会产生spine格式数据 xx.atlas,xx.json

        该版本的工具没有产生.png文件,需要手动修改,打开xx.atlas文件,第一行有图片名称,当前图片名称为Dragon.png,对应将赋值Dragon_tex.png并命名为Dragon.png即可

        命令行转换spine格式
        atlas查看对应图片名称

      • 在cocos中运行转换后的spine格式文件

        local skeletonNode = sp.SkeletonAnimation:create("Dragon_spine.json", "Dragon_spine.atlas")
          	skeletonNode:setAnimation(0, "stand", true)
          	skeletonNode:setScale(0.5)
          	skeletonNode:setPosition(display.width/2, display.height/2)
        	gameNode:addChild(skeletonNode)
        

        gif图

    • spine格式:.atlas,.json,.png

      在dragonbones导出的spine格式数据,不管是选择2.1还是3.3,在cocos中使用SkeletonAnimation都无法播放。

      吐槽下,这个dragonbones pro也真是怪了,导出中提供了spine格式,导出却无法使用,用插件将dragonbones json格式数据转spine格式就可以,官方这顿操作也是没谁了。

      意识到dragonbones中直接导出spine不能用,而通过工具转换spine格式后却可以,立即将导出的spine格式和转换的spine格式进行对比:

      Dragon.altas(导出的)和 Dragon_spine.altas(转换的)一致,图片也一致,Dragon.json(导出的)和 Dragon_spine.json(转换的)有些许差别,除了数字的精度,json中key的格式(是否有双引号),就只有一个头标志的差别。

      在这里插入图片描述

      接着试着在导出的 Dragon.json 中加上"spine": "3.6.0",what,居然可以用,are you kidding me? 醉了醉了。

      本来想看下能不能修改Dragonbones Pro 5.6的导出插件,找了一下,没有找到,那就算了。

  4. SpineTrial

    安装后试用版无法导出,找了个demo,数据格式是.atlas,.json,.png。使用SkeletonAnimation,可以播放。

三、总结

​ 只是整理了常用的部分骨骼动画格式,其他的格式等遇到了再整理吧。

最后

以上就是时尚香烟为你收集整理的cocos2dx-lua播放骨骼动画整理的全部内容,希望文章能够帮你解决cocos2dx-lua播放骨骼动画整理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部