Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

Impossible

Constrainting ragdolls to animation keyframes

This topic is 5302 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I saw some impressive Havok 2 demos at GDC, one of them showing a ragdoll being constrainted to keyframe animation. This was used for more realistic death animations (the standard use for ragdolls), but they could also make a character walk with a limp or a dead arm. There are a lot of interesting possible uses for combining physics and animation, but my question is how do you think they''re doing this? Here are a few of my ideas: 1) Simple animation blend. This seems really simple, and I''m surprised it hasn''t been done before (maybe it has?) Just blend the position of the ragdoll and the position of the animation keyframe. The ratio for the blend could be some kind of relationship between the forces on the bone and the bone''s resistance\muscle strength. The big problem with this is avoiding positions that intersect with geometry. You could tweak the tween ratio for each bone until you don''t have any collisions. 2) Constraint forces. Find the constraint forces for the animation in the same way you would for any other constraint. This is probably what Havok is doing and it seems like it would be pretty complex. Maybe it''s not that much of a jump if you already solve for constraints. 3) Simulated muscles\muscle forces. This probably wouldn''t work for animation, although the seemed to be doing it for other things (simulating a hamstring so legs bend realistically.)

Share this post


Link to post
Share on other sites
Advertisement
If the rest of the body is unaffected by the arm being limp... then you could simply animate the body as normal. And animate the arm using the ragdoll system... but simply constrain the shoulder of the ragdoll portion to coincide with the keyframe animated portion. That is to say simply pull the shoulder to where it has to be, and relax the system a few times every frame (or however much is appropriate). This is very simple to implement if you are using a verlet integrator (simply move the shoulder every frame). If you are using a higher order implicit, or explicit integrator.. then you simply have to update the higher order terms appropriately as well. In either case... I guess it''s pretty easy to implement. Obviously having a limp arm will not majorly affect the position of the rest of the characters body, so you can simply leave the rest of the body to move as normal, but for leg injuries... you''d really need a special limping animation. Once you have that... you should be able to make convincing incapacitated extremities. Another vague posibility, would be if the keyframe animation were simply defined by the extremities (ie an inverse kinematic system) where force were used to drive the limbs. In this case, one could simply alter the joint constraints to allow for special injury effects. I suspect that a system like that would however be harder to control, and might not be ideal. Another interesting option, would be to try and make algorithmic animation that could generate appropriate motion on partial bodies. This could possibly be implemented with some sort of neural network. Anyway... that''s even more complicated, so I''ll stop now, before I suggest something COMPLETELY ridiculous.

Share this post


Link to post
Share on other sites
Heh, I''d like to here your ridiculous suggestions. Endorphin, by naturalmotion does all kind of crazy biomechanics (it''s not realtime though). Also, they didn''t just have partial ragdolls, the keyframe animation was actually resisting the ragdoll forces. I doubt they''re using verlet.

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!