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.
- After Effects User Guide
- Beta releases
- Getting started
- Workspaces
- Projects and compositions
- Importing footage
- Text and Graphics
- Text
- Motion Graphics
- Work with Motion Graphics templates in After Effects
- Use expressions to create drop-down lists in Motion Graphics templates
- Work with Essential Properties to create Motion Graphics templates
- Replace images and videos in Motion Graphics templates and Essential Properties
- Animate faster and easier using the Properties panel
- Drawing, Painting, and Paths
- Overview of shape layers, paths, and vector graphics
- Paint tools: Brush, Clone Stamp, and Eraser
- Taper shape strokes
- Shape attributes, paint operations, and path operations for shape layers
- Use Offset Paths shape effect to alter shapes
- Creating shapes
- Create masks
- Remove objects from your videos with the Content-Aware Fill panel
- Roto Brush and Refine Matte
- Layers, Markers, and Camera
- Animation, Keyframes, Motion Tracking, and Keying
- Animation
- Keyframe
- Motion tracking
- Keying
- Transparency and Compositing
- Adjusting color
- Effects and Animation Presets
- Effects and animation presets overview
- Effect list
- Effect Manager
- Simulation effects
- Stylize effects
- Audio effects
- Distort effects
- Perspective effects
- Channel effects
- Generate effects
- Time effects
- Transition effects
- The Rolling Shutter Repair effect
- Blur and Sharpen effects
- 3D Channel effects
- Utility effects
- Matte effects
- Noise and Grain effects
- Detail-preserving Upscale effect
- Obsolete effects
- Expressions and Automation
- Expressions
- Expression basics
- Understanding the expression language
- Using expression controls
- Syntax differences between the JavaScript and Legacy ExtendScript expression engines
- Editing expressions
- Expression errors
- Using the Expressions editor
- Use expressions to edit and access text properties
- Expression language reference
- Expression examples
- Automation
- Expressions
- Immersive video, VR, and 3D
- Construct VR environments in After Effects
- Apply immersive video effects
- Compositing tools for VR/360 videos
- Advanced 3D Renderer
- Import and add 3D models to your composition
- Import 3D models from Creative Cloud Libraries
- Image-Based Lighting
- Extract and animate lights and cameras from 3D models
- Tracking 3D camera movement
- Cast and accept shadows
- Embedded 3D model animations
- Shadow Catcher
- 3D depth data extraction
- Modify materials properties of a 3D layer
- Work in 3D Design Space
- 3D Transform Gizmos
- Do more with 3D animation
- Preview changes to 3D designs real time with the Mercury 3D engine
- Add responsive design to your graphics
- Views and Previews
- Rendering and Exporting
- Basics of rendering and exporting
- H.264 Encoding in After Effects
- Export an After Effects project as an Adobe Premiere Pro project
- Converting movies
- Multi-frame rendering
- Automated rendering and network rendering
- Rendering and exporting still images and still-image sequences
- Using the GoPro CineForm codec in After Effects
- Working with other applications
- Collaboration: Frame.io, and Team Projects
- Memory, storage, performance
- Knowledge Base
Learn about the basics of creating and working with 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?
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!
Before we get into working with expressions, the first step is to know the user interface. Use the following steps to get started:
-
Create a comp, and select Layer > New > Solid to create a solid layer.
-
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.
-
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.
-
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.
-
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.
-
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.
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.
Common expressions you can use
Wiggle
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
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
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
-
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.
-
Type and edit text in the expression field, optionally using the Expression Language menu.
-
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
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.