[Maybe later] Skeletal animations

Moderator: GZDoom Developers

Skeletal animations

Postby Apeirogon » Tue Dec 12, 2017 8:29 am

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.
User avatar
Apeirogon
I have a strange sense of humour
 
Joined: 12 Jun 2017

Re: Skeletal animations

Postby Rachael » Tue Dec 12, 2017 8:49 am

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.
User avatar
Rachael
Admin
 
Joined: 13 Jan 2004
Discord: Rachael#3767
Twitch ID: madamerachelle
Github ID: madame-rachelle
Operating System: Debian-like Linux (Debian, Ubuntu, Mint, etc) 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: nVidia with Vulkan support

Re: Skeletal animations

Postby Graf Zahl » Tue Dec 12, 2017 8:50 am

The main problem is that there is nobody with the time to do it.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
 
Joined: 19 Jul 2003
Location: Germany

Re: Skeletal animations

Postby Apeirogon » Tue Dec 12, 2017 9:38 am

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.


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?
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?
User avatar
Apeirogon
I have a strange sense of humour
 
Joined: 12 Jun 2017

Re: Skeletal animations

Postby Caligari87 » Tue Dec 12, 2017 10:07 am

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.

8-)
User avatar
Caligari87
I'm just here for the community
User Accounts Assistant
 
Joined: 26 Feb 2004
Location: Salt Lake City, Utah, USA
Discord: Caligari87#3089
Github ID: caligari87
Operating System: Debian-like Linux (Debian, Ubuntu, Mint, etc) 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: nVidia with Vulkan support

Re: Skeletal animations

Postby Chris » Tue Dec 12, 2017 10:23 am

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.
User avatar
Chris
 
Joined: 17 Jul 2003

Re: Skeletal animations

Postby Gutawer » Tue Dec 12, 2017 10:57 am

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.

8-)

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.
User avatar
Gutawer
User Accounts Assistant
 
Joined: 16 Apr 2016
Discord: Gutawer#3431

Re: Skeletal animations

Postby Rachael » Tue Dec 12, 2017 12:00 pm

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!
User avatar
Rachael
Admin
 
Joined: 13 Jan 2004
Discord: Rachael#3767
Twitch ID: madamerachelle
Github ID: madame-rachelle
Operating System: Debian-like Linux (Debian, Ubuntu, Mint, etc) 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: nVidia with Vulkan support

Re: Skeletal animations

Postby RederickDeathwill » Tue Oct 12, 2021 12:57 pm

This could revolutionize the engine even further, still no hope of implementing?
User avatar
RederickDeathwill
 
Joined: 06 Sep 2020
Location: São Paulo - Brazil
Github ID: https://github.com/EricsonWillians
Operating System: Debian-like Linux (Debian, Ubuntu, Mint, etc) 64-bit
Graphics Processor: nVidia (Modern GZDoom)

Re: Skeletal animations

Postby Gez » Tue Oct 12, 2021 1:13 pm

RederickDeathwill wrote:This could revolutionize the engine even further, still no hope of implementing?

If revolutions were simple, they wouldn't be so messy.
Gez
 
 
 
Joined: 06 Jul 2007

Re: Skeletal animations

Postby Marisa Kirisame » Tue Oct 12, 2021 1:29 pm

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.
User avatar
Marisa Kirisame
ZScript Crimester
 
 
 
Joined: 08 Feb 2008
Location: Vigo, Galicia
Discord: 霧雨魔理沙#1666
Twitch ID: MarisaDOOM
Github ID: OrdinaryMagician
Operating System: Other Linux 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: nVidia with Vulkan support

Re: Skeletal animations

Postby Diode » Thu Oct 21, 2021 8:37 am

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.


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?

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.
Diode
 
Joined: 29 Feb 2016

Re: Skeletal animations

Postby Gez » Thu Oct 21, 2021 8:53 am

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.
Gez
 
 
 
Joined: 06 Jul 2007

Re: Skeletal animations

Postby Nash » Thu Oct 21, 2021 9:00 am

Find us someone to do the actual coding work and we'll be in business.
User avatar
Nash
AKA Nash Muhandes! Twitter/Facebook/Youtube: nashmuhandes
 
 
 
Joined: 27 Oct 2003
Location: Kuala Lumpur, Malaysia
Twitch ID: nashmuhandes
Github ID: nashmuhandes

Re: Skeletal animations

Postby Rachael » Thu Oct 21, 2021 10:20 am

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.
User avatar
Rachael
Admin
 
Joined: 13 Jan 2004
Discord: Rachael#3767
Twitch ID: madamerachelle
Github ID: madame-rachelle
Operating System: Debian-like Linux (Debian, Ubuntu, Mint, etc) 64-bit
OS Test Version: No (Using Stable Public Version)
Graphics Processor: nVidia with Vulkan support


Return to Closed Feature Suggestions

Who is online

Users browsing this forum: No registered users and 0 guests