Skeletal animations
Moderator: GZDoom Developers
-
- Posts: 1606
- Joined: Mon Jun 12, 2017 12:57 am
Skeletal animations
At least little chance for implementing skeletal animations?
I import model from other game where more than half all animations make using this. Shooting while walking, shooting while running, shooting while running with turn its torso left-right at some angle between (+pi/4, -pi/4) while shooting at slope between (-pi/2, +pi/2), fatality and other stuff. All that implement from standing still model.
I CAN draw all this in simple md3, all turning data build-in in models with links to animation and frame name, so even some clumsy and incompetent human in 3d modeling, like me, can do this.
But, mamma mia, this take slightly less than eternity, even if I discarded all fancy stuff and make just walking-shooting animations.
I import model from other game where more than half all animations make using this. Shooting while walking, shooting while running, shooting while running with turn its torso left-right at some angle between (+pi/4, -pi/4) while shooting at slope between (-pi/2, +pi/2), fatality and other stuff. All that implement from standing still model.
I CAN draw all this in simple md3, all turning data build-in in models with links to animation and frame name, so even some clumsy and incompetent human in 3d modeling, like me, can do this.
But, mamma mia, this take slightly less than eternity, even if I discarded all fancy stuff and make just walking-shooting animations.
-
- Posts: 13794
- Joined: Tue Jan 13, 2004 1:31 pm
- Preferred Pronouns: She/Her
Re: Skeletal animations
While I will agree that GZDoom desperately needs this, as the old saying goes - the devil is in the details.
To put it bluntly, if it were easy to do it'd have been done by now. That's not to say it's an automatic [No] - I am pretty sure the model handling interface is extensible enough to pull something together like this - the problem is it's not as simple as it sounds.
To put it bluntly, if it were easy to do it'd have been done by now. That's not to say it's an automatic [No] - I am pretty sure the model handling interface is extensible enough to pull something together like this - the problem is it's not as simple as it sounds.
-
- Lead GZDoom+Raze Developer
- Posts: 49184
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: Skeletal animations
The main problem is that there is nobody with the time to do it.
-
- Posts: 1606
- Joined: Mon Jun 12, 2017 12:57 am
Re: Skeletal animations
I have ideas in case of NO, like separate body from legs and make two models atached one other with scripts. But how do this?Rachael wrote:While I will agree that GZDoom desperately needs this, as the old saying goes - the devil is in the details.
To put it bluntly, if it were easy to do it'd have been done by now. That's not to say it's an automatic [No] - I am pretty sure the model handling interface is extensible enough to pull something together like this - the problem is it's not as simple as it sounds.
How check that enemy in FOV of "legs", base actor, to turn body and shoot it?
How make other monster, in case of infight with that frankenstein model, attack both part of it?
How check is it can enter in some corridor, if legs fit in it, and legs with body no?
And in case of resurrection, how resurrect and join both part of actor without flying body/walking legs only?
-
- Admin
- Posts: 6191
- Joined: Thu Feb 26, 2004 3:02 pm
- Preferred Pronouns: He/Him
Re: Skeletal animations
The way to do this would be to have the actor itself spawn several non-interacting actors. Using ZScript it's perfectly possible to keep it all in sync. You don't have to worry about a monster attacking just the legs, because the legs would be visual only, not actually a separate entity.
-
- Posts: 2954
- Joined: Thu Jul 17, 2003 12:07 am
- Graphics Processor: ATI/AMD with Vulkan/Metal Support
Re: Skeletal animations
FWIW, skeletal animation is simply another way of making the engine move a model's vertices. Blending multiple animations based on the actor state (e.g. combining the legs of a running animation with the upper body of a firing animation) is a whole other level of complexity on top of it. Would be neat to have, but it's not the easiest thing to do.
-
- Posts: 469
- Joined: Sat Apr 16, 2016 6:01 am
- Preferred Pronouns: She/Her
Re: Skeletal animations
You also need some sort of orientation format that supports concatenation (like Quaternions) to make sure the armature always rotates relative to the actor's own orientation.Caligari87 wrote:The way to do this would be to have the actor itself spawn several non-interacting actors. Using ZScript it's perfectly possible to keep it all in sync. You don't have to worry about a monster attacking just the legs, because the legs would be visual only, not actually a separate entity.
-
- Posts: 13794
- Joined: Tue Jan 13, 2004 1:31 pm
- Preferred Pronouns: She/Her
Re: Skeletal animations
In other words: overly complicated and a ton of work to get it right!
Or, to put it another way: Ain't nobody got time for that!
Or, to put it another way: Ain't nobody got time for that!
-
- Posts: 31
- Joined: Sun Sep 06, 2020 4:18 pm
- Graphics Processor: nVidia (Modern GZDoom)
- Location: São Paulo - Brazil
Re: Skeletal animations
This could revolutionize the engine even further, still no hope of implementing?
-
-
- Posts: 17934
- Joined: Fri Jul 06, 2007 3:22 pm
Re: Skeletal animations
If revolutions were simple, they wouldn't be so messy.RederickDeathwill wrote:This could revolutionize the engine even further, still no hope of implementing?
-
- Posts: 3886
- Joined: Fri Feb 08, 2008 9:15 am
- Preferred Pronouns: She/Her
- Operating System Version (Optional): (btw I use) Arch
- Graphics Processor: nVidia with Vulkan support
- Location: Vigo, Galicia
Re: Skeletal animations
You're all asking too much of this humble engine. Maybe some day it will happen, if someone with the skill level to add it shows up. The same can be said of a lot of features that quite honestly I don't think any of us here would be capable of adding.
-
- Posts: 53
- Joined: Mon Feb 29, 2016 2:34 pm
Re: Skeletal animations
If I recall correctly, a skeletal animation system made it into UT99 with its final bonus pack. Perhaps its .u files can be decompiled and reverse engineered?Marisa Kirisame wrote:You're all asking too much of this humble engine. Maybe some day it will happen, if someone with the skill level to add it shows up. The same can be said of a lot of features that quite honestly I don't think any of us here would be capable of adding.
Of course, merely supporting skeletal animations is a long, long away from being able to do anything with those bones at runtime, and UT99 itself is an excellent example of how far you can go *without* skeletal animations.
...But merely supporting them *is* the first, possibly-achievable step.
-
-
- Posts: 17934
- Joined: Fri Jul 06, 2007 3:22 pm
Re: Skeletal animations
As far as I understand things, the problem isn't so much putting support for skeletal animation in the renderer; it's finding a way to tie it nicely to the Doom-engine state-based actor framework.
-
-
- Posts: 17465
- Joined: Mon Oct 27, 2003 12:07 am
- Location: Kuala Lumpur, Malaysia
Re: Skeletal animations
Find us someone to do the actual coding work and we'll be in business.
-
- Posts: 13794
- Joined: Tue Jan 13, 2004 1:31 pm
- Preferred Pronouns: She/Her
Re: Skeletal animations
There is no details about skeletal animations in the .u file except maybe a rigged model itself.
Skeletal animations are nothing more than groups of verteces on a model being attached to a specific other vertex point, which may or may not be forced a static distance away from another (creating a "skeleton" or probably a more descriptive technical term could possibly be called "vertex inheritance tree"). A model's skin can overlay this skeleton over said vertex points.
Understanding the concept of skeletal animations is not difficult at all, nor is the preliminary implementation of it. As Gez said, it's figuring out how best to tie it to Doom's rigid systems.
Skeletal animations are nothing more than groups of verteces on a model being attached to a specific other vertex point, which may or may not be forced a static distance away from another (creating a "skeleton" or probably a more descriptive technical term could possibly be called "vertex inheritance tree"). A model's skin can overlay this skeleton over said vertex points.
Understanding the concept of skeletal animations is not difficult at all, nor is the preliminary implementation of it. As Gez said, it's figuring out how best to tie it to Doom's rigid systems.