-
-
Notifications
You must be signed in to change notification settings - Fork 140
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Idea: One open standard Json animation file specification to rule them all #26
Comments
also posted this at godot tracker: Lets see if it gets some attention. |
Dragon bones json file format seems to be a good start. They are open source, have runtimes for: java- https://github.com/DragonBones/DragonBonesJS/blob/master/LICENSE dragonbones also supports mesh deformation. So if you make coa_tools export a dragonbones type json file, you will be able to use coa tools with all these game engines and coa tools adoption will be much faster! @ndee85 this is a much better solution than using spine, because the runtimes dont require you to buy a spine license. Here are some example dragonbones files: Here is the dragonbones skeleton data format specification: |
Now to update Haxe support: SlavaRa/haxelib-dragonbones#11 |
@blurymind I see there is 3.0 and 4.5, with different specs. Apparently not everyone would say 4.5 is best. Which one are you proposing to use here? Also the page you linked to only has a V2.4 for the skeleton, I guess that's separate from the sprite DB format? |
the newest one of course. They just added meshes and some very useful other But you need to notice - the format specification is established and
They both export to the same json format, so that does not affect this The question confused me. On Tue, Apr 19, 2016 at 7:46 PM, IBwWG [email protected] wrote:
|
Ah, thanks for clearing that up. So they already had meshes in the format spec, planning ahead, and then the engine implemented them? It's just that the docs around the DB site and their GitHub readmes and wikis seem variously out of date, so it's hard to follow what's what. I was asking which format to use. In the forum thread I linked to, it sounded like there was a 3.0 format and a 4.x format, and that at least one person was arguing the 3.0 format worked better (in the sense that the runtime was more performant, so it's a bit hard to separate the format from the runtime in that dialog?) In addition, the format spec linked to is 2.x. So, is it true the 4.5 editor uses the 2.4 format? I.e. my question doesn't make sense, because there is only the one format spec, v2.4? |
Their standalone editor can even import spine animation json files and As a whole this seems to be much more mature than spriter's format and its
|
Maybe so, but I'm still a bit confused on formats. If 2.4 is the latest format, which version of the format was DB 3.0 putting out? SlavaRa/haxelib-dragonbones#12 |
They recently added mesh binding to bones and free form deformation. That makes their json file spec fit perfect with coa tools and what it can do but can not export atm. Please download the unity runtime in order to try the latest features of dragonbones. There are now example files for ffd and skinned mesh binding. Since there is no license like spine2d - we can use the dragonbones json file structure in coa tools export and thus use coa tools to produce animation that can be loaded by the dragonbones runtime- on unity and the other game engines that it has a runtime for |
There's also this for OpenFL, only in beta and for DB 2.2, but still: https://github.com/jalbanesi/openfl-dragonbones |
Just taking a look at Dragonbones. Wow.. that looks pretty advanced!! Maybe this could really be an alternative in the future! |
@ndee85 I can only hope to see Godot pick it up as a standard json/runtime. https://www.youtube.com/watch?v=xUfosRr9fY4 The advantage of picking up the dragonbones json specification over making a new one from scratch is:
Do you think we should advocate the bragonbones json data structure to godot devs or let them make a new one? |
@blurymind |
@blurymind |
@ndee85 sorry for the delay, I will provide good example files soon. :) The lack of formatting on the ones you saw is the missing new line. This is not the case for all the ones that are available - they are just scattered in the different runtime repositories along with the good ones And yes it supports spritesheets - I assume you mean a character atlas that contains multiple frames of a body part |
they updated their website to reflect the features |
The dragonbones json data format [note: although the comment lines are in Chinese, google chrome's "translate this page" seems to make a good job of turning it into English] |
@radishdalek thank you - the translation is very good actually, I hope it allows @ndee85 to make an exporter 👍 I am pasting it bellow:
|
Dragonbones also has FFD and mesh binding: They also released this new feature trailer: |
I am currently diving into the dragonbones json file format. This will take me some time to fully understand it. But I am making little progress. I get proper mesh export working. So this means, generated meshes in blender now perfectly match the meshes in dragonbones. Next up, I'll create a simple dragonbones project and examine the exported json format to understand all dependencies and see what I need to add to blender to export it. I don't want to promise anything yet. But I would love to write a fully functional exporter to dragonbones json format. But this may take some time. |
@ndee85 this is awesome news!! 👍 It will make it possible to export the coa tools animation data to Unity3d and cocos2d, among other major game engines. Not just Godot. It will also allow coa tools in blender to replace the DragonBones editor for some users who like using blender more. |
@blurymind |
@radishdalek @blurymind |
@ndee85 you are making an incredibly fast progress with this! Once this works, Mike from Gamesfromscratch might be interested in making a video. So far he has covered spine2d and only mentioned dragonbones. Seeing dragonbones export in blender would get his attention |
hi! I develop html5 games with cocos2d (javascript) and I am trying to implement the whole art pipeline in opensource and linux (ubuntu, gimp, inkscape, vim) I really really love the idea of following a opensource json standard so we can export from blender and take advantage of all the existing runtimes of different game engines. adopting dragonbones format instead of creating a new one is a wise decision, IMHO. I hope I would like help someway to this project! |
The more software that supports one open file standard, the better it is for the open source community and the file standard. Thank you @ndee85 |
@cesarpachon @blurymind
Maybe I will make a push with all the changes tonight so you guys can try it out already. So the next big task will be Animation support. |
@cesarpachon |
@ndee85 This is great, because unlike the dragonbones editor or ANY other competitive software of this type (like spine2d) - blender has nice sculpting tools that can be used to create/tweak the shape keys- much quicker than painstakingly moving vertices!! 👍 |
@blurymind I am a bit excited that it worked out so well!! |
Ok. Just pushed timeline events and shapekey support for dragonbones with this commit 4a4122a |
@ndee85 epic win!! Thank you for the awesome updates! :D |
Here is a small preview how shapekeys are transfered to dragonbones. You can create as many shapekeys as you wish. The all get exported as an animated mesh. Works pretty straight forward. I think the last part on the todo is the texture atlas generation and then we can say it is on paar with dragonbones!? Did I miss something? ^^ |
@ndee85 you are rocking it! Yes indeed it is getting on par - and even better than their editor! Question - on the screenshot above- you don't have a keyframe on each frame - which makes me think that the shapekey animation doesn't get baked on export, but actually preserves the original keyframes. Here is a demo on integration of dragonbones files in Untity3d I couldnt give it a try in the weekend, but will do as soon as i get some free time. I am very eager to play with this, once my freelance client is off my back. All thats left now is to put up a short video tutorial on exporting the example character to unity. I am saying unity- because it seems to be the most popular game engine supported by the runtime at the moment |
@cesarpachon Dragonbones animation data is now officially supported by cocos2d:
They just added it to the game engine. Here is the announcement:
|
@blurymind |
@ndee85 Thank you, you are rapidly improving the entire workflow! |
It's good to note that having all body parts of the character in one image file (atlas) - is a great optimization- as it greatly reduces the number of draw calls! So packing them bodyparts in an Atlas is an incredibly important and useful feature that @ndee85 has now made a part of the addon |
Hey everyone. I love this plugin, and I'd really like to test it in Unity but every time I export to Dragonbones I keep getting this error message. I'm not tech savvy enough to know what it means =/ EDIT: I figured out the problem, I didn't add the animations using the COA Tools menu. Works awesome! I'm going to test out shapekeys when I get the chance. Out of curiosity, as anyone gotten their DragonBones files into Unity yet? I don't mean the Demos either, but one of their own characters. I can't even figure out how to get the runtimes into my project folder without errors being thrown all over the place. Plus, a lot of the documentation is in Chinese which is not helpful... |
I know you don't want to support every format ever, but I think it would be a good idea to add an export to the spine format, too. Sure, using the spine runtimes is not free, however they are very well supported and maintained, and people do use them. A lot more people than dragonbones, if only because they support so many more languages and game engines. If we did so, it would expand the reach of this tool from ~4 game engines to ~40 (the one I use, love2d, being one of them). |
Spine devs are not very open to the idea and prohibit other tools from If you already have a 300 dollar spine license, then you do not need to use I know its annoying but its just pure politics. The reason they have 40 On 22 Nov 2016 03:43, "Ross Hadden" [email protected] wrote:
|
Another great opensource engine that would be very cool to have dragonbones runtime is love2d. It has a big community of devs and already has a runtime for spine. Later this week I am going to try and request it on their board Seems more viable than godot support at the moment |
@blurymind Love2d is the game engine I use. I recently asked them via a tweet, but haven't heard anything from them. I did start a dragonbones love2d runtime, but I realized I needed to break out some of my lua libs before working on it, because they would be useful in th dragonbones runtime as well. So for now it's in the "nothing to see here" stage. I would love some help once I get it far enough along :). Or if you want to lead your own charge, by all means. The point is I think we're on our own for most dragonbones runtimes. They have 2-4 official ones, and the consensus seems to be if you want another one we are best off making it ourselves. |
They have a lua runtime for cocos which can potentially be adopted or taken
as inspiration :)
…On 28 Nov 2016 18:41, "Ross Hadden" ***@***.***> wrote:
@blurymind <https://github.com/blurymind> Love2d is the game engine I
use. I recently asked them via a tweet
<https://twitter.com/darthlink44/status/800905943517040642>, but haven't
heard anything from them.
I did start a dragonbones love2d runtime
<https://github.com/acleverpun/dragonbones-love>, but I realized I needed
to break out some of my lua libs before working on it, because they would
be useful in th dragonbones runtime as well. So for now it's in the
"nothing to see here" stage. I would love some help once I get it far
enough along :). Or if you want to lead your own charge, by all means.
The point is I think we're on our own for most dragonbones runtimes. They
have 2-4 official ones, and the consensus seems to be if you want another
one we are best off making it ourselves.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#26 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AGMbVcConLtOuyBrrPD3QyZMI6GCtkQQks5rCyBNgaJpZM4IGsfM>
.
|
I really don't want to be the guy leading the charge for a love2d dragonbones or coa_tools runtime. Animations are not my forte. I made some posts about it in the love forums and really hope someone else picks up the torch. I'd be happy to help, just don't want to lead it. |
Here are some links @rosshadden is mentioning: Ross> I would love to join, but I don't event know where to begin. |
@ndee85 There is an interesting new development with spine2d json filetype: The Defold engine developers, who have been supporting it for a while now just made an announcement about dragonbones:
More over, because they have implemented their own runtime for spine files, they don't have a limitation in their runtime to enforce users to own the 300$ spine license!.
The way this affects us right now: This is also possibly true for other game engines with built in support for spine files and their own runtime - youo games Game maker for example - but needs to be confirmed! |
wow! that's amazing! if only Dragon Bones run on linux it would solve my particular need.. right now I am tied to Spine as their editor runs on linux and they have cocos2d runtime for javascript (dragonbones runtime is only for C++, as far as I know). I had not figure out a way to create a pipeline from coa_tools to cocos2d-javascript on linux environment. I even started a small experiment with my own set of gimp, blender and javascript modules for cocos2d: it supports position, rotation, visibility but I yet need to work on render-order channels to cover my basic needs: https://github.com/cesarpachon/2d_open_anim_pipeline |
Dragonbones not working on Linux is one of the reasons coa_tools can be useful. Also because Blender is incredible and standard. I think this news is a huge motivation for having coa_tools output the spine format, as it now gives us reach to two very different runtime collections. |
@cesarpachon The dragonbones editor is written in adobeair, which unfortunatelly is no longer supported for linux. That is why they haven't ported it is my guess. Running it with wine is a bit laggy and not usable for animation , however we might still be able to use it to convert the dragonbones animation data you exported from blender via coa-tools to spine animation data. Ideally you would have a spine2d exporter for coa-tools as well - that way we won't need the dragonbones editor for converting the data in the middle - but for now this is a nice workaround for Defold users under linux. No matter the platform - blender+ coa tools outperforms the Dragonbones animation editor - the frame rate we get is way better. So @ndee85 has achieved something very special here imo - regardless of the limitations of the db runtime, exporting to a dragonbones json file has now enabled us to also be able to get spine2d json files for game engines with the spine2d runtime! |
It looks like somebody has created a dragonbones runtime via a Godot module for Godot 2: 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!! |
This came out as a hot topic on the godot facebook group.
Right now the open source community is looking for an open standard json file format that stores animation data in the form of keyframes.
We have an addon for blender that does that already:
https://github.com/ndee85/coa_tools
It is compatible with Godot too!
What are the technical advantages of having game animation stored as a json file+ an image atlas?
What other software can use this technique and export animation data to a json file?
Popular games that use it:
What open source software can do this already?
The problem with the json file format, the game runtime and the lack of one open standard:
The three major competing applications for cut out game animation do basically the same things. However as a means to lock their users to their product, the structure of the json files they output is different. That forces game developers to have to rewrite a new run time for each of the three - that parses the data accordingly. What is worse - they put a license on their runtimes that prohibits anyone else - who does not own the license to their software to use their runtimes.
We need a json file specification that is open - one that can work on all game engines without the need to purchase a license from someone.
Somehow this json specification must be kept compatible in all open source editors or runtimes - so as to not have to duplicate effort to implement new runtimes for each game engine.
Perhaps we need to create a new github/web page for it? One that describes the structure of the specification - and makes it easy for other developers to implement exporters/importers/runtimes.
The text was updated successfully, but these errors were encountered: