Quake3World.com Forums
     Programming Discussion
        Looking for a book on programming skeletal animation code?


Post new topicReply to topic
Login | Profile | | FAQ | Search | IRC




Print view Previous topic | Next topic 
Topic Starter Topic: Looking for a book on programming skeletal animation code?

The Afflicted
The Afflicted
Joined: 21 Apr 2005
Posts: 563
PostPosted: 11-11-2014 12:38 PM           Profile Send private message  E-mail  Edit post Reply with quote


Is anyone aware of such a book? I found a book, and it seems legit. Anything in C and OpenGL would be welcome.

http://www.amazon.com/OpenGL-Developmen ... hongrou-20

I kinda want to see if I can do something similar for Q3. I know IoQ3 has something similar, but I wanted to try on my own.

Am I looking in the right direction?




Top
                 

Cool #9
Cool #9
Joined: 01 Dec 2000
Posts: 44139
PostPosted: 11-11-2014 11:55 PM           Profile   Send private message  E-mail  Edit post Reply with quote


Quake 3's md3 format doesn't do skeletal animation. It uses a vertex animation system.




Top
                 

The Afflicted
The Afflicted
Joined: 21 Apr 2005
Posts: 563
PostPosted: 11-12-2014 05:50 AM           Profile Send private message  E-mail  Edit post Reply with quote


Oh, I understand that. I'm interested in learning how to create something skeletal, like MD5 or the ioq3 version in C.




Top
                 

Veteran
Veteran
Joined: 17 May 2011
Posts: 159
PostPosted: 11-12-2014 09:56 AM           Profile Send private message  E-mail  Edit post Reply with quote


ioQuake 3 supports IQM model format, which features skeletal skinning and animation. But I don't know if anyone managed to export and make run a rigged and animated skeletal model yet.

Here's some quick infos and documentation : http://sauerbraten.org/iqm/

I succeded in importing some static IQM model last year :) I'm very interrested in your quest ! please share your progress :)

I recommend you to read and follow the stuff made by David Rosen at Wolfire Games on his game Overgrowh : http://blog.wolfire.com/, and his latest GDC talk is actually quite impressive ! http://blog.wolfire.com/2014/05/GDC-2014-Procedural-Animation-Video



_________________
My blog - My portfolio
---------------------
MJDM2 - DmeatSP01 - DmeatSP02


Top
                 

The Afflicted
The Afflicted
Joined: 21 Apr 2005
Posts: 563
PostPosted: 11-12-2014 11:43 AM           Profile Send private message  E-mail  Edit post Reply with quote


Awesome. His stuff is kind of amazing. It's largely what's made me interested in learning about trying to see if I could learn skeletal stuff to bring something robust to Q3A, as a learning project.

I guess I need to search for something like this:

http://www.amazon.com/s/ref=nb_sb_noss? ... n%20opengl

But I'm not certain which one might be the most useful. Guess I need to dig through reviews, huh?




Top
                 

Veteran
Veteran
Joined: 17 May 2011
Posts: 159
PostPosted: 11-13-2014 09:47 AM           Profile Send private message  E-mail  Edit post Reply with quote


Yeah, and maybe digging tutorials on rigging characters in 3D software can make you aware of how the skinning / weight painting / skeleton setup is made, as well as the constraints, direct & inverse kinematics, controllers ... work. I use Blender to do stuff, and I'll be learning about this in the coming weeks.

If you don't know about Quaternions, it might be a good thing to read about it also :) I don't have a scientific background so I struggled a lot to implement them, but in the end, once you have working conversion tools, I guess you can think back with traditional euler angles :)

When David Rosen said that inverse kinematics were simple trigonometry, I thought 2 seconds and, yes, it's basically as stupid as that :)



_________________
My blog - My portfolio
---------------------
MJDM2 - DmeatSP01 - DmeatSP02


Top
                 

Veteran
Veteran
Joined: 17 May 2011
Posts: 159
PostPosted: 11-15-2014 03:34 AM           Profile Send private message  E-mail  Edit post Reply with quote


Oh and take a look at renderergl2/tr_model_iqm if you're looking for some info on how the skeletal stuff is handeled !

One question I'm asking myself is how much can be done to control bones (or joints if you use the IQM terminology) from the cgame code :)



_________________
My blog - My portfolio
---------------------
MJDM2 - DmeatSP01 - DmeatSP02


Top
                 

The Afflicted
The Afflicted
Joined: 21 Apr 2005
Posts: 563
PostPosted: 11-17-2014 10:27 AM           Profile Send private message  E-mail  Edit post Reply with quote


Thanks. I've done a lot of 3D stuff in the past, but have always been more interested in writing code that immerses players. Take the way characters in Q3 would lean if moving really fast. That kind of thing was always pretty interesting to me. 3D still is pretty relaxing to do, but I've never fully had my heart in it.

Image

Why do you think you wouldn't be able to control bones from the gamecode?




Top
                 

Veteran
Veteran
Joined: 17 May 2011
Posts: 159
PostPosted: 11-19-2014 01:23 PM           Profile Send private message  E-mail  Edit post Reply with quote


As far as I've understood -I'm not sure-, the game code only sends to the renderer the frame number of the animated md3, or actually the current two active frames (start, end) and a value that linear interpolates between them.

Since torso and legs are separated, they are treated as different render entities, with that "current animation frame" parameter only ...

Now that what we want to do is to have a single 3D object but that can have fixed animations + procedural animation (dynamic head orientation, the basic thing), I don't know if this can be handled ! Maybe it will be necessary to add a new "trap" function to deliver more complex info to the rendering engine :)

Cool Character ! I'm also working on a 3D character for a music clip right now :) it's always quite tough when you don't do it every day !



_________________
My blog - My portfolio
---------------------
MJDM2 - DmeatSP01 - DmeatSP02


Top
                 

The Afflicted
The Afflicted
Joined: 21 Apr 2005
Posts: 563
PostPosted: 12-01-2014 09:57 AM           Profile Send private message  E-mail  Edit post Reply with quote


I barely understand what any of that means. Actually, I just bought that book you mentioned in the other thread. Focus on Modding in Quake 3. I quite like it, but sometimes I get errors that make me wonder if you can debug with Q3 like you could with ET:QW. Also, that mod you were working on with 6dof? Have you made any progress? Doing something like that is basically why I'm even bothering with THE Q3 code anyway. I wanted to do something like that with ET:QW but I ran into some issues. :/

Thanks for the compliment on the character. She's basically an antagonist for a story. It's kinda hard striking a balance between doing art and trying to figure out how to get really good at programming.




Top
                 

Veteran
Veteran
Joined: 17 May 2011
Posts: 159
PostPosted: 12-02-2014 12:29 PM           Profile Send private message  E-mail  Edit post Reply with quote


Ganemi wrote:
I barely understand what any of that means. Actually, I just bought that book you mentioned in the other thread. Focus on Modding in Quake 3. I quite like it, but sometimes I get errors that make me wonder if you can debug with Q3 like you could with ET:QW. Also, that mod you were working on with 6dof? Have you made any progress? Doing something like that is basically why I'm even bothering with THE Q3 code anyway. I wanted to do something like that with ET:QW but I ran into some issues. :/


For my 6dof project, I actually had to modify some stuff in the client's source code and add some math operations (to handle quaternions). As a result, I don't think it can be released as a mod working with vanilla Quake 3 ... The project is in the junkyard atm, I've put my game projects on hold. I thought a little bit about it recently, and I think it could be interresting to try to finish it, now that I have more experiece. It'as also a project that would not require to much assets to prepare. But I don't know if the game will be enjoyable :)

As for debugging, I'm really far from pro, and I just add printfs all the time (G_Printf() for server game, CG_Printf() for client game side, Com_Printf() for everywhere else).

Ganemi wrote:
Thanks for the compliment on the character. She's basically an antagonist for a story. It's kinda hard striking a balance between doing art and trying to figure out how to get really good at programming.


I'm also aiming for that, but it's quite tough :) Actually, on my most recent project "Amon Drul", I also tried to work the sound effects myself, but it turns out I'm not good and imaginative enough, so next time I'll try to find someone to work with :)

The hardest part is actually keeping faith in your project and yourself ! With energy and will, anything is possible !

Do you have a blog or a thing where you share your progress ?



_________________
My blog - My portfolio
---------------------
MJDM2 - DmeatSP01 - DmeatSP02


Top
                 
Quake3World.com | Forum Index | Programming Discussion


Post new topic Reply to topic


cron
Quake3World.com
© ZeniMax. Zenimax, QUAKE III ARENA, Id Software and associated trademarks are trademarks of the ZeniMax group of companies. All rights reserved.
This is an unofficial fan website without any affiliation with or endorsement by ZeniMax.
All views and opinions expressed are those of the author.