Issue with mixing Animator and Timeline animations

First, thanks for creating Timeline, have been using it quite a bit on our game-in-progress and, particularly because of the design of our game, Timeline sequences are quickly becoming what we’re basing our game around technically.

After updating to 2017.1.0b1, I’ve run into an issue where Timeline animations will no longer smoothly blend in or out from what’s currently going on in the Animator/Mecanim - instead they blend to/from their T-Pose if you have an easein or easeout time set, and even when a clip is fully blended out on the track (ie. there’s no clip where the play head is) they’ll be in the T-Pose. If you reduce the ease times to 0, they play their Mecanim animations correctly when there’s no clip overriding it, but obviously snap from the Mecanim animations into the Timeline ones. Seems like potentially a bug in the Animation Mixer?

I’ve tried playing around with the various types of Animation Extrapolation options, but none of them seem to fix the issue.

(To make it extra clear I’m talking about the functionality showcased in the Unity 2016 talk here:

at t27:46.)

Oh, just an update on this - just realised that even when the ease times are 0 it doesn’t properly play the StateMachine animations; it just blends to/from a different fixed pose.

Hi,
in 2017.1 lot of thing changed and b1 unfortunately was missing lots of bugfixes for Timeline.
Can you tried with B2 or even B3 that just got out? It should solve the issue.

thanks!

I am using b5 and it is definitely the case for me that when a clip is absent on the animation track, or when easing is down, it does not play the underlying Mechanim animation (which is clearly evaluating based on state progress indicators), but instead sits at a fixed pose.

Is this a bug or is there something wrong with my animations?

1 Like

Any chance you have Extrapolation set on the clips? That will hold/loop the pose (depending on the animation clip settings). They are set to on by default.

The state machine-timeline blend will only happen in PlayMode, in Edit mode it should just blend from a bind pose.

1 Like

Thanks seant_unity. I have set all of my extrapolation values to none. Still, any empty space on the track while in play mode results in a static pose. Any other ideas, settings to watch out for, etc.?

Apologies for the delay in reply thierry_unity and seant_unity - I’ve also just upgraded to b5 and am still getting the issue, regardless of the extrapolation setting. I’ve attached screenshots of my Animation Playable Asset’s settings and the Timeline in question, during play mode.


Any chance you could post a bug with a repro project?

Hi seant_unity. I should have some time to do this in the next couple of hours.

seant_unity, I have submitted a bug report and repro project (from my @apache.co.uk account). If anyone’s interested, you can download the repro and try it yourself here: https://we.tl/ki8bgidXRe

Great thanks! I had a look at the project. You can make it work by turning on the ‘Apply Root Motion’ on the animator.

Timeline has root motion on, and since Timeline and the Runtime Controller are blending, root motion is being applied during the gaps on timeline. Which is why the object stops.

If the animation was animating children in it’s hierarchy those would be applied, root motion or not.

I heard back from Vidmantas Luneckas on the Unity QA team. His response:

“This behaviour is intended. The animation track that manipulates the hierarchy (including the root) overrides the animations that are played by Animator. You can, however, parent the cube and animate the parent in the Animation track instead. This way everything will be played.”

I find this kind of an unsatisfying answer, especially given this is clearly not what’s happening in the above-posted video. I have got back to Vidmantas linking the above video and asking some more questions. I will respond here if I learn anything more.

Thanks Sean! Applying root motion works!

That said, I’d rather not use root motion as I have found that when scrubbing in the timeline my objects regularly end up in unexpected places. Also, using easing results in animations with translation stopping short of their desired destination.

Can I tell the timeline to not apply root motion? Alternatively would you kindly go into more detail about your third paragraph, which seems to suggest another way altogether to get around this?

Forgive my ignorance! As you can see from my project, I am not an animator! I am evaluating the timeline from a tech/toolchain perspective. :¬)

No, you can’t tell timeline to not apply root motion, at least not today. You can toggle the flag in the animator, either from a script, or a custom playable, but applying root motion on your state machine part of the time could cause more problems.

As for my third paragraph, I just meant that if there was an animated hierarchy on the object, only the root transform would not be updating. The rest of the object does animate regardless of the root motion flag.

Hi Sean. So I tried what you mentioned re: hierarchy animation. I’ve found that the animation now doesn’t work at all during track empty space, even when applying root motion. Would you mind taking a look at this project? WeTransfer - Send Large Files & Share Photos Online - Up to 2GB Free

After mucking around for a while today I figured out some more information about why my Timeline animation clips don’t blend properly with the Animation Controller animations, while the ThirdPersonController (Ethan) out of Standard Assets does - it seems to be because my model & animations’ rig AnimationType is set to “Generic” instead of “Humanoid”. Changing it to Humanoid fixes the issue, but we had it set to Generic because that was fixing some other unrelated issues for us.

Based on my tests, you should be able to take any AnimationController hooked up to a model/anims that’re set to Generic and reproduce the issue, but let me know if you’d still like a repro project submitted for this issue, and I’ll try to find some time to do it later this week.

Thanks for chasing this up!

1 Like

Sorry for the delay replying. We are looking into it.

Thanks! You probably saw my bug report with a repro case come through the other day, but posting it here just in case: https://fogbugz.unity3d.com/default.asp?913397_n1ff4q5gghks6eej

Hello guys,

any updates on this issue yet ?

im also trying to test smooth blending between an generic-animated object’s animator state and another animation clip for it for when the timeline starts but no blending seems to take place, it just snaps when timeline starts

i did set extrapolation to none and tried to enable/disable root motion

Try setting the ease-in value on your initial animation clip.

1 Like