How to do crossfade of animator driven by timeline?

I know there is Animator.CrossFade we can use. But there are differences.

In my ARPG project i use a mechanism to manage a character’s state by direct play timeline asset on PlayableDirector. It’s more convinient and powerful than using animator directly for our so many custom tracks and behaviours.

Now we want to mix current and previous animation. And most impotant things to not to make the problem so complex :

  • Each one director bind only ONE SAME animator event with different playable asset;
  • Only animator need to do crossfade, other tracks including build-in ones like audio, control do not need;
  • No statemachine in animator. We need to dynamic change the whole state in runtime;

For 2D animation we know about a third-party plugin named Spine. It can be controled by timeline, and mixed by itself. We think it’s a good solution ( maybe not so good on performance ).

So is there a solution for 3D animation?

You might be looking for something like Timeline Mixer

It lets you fade between timelines as you’re describing, it has easy to use FadeIn, FadeOut and CrossFade methods. If your Timelines Animation Tracks are targeting the same object it will blend the animations. It does also do audio track mixing by default, and can be configured to mix custom tracks as well.