I have a small animation of a character in Blender 2.8 that is suppose to loop, however no matter what I try to do, there is always a little "hiccup" where the animation ends and starts. Things I've tried doing:

  • Changing interpolation to Cyclic;
  • Copying start frame and placing it one frame AFTER the animation end;
  • Manually adjusting curves in the graph editor to make the transition more smooth.

After all of that, the animation simply does not loop correctly. The place where it starts/ends is very noticable. Despite the begining and end frames being identical, it being cyclic and having the curves adjusted.

Is there a tool, or a function or something I'm missing to create loops in Blender, or is this simply not possible to achieve?

Blend file: https://www.dropbox.com/s/nngunwosevrh5w9/loop.blend?dl=0

  • $\begingroup$ I'm not sure what's the problem, I can't see any hiccup, could you precisely tell what bothers you? movement of the head? $\endgroup$ – moonboots May 29 '19 at 17:02
  • $\begingroup$ Preciselly the head. Where the animation starts/ends it looks like the head just stops for a split second or has some kind of jolt to it. $\endgroup$ – Pherion May 29 '19 at 17:05
  • 1
    $\begingroup$ I don't see it, it looks like it's just your animation playing, and anyway if it happened there's always a way to fix it $\endgroup$ – moonboots May 29 '19 at 17:29
  • 1
    $\begingroup$ Try render it out to see how you will perceive it where there are nothing else going on. Even when I maximize the window to get rid of the popping time line it seems to help. The brains experience of time can be easily disturbed. $\endgroup$ – Jackdaw May 29 '19 at 18:16
  • 1
    $\begingroup$ Also, everything is synked at first keyframe... if you want to make it feel seemless you need to offset the motion so there is always something interesting going on. $\endgroup$ – Jackdaw May 29 '19 at 18:25

I usually key the first frame on frame 0 and output from frame 1 onward. This has to date never failed me.

Maybe your problem has a different source, share the file if you can.

Edit: I rendered out the image sequence, then composed it. First, I assumed your hickup was just a slight buffering error from your video player, but then I compared the first and the last frame from the output, which were identical, causing a 2 frame hold.

Your first and last frame of the loop must not be identical, or you will get these slight stutters. An easy solution to that problem is to either:

  • push all keyframes one frame forward, so they are outside of the render area,
    • or shorten the render interval by one frame.

So I pulled the last frame and rendered a video. Seems gone now.


| improve this answer | |
  • $\begingroup$ I tried that and it didn't work. I added the blend file to my question. Take a special look at the head of the character. You'll see that "hiccup" that I'm referring to. EDIT: I'm using Blender 2.8 $\endgroup$ – Pherion May 29 '19 at 16:41
  • $\begingroup$ I don't see any hickups in the viewport. So I rendered out an image sequence and composed that into a video. This is also flawless. My guess is, you are using a viewer that rebuffers the video each time it gets played. Try it by playing this clip which is simply the comp playing twice in a row. (Up with the answer) $\endgroup$ – Ben May 29 '19 at 20:09
  • $\begingroup$ I think your right. I use VLC player. But amybe I should play the animations somewhere else? $\endgroup$ – Pherion May 29 '19 at 21:00
  • $\begingroup$ You can try that. your loop file is clean if you make sure that the first and last frame are not identical, at any rate. Again, see the video link I added above. $\endgroup$ – Ben May 29 '19 at 21:06
  • $\begingroup$ I saw the video. It is seamless there. But you said I shouldn't make it identical? $\endgroup$ – Pherion May 29 '19 at 21:19

I had the same problem and I finally found a solution. My keyframes were using Bezier interpolation by default. I switched over to Linear interpolation and it worked!

You can do this by going into the Graph Editor, then select all your keyframes, then press T and select Linear.

Note: As others suggested you will also have to shorten the render interval by one frame.

| improve this answer | |

If your first and last frames are identical, it means that you will be seing two frames in the same position, so there will be a pause. It will be for a fraction of a second, but can still be noticeable.

If your animation was say, 100 frames long and frame 100 is the same as frame 1, then after showing frame 100, you're effectively showing the same frame again. Loop from 1 to 99 and you're eliminating that duplicate frame.

So you either need to use one frame fewer, or render an extra frame (as your final set of keyframes), but don't use it in the actual animation.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.