Skip to main content

Motion Paths

Intro

Draw and edit paths that represent the direction and speed of selected animated Shapes.

Motion Paths can be enabled/disabled in the Viewport Settings and will appear for up to 10 selected Shapes.

Appearance

The information density for a Motion Path can be determined in the Viewport Settings with options to display frames, seconds, keyframes and the path and its direction. The path's length can also be set to represent a period of time.

Up to 10 selected Shapes can be displayed at once.

Interaction

It's possible to interact with a Motion Path directly in the Viewport. This is very similar to how interactions work in the Graph Editor and with the Edit Shape tool.

Keyframes

Move a Keyframe

A keyframe is indicated by a diamond shape.

To move a keyframe in the Viewport, with the Select tool active:

  • Click + Drag a keyframe to a new position.

Add a Keyframe

To add a new keyframe to a Motion Path, with the Select tool active:

  • Select a Shape in the Viewport, hold the S key and click on a frame along a motion path.

While S is held, a preview of where the new keyframe will be created is displayed. A new keyframe will be created on a whole frame as long as a keyframe does not already exist on that frame.

Delete a Keyframe

To delete a keyframe from a Motion Path, with the Select tool active:

  • Select a keyframe and hit the Delete key.

Interpolation

A keyframe's handles determine the acceleration/deceleration of a Shape either side of their parent keyframe. A handle appears for a bézier keyframe as a small circle on the end of a line. Note that a linear keyframe has no visible handles.

To convert a handle, with the Select tool active:

  • Option/Alt + Click a keyframe to toggle between bézier/linear interpolation.
  • Option/Alt + Click + Drag a keyframe to toggle between bézier/linear interpolation and edit the handle(s).

Bézier handles can be joint or broken. A joint handle will also move its opposing handle whereas a broken handle will not.

To set a handle's joint/broken state:

  • Option/Alt + Click + Drag a handle to toggle it between a joint and broken state.
  • Option/Alt + Click + Drag a handle to toggle it between a joint and broken state and move it.

Velocity Editing

Velocity editing is a way to increase/decrease a Shape’s velocity while maintaining the shape of its Motion Path.

To edit a Shape's velocity, with the Select tool active:

  • Hold Shift + Cmd/Ctrl and drag a handle. If the handle is joined, both handles will be affected.
  • Hold Shift + Cmd/Ctrl + Option/Alt and drag a handle. If the handle is joined, only the selected handle will be affected.

Ensure that Frames are enabled in the Motion Path Viewport Settings to visualise the change in velocity.

Velocity Presets

Easing presets can be applied to keyframes via the Viewport. Click on part of the Motion Path between two visible keyframes to pop up a menu:

Built-in Velocity Presets

By default, a list of built-in Presets are displayed in a list. Clicking one will apply that Velocity Preset to each of the keyframes either side of that section of the Motion Path. Like Velocity Editing, the easing is applied while maintaining the original shape of its Motion Path.

Custom Velocity Presets

To save a custom Velocity Preset, chose Create Custom Preset... from the list and then enter the required values into the window:

  • Preset Name - Enter a name for the Velocity Preset.
  • Speed In - Set a value of between 0 and 2 to determine a Shape's speed from the first keyframe where a value of 0 is a very slow start and 2 is a very fast start. 0 can be thought of as the equivalent of a horizontal handle in the Graph Editor.
  • Influence In - Set a length of between 0 and 1 for the first keyframe's handle where 0 is zero length and 1 is the maximum length.
  • Speed Out - Set a value of between 0 and 2 to determine a Shape's speed into the last keyframe where a value of 0 is a very slow finish and 2 is a very fast finish. 0 can be thought of as the equivalent of a horizontal handle in the Graph Editor.
  • Influence Out - Set a length of between 0 and 1 for the last keyframe's handle where 0 is zero length and 1 is the maximum length.
  • Allow New Keyframe - Cavalry attempts to maintain the Motion Path's shape when applying Velocity Presets. When the Speed and Influence values are both below a value of 0.1, it may be necessary to add an additional keyframe between the existing ones to maintain the Motion Path's shape. Unchecking this will prevent this behaviour.

Once a Custom Preset is saved, it will appear under a Custom Presets menu item when clicking the Motion Path.

Manage Custom Velocity Presets

Once one or more Custom Velocity Presets have been saved, they can be edited and/or exported. To edit a custom Velocity Preset, chose Manage Custom Presets... from the list to pop open a window with the following options:

List

Use the ... button to the right of each row to:

  • Rename - Rename the Velocity Preset. Double clicking a row can also be used to rename.
  • Edit... - Edit the Velocity Preset. The options in the window are identical to above. Click Save to commit any changes.
  • Export... - Save the Velocity Preset to the filesystem.
  • Delete - Remove the Velocity Preset.
Buttons
  • Import - Import a Velocity Preset.
  • Export All... - Export all of the Custom Velocity Presets in the list to a .json file. See Setting Default Velocity Presets.

Setting Default Velocity Presets

By saving the Export All... .json file to...

  • macOS - ~/Library/Preferences/Cavalry/VelocityPresets/
  • Windows - C:\Users\<USER>\AppData\Local\Cavalry\VelocityPresets\

...the Velocity Presets contained within it can be used populate the menu via the Default Velocity Presets preference in the Preferences window.

Once this has been set, when clicking on part of the Motion Path between two visible keyframes, the menu will populate the top of the list with the Velocity Presets contained within the file and demote the 'Built-in' presets to a sub-menu.

This can be useful when working on a project with a pre-defined motion language to ensure consistency across a team of animators.