Animations not looping correctly

I am working with some looping animations. These animations are split into animation clips inside of unity. These animations loop perfectly in Maya. They also loop perfectly in Unity’s animation editor when scrubbing through the timeline. However when actually playing the animation in Unity’s animation editor (no longer scrubbing) there is a jump right before it loops. Why is this occuring and what can I do to fix it? I do not have loop checked (the little box that generates an extra frame to fill in if you dont have a looping animation.

I know one possible solution would be to add like 10 buffer frames at the begining and end of each animation, however I would like to know if there is any other way to fix this without changing my animation/ seems like a problem with Unity’s playback.

Same happened to me. And the weird was that in shorter animations it didn’t happen as much!

It turns out I had a transition from the special state “Any State” to the default state “Idle”.
In the properties of that transition, by selecting “Idle” in the “previous source state” property, I noticed the two timelines were overlapping by some amount of time (actually, some % of time, hence the reason I didn’t notice the same effect on short animations).
So what was really happening, wasn’t the animation looping, it was the state that was changing before the end of the animation (from “Idle” to the same state “Idle”).

I just deleted the transition from “Any State”, but setting it’s checkbox to mute should also work.

My guess would be to add extra frames in the start/end of animation.

How do you check looping when scrubbing through the timeline?

http://forum.unity3d.com/threads/96926-Splitng-animations-in-Unity-modifies-tangent-on-last-key-frame?p=631885#post631885

@SinisterMephisto

I think your right. To remedy this I cut out the last frame for each clip and added a looping frame which was a good enough solution for me and didnt require me to spend time adding buffer frames. Is there anway to tell Unity not to adjust the tangents?

I had a walk animation that was not working correctly after upgrading to Unity 4

basically it would reach the end of the animation and stop, even after I explicitly set the wrap mode to loop

My solution was to check to see if the walk animation got to its last frame and then stop the animation, then if it isn’t playing I play it again

Here’s how I look to see if the walk code has reached the end. The walk animation is 30 frames long. C sharp code:

if (Andy.animation["walk"].time*Andy.animation["walk"].clip.frameRate >=30){
           Andy.animation.Stop("walk");
        }

If this ever happens to anyone in the future and these solutions don’t do it for you, look at your animation import settings. You may need to lower the rotation/position/scale error tolerance a bit.