Animation Curves

Animate Material Parameters, Morph Targets, and other properties synchronized to your animations using Animation Curves.

Choose your operating system:

Windows

macOS

Linux

As you play Animation Sequences on your Skeletal Mesh, you may find it necessary to animate additional properties and values synchronized to that animation. You can accomplish this using Animation Curves (also called anim curves, or curves), which are float-type values you can add and keyframe within an Animation Sequence. Curves can be useful for augmenting your animations with additional animatable properties, such as animating Material Parameters, Morph Targets, and other attributes.

This document provides an overview of Animation Curves, and the various ways you can use them.

Prerequisites

Creating Animation Curves

Animation Curves can be created in the following ways:

  1. When viewing an Animation Sequence in the Animation Sequence Editor, click the Curves track dropdown menu and select Add Curve… > Create Curve. Type in the name of the new curve and press Enter to create it.

    create curve

  2. In the Anim Curves panel, right-click in the curve list area and select Add Curve. Type in the name of the new curve and press Enter to create it.

    anim curve panel add curve

  3. If your skeleton already has curves, you can select them from the Curves > Add Curve… dropdown menu.

    add existing curve

Animation Curves are stored on the Skeleton Asset. Therefore, when you are creating curves, you are also editing the Skeleton, which will require you to save it.

Importing Animation Curves

Custom attributes can also be created externally in animation software like Autodesk Maya, and then imported as curves along with your Animation Sequence.

To do this, first create a custom attribute on any bone in your skeleton and keyframe it. You must ensure that it is a float-type attribute, as that is the only compatible data type with curves. Once finished, export your animation.

create bone attribute

Your custom attribute must be keyframed in order for curve data to correctly import.

Next, import your Animation Sequence containing the custom attributes. When importing the FBX, ensure that Import Custom Attribute is enabled.

import animation

Once imported, your curves should appear in your Animation Sequence. In this example, two attributes were created on different bones and then imported.

attribute to curve

Creating Curve Animation

Once you have created an Animation Curve and added it to your Animation Sequence, you can animate its value. Select the Curve dropdown menu on the Animation Curve track and click Edit Curve. This will open the Curve Editor.

edit curve

You can also open the Curve Editor by double-clicking the timeline region for the specific curve track.

double click to edit curve

Once the Curve Editor is open, you can create keyframes by pressing Enter. This creates a keyframe at the Playhead location, which can be moved by dragging it to set keyframes at different times along the sequence. You can click and drag keyframes to change their time and value.

edit curve in curve editor

Refer to the Curve Editor page for more information on navigation, keyframes, and tangent editing using the Curve Editor.

TopicIcon.png

Curve Editor

Tweak your keyframes and curves by using the Curve Editor and tools within it.

Tweak your keyframes and curves by using the Curve Editor and tools within it.

Anim Curves Panel

Your created and stored curves can be viewed and managed from the Anim Curves panel. To view this panel, navigate to the main editor menu and enable Window > Anim Curves. The Anim Curve panel can only be viewed from the Skeleton Editor, Animation Sequence Editor, or Animation Blueprints Editor.

anim curves panel

Curve Management

Several settings and features can be adjusted on your curve entries within the Anim Curve panel.

curve settings

Name

Description

Curve Name

The name of the curve. You can rename curves by right-clicking one in the Anim Curve panel and selecting Rename Curve.

rename curve

Type

Enables this curve to either be used for Morph Targets or Materials.

Weight

The current value of the curve.

Auto

Enabling this causes the Weight value to change automatically according to its keyframed values if the curve is being animated in this sequence. If disabled, it ignores its animated values. Disabling this can be useful for testing how the curve value affects the character without keyframing it.

auto setting

Bones

The number of bones connected to this curve.

Curve Filtering

You can filter the list of curves in the Anim Curves panel to display only the actively-used curves, or only certain types of curves.

  • Disabling All Curves causes only the currently-used curves for this Animation Sequence to be displayed.

  • Disabling Morph Target, Attribute, and Material curves disables those curve types from being displayed.

curve filtering

Curve Details

Selecting a curve reveals the following properties in the Details panel.

curve details

Name

Description

Curve Name

The name of the curve.

Connected Bones

An array of bones that you can connect to this curve. This is useful if you want certain curves to be active depending on if a bone is being used or not. Bones can be active or inactive depending on if different skeletons are merged, or bones are being reduced for different LODs.

Max LOD

The maximum LOD to use before this curve no longer evaluates. For example, setting this value to 1 will cause this curve to evaluate for LODs 0 and 1, but not for 2 and beyond.

Using Animation Curves

Once you have created and animated your curve, there are a variety of ways you can use it to affect your character.

Materials

You can use Animation Curves to automatically affect Scalar Material Parameters. This requires you to do the following:

  1. Match the curve name to the name of the Material Parameter in the Material.

    curve name matching material parameter

  2. Enable the Material curve type in the Anim Curves panel.

    enable material type on anim curve

Once this is done, the curve value starts to affect the Material Parameter.

curve affecting material

Material Animation Curves affect all Materials (and their parameters) assigned to a Skeletal Mesh. Therefore, you may need to adjust your content appropriately if you want your anim curve to only affect a parameter from a single Material. This can happen if your Skeletal Mesh has multiple assigned Materials deriving from a single parent, which will cause parameter names to share between all assigned Materials.

multiple materials

Morph Targets

Similarly to Materials, you can use Animation Curves to automatically affect Morph Targets on your Skeletal Mesh. This requires you to do the following:

  1. Match the curve name to the name of the Morph Target found in the Morph Target Previewer

    match anim curve name to morph target

  2. Enable the Morph Target curve type in the Anim Curves panel.

    enable morph target type on anim curve

Once this is done, the curve value starts to affect the Morph Target.

curve affecting morph target

Animation Blueprints

You can use Animation Curves to affect arbitrary values in Animation Blueprints. In most cases, you can use them to affect the alpha values of certain Anim Graph nodes, such as IK, in order to change IK states during animation playback.

curve values in animation blueprints

The following curve-related functions are available in both the Animation Blueprint Anim Graph, and Event Graph:

Name

Image

Description

Get Active Curve Names

get active curve names

This targets an Anim Instance and returns the last up-to-date list of active curve names for the specified curve type.

Get All Curve Names

get all curve names

This targets an Anim Instance and returns all Curve Names into a string array.

Get Curve Value

get curve value

This targets an Anim Instance and returns the value of a specified Curve Name.

Metadata Curves

Metadata Curves are Animation Curves that output a static curve value of 1.0 when added to an Animation Sequence. They can work conversely with normal Animation Curves, which by default (with no keyframes) output a static curve value of 0.0. If no curve is added to a sequence, the anim curve value also falls back to a value of 0.0.

This behavior can be useful in larger projects that contain many Animation Sequences. In these projects, many of those animations may require constant 1.0 curve values throughout them. Therefore, you can use Metadata Curves to expedite this process, rather than manually adding normal curves and keyframing them to 1.0. In other words, large projects that are using anim curves can structure their usage in Animation Sequences in the following way:

  • A small number of Animation Sequences may require explicit curve animation on them. Therefore, add Animation Curves to those animations and keyframe them accordingly.

  • A larger number of Animation Sequences may require curve values set constantly to 1.0, in order to maintain a property value. Therefore, add Metadata Curves to those animations.

  • The remainder of all Animation Sequences may not require curve value considerations, or require curve values set constantly to 0.0. No action is required.

To create a Metadata Curve, click the Curves track dropdown menu and select Add Curve… > Create Curve. You can either select a currently-existing curve, or click Create New to create a new curve.

create metadata curve

Alternatively, a currently-existing anim curve can be converted to a Metadata Curve by clicking the Curve drop down menu on a curve track and selecting Convert To Metadata.

convert to metadata curve

Once created, Metadata Curves are read-only and output a constant curve value of 1.0.

metadata curve