User Guide Cancel

Expression basics

Learn about the basics of creating and working with expressions.

Expressions

When you want to create and link complex animations but want to avoid creating tens or hundreds of keyframes by hand, try using expressions. An expression is a small piece of JavaScript code that you can plug into animated properties in your After Effects projects that evaluate to a single value for a single layer property at a specific point in time.

Unlike a script, which tells the application to do something, an expression tells a property to do something. For example, you have a ball moving across the screen from left to right, but you also want that ball to wiggle. Rather than animating the Position property with keyframes, you can apply a wiggle expression to it.

The expressions language is based on the standard JavaScript language, but you don't need to know JavaScript to get started with expressions. You can create expressions by using the pick whip or by copying simple examples and modifying them to suit your needs. If you want to know more about it, see Understanding the Expressions language.

Here's a basic example of looping with expressions:

Why use expressions?

Save time and create animations quickly.
Expressions enable you to automate actions (such as wiggle, jitter, or bounce). This saves significant time because you don't have to create new keyframes for each action. Here are a few examples to get you started.

Link different properties.

You can use expressions to link different properties, such as Rotation and Position across compositions. Linking can help you create different animations without having to write different expressions for each. 

Create motion infographics.

You can use expressions when creating Motion Graphics templates. Adjust different properties, link animations, and modify the MOGRTs in After Effects. 

Control multiple layers to create complex animations.

The pick whip allows you to easily drive multiple animations from a few controls, creating animations that would require much more work using other features.

Create animated graphs and charts.

Quickly create animated and motion infographics such as a dynamic world map and dynamic bar graphs indicating the pollution index of different countries.

Save and reuse expressions.

Save expressions as templates and reuse them in other After Effects projects. No need to reinvent the wheel!

The expression UI

Before we get into working with expressions, the first step is to know the user interface. Use the following steps to get started:

  1. Create a comp, and select Layer > New > Solid to create a solid layer.

  2. In the Timeline panel, select the layer and press S on your keyboard to reveal the scale property. From here, your journey with expressions starts.

  3. Let's create an expression. In the Timeline panel, Alt+Click (Windows) or Opt+Click (macOS) the stopwatch next to Position to add an expression to the property. After Effects assigns default expressions to all the properties, which you can modify later.

  4. Notice the changes in the user interface that take place from creating the expression. First, the value of the Scale property (shown as 100,100) changes from blue to red. The red color indicates that the value has an active expression.

     The Scale property is open for a layer and active expression is highlighted in red.
    The red color for the layer property indicates that the value has an active expression.

  5. See that a twirls has appeared to the left of the stopwatch, click it open. Use it to expose the expression itself.

    • The first button looks like an equals sign ("=") and toggles the expression on and off. It appears blue when the expression is enabled.
    • The second button toggles, showing the expression's value over time in the Graph Editor.
    • The third button with the little spiral is the pick whip, which you can use to help construct expressions. 
    • The fourth button opens the Expression Language menu, which can be used to help construct expressions.
     The Scale property is open for a layer and buttons for the active expression is highlighted.
    Expression Language menu in the Timeline panel helps you quickly insert predefined methods and properties into your expressions.

  6. Finally, to the right of the four buttons, you can view the default expression transform.position. If you want to change the expression, select the expression text in the timeline to activate the expression editor field. It works just like any text field; copy, paste, select, or drag text. Pressing enter creates a new line, and you can resize the height. Select it and type the expression you want, such as wiggle(3,50). To learn more, see Editing expressions.

    edit expression
    An example of Position expression causes the position to change three times per second with a maximum deviation of 50 pixels in any direction.

Expressions and Keyframes

All properties in After Effects that can be animated have a pre-expression value and a post-expression value

The pre-expression value is simply the value of the property before any expression is applied, either static or animated by keyframes. You can think of pre-expression values as similar to a layer's pixels without any effects applied. These pre-expression values can then be modified or used by an expression, just as an effect changes or uses the pixels of a layer, resulting in the post-expression value. 

The highlight color of the property's value in the UI indicates whether the property is using a pre-expression or post-expression value; pre-expression values are blue, while post-expression values are red.

The pre-expression value of any property can be accessed within an expression using the attribute value. For example, the expression value+90 on a Rotation property would add 90 degrees to the value the property had before the expression was applied. This also works for keyframed values; if the Rotation is keyframed from 0 to 45, the same value+90 expression will cause it to animate from 90 to 135. The keyframes' values can also be accessed similarly via key(index).value, using 1 for the index to get the first keyframe's value, 2 for the second, etc. The attribute numKeys will always be equal to the number of keyframes on the property, so key(numKeys).value is the value of the last keyframe.

Some methods, such as wiggle() or the various loops, implicitly use the pre-expression value. 

For example, the expression wiggle(10, 10) animates between -10 and 10 if a property has a value of 0, adding wiggling movement around its existing value. The same is true when the expression is applied to a keyframed property, creating secondary animation on top of the original animated values. See Property attributes and methods (expression reference).

Using simple math in expressions

The values for a property that contains an expression appear in red or pink type.

A good way to begin working with expressions is to create a simple expression with the pick whip and then adjust the behavior of the expression using simple math operations, such as those listed in the following table:

Symbol

Function

+

Add

-

Subtract

/

Divide

*

Multiply

*-1

Perform the opposite of the original, such as counterclockwise instead of clockwise.

For example, you can double the result by typing *2 at the end of the expression, or you can halve the result by typing /2 at the end of the expression.

As you develop comfort editing expressions, you can combine these simple operations—and more. For example, you can add /360*100 to the end of an expression to change its range from 0-360 to 0-100. This change would be useful if you wanted to convert the values of a 360-degree dial to a slider that is measured in percentages.

The Expression Language menu

The Expression Language menu in the Timeline panel contains language elements specific to After Effects that you can use in an expression. This menu is helpful for determining valid elements and their correct syntax – use it as a reference for available elements. When you choose any object, attribute, or method from the menu, After Effects automatically inserts it in the expression field at the insertion point. If text is selected in the expression field, the new expression text replaces the selected text. If the insertion point isn't in the expression field, the new expression text replaces all text in the field.

 Expression Language menu in After Effects is open and there are multiple options to choose from.
Use the Expression Language menu to create and manage expressions more efficiently.

Common expressions you can use

Wiggle

wiggle
Wiggle randomly

The wiggle expression is one of the most common After Effects expressions. A wiggle expression does precisely what the same suggests - it causes a property to wiggle by a random amount. This expression can be used to make your scene seem more natural.

The numbers between the parentheses control the wiggle; the first number is the number of wiggles per second, and the second is the number of wiggles. So, a Position property with an expression of wiggle(2,30) wiggles two times per second by up to 30 pixels.

Time

time*40
Infinite rotating 40 degrees per second in time

The time expression is suitable for objects with perpetual motion. For example, if you want an object to rotate indefinitely, you can add the expression time to the Rotation property, and the object rotates at 1 degree per second. It also works with basic math equations, so if you want to have the previous object rotate 40 times faster, use the expression time*40.

Loop

loop_out
Loop in and out

If you use multiple keyframes to create repetitive animation, it can be time-consuming. Instead, use the loop expression to automate this and create complex looping animations. There are two types of looping - loopIn and loopOut (more commonly used). So, a Rotation property with an expression loopOut(); or loopOut("cycle"); loops your animation until the end of the timeline.

For more such examples, see Expression examples.

Edit an expression manually

  1. Enter text-editing mode by clicking in the expression field.

    Note:

    When you enter text-editing mode, the entire expression is selected. To add to the expression, click within the expression to place the insertion point; otherwise, you will replace the entire expression.

  2. Type and edit text in the expression field, optionally using the Expression Language menu.

  3. To exit text-editing mode and activate the expression, do one of the following:
    • Press Enter on the numeric keypad.

    • Click outside the expression field.

Customize the appearance of expressions in the Expression Editor

Expression Editor in the Timeline panel
Expression Editor in the Timeline panel

You can customize how expressions look in the Expression Editor located in the Timeline panel using the Scripting & Expressions preferences.

To open Expression Editor,

  • macOS: Select After Effects > Preferences > Scripting & Expressions
  • Windows: Select Edit > Preferences > Scripting & Expressions

Watch the following video to kickstart exploring expressions.

More Expression resources

Now that you have understood some of the concepts behind expressions, come to the community for some real-life examples and to share your work.

The AE Enhancers forum also provides many examples and information about expressions, scripts, and animation presets.

Get help faster and easier

New user?