Making a perfect Loop

I’ve been trying to create a perfect loop of a cube just doing a circle but without it ever stopping. Similar to a walk cycle.

But it always slows down at the end for some reason. I opened up the graph line and did Shift+E and selected “Make Cycle(F-Modifier)”

But it still seems to stop at the end when I play it on VLC.

What am I missing exactly?

Here is the Blend file:

Animation test.blend (1.04 MB)

Very likely, Blender is animating the loop with an “ease-in” and an “ease-out” to the start and end of the cycle. You can fix this by changing the animation-curve type from a Bezier curve to a straight-line.

When you do this, the curve (as seen with “Cycle” turned on) will be a sawtooth of 45-degree ascending lines as the rotation amount progresses linearly from 0 to 359 (not 360 …) degrees. Right now, I suspect you’ll find the line is curved at both ends.

Your curves at the start and the end frame need to be vector handles (Key - handle type - vector) and then you can adjust the curves to make it look better. Also your keys aren’t symmetrical so it won’t be perfect anyway. This is a bit of a pain though.

A better way if you need a perfect animation is to use the built-in function modifier instead. You do that by removing all of the keyframes, adding one and then selecting the transform you want to add the modifier to and then clicking the Add Modifier button under Modifiers in the graph editor.

Here’s an example:Animation test function.blend (151 KB)

First of all: you set keyframes for location, rotation and scale. But you only use the keyframes for location. Therefore I suggest you deleting the other ones (select them in the Graph editor, press X) to make it easier to see what the curves actually do.

The slowing down at the end (and also during the animation) is based on the interpolation style. By default it is set to bezier which smooths the curves. To avoid that, set your curve(s) to linear interpolation.
To do so, press N in the Graph Editor and select a curve. In the active keyframe panel you can change the interpolation mode.

EDIT: the solution of Cyaoeu is far better than mine, so stick to it