cocos2d-x专用的DragonBones2.2

我写过一篇 http://zengrong.net/post/1911.htm ,这篇文章中提到了DragonBones插件。本篇是一个补充。

插件问题
http://bbs.cocostudio.org/forum.php?mod=viewthread&tid=4699&page=1&extra=#pid7518 中提供了一个DragonBones插件,用于导出cocos2d-x可以识别的骨骼动画格式。

但是,这个插件有个问题。

在导出时,如果使用“Zip(XML和分开的PNG)”类型(事实上,对于cocos2d-x来说,只能选择这个选项),同时设置“导出缩放比”选项不为1的时候,导出的元数据文件中的坐标都没有经过缩放。

这将导致动画在播放的时候出现问题,就像这样:

其实,这个问题并不是由于修改DragonBones所形成的,而是原来的DragonBones2.0就存在这个问题。

如果你有兴趣研究的话,可以看这里 https://github.com/DragonBones/SkeletonAnimationDesignPanel/blob/v2.0/src/control/ExportDataCommand.as#L69 ,这里判断了 _exportType 值为4的情况下不缩放坐标。而“Zip(XML和分开的PNG)”就代表4。

另外,这个插件是基于2.0版本,而目前的DragonBones最新版本是2.3。当然,由于 https://github.com/DragonBones/SkeletonAnimationLibrary/wiki/Move-from-V2.2-to-V2.3 ,暂时不能使用v2.3版本进行修改。但v2.2是可以的。

如果你再次有兴趣的话,可以找到cocos2d-x负责解析骨骼动画元数据的类 extensionsCCArmatureutilsCCDataReaderHelper.cpp ,通过修改它,来支持新的格式。

DragonBone2.2 for cocos2d-x
基于上面的原因,我以DragonBones2.2版本为基础制作了这个插件,并重新打包发布。

*]插件下载:

http://zengrong.net/download/115/ (1.1 MiB, 0 hits)

*]插件下载(github):

http://zengrong.net/download/116/ (1.1 MiB, 1 hits)

*]项目源码:https://github.com/zrong/dragonbones-for-cocos2d-x

我做的工作并不多,只是花了一些时间理解了DragonBonesDesignPanel的结构。

*]这个项目包含了 https://github.com/DragonBones/SkeletonAnimationLibrary/tree/V2.2https://github.com/DragonBones/SkeletonAnimationDesignPanel/tree/V2.2 项目v2.2的内容,做了极少量的修改;
*]DesignPanel中的修改在 https://github.com/zrong/dragonbones-for-cocos2d-x/blob/master/src/control/ExportDataCommand.as#L222;
*]jsfl的修改,直接比较 https://github.com/zrong/dragonbones-for-cocos2d-x/tree/master/build/DragonBonesDesignPanel。其中 skeleton.jsfl.original 是原始文件, skeleton.jsfl.20cocos2dx 是2.0修改版提供的文件, skeketon.jsfl 是我修改的文件;
*]如何使用可以看这里: http://zengrong.net/post/1911.htm。

感谢DragonBones Team带来这样优秀的软件;
感谢DragonBones2.0修改版的作者。
希望这个项目对你们有用。

请教一个问题

用flash做的动画文件,用Dragonbones2.2导出。有的bone在一些时刻需要隐藏,导出文件里显示:

在cocos2d-x 2.1.4 or 2.1.5版本中,这些需要隐藏的bone还是显示了,并且好像是从之前的点通过补间移动到(0, 0)点

请问有人知道这个问题么,怎么解决,谢谢