7
$\begingroup$

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

$\endgroup$
10
  • $\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, 2019 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$
    – user15147
    May 29, 2019 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, 2019 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, 2019 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, 2019 at 18:25

4 Answers 4

5
$\begingroup$

Another way to fix: dont use double frames like all answers above already sugest. then: go to and select the frame where your animation starts."also leftclick onto it to make shure your on that frame. then: "Timeline", "Dope Sheet" or "Graph Editor"(doesnt matter realy what your using) "Shift + E" -> Make Cyclic(modifier)

$\endgroup$
6
$\begingroup$

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.

https://youtu.be/kwSuWkUF8k4

$\endgroup$
7
  • $\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$
    – user15147
    May 29, 2019 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, 2019 at 20:09
  • $\begingroup$ I think your right. I use VLC player. But amybe I should play the animations somewhere else? $\endgroup$
    – user15147
    May 29, 2019 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, 2019 at 21:06
  • $\begingroup$ I saw the video. It is seamless there. But you said I shouldn't make it identical? $\endgroup$
    – user15147
    May 29, 2019 at 21:19
3
$\begingroup$

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.

$\endgroup$
0
$\begingroup$

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.

$\endgroup$

You must log in to answer this question.