Hi,
Is it possible to create characters that can be pushed like a ragdoll, then they stumble but ‘find their feet’, weird example but the google dog perfectly illustrates what I mean - YouTube.
Could this be achieved through Inverse Kinematics?
Thanks!
Just about anything is possible but it might require more work than you would like.
A simple solution might be to animate a stumble motion and play it when needed.
you can add complexity to this by using the IK targeting to make the feet touch the ground.
See Manual/InverseKinematics
However this approach will be “scripted” in that it won’t react dynamically to all terrains and directions…
for that things become a little more interesting.
(I’m working on a similar function myself. If anybody has a more elegant/simpler solution then please contribute.)
From my experience…
you will need to write some scripting to deal with the stumbling action.
This script will…
- Track the position of your characters center of gravity.(the hips)
- compare it to the position between your character’s feet.
- Determine with this that the character is “falling.”(when the difference is too great)
- Determine which foot is the furthest from the center of gravity.
- Give that foot a new target in the stumbling direction, on the far side of the stumble.
- Have an IK process reposition the leg/foot towards that new point.
- Maybe at this point, give some backward resistance to the stumble force…
- Repeat steps until character is no longer falling.
In theory this solution could be used to create a fully dynamic walking character that will react to any situation…
In practice it is very technical and tricky to perfect (especially if you have a giant crab creature like I do)
Once it works perfectly you’ll never need to animate the walking, running or stumbling of any limbed creature again.
The process I described above is a very simplified version of what they try to do in robotics. see A Fast and Smooth Walking
Pattern Generator for Biped Robots