Movement Animation Design Review

Hello,

I’ve been working in designing an animation system for a standard wasd movement scheme, and have been hitting a few struggles.
In this game, the perspective is top down (think isometric) and the character is always looking at the mouse.

What does this mean for animations?
Well it means that w doesn’t always mean walking forward. w could mean that we’re walking left, because the character is looking to the right.

The problem then becomes, how do we solve this for animations?
My solution was to use a blend space based on speed and direction.
Through much trial and error, it looks somewhat reasonable.

One thing I’ve been heavily struggling on is getting the blends to not feel so chaotic or rigid sometimes. What do I mean? Well, if I do a bunch of abrupt direction changes, sometimes the animation seems to snap to the middle of another animation, or they don’t appear to quite blend right.

At the moment this blend space pretty much handles all animations.
Even if it were a state machine, it would be one state.

So I suppose I’m looking for some advice, am I doing something wrong, or could this be improved?

I’m going to include more details in a few follow-up replies.

I feel l like a video would be helpful, but wasn’t sure the best route to add one if that’s not against ToS.

Here’s a snapshot of my blendspace, you’ll notice there are 8 directions that each have a specific running animation.
Starting at 0 speed, it’s a copied idle animation, then as we go to the top speed 600 the running animations are selected. 500 was actually selected because it seemed to look slightly better for smoothing.

I have tried toying with many settings, but this is the best I’ve gotten so far.

Things tried:

  • Smoothing time, and smoothing types with various ratios.
  • Wrapping and snapping to the grids with both inputs. The current settings look the best.
  • A big improvement was when I removed walking animations (Which sat around 200 speed), this cleared up a lot of the jarring blends.
  • Creating a state machine that changes states if it detects a direction change, which all pointed to the same blend space. I figured this might be able to leverage the sync frames.
  • Needless to say the above involved me trying to set up syncs in the animation, never really got good results.

Here’s the state machine (this felt very hacky) that attempted to leverage footstep syncs.
Unfortunately I don’t even know if it worked because things still looked the same after trying this.

Each state was simply the blend space.