It looks like we need a locomotion system. Based on animations (half turn, turn, walk, run,…), we compute a parametric 2D Delaunay triangulation by extracting linear velocity (Y axis) and angular velocity (X axis). Then, from the user input angular and linear velocity (think of the player moving his pad direction stick), 3 animations are blended using the barycentric coordinates of the Delaunay triangulation. To get smooth transition, the barycentric can also be interpolated.
That’s for selecting the animations.

Side note: it’s possible to compute mirrored animations and put them in the locomotion graph (like mirroring 45deg turn right to get 45deg turn left)
Then comes the animations blending.
We had good results in my previous company by having local animation time per leg in order to preserve stance. This was not an easy task as the preprocess has to detect when the foot is on ground. But this gives the ability to orient the foot on non planar ground and do foot prediction for ground adaptation.
When an animation in added to the parametric, root delta position and delta rotation are stored per animation and also blended.
Every animation must loop perfectly but it’s also possible to add, during the preprocess, a loop detection.
That’s 2 levels of animation (locomotion + ground adaptation) and you need a 3rd level: the motion state.
It’s a state machine where each state can be lomotion, locomotion + additive animation, transition, …
Imagine a running character you control with your pad (locomotion). you press a button to jump into water (transition animation), once in water, the character swims and you control his yaw/pitch (second locomotion graph).