Acceleration when not using cyclic curves

posted to: Looping Ball

Hi, I'm trying to understand the behavior of Blender when creating the animation curves. I did the setup by creating the 5 keyframes (frames 1, 21, 41, 61 and 81). The curve is a Bezier curve. But when animating (which can be seen in the motion path), around keyframe 1, it behaves as linear or vector, so the movement is not really smooth. Its like it has an acceleration and deacceleration at the start and end of the animation, even though is not really following the animation curve. 

1-NonCyclic.png

2-curve.png

When I extrapolate the channel to make it cyclic, then the animation is ok around frame 1.4-cyclic curve.png

3-Cyclic.png

The part I don't understand is that animation is set from frames 1 to 81 in both cases. Shouldn't it follow the curve inside the frame rage which is the same in both cases? If the keyframe was not setup correctly making it cyclic would change the last frame, but in this case the keyframe was already in the correct position, so extrapolating should only change the curve outside the period that was set manually....

  • Adrian Bellworthy replied
    Solution
    The speed up (Start) and slow down (end) is the behaviour of the Bezier curve, The motion will accelerate gradually from a stationary start position and decelerate approaching a stationary end position.

    By making cyclic, notice the curve change outside of the playback range.
    What making cyclic does is join the dots basically and the start and end keyframes are no longer stationary positions, they are part of the continuous loop.
    With that there is no longer acceleration and deceleration.

    What making cyclic doesn't do is change the keyframe (location).
    As I said it kind of joins the last and first keyframe to make a continuous loop.

    Also make sure your playback end frame is one frame before your last keyframe.
    If your last keyframe is 81, end the playback at 80.
    Or you will have a stutter in the loop. The ball will be in the same position over two frames.
    • 🎯
    1 love
  • Mauro Ornelas(mauroornelas) replied

    Thanks Adrian, makes sense. I also see the point about setting the playback to end at frame 80.

  • Wayne Dixon replied

    Yep, that is the X location curve slowing in/out at the start of your loop.

    With the auto clamped handle type there will be no overshoot.

    It will automatically slow in/out of the keyframe if it is an extreme, or continue to flow through with a smooth curve if there is somewhere for it to connect to.

    You will notice that this doesn't cause an issue for the Z curve because the loop is happening at on of its extremes.  However, the loop happens halfway through the cycle on the X loc curve.

    Yes Adrian is also correct about the playback range.  You don't want the first frame to repeat, so you end the cycle 1 frame before it loops.