MaurycyLiebner / enve

Flexible, user expandable 2D animation software for Linux and Windows.
https://MaurycyLiebner.github.io/
GNU General Public License v3.0
1.08k stars 78 forks source link

Request: dragonbones json animation export - for animation in videogames #120

Open blurymind opened 4 years ago

blurymind commented 4 years ago

This is something that would be extremely valuable for gamedev. Cutout animation exported as json data provides huge optimizations as well as ability to make it more interactive. This feature has two aspects - the Editor and the runtime that will parse the data for each game engine.

There are different tools out there to create those two halves:

-Dragonbones - it's the oldest one and has a huge number of open source runtimes: https://github.com/DragonBones The runtimes don't require you to buy/own a license -so they are completely open!

It's editor how is however not. https://dragonbones.github.io/en/index.html It runs only on windows and requires you to create an account at a chinese website in order to export animation data. Its also going to become subscription service in the future.

Some people have created a blender3d addon to export dragonbones data: https://github.com/ndee85/coa_tools

however its a bit of a hack.

So my proposal here is simple. Create an exporter that outputs an animationdata.json, skeletondata.json and an atlas image texture. These are the three files that the dragonbones runtimes consume. If enve supports that, it will become the first open source editor in the world to export to an open source animation runtime without expensive licenses. I believe that would attract a lot of gamedev animators to this app.

More info https://developer.egret.com/en/apidoc/index/name/dragonBones.EgretEvent

also on the data format https://github.com/DragonBones/DragonBonesJS/blob/master/docs/DragonBones_5.0_data_format_zh.md There is a Dragonbones C++ runtime here https://github.com/DragonBones/DragonBonesCPP

hansnolte commented 4 years ago

I had also thought of json animation export, only in connection with Lottie. https://github.com/airbnb/lottie-web

blurymind commented 4 years ago

It did occur to me that in order to have this, the app needs to have a way to create armatures and do skin binding. I guess lottie is more feasible, but not quite used for gamedev from what I understand. Its move of a web development library

Enve would be quite interesting as a way to create dragonbones animations because it has drawing tools. The user can draw the body parts and rig them without leaving the software. This is something none of the apps that I listed can do atm - you can only rig and animate in them and you draw the body parts in other software.

Its worth noting that there is another currently abandoned app that would be perfect for skeleton based animation, but can not export any of its data for something useful for gamedev https://github.com/herace/AnimeEffects

perhaps enve can borrow some of the code from there to create the missing tools?

MaurycyLiebner commented 4 years ago

I had also thought of json animation export, only in connection with Lottie.

I've already investigated the possibility of supporting Lottie JSON. Sadly, there is no official documentation, and what is available is not good enough.

MaurycyLiebner commented 4 years ago

It is unlikely I will work on gamedev-specific functionality. If anyone else is interested in implementing this, they are more than welcome.

hansnolte commented 4 years ago

I've already investigated the possibility of supporting Lottie JSON. Sadly, there is no official documentation, and what is available is not good enough.

I found something else here, but I don't know if it's useful http://www.programmersought.com/article/31133046150/

MaurycyLiebner commented 4 years ago

Not really. :)

m1ga commented 4 years ago

was just about asking the same Lottie question and then I've found this issue :) About the specification: there is this thread: https://github.com/airbnb/lottie-web/issues/575 and it ends with a posting by the author of a python script and he has a documentation of the file format: http://mattia.basaglia.gitlab.io/python-lottie/group__Lottie.html#details perhaps this helps a bit

MaurycyLiebner commented 4 years ago

was just about asking the same Lottie question and then I've found this issue :) About the specification: there is this thread: airbnb/lottie-web#575 and it ends with a posting by the author of a python script and he has a documentation of the file format: http://mattia.basaglia.gitlab.io/python-lottie/group__Lottie.html#details perhaps this helps a bit

I've already seen it, not good enough.

hadiDanial commented 4 years ago

It is unlikely I will work on gamedev-specific functionality. If anyone else is interested in implementing this, they are more than welcome.

Is there any documentation available? I'd like to try it out and see what I can add to it when I get the chance

blurymind commented 4 years ago

It is unlikely I will work on gamedev-specific functionality. If anyone else is interested in implementing this, they are more than welcome.

Is there any documentation available? I'd like to try it out and see what I can add to it when I get the chance

There is https://developer.egret.com/en/apidoc/index/name/dragonBones.EgretEvent

also on the data format https://github.com/DragonBones/DragonBonesJS/blob/master/docs/DragonBones_5.0_data_format_zh.md

There is a Dragonbones C++ runtime here https://github.com/DragonBones/DragonBonesCPP

hadiDanial commented 4 years ago

There is https://developer.egret.com/en/apidoc/index/name/dragonBones.EgretEvent

also on the data format https://github.com/DragonBones/DragonBonesJS/blob/master/docs/DragonBones_5.0_data_format_zh.md

There is a Dragonbones C++ runtime here https://github.com/DragonBones/DragonBonesCPP

That's great, I'll take a look. I meant about Enve though

ghost commented 3 years ago

It is unlikely I will work on gamedev-specific functionality. If anyone else is interested in implementing this, they are more than welcome.

Is there any documentation available? I'd like to try it out and see what I can add to it when I get the chance

There is https://developer.egret.com/en/apidoc/index/name/dragonBones.EgretEvent

also on the data format https://github.com/DragonBones/DragonBonesJS/blob/master/docs/DragonBones_5.0_data_format_zh.md

There is a Dragonbones C++ runtime here https://github.com/DragonBones/DragonBonesCPP

woah you are here to...