ndee85 / coa_tools

COA Tools is a 2D Animation Suite for blender. It offers a 2D cutout animation workflow similar to programs like spine or spriter.
GNU General Public License v3.0
900 stars 139 forks source link

Documentation of the export format #66

Open pfirsich opened 7 years ago

pfirsich commented 7 years ago

It looks like in the new version of coa tools there is only a button for the DragonBones export. I really like the change, but I feel a little bit lost, with the documentation that I found. Am I correct that this: https://github.com/ndee85/coa_tools/issues/26#issuecomment-247808342 - i.e. a translation of a commented chinese example file - is the only documentation available?

I would really like to implement a löve runtime. I don't have much experience with skeletal animation what so ever, so even the terminology is sometimes confusing, but I have a solid grasp on linear algebra and programming in general.

Could you maybe provide a more thoroughly and natively in english documented example file? And maybe some actual sample files that contain animations and use most of the format in some way (not like the stip sample, which doesn't even seem to be a DragonBones file)?

sh-dave commented 7 years ago

You can enable the JSON exporter in File -> User Preferences -> Add-ons -> Cutout Animation Tools -> Experimental Json export. Then you can export 'Sample Files/stip.blend' and should have a good base to work with. The provided stip.json is only for an inital import into blender.

I do agree some documentation on the format would be nice though.

rosshadden commented 7 years ago

@pfirsich When you make the repo, kindly paste the link here. I'm interested in the löve runtime, and in helping out with it, too.

pfirsich commented 7 years ago

@sh-dave Thanks a lot for these tips! They really helped out a lot!

@rosshadden I actually got it to work mostly: Here are some gyfs: https://gfycat.com/DecentJovialDuck https://gfycat.com/FriendlyWatchfulCicada

As you can see there is still a bug with stip's head. I really don't know what this is about, but all of my animations work, so someone else can fix it, if they want :D. I'm tyding up the code right now and making a library out of it. The love component will be optional, so any Lua based project could use it. But that will take some more days again. Maybe even more, since I have an exam coming up. I also plan to tidy up my notes on the format too, so people developing other runtimes have to struggle a little less.

blurymind commented 7 years ago

@ndee85 Perhaps it will be good for coa-tool's exposure if you make a list of supported game engines that it can export to via dragonbones or it's own json format atm, linking to the runtimes!

:)

That would also help developers study runtimes and port them over.

Apart of the love2d one that is discussed here, there is a big number of runtimes for different game engines that are officially supported by the dragonbones dev team: https://github.com/DragonBones

cocos2d and cocos creator also have built in dragonbones support - so no need to install runtimes there to use exported from coa-tools animation data.

There is no mention of dragonbones, supported engines/runtimes that coa tools can do now on this repository's index page.

As a result, many visitors might think that coa-tools only supports exporting to godot and does not support exporting 2d meshes

@pfirsich Looking forward to seeing a love2d runtime for dragonbones. Well done! :) Perhaps any remaining bugs can be smoothed out after you release it on gihub?

pfirsich commented 7 years ago

There are now way less vague and more specific cases of export behaviour I don't understand or I think are just wrong. Should I open a separate issue for each or just one?

pfirsich commented 7 years ago

Passed the exam and work is resuming. I hope to have a repo online with it by the end of the weekend.

blurymind commented 7 years ago

@pfirsich looking forward to it! :D

pfirsich commented 7 years ago

Here it is: https://github.com/pfirsich/andross

If you have a look at the readme, it is implemented in a way, that you can plug in different backends, so implementing runtimes for other Lua-based engines should be easier now (I hope).

I'm really not very familiar with skeletal animation. I've looked a lot at the Spine documentation and I hope I used all the terminology and understood the concepts right. If not, please tell me/correct it (contribute)! If you know ways to improve this and explain it to me, please do so! Also I feel like the high level animation API is just too bothersome most of the time (see the example). What better way to do it is there?

Currently I have not yet implemented skinning, because I don't need it. If you want to, please do so! Otherwise I think it is fairly usuable already, apart from the problems mentioned in #69 . You can have a look at the todo.txt too.

I hope the "documentation" e.g. the examples are enough, if not, tell me what isn't clear! In general, I think, you still have to look at the code to use all of the library :/ Any recommendations on where/how I should write the docs?

pfirsich commented 7 years ago

I take the part about the high level api being bothersome back. I'm putting animations into my game now and it's actually really easy and doesn't even have many weird edge cases. If it's still unconventional or something, tell me. But I really think it's quite usable.

pfirsich commented 7 years ago

I just noticed, that I broke an example yesterday! Sorry! Now it should work again. If you need any more docs or something, tell me.

blurymind commented 6 years ago

some good news It looks like somebody has created a dragonbones runtime via a Godot module for Godot 2: https://github.com/sanja-sa/gddragonbones

The goal now would be to get it ported to Godot 3 or even better to create a gdnative addon that would elliminate the need to recompile godot and it's export templates

Many thanks to sanja-sa!!