If your animation keys position from 0, then when you start playing that animation, it starts at 0. If you are using a mix duration, for a mix a -> b
it will transition from the position of a
to the position of b
. This transition is linear, so it will look like the bones move backward along the path. If you don't use a mix duration, a
is discarded and b
is played right away, with no mixing (crossfading) between them.
For a closed path, we could be smarter and choose either forward or backward, whichever is the shortest path. This has some complexities though, because the shortest path between a
and b
can change over time, since both animations are still being applied. This is the same problem with mixing rotations and the solution is quite tricky (see AnimationState applyRotateTimeline!). We might be able to reuse the same logic, but it would make that tricky code even trickier since paths are percentages, not angles.