Skip to content
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

Creature 2d animation runtime support #3823

Closed
blurymind opened this issue Feb 24, 2016 · 34 comments
Closed

Creature 2d animation runtime support #3823

blurymind opened this issue Feb 24, 2016 · 34 comments

Comments

@blurymind
Copy link

Creature2d is a cheap, but much more powerful alternative to Spine2d and Spriter.
http://creature.kestrelmoon.com/
It offers procedural animation, smooth deformations and many other features. What is better - the author of the application has shown big initiative in helping game engines implement it in the past.
He has stated if somebody helps him out, he will add the runtime:
http://www.kestrelmoon.com/creatureforum/viewtopic.php?f=3&t=244

There is also already a c++ implementation:
http://www.kestrelmoon.com/creaturedocs/Game_Engine_Runtimes_And_Integration/Custom_Engine_C++_Runtimes.html

I hope to see this available in godot for a number of reasons:

  • creature has a much more powerful animation editor than godot or spriter. It supports smooth deformations!
  • It's license is cheaper than spriter and especially much cheaper than spine2d (rip off!)
  • Once implemented - it's likely that creature's main developer will keep it up to date and take care of it.
@freemanfromgodotengine
Copy link

Pity there is no Linux versions of that software. :(
In contrast Spine works on Windows, OSX, Linux 32 and 64 bit.
Spriter? The same.

@blurymind
Copy link
Author

it might be possible to run the editor in wine? :) I agree its a pitty

@reduz
Copy link
Member

reduz commented Feb 25, 2016

Runtime wil not be added, but Godot supports most of that stuff (except
bone deforms for now). Might work eventually on an importer that converts
stuff

On Wed, Feb 24, 2016 at 9:02 PM, Todor Imreorov notifications@github.com
wrote:

it might be possible to run the editor in wine? :) I agree its a pitty


Reply to this email directly or view it on GitHub
#3823 (comment).

@blurymind
Copy link
Author

the animation editor there is way more powerful than anything else atm. They have a motor system that cuts production time by a huge margin.

@reduz
Copy link
Member

reduz commented Feb 25, 2016

Don't care about that, we'll focus on improving ours instead and also add
enough features so we can import from existing tools
On Feb 24, 2016 22:15, "Todor Imreorov" notifications@github.com wrote:

the animation editor there is way more powerful than anything else atm.
They have a motor system that cuts production time by a huge margin.


Reply to this email directly or view it on GitHub
#3823 (comment).

@rgrams
Copy link

rgrams commented Feb 25, 2016

Have you used this program, blurymind? Is it really that good?

@blurymind
Copy link
Author

I used it. It really is.check their yt channel. Juan- how come you put
spine2d on the roadmap, but flat out refuse to give this a chance?

Have you used this program, blurymind? Is it really that good?


Reply to this email directly or view it on GitHub
#3823 (comment).

@volzhs
Copy link
Contributor

volzhs commented Feb 25, 2016

@blurymind I don't think @reduz will put spine2d in godot.
He means importer as same as you provided for creature2d.
He would add importers for spine2d or creature2d, after godot has enough features.

@kubecz3k
Copy link
Contributor

But again, it's not working on Linux so something like a 50% of Godot users will have no use of it. Besides, reduz want to add these features to Godot instead, it sounds better, don't you think?

@blurymind
Copy link
Author

The developer has expressed interest in porting it. Would a linux editor
increase its chances for a godot runtime?
On 25 Feb 2016 09:10, "kubecz3k" notifications@github.com wrote:

But again, it's not working on Linux so something like a 50% of Godot
users will have no use of it.


Reply to this email directly or view it on GitHub
#3823 (comment).

@kubecz3k
Copy link
Contributor

@blurymind Well I think it would definitely increase the chances in the long term, since many contributors are on Linux machines. But I assume not as much as you would like, since the person who will eventually contribute this to Godot is probably using Creature right now.. When it comes to core devs I don't think they will be able to find time for this no matter what, there are many features that they have on their roadmap that are very awaited by most of us... and their resources are very limited.

@reduz
Copy link
Member

reduz commented Feb 25, 2016

@blurymind No, there is absolutely zero chances of runtime support for this or Spine in Godot, ever. It will never be natively supported officially. Don't insist as it won't happen.

What will happen is:

  1. Godot will improve internal 2D animation support to match this, which is not too difficult
  2. Somebody will write Spine or Creature importers for Godot, that use Godot runtime
  3. Somebody will write a module that does run-time support but it will not be suported internally, you'll have to add it and compile your on Godot (which is easy anyway)

@blurymind
Copy link
Author

I see. That is understandable :) Hope that Godot one day supports these
features as well.

On Thu, Feb 25, 2016 at 3:09 PM, Juan Linietsky notifications@github.com
wrote:

@blurymind https://github.com/blurymind No, there is absolutely zero
chances of runtime support for this or Spine in Godot, ever. It will never
be natively supported officially. Don't insist as it won't happen.

What will happen is:

  1. Godot will improve internal 2D animation support to match this, which
    is not too difficult
  2. Somebody will write Spine or Creature importers for Godot, that use
    Godot runtime
  3. Somebody will write a module that does run-time support but it will not
    be suported internally, you'll have to add it and compile your on Godot
    (which is easy anyway)


Reply to this email directly or view it on GitHub
#3823 (comment).

@kestrelm
Copy link

Hello all,

One last update for tonight. I have an initial version built through for Godot:
https://github.com/kestrelm/Creature_Godot/tree/master/creaturegodot

This is completely untested but it compiles and links just fine. I can also add it into the editor in Godot Engine.
I haven’t tested the display yet of course, will do so soon.

Can you please have a look, the relevant files are:

creaturegodot.cpp
creaturegodot.h

Can you tell me if what I am doing makes sense?

Cheers

@blurymind
Copy link
Author

@kestrelm I will try this out later. Posted it at the godot facebook group.
https://www.facebook.com/groups/godotengine/permalink/760026870800576/

Btw how do you use it? Do you copy these files in godot's source code and compile godot? A readme would be amazing!

@reduz has been planning to add this in godot 1.2, then 2, and now 3 (in another year?), but now that you have made an implementation I am sure that at least creature users will find it awesome and find damn good use for it. Having something working is better than waiting.

I still hope to see something like this become a part of godot trunk.
I think that something like this will get merged into godot only if it benefits its 2d animation system directly - so godot users can edit imported creature animations with godot's internal animation editor as well.

A year ago another user implemented support for spine2d, but it never got merged because godot developers want to implement it in a way that benefits the whole game engine. Here is the pull request:
#1734

and then have an importer as an addon that imports the animation data. But godot cant do sprite deformation animation yet.

Perhaps your changes could help add the ability to properly mesh and deform sprites in godot and thus enable an importer for creature2d to be implemented. If such a thing gets merged to godot trunk it will make it easier to import creature animations - since the user wont have to compile godot in order to use it with creature files.
I hope you get some feedback from @reduz or some of the other experienced godot devs,

@kestrelm
Copy link

@blurymind Hello, a README is coming. I just literally got these compiling and loading last night :) Will be doing more testing today.

Also, regarding your posting on Facebook, can you please respond and tell that person that Everything is a mesh in Creature. Which means mesh deformation comes by default for the Basic Version. He sounds kind of confused. Mesh Deformation Motors are an advanced feature that allow you to do very complex mesh deforms. You can do regular mesh deforms already with the bone motors. Can you please correct the poster. Thanks.

@blurymind
Copy link
Author

@kestrelm this is attracting a lot of attention on facebook atm. The person asking the question got the answer quoted from here already. :)

@kestrelm
Copy link

Yes I noticed and thanks for replying for me :)
I think he really sounds confused. There have been absolutely NO CHANGES regarding motor features for Standard and Pro since Creature started.
I have no idea where he is getting his information from.

@blurymind
Essentially, EVERYTHING in Creature is a mesh. If I didn’t support mesh deformation in the basic version, nothing would work!
Also, you can already do very fancy cloth with bend physics motors in the basic version.
I am trying to get added to the facebook group but it is still pending. Would love to clear up his confusion. He really sounds confused.
I hope you can help answer his misconceptions in the meantime.

Cheers

@akien-mga
Copy link
Member

@kestrelm Well as @TheoXD mentioned, he's referring to your website:
spectacle ab6937

Then it could very well be that it's a misunderstanding on what "Mesh Deformation Motors" mean in the context of the Pro version I guess.

@kestrelm
Copy link

@akien-mga Hello, so here's how it works for Creature which is quite different from your regular 2D puppet type animation tools. Everything comes in as a mesh, you have bones with weights that influence various parts of the mesh, just like in a normal 3D tool like Maya/Houdini etc. You can move those bones and they will then deform the mesh in various ways.

In other words, by simply putting a bunch of bones all laid out over the mesh, you can already deform the mesh in many different ways. The bone motors operate on top of the bones to give you different types of fancy behaviour ( physics, cloth, walking, IK etc. )

How about mesh deformation motors then? Well they operate at a much deeper level, give you much finer grained control over the mesh. For example, you can do even more intricate stuff like finite element/soft body physics on the actual mesh itself. This is pretty sophisticated stuff used typically in high end movie production. They also allow you to warp the mesh almost in a 3D fashion for wing flapping for instance. So bone motors already operates on meshes, as do mesh deformation motors. Except mesh deformation motors go a lot further ( think of them as advanced maya deformers )

Here is an example all done with the Basic Version running live in WebGL:
http://creature.kestrelmoon.com/more_info_3.html

The entire ice demon is running with a various bone motors deforming the mesh and fire. No advanced features were used.

Cheers

@akien-mga
Copy link
Member

Thanks for the details, it sounds (and looks) very interesting. I'm glad you're working on this plugin as I can imagine that many users would benefit from using your tool together with Godot.

To clarify, I did not mean to play the devil's advocate, I just wanted to point out where the confusion might have been coming from for this specific user checking your website.

@kestrelm
Copy link

Hello no worries, I am going to be doing more development and testing today on the plugin.
Once that is all done I will push out official docs.

Cheers

@blurymind
Copy link
Author

@kestrelm I think you can avoid future misconception by renaming 'mesh deformation motors' at the website to something that doesnt use the words 'mesh deformation', as a lot of people looking at it for the first time might not know the meaning of the word 'motors' in the context of the application - motors are absolutely awesome btw. They put creature2d miles ahead of the other tools imo.

The problem also partially comes from people's set expectation from spine 2d - where actual mesh deformation is not available for their basic version.
As I noted this makes creature2d a much better option for an indie developer.

@kestrelm
Copy link

@blurymind @akien-mga Ok first implementation is up and running, doing more testing and will get to docs soon.

Check out the initial video of the raptor running in Godot:
https://youtu.be/wJscyoq1mkc

Cheers

@blurymind
Copy link
Author

@kestrelm This is absolutely fantastic progress! Posted the video at godot's fb group. Really looking forward to trying this out myself once the instructions are up.

And really really hope this type of 2d bone deformation becomes an internal part of godot - so everyone would be able to use creature2d files in Godot's official release - without the need to recompile godot.

@kestrelm
Copy link

I am not sure if it will make its way into the main trunk due to my different plugin license restrictions.
Having said that, the license is very liberal actually, you just need to be a licensed owner of Creature to use the plugin and that's it. However it's not a MIT license.

Compiling the plugin into Godot is literally a drag and drop operation. It's really not that difficult. I will be working on the docs soon.

Cheers

@kestrelm
Copy link

Ok good news, the documentation is up:
https://github.com/kestrelm/Creature_Godot

This also includes a video tutorial and sample project containing the UtahRaptor. Enjoy!

@blurymind
Copy link
Author

@kestrelm is it possible to change the texture that a creature object is using during runtime? This would be very useful for things like changing the armor of a character or applying the same animation to different looking characters.
Does the current implementation support all of creature's runtime functions?

@kestrelm
Copy link

Hello,
Swapping texture uvs/items from the texture atlas manually is supported in the core runtimes but has not been exposed yet. I am going to be exposing a lot more functions from the core runtime soon.

Cheers

@kestrelm
Copy link

Ok item swapping, anchor points and point caching functionality are now exposed in Godot runtime.
This also includes the ability to retrieve world positions of bones in game for object attachments etc. More to follow...

https://github.com/kestrelm/Creature_Godot

Cheers

@kestrelm
Copy link

Another quick update, under the very helpful guidance of Ariel, I have integrated the runtime to expose animation frame and animation name as properties. This means it is now possible to scrub/key animation frame values directly within the Godot AnimationPlayer node itself, allowing a tech artist to easily step through the animation with the gui:
https://youtu.be/afSObHcj9O8

Cheers

@blurymind
Copy link
Author

blurymind commented Jul 12, 2016

@kestrelm The godot implementation would benefit from having the ability to control the bones via code - that would allow for some dynamic gameplay.

I filed a feature request here:
kestrelm/Creature_Godot#4

So basically ability to set_bone_pos, set_bone_rot and set_bone_scale

@kestrelm
Copy link

Yes I will take a look at it once I get the other tasks off my list of TODOs. This sounds like a good feature to have.

Cheers

@vnen
Copy link
Member

vnen commented Aug 4, 2016

Since the module was created and is available at https://github.com/kestrelm/Creature_Godot, this issue is not really needed anymore. The runtime support won't be added in Godot. A possible import plugin can be created when Godot support more animation features.

@vnen vnen closed this as completed Aug 4, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants