Creating Function Curve Cycles

 
 
 

The Cycle commands in the Curves Pre/Post Extrapolation menu on the fcurve editor's toolbar provide you with several quick ways to repeat animation. By using these controls, you can create repetitive motion including bouncing, spinning, or oscillation effects. You can create basic endless cycles or you can have relative cycles that are progressively offset, such as a walk cycle that moves forward in space.

When you create a cycle, only the original fcurve retains its keys: the resulting cycles don't have any. However, there is a "relational" link between the original keys and their counterparts on the resulting curves. This means that you can change a key in the original segment and those changes are automatically reflected in the cycles (you can add or delete points, move points, change the slope, etc. — it's all updated in the cycles). You can also switch between different types of cycles at any time.

If you want the resulting cycles to have keys, you have to freeze the cycles as described in Freezing Fcurve Cycles.

Tips for Creating Seamless Cycles

  • If the first and last keys points on the fcurve segment you want to repeat do not have the same value, there will be some jumping in the animation as the object snaps from the last frame to the first one of the next cycle. You can make seamless cycles by setting the first and last key to precisely the same value.

    To do this, enter the same values for the keys in the Value box in the fcurve editor toolbar or right-click either the first or last keyframe in the timeline and drag to the other end keyframe to copy the values exactly.

  • If you have one or more keys on your fcurve that are not on a frame, this can produce unpredictable effects because the cycle is evaluated at each frame and not on an intermediate time. Select the keys and choose Keys Move Keys to Nearest Frames in the fcurve editor to remedy this.

Creating a Basic Cycle

The Cyclecommand repeats the fcurve shape as defined by its keys. This means that the part of the fcurve as defined by its first and last keys is cycled endlessly in both directions in time (X axis).

  1. Select one or more fcurves whose shape you want to repeat (that is, the shape between the first and last keys).

  2. Choose Curves Pre/Post Extrapolation Cycle from the fcurve editor's toolbar.

  3. The fcurve segment is repeated continuously in both directions in time.

The original keys are indicated between the dashed lines. Notice how the resulting cycles have no keys.

Adding an Offset to a Cycle (Relative Cycle)

The Cycle with Offset command repeats the fcurve shape (defined by its first and last keys) by making each cycle start with the same value as the last key of the previous value. This results in a curve cycle with a progressive offset.

Setting a progressive offset is particularly important when you want to create a simple walk cycle that moves forward in space. For example, animating a foot translation in a repeated cycle on the Y axis generally requires no offset, but cycling animation on the X axis without an offset would make the character look like he's walking without moving forward.

  1. Select one or more fcurves whose shape you want to repeat.

  2. Choose Curves Pre/Post Extrapolation Cycle with Offset from the fcurve editor's toolbar.

    In the image below, the original keys are indicated between the dashed lines. Note how the resulting cycle has no keys.

You can then move the first and last keys to adjust the cycle as you wish.

Freezing Fcurve Cycles

The Freeze Cycle command freezes the selected fcurve by creating (or sampling) the keys represented on the cycled part of the fcurve. The cycles can then be edited as any fcurve because they now have key points.

  1. Select one or more cycled fcurves whose shape you want to freeze.

  2. Do either of the following:

    • Drag the mouse pointer over the region of the fcurve you wish to freeze. Then choose Curves Pre/Post Extrapolation Freeze Cycle from the fcurve editor toolbar.

    • Choose Curves Pre/Post Extrapolation Freeze Cycle. If no keys on the curve are selected and no region is highlighted, a dialog box appears in which you can enter the frame range in which you want the cycle to be frozen, including negative frame numbers.

The cycle is frozen with new keys on the cycled parts of the fcurve. You can now modify this fcurve as you would any other.

In the image below, the original keys are indicated between the dashed lines. The frozen curve now has keys, which can be modified.

Deleting Fcurve Cycles

Since a cycle's repeated information is not actually added to the fcurve, you can delete the cycle information completely while leaving the original keyframes on the fcurve intact.

If you froze the cycle, the portion of the fcurve that you froze (has keys) keeps its keys, but the remaining part of the fcurve cycle is extrapolated.

To delete the cycle information, select one or more cycled fcurves and choose Curves Pre/Post Extrapolation Constant or Linear.

For more information on extrapolation, see Extrapolating Function Curves.

Creative Commons License Except where otherwise noted, this work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License