Full Character Physics

Started by
7 comments, last by sflare 20 years, 7 months ago
Is it currently possible (for "real time" video games) to have humanoid characters be animated entirely by a physics engine with complete collision detection (greatly dynamic)? for example: By this i mean to "walk" is to move your legs in the correct way and having friction actually move the character. Characters would need to have correctly done self-collisions with their body parts and all other objects in a scene. I would be considering no more than 100 of these bodies would need to be simulated at once against your regular game world (including your odd ~1-6 other characters in near proximity) I haven''t done much research into this but i just want to see what people have to say about this As far as i know most(all) games seem to use premade animations (keyframe) for most things What are your thoughts or better yet experieces on this? Will this be far to slow.....?
Advertisement
I think premade skeletal animation can be made to be modified to physics. A walking man''s shoulder is pushed. The shoulder gets a force applied to it and the shoulder joint can be moved correctly by physics calculations. The animation that was playing then also applies a force back upon the shoulder to return it to it''s proper position to continue the walk animation. I guess if you apply a great enough force you can figure that the man has to fall over and the walk animation is canceled for a get up animation after the the body hits the ground and stops.

Just off the top of my head.

~Wave
If the answer to the question is yes/no, it would be yes.

*However*

There is a limit of how many calculations you can do, which limits how many characters you can create at once or how many individual pieces you can break a character into.

You should be able to do full simple-object (sphere/cylinder/box) collisions for every head/arm/leg/torso/hand/foot for a lot of characters if you do quick shortcut comparisons (if character A is not even remotely close to character B, don't bother checking their body parts against each other)

[edited by - Nypyren on September 3, 2003 2:11:04 AM]

[edited by - Nypyren on September 3, 2003 2:11:22 AM]
Walking turns out to be incredibly complex, kinematically speaking. Bipedal robots are still very difficult to design well, and what you''re suggesting is really in-game bipedal robots. Probably not worth the huge amount of fine tuning necessary to keep them from falling on their asses every three seconds.

How appropriate. You fight like a cow.

www.naturalmotion.com
Comercial ... Everybody is trying to make big Money alla Carmack and ends with Homepages like this ...
J.A.N.K.E.Y.: Journeying Artificial Nocturnal Killing and Exploration Youth
quote:Original post by Wavewash
I think premade skeletal animation can be made to be modified to physics. A walking man''s shoulder is pushed. The shoulder gets a force applied to it and the shoulder joint can be moved correctly by physics calculations. The animation that was playing then also applies a force back upon the shoulder to return it to it''s proper position to continue the walk animation. I guess if you apply a great enough force you can figure that the man has to fall over and the walk animation is canceled for a get up animation after the the body hits the ground and stops.

Just off the top of my head.

~Wave


There are some ragdoll physics tutorials kicking around, that help you with inverse kinematics and stuff. look for an article on character physics in www.gamasutra.com. Blends a keyframe animation with physics applied on characters.

Everything is better with Metal.

it is possible to simulate physics realistically and quickly enough for characters, but any level of interaction with them becomes obscenely complex, because you have to evolve or train any behaviors you want the character to exhibit at the muscle level.

using the walking man, shoulder push example:
as soon as the shoulder is pushed, depending on how hard it was pushed the character will have to either compensate with their body, or take a step to regain their balance. you also have to train in trips and stumbles and moving on uneven ground. this can be done, but is certainly not trivial. if i''m not mistaken, ODE was developed to allow research into these areas.

the difficulty of achieving behaviors that are successful (the character can walk, climb, run or whatever over varying ground types) is ridiculous, and to get the behaviors to mimic more complex human behaviors (grasping, manipulating, etc) realistically is even more challenging, and probably prohibitively expensive from a development time point of view for games.

what i will be doing is using premade animations with conditions and triggers for other animations, eg. if the front of the characters foot records a significant collision while walking, start the stumble animation, and when there is no suitable animation, drop down to a ragdoll. for minor movements like picking up objects, this will be replaced with IK based animations. this should hopefully allow for some fairly complex and dynamic interactions without having to evolve the behaviors themselves.

a possible extension of this idea would be to jump-start the evolution of behaviors with an expert system like i just described, and use that as the starting point for fine tuning physically correct responses. assuming the animators of the base responses have a good sense of weighting and inertia, this hybrid approach would probably give better results faster than trying to develop the behaviors based on a ruleset and simulation exclusively.

just my two cents,
james
Yes.. after i thought about this long enough

i do realize it would far to difficult to get things running in a nice way (i would indeed need much AI to be stable enough to do tasks)

also a simple task like holding something (say a sword)
would need much calculations (forces in arm/hands to hold and lift and balancing due to weight).

The pre-made animations blended with some physics and alot of various possible conditions seems to the most logically (and easier) to do.
I plan to do this type.

But still, i''d rather do something not done very much
(that naturalmotion seems good, but i wonder how good it really is)

This topic is closed to new replies.

Advertisement