Saturday, June 15, 2013

Witch Hunt character animation

So have decided to do a write-up on the animation system I worked out for the main character in Witch Hunt, which I am rather proud of. Here goes:

The first iteration of the character was completely movement based, her animations only responded to your movement, and ignored any firing or reloading actions. Also, the actual walking animations did not blend together very well:
Example #1

For the next iteration of the witch, I created run cycles for the legs, and shoot and reload cycles for the upper body.

Example #2

The obvious weakness here is that when the character is running, the upper body stays completely static. I couldn't easily animate a walk cycle above the waist, because firing or reloading would interrupt it. After pondering the problem for a while and trying a few different approaches, this is what I came up with for the next iteration:

First, I created the run cycles the same way, freezing all motion above the pelvis. Here's the forward run as an example:

Next I made the shooting and reloading animations, but this time I also made a walking-with-weapon animation. Here are the animations for a couple of the guns:

Now I again had a witch that could walk and shoot at the same time, but she suffered the same problem that Example #2 had: a very stiff upper body. The solution I came up with for that was to procedurally bend the spine to the left and right with a sine curve clamped to the walking animation. Since it's only bending to the left and right of the facing direction, the movement of the spine does not throw off the character's aiming direction. Extra procedural animation was added to the head and hat to complement the movement of the spine.

Example #3

As you can probably see, there are still a few flaws here I have yet to fix, but it addresses most of the major issues I was concerned about. I'd like to see if I can figure out a good way to add some forward and back spine motion and compensate for that in the shoulders.


Post a Comment