Generating Animations in Godot4
Asked Answered
D

16

1

Hello, I want to create a form of "dynamic animations" where the player character doesn't have pre defined animations but with some "guidance" generates them dynamically.
What I have tried and has failed:

  • Use target nodes and IK skeleton to define points and interpolate. Doesn't work for two reasons. Huge overhead with the numbers of points and IK nodes that can't be repurposed or reused.
  • Try to handle the transform (position and rotation) strictly through code. This was just too hard for me.
  • Procedural animation which while the most promising I am having big troubles implementing.

Wanted to hear what people have to say so I also made a poll for the fun of it. Thanks in advance!

Player character:

Delectable answered 4/2 at 11:36 Comment(0)
T
0

blending, interpolations and whatever else can be useful but you'd still need some base animations even if you wanted to go for something more procedural. Unless you intend to train a neural net to walk based on rotating specific bones around designated axis...

Trusting answered 4/2 at 11:59 Comment(0)
M
1

Delectable I want to create a form of "dynamic animations" where the player character doesn't have pre defined animations but with some "guidance" generates them dynamically.

This is an extremely important issue for my project that I am currently researching and working on.

First of all, what exactly do you want to get and where do you want to use it? Will all the characters be the same size (or a few predefined ones) or will their size and proportions change smoothly? This determines the possible solutions.

There are several approaches to solving this problem.
The most common is to prescribe in advance the possible changes of positions (Sims series) or a small smooth adaptation of animation for some sizes (Illusion). In this case, the size of the objects with which the interactions are fixed or change in a small range.

The most interesting seems to be procedural animation using a neural network, actually what Englis suggests. But now it is too complicated for me.

Malachite answered 4/2 at 13:42 Comment(0)
D
0

Trusting I had not thought of that. Because what I am creating is a 1v1 kind of thing, the required processing power wouldn't be THAT much. Thanks!

Delectable answered 4/2 at 19:23 Comment(0)
D
0

Malachite Training a NN for a very strict number of actions (and points) is actually a really good idea, the implementation is another story though.. A problem I'm thinking is characters of different scales or skeleton (bone structure) will have to be implemented from the begging perhaps in a different way too, so this is one limit.

What I am trying to implement is a form of 1 v 1 duels between a player and an NPC. I want to produce animations mainly for attacking, defending and walking. I initially wanted to have different models and skeletons but I can let that aside for now. I don't want anything too complex (animation wise), but I would like them to have some.. spice!

For the moment, this seems like the best coarse of action, however do you know of any other ways to go about this?

Delectable answered 4/2 at 19:39 Comment(0)
M
1

Delectable What I am trying to implement is a form of 1 v 1 duels between a player and an NPC.

I'm using a translator and may not be clear, by "duel" do you mean hand-to-hand and cold weapon combat or something else?

however do you know of any other ways to go about this?

I'm just starting out and can show little practical work so far. Here are some of the problems I've encountered:

  1. Smooth Adulthood (a failed experiment)
  2. Trouble with Retarget BVH
Malachite answered 4/2 at 19:57 Comment(0)
D
0

Malachite No, no, I mean two people fight each other with weapons (sword, knuckles, bows etc).
Mate, this is very impressive work! Is the Neural Network used to only create the Humans or do you release(export) them with the Neural Network attached?
Furthermore, how do you handle animations? I mean, when you release(export) a Human does it have animations hardcoded, or does it have some instructions to animate of (dynamic)?

Delectable answered 4/2 at 20:26 Comment(0)
M
0

Delectable I mean two people fight each other with weapons (sword, knuckles, bows etc).

Here's a good game on this theme. It's almost impossible to compete with the Poles in this area.

Furthermore, how do you handle animations?

I can't handle animation yet and I'm just starting to approach the development of this issue.

Malachite answered 4/2 at 20:43 Comment(0)
D
0

Malachite This looks very advanced.. But I understand you, it my second attempt at making a game and I've run into the same problem again.

I'm thinking of trying a different approach where I make a character with some basic animations. I train a Neural Network ( or maybe a simpler AI) to rotate and position bones accordingly.
The problem of learning Blender remains tho....

Delectable answered 4/2 at 20:59 Comment(0)
M
0

Delectable I train a Neural Network ( or maybe a simpler AI) to rotate and position bones accordingly.

It would be very interesting to see the process and the result. When I have something to show, I will publish the work here.

The problem of learning Blender remains tho....

You can pay attention to the program for creating animation (there is a free version).

Malachite answered 4/2 at 21:58 Comment(0)
T
0

NN's are not as simple a solution for this as you might think, my anecdotal off the cuffs remark was about a walking NN specifically. A fairly simple problem domain. You can train it more easily since you can designate failure conditions more easily. If it tips and falls over such that some collider collides with the floor or it walks into a wall and the collider collides with a wall you can easily get a 'negative' condition out of that to reaffirm the training with. But many different motions beyond just a simple singular domain like that, IDK... I think its genuinely easier to just animate the characters.

Maybe it's worth looking for an animator to collaborate on a project with if the issue is that you lack the animation skills and are not willing to invest the time into mastering the task yourself.

Trusting answered 5/2 at 5:50 Comment(0)
D
0

Malachite I am interested in seeing it as well!

OOH I didn't see that tool. I'm gonna stick around github for a while, looks like a good project

Delectable answered 5/2 at 10:36 Comment(0)
D
0

Trusting
I would like to have a NN model at my possession (if the need ever arises again) but I get what you are saying. The complexity seems a lot more than simply learning Blender.

Do you think creating animations in Blender, and then using some form of generative AI/NN/whatever to translate bones (position and rotation) to make it more dynamic, would be better? Because even if I do make the animations, I still want to have some responsiveness. (Think of the new Uncharted game where the character will place his hand on nearby walls).

Because the problem at the end of the day remains. Even if I make the animations, can I alter them with some form of automation to produce dynamic responsiveness? Do I quit the project and programming in general? So many questions...

Delectable answered 5/2 at 10:47 Comment(0)
M
0

Delectable Even if I make the animations, can I alter them with some form of automation to produce dynamic responsiveness?

Well, that's already been realized. In Illusion games… ahem… hugging characters of different heights has been done a long time ago. I'm guessing with a script. In Godot, it can apparently be implemented via get\set.

Do I quit the project and programming in general?

Avoiding hardship is the way of the weak. And doesn't suit real Indians and Cossacks.

Malachite answered 5/2 at 12:5 Comment(0)
T
0

Delectable Do you think creating animations in Blender, and then using some form of generative AI/NN/whatever to translate bones (position and rotation) to make it more dynamic, would be better? Because even if I do make the animations, I still want to have some responsiveness. (Think of the new Uncharted game where the character will place his hand on nearby walls).

No need for a NN at all, there is support within godot 4 for animation retargetting, so same animation from one rig can within reason be retargetted on to another. And yes, IK would be used in combination with pre-existing animations to respond to the environment dynamically. Uncharted is doing noting particularly revolutionary there with that. Just more polished than what's come before.

Trusting answered 5/2 at 14:47 Comment(0)
D
0

Malachite It's one of those that sound simple until you start implementing.

Delectable answered 6/2 at 8:27 Comment(0)
D
0

Trusting For my small project it sounds like making some animations with IK enhancement is the best option, sanity wise. Valois , Englis Cheers a lot mates, this has been very helpful!!

Delectable answered 6/2 at 8:32 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.