cocos2d-x專用的DragonBones2.2


2013-09-23更新:升級到DragonBone2.2.2 for cocos2d-x,支持導出PLIST文件。


我寫過一篇 在cocos2d-x中使用DragonBones ,這篇文章中提到了DragonBones插件。本篇是一個補充。

插件問題

在 CocoStudio官方下載頁面 中提供了一個DragonBones插件,用於導出cocos2d-x可以識別的骨骼動畫格式。

但是,這個插件有個問題。

在導出時,如果使用“Zip(XML和分開的PNG)”類型(事實上,對於cocos2d-x來說,只能選擇這個選項),同時設置“導出縮放比”選項不爲1的時候,導出的元數據文件中的座標都沒有經過縮放。

export_scale

這將導致動畫在播放的時候出現問題,就像這樣:

dragon_err

其實,這個問題並不是由於修改DragonBones所形成的,而是原來的DragonBones2.0就存在這個問題。

如果你有興趣研究的話,可以看這裏 ExportDataCommand.as ,這裏判斷了 _exportType 值爲4的情況下不縮放座標。而“Zip(XML和分開的PNG)”就代表4。

另外,這個插件是基於2.0版本,而目前的DragonBones最新版本是2.3。當然,由於 2.3的DataFormat改動太大 ,暫時不能使用v2.3版本進行修改。但v2.2是可以的。

如果你再次有興趣的話,可以找到cocos2d-x負責解析骨骼動畫元數據的類 [cocos2d-x]\extensions\CCArmature\utils\CCDataReaderHelper.cpp ,通過修改它,來支持新的格式。

DragonBone2.2.2 for cocos2d-x

基於上面的原因,我以DragonBones2.2版本爲基礎製作了這個插件,並重新打包發佈。

我做的工作並不多,只是花了一些時間理解了DragonBonesDesignPanel的結構。

  • 這個項目包含了 SkeletonAnimationLibrary 和 SkeletonAnimationDesignPanel 項目v2.2的內容,做了少量的修改;
  • jsfl的修改,直接比較 這3個文件即可。其中 skeleton.jsfl.original 是原始文件,skeleton.jsfl.20cocos2dx 是2.0修改版提供的文件, skeketon.jsfl 是我修改的文件;
  • 導出面板中,我增加了兩種導出類型 “Zip(XML and PNGs, for cocos2d-x)”、“Zip(XML+PLIST+PNG, for cocos2d-x)”;
  • export2
  • 如果選擇“Zip(XML+PLIST+PNG, for cocos2d-x)”,可以直接輸出XML、PLIST和拼合後的PNG文件,這樣就不必再使用其他工具將分離的PNG拼合了;
  • 我修改了導入代碼,現在也能在DesignPanel中導入“Zip(XML and PNGs, for cocos2d-x)”類型導出的資源;
  • 其他的修改,請直接比較源碼;
  • 如何使用可以看這裏: 在cocos2d-x中使用DragonBones

感謝 DragonBones Team 帶來這樣優秀的軟件;

感謝對 DragonBones2.0 進行修改的程序員;

希望這個項目對你們有用。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章