本文是 quick游戏中DragonBones和CCArmature 选择的讨论 的补充材料。
希望这篇文章能终结一些疑问。
[hr]
原文地址:DragonBones 官方C++版本 for cocos2d-x
DragonBonesCPP for cocos2d-x
[size=5]DragonBones 和 CCArmature[/size]
DragonBones 是一套骨骼动画工具集,最早使用 Flash 和 ActionScript 3.0 语言开发,主要在 Flash 游戏中使用,目前在页游和手游项目中使用很广泛。
DragonBones 目前包含下面这些内容:
[list=1][li]基于 Flash IDE 中时间轴动画的编辑工具(美术GGMM的最爱);[/li][li]基于 Flash IDE 插件的骨骼动画设计面板 DesignPanel;[/li][li]基于 ActionScript 3.0 的骨骼动画解析库和渲染库;[/li][li]基于 Javascript 的骨骼动画解析库和渲染库;[/li][li]基于 Unity3D C# 脚本的骨骼动画解析库和渲染库;[/li][li]基于 LoomScript 的骨骼动画解析库和渲染库。[/li][/list]详细的入门介绍可以看这里:DragonBones快速入门指南 。
cocos2d-x 中自带的 CCArmature 移植自 DragonBones 2.1 版本,我对 DragonBones Design Panel进行了修改 cocos2d-x专用的DragonBones2.2 ,使其直接输出让 CCArmature 支持的资源格式。
[size=5]CCArmature 的问题[/size]
CCArmature 的移植并不完善,主要有下面这些问题:
[list=1][li]不支持逐帧动画;[/li][li]对嵌套骨骼支持不力;[/li][li]没有实现关键帧事件;[/li][li]不支持将某个Bone替换成逐帧动画;[/li][li]完全针对 cocos2d-x 优化,与DragonBones的API不兼容;[/li][li]cocos2d-x中CCArmature展示挤压和变形动画的问题 ;[/li][li]等等等…… [/li][/list]另外,为了支持 cocostudio 的特性,CCArmature 进行了许多不兼容 DragonBones 的修改,导致新版本的 CCArmature 对 DragonBones Design Panel 生成的资源格式的支持也不好了。详情见:在cocos2d-x中使用DragonBones实现骨骼动画 。
[size=5]DragonBonesCPP[/size]
正是因为这些问题,DragonBones 开发组 使用 C++ 移植了 DragonBones 的解析库和动画渲染库,命名为 DragonBonesCPP 。它的特点如下:
[list=1][li]这套库完全与 ActionScript 3 库保持一致,可以实现 ActionScript 3 库的所有功能;[/li][li]使用 DragonBones 官方的 Design Panel,不再需要使用专门针对cocos2d-x的修改版,可保持数据格式与最新版兼容;[/li][li]由于支持官方 DragonBones Design Panel 输出的格式,因此也可以支持 Spine 的格式;[/li][li]支持多套渲染引擎,不再仅限于cocos2d-x。[/li][/list]目前,DragonBonesCPP 首先完成了对 cocos2d-x 引擎的支持。下面是一些Demo:
[list][li]DragonBonesCPP for cocos2d-x 2.x[/li][li]DragonBonesCPP for cocos2d-x 3.x[/li][li]DragonBonesCPP for quick-cocos2d-x[/li][/list]已知的问题:
[list=1][li]DragonBones Design Panel 可以导出多种资源格式,但 DragonBonesCPP 仅支持 XML+PNG 格式;[/li][li]有一些内存泄露;[/li][li]没有做异步资源加载,可能会导致在加载资源时候的性能问题。[/li][/list][size=5]更进一步[/size]
DragonBones 开发组将继续更新该库,解决现有问题,并保证对 cocos2d-x 引擎的兼容。
喜欢用 Flash 编辑骨骼动画(或者讨厌用CCS编辑骨骼动画)的同学们,是时候了!