Animation stuff

In my first post about Subsurface, I mentioned “a procedural animation system which takes care of animating the characters (which are ragdolls run by Farseer)”.

Early on I decided that I will be using ragdolls simulated by some physics engine to get the characters thrown around by water bursting through a hole in the wall or dragged around by water flowing from room to another. Letting the physics engine take control of the characters when a water current is too strong or a jet of water hits them hard enough, but how would I get the characters to react to the water when they’re controlled by the player, not a ragdoll thrown around by the physics engine?

I decided to let the physics engine be in control of the characters constantly: the characters are animated by applying varying amounts of forces to their limbs. Thanks to this, they automatically react to the world around them. For example, a water current exerts a force on the limbs that are underwater, making the characters struggle to move their legs against the current, and carrying something heavy affects the posture and walking speed of a character.

Here are some clips of the current state of the animation system. It’s still a work in progress – as you can see, the movement is still pretty comedic at times (QWOP, anyone?) and especially turning around looks really unnatural.










Here’s also a clip of our hero trying to shoot a placeholder monster with the placeholder turret he just loaded:

Subscribe to our newsletter

Comments

  • December 10, 2014
    reply

    Great looking work.

    Unique concept and style!

  • December 10, 2014
    reply
    Xeno

    The animation looks awesome for an 2D game in development, I hope to see more of the in game mechanics.

  • December 11, 2014
    reply
    juanjpro

    Looks nice so far.

    Just wondering, is this framerate-independent? Seems like you need to apply a bunch of different forces for this to work, which might be difficult to do correctly if the game isn’t running at 60 FPS.

Post a Comment