Game Development Community

Returning to Root pose once a thread is stopped

by Jared Schnelle · in Torque Game Engine · 01/30/2003 (2:17 am) · 3 replies

I am working on the animations for a player I've recently created.

Some people in IRC told me to have the animation go through the root pose at frame 0, so everything lines up. I didnt fully realize that importance until I started working more with the animation today.

Here's my problem:
-I created the animation for the arms moving back and forth, for use while the player is running. Since the animation will cycle over and over, while the player runs, I obviously want this to be a fluid movement. I animated the arms, as follows:

:: Frame 0 :: The Left elbow is back, right elbow forward
:: Frame 16 :: The Right elbow is back, left elbow forward
:: Frame 32 :: All positions returned to be the same as Frame 0.

This animates great; however, if I .stopThread(threadnum); on the arm animation, it returns the character to the location specified by :: Frame 0 ::, this is left elbow back. So, once I stop running, my left elbow is back, and my idle animation then plays funky.

What are some alternatives? How can you model a looping arm animation that passes through the root pose, ever? How would it not have a hitch at Frame 0, if you included the root?

This brings me to another question. I was talking to someone in IRC earlier today about an idea. What if we could treat the .dsq somewhat like a .dts with animations exported within the .dts? To explain further, Animate Frame 0->1 to be the root pose. Frames 2->34 would then be my running animation for the arms. I would then add 2 scene objects. The first would be for frames 0->1 and I'd call it Arms_Root, then for frames 2->34 I would place another and call it Arms_Run.

Then I could make some internal source changes to look for a Root pose in the .dsq, and if it is, the cycles only use frames 2-> and on to cycle, but when you shut it off, it would still return to frame 0, the correct root pose.

I dont know if this is currently possible without source changes, but if any suggestions are out there, I'd like them.

Thanks,
Jared

#1
01/30/2003 (4:55 am)
I'm not sure if this is correct(haven't done any player animation) but I believe your animation in the keyframe 0 should be how you want the player to be when they begin their run (arms at normal postion) so when the animation is done it will go back to that position at the end. So what i'm saying is your keyframe 0 that you have currently should be keyframe 1 and your keyframe 0 should be the same as your keyframe 32.
#2
01/30/2003 (1:10 pm)
The animation loops correctly with how I have it set up, but it's simply not returning to the root pose.

Hopefully this picture explains it.

www.rykos.net/idle.jpg

-Jared
#3
01/30/2003 (2:29 pm)
**Edit**

Ok removed this post, because it was wrong. Through my carelessness I thought it was performing a certian way when it was not.

So far the only way I've found to reset the arms back to the root position is manually calling a .playThread(0, "root");

This seems really lame, so I'd appreciate any other ideas.

-Jared