Animator does not make transition if speed = 0

I have an animator with two states: Idle and Running. I have a variable called “speed” used to make the transition between states and also “speed” is the multiplier for the Running state clip speed.

In code I tie the speed of my character with this “speed” animator variable but when the character comes to a stop, the animation freezes and the animator is kept in the Running state. If I remove the multiplier, the states changes as expected but this is not the behaviour I want, because my character can move at variable speeds.

So after a lot of tests, I came to the conclusion that if the animation speed is 0, then it won’t make a transition until speed is greater than 0.

Any ideas to overcome this limitation?

Change the translate time from percentage to fix duration.

I’m having this exact same issue. Does anyone know of a solution?

EDIT: Actually, I think I may have figured it out. Regardless of whether or not the clip uses an exit time, I think you need to set the transition time to zero. That appears to have fixed it for me.

Check if the idle animation has been imported to loop, as it may be playing only once.