I know there have been a number of posts on blending animations, but I haven't been able to find a solution to my issue. Currently I'm trying to blend between a walking and running animation using TrackEntry.alpha
e.g.
TrackEntry track1 = skeletonAnimation.state.SetAnimation(0, walkReferenceAsset.Animation, loop);
TrackEntry track2 = skeletonAnimation.state.SetAnimation(1, runReferenceAsset.Animation, loop);
track2.Alpha = 0.5f;
However this method appears to rely on the two animations being the same duration, obviously a walk cycle and a run cycle are going to be different lengths. I've tried changing the MixBlend value on TrackEntry as well, but changing from the default value of Replace only makes things worse.
I've found that I'm able to get a nice blend using SkeletonMecanim and Unity's built-in Blend Tree, however if I use Mecanim I can't use Spine's IK constraints. I require both for my project.
It looks to me like Spine isn't normalising the time between the two animations when it calculates the blend, but I'm not sure. Is there a way I can manually apply the blend?
I've also done a screen recording to demonstrate the issue. On the left is a Mecanim Animator using a blend tree, on the right is a SkeletonAnimation using the TrackEntry.Alpha property. It's easy to see how the SkeletonAnimation breaks down pretty much immediately compared to the Mecanim blend tree.