Destabilize walking character

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…

  1. Track the position of your characters center of gravity.(the hips)
  2. compare it to the position between your character’s feet.
  3. Determine with this that the character is “falling.”(when the difference is too great)
  4. Determine which foot is the furthest from the center of gravity.
  5. Give that foot a new target in the stumbling direction, on the far side of the stumble.
  6. Have an IK process reposition the leg/foot towards that new point.
  7. Maybe at this point, give some backward resistance to the stumble force…
  8. 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