I don't understand the stuttering in my animation loop

Hey everyone,

I wanted to make an endless loop of the classic wrecking ball goes through rotating torus (you’ve seen the concept before probably)

However, after keyframing, rendering and sequencing the video, it still stutters at every loop for about 1 frame. I’ve researched it a bit already and found that you must not have repeating frames to prevent stutter. So I put the keyframe 1 frame after the end of the animation. For example, frame 1 starts at Y rotation 90, and frame 360 is at Y rotation = 449, making frame 1 a 360 degree turn again. Moving frame by frame in blender, this results in a smooth transition every loop, however in VLC/Wallpaper Engine, a stutter persists.

Here’s an album of my render and keyframe setup.

I’d like to hear your tips on how to resolve this issue, and if it’s related to my sequencing, keyframing, or the software I’m using to play the mp4 in.

Look at your graph editor view. That’s what we need to see. What you’re describing should work-- but only in the context of both linear handles and linear extrapolation for your f-curves.

To make a smooth loop, you need not only the keyframes to be match, but also for the slopes of the f-curves to match.

1 Like

Ah I see

Here’s my graph. By the looks of it it’s stuttering because it ends at 361, yet my animation is made to end at 360? That’s my best guess

Extrapolation probably shouldn’t matter, but I’d set it to linear anyways just in case. Those look like vector handles for your fcurves?

You have exactly two meaningful keyframed values, right? 90 degrees rotation at frame 1, 450 degrees at frame 361? And you’re rendering frames 1-360? That should be correct. If I didn’t get some detail wrong there, I’d have to see the file to see what’s going on.

You are correct, it’s supposed to make a full 360 seamless rotation from frame 1-360, with keyframes on 1 and 361 (and manually added interpolating keyframes, shouldn’t cause issues though). What’s your discord? The blend file is small enough to be sent there.

Just find a web host. If it’s small, I’d recommend pasteall.org (no registration.)

Looked at the file you PM’d. (You might consider posting the link here-- other people can help too.)

I’m not seeing a stutter, either from running your animation in Blender, or rendering to a viewport animation. (Straight render gave me something blank, and I didn’t bother figuring out why.)

You have additional animation in the files that isn’t in your graph editor pic. It matters, but here, the other animation looks okay to me (same slopes, proper timing.)

However, you might want to think about the impact of motion blur on this (which isn’t going to show up in a viewport render.) I wouldn’t recommend motion blur for a seamless loop; if I was going to do it, I’d make sure that I had 3 good loops animated, over-render by one frame in either direction, and then remove the bookend frames in VSE. But I’ve never done motion blur with loops, that might be overkill.

The stutter is probably just from streaming in your video player. You can duplicate your frames in the sequencer, and output a video file that loops twice (or thrice). You can check that this is the case by running your frames in DJV. If they loop fine, the video player is at fault.

I wonder,

Here’s my .blend file. When played in the viewport, it doesn’t stutter, but when previewed with Ctrl-F11, it does stutter. I use VLC and ultimately want Wallpaper Engine to loop it, and it seems like the latter shouldn’t have an issue with that.

Thanks, I heard about motion blur causing problems at the first frames or something. I only started getting into animation the last few days so I’m a beginner to this. I’ll try rendering without motion blur, sequence it again and see how the results are.

I’ve never used ctrl f11-- play rendered animation? (I just load the file in a video player.) So I can’t say if Blender is any good with playing seamless loops. But if you’re seeing problems in your render but not in your viewport, consider problems that are specific to the render, rather than the viewport, problems like motion blur.

BTW, I watch videos in MPC-HC, and it’s not introducing any frame lag for short vids, although I know that there are viewers (and hosts, and converters) that can create stutter even from seamless loops.

Huh, what did you mean by rendering to a viewport animation then?

3D viewport, view menu -> viewport render animation.