Panduan Pengguna Batal

Editing expressions

Learn how to add, edit, and work with expressions in After Effects.

Add or remove an expression from a property

Any property that you can keyframe can use an expression.

To add and reveal an expression, select the property in the Timeline panel and do one of the following:

  • Select Animation > Add Expression. To remove, select Animation > Remove Expression.
  • Press Alt+click (Windows) or Option+click (macOS) the stopwatch button next to the property name in the Timeline panel or the Effect Controls panel. Repeat this step to remove the expression.

When the expression is activated, four icons appear under the property, and the value turns red.

The pick whip is the drag-and-drop selection tool for linking in After Effects. Select and hold the spiral icon next to the expression to enter selection mode. A whip links to your cursor as you drag to another property. Releasing the click targets the property underneath, generating expression syntax automatically.

expression selection

To link a set of properties across layers and compositions, use property links:

  1. Select any one property or set of properties and choose Edit > Copy With Property Links or Edit > Copy With Relative Property Links.

  2. Then paste those properties on any layer in a composition. The pasted properties will now be connected to the layer from which the properties were copied. Any change made to the original property is reflected in the instances of the pasted property links.

    (or)

    You can also copy an entire layer with property links and paste it to create duplicates that follow the changes made to the original.

The result of copying a layer’s Position property with the Copy With Relative Property Links command is as follows:

thisComp.layer("control_layer").transform.position
thisComp.layer("control_layer").transform.position
thisComp.layer("control_layer").transform.position

The result of copying a layer’s Position property with the Copy With Property Links command is as follows:

comp("source_comp").layer("control_layer").transform.position
comp("source_comp").layer("control_layer").transform.position
comp("source_comp").layer("control_layer").transform.position

Disable expressions

To temporarily disable an expression, select the Enable Expression switch. When an expression is disabled, a slash appears through the switch.

expression

Edit expressions

Edit an expression with the pick whip

If you're unsure about using JavaScript or After Effects expressions, go ahead and use the pick whip tool to get started. This tool is an easy way to link properties of expressions. 

text

  1. Make sure your property has an expression applied to it. For example, Alt+Click (Windows) or Opt+Click (macOS) the stopwatch icon to the left of the Scale property to apply an expression.

  2. Go to the Timeline panel and select inside the text field to activate the Expression Editor. Place the cursor where you want to edit the expression.

  3. The expression is entered 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.
  4. You can drag the pick whip to the name or value of a property. If you drag to the name of a property, the resulting expression displays all the values as one. For example, if you drag the pick whip to the name of the Position property, an expression like the following appears:

    thisComp.layer("Layer 1").transform.position
    thisComp.layer("Layer 1").transform.position
      thisComp.layer("Layer 1").transform.position
  5. If you drag the pick whip to one of the component values of the Position property (such as the y value), an expression like the following appears. Both the x and y coordinates of the property are linked to the y value of the Position property:

    temp = thisComp.layer("Layer 1").transform.position[1];
    [temp, temp]
    temp = thisComp.layer("Layer 1").transform.position[1]; [temp, temp]
      temp = thisComp.layer("Layer 1").transform.position[1]; 
      [temp, temp]
Nota:

If you use the pick whip to create an expression to refer to a layer, and that layer has the same name as another layer in the same composition, then the targeted layer’s name changes. The new layer name is the old layer name with a numeral at the end. This change is necessary to ensure that the expression unambiguously refers to a single layer in the composition.

Format of expressions created by the pick whip

The format of expressions created by the pick whip is determined by the Expression pick whip writes compact English preference.

  • Edit > Preferences > General (Windows)
  • Preferences > Scripting & Expressions (macOS)

The pick whip creates expressions, which use the names for properties as they appear in the Timeline panel. As these names are in-built, they can work when After Effects is running in another language. Editable property names are enclosed in double quotation marks and remain the same across languages. Deselect this option if the project isn't being shared in other languages.

Here is an example in compact English:

thisComp.layer("Layer 1").transform.position
thisComp.layer("Layer 1").transform.position
  thisComp.layer("Layer 1").transform.position

Here is the same expression, not in compact English:

thisComp.layer("Layer 1")("Transform")("Position")
thisComp.layer("Layer 1")("Transform")("Position")
  thisComp.layer("Layer 1")("Transform")("Position")
Nota:

Because the default is to use compact English, this document uses compact English in most examples and illustrations.

Edit an expression manually

Edit an expression manually

  1. Enter text-editing mode by clicking in the expression field. 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. To see more of a multiline expression, drag the bottom or top of the expression field to resize it.

  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.

Show expressions and the expression graph

Showing expressions in the Timeline panel

  • Reveal expressions with errors:

You can choose to only show properties which contain expression errors, which helps you quickly view and correct the errors. Use the following steps to do it:

  1. Select the layer(s) you want to view the errors for and right click to open the flyout menu.
  2. Select Reveal > Reveal Expression Errors.
reveal expression error

show expressions

  • Show only properties with expressions:

To show only properties with expressions, select one or more layers and then press EE.

timeline search

  • Timeline search:

Use the search field in the Timeline panel to search expressions as well as other components of a property. If the search string appears in an expression, the property and its containing property groups and layers are shown in the set of search results.

Nota:

To resize the expression field, drag its top edge up or down.

Expressions in the Graph Editor

In Graph Editor mode, the single expression field appears as a resizable box at the bottom of the Graph Editor. It shows only the expression for the selected property. To show multiple expression fields simultaneously, the Timeline panel must be in layer bar mode.

text

To toggle between layer bar mode and Graph Editor mode, press Shift+F3. You can also use the Graph Editor   button at the top of the Timeline panel for this. 

text

To show the expression field in the Graph Editor, choose Show Expression Editor from the Choose graph type and options menu at the bottom of the Graph Editor. When you add an expression to a property, the expression editor is shown.

text

To see how an expression changes the value or velocity graph, select the Show Post-Expression Graph button while showing the value or velocity graph in the Graph Editor.

Read the graph editor

The dimly colored graph displays the value or velocity before the expression is applied. The brightly colored graph displays the value or velocity after the expression is applied. Turning on the graph overlay for the Position property changes the motion path display in the Composition panel so you can see the expression-affected path.

Display colors in a graph (gif)

Add comments to an expression

If you write a complex expression, you should add comments that explain what the expression does and how its pieces work.

Use one of the following syntaxes to comment your code:

  • Type // at the beginning of the comment. Any text between // and the end of the line is ignored.
    For example: //This is a comment.
  • Type /* at the beginning of the comment and */ at the end of the comment. Any text between /* and */ is ignored.
    For example: /*This is a multiline comment.*/

Save and reuse expressions

Once you have written an expression, you can save it for future use by copying and pasting it into a text-editing application. You can also save it in an animation preset or template project. However, because expressions are written in relation to other layers in a project and may use specific layer names, you must sometimes modify an expression to transfer it between projects.

You can define your own functions within expressions using normal JavaScript function syntax. In this example, a function is defined that calculates the average of two values, and the last line uses this function:

function average(a, b)
{
return (a + b) / 2;
}
average(position, thisComp.layer(1).position);
function average(a, b) { return (a + b) / 2; } average(position, thisComp.layer(1).position);
  function average(a, b) 
  { 
    return (a + b) / 2; 
  } 
  average(position, thisComp.layer(1).position);
Nota:

You must define each function fully within each expression in which it is used. There is no global library of functions that you can add to.

If you want to save an expression for use in another project, consider adding comments to the expression. (See Add comments to an expression.) You should also use variables so that you can change a value in one place rather than having to change it in several places.

For example, this expression has a multiline comment at the beginning that explains what the expression does and a short comment after a variable is declared and initialized that tells what the variable is for:

/* This expression on a Source Text property reports the name
of a layer and the value of its Opacity property. */
var myLayerIndex = 1; // layer to inspect, initialized to 1, for top layer
thisComp.layer(myLayerIndex).name + ": \rOpacity = " + thisComp.layer(myLayerIndex).opacity.value
/* This expression on a Source Text property reports the name of a layer and the value of its Opacity property. */ var myLayerIndex = 1; // layer to inspect, initialized to 1, for top layer thisComp.layer(myLayerIndex).name + ": \rOpacity = " + thisComp.layer(myLayerIndex).opacity.value
  /*  This expression on a Source Text property reports the name 
      of a layer and the value of its Opacity property. */  
    
  var myLayerIndex = 1; // layer to inspect, initialized to 1, for top layer  
    
  thisComp.layer(myLayerIndex).name + ": \rOpacity = " +   thisComp.layer(myLayerIndex).opacity.value

You can save an animation preset that includes an expression and reuse it in other projects, as long as the expression does not refer to properties that don’t exist in the other projects. When you save a preset in which a property has an expression but no keyframes, only the expression is saved. If the property has one or more keyframes, the saved preset contains the expression along with all keyframe values.

Save an expression as a preset

You can save an expression as a preset and use it in other projects using the following steps:

  1. In the TImeline, select the property on which the expression is applied, for example - the expression is applied to the Rotation property of a layer, so select it. Then, select Animation > Save Animation Preset.

  2. Rename the preset - let's say "Time40", and save. By default, it's saved in the User Presets folder as an Adobe After Effects Preset file.

  3. To apply your preset, twirl open Animation Presets under the Effects & Controls menu. You have two folders there - Presets and User Presets, twirl open User Presets. It has all the presets that you create within After Effects. Drag the "Time40" preset onto the layer you are working on and the expression is applied!

Copy an expression from a layer property

You can copy an expression from a layer property, with or without the keyframes for the property.

  • To copy an expression and keyframes from one property to other properties, select the source layer property in the Timeline panel, copy the layer property, select the target layer properties, and paste.
  • To copy an expression from one property to other properties without copying keyframes, select the source property, then select Edit > Copy Expression Only, select the target properties and paste.
Petua:

Copying an expression without keyframes is useful when you want to simultaneously copy multiple expressions and paste them onto one or more new layers or when you want to copy one expression and paste it onto more than one layer.

Nota:

As with pasting keyframes and other items, you can often paste the item into the target layer and rely on After Effects to determine which property should be the target of the paste operation. For example, this works for copying Position properties from one layer to another. But you must select the target property if you are pasting an expression from a Position property into a Scale property.

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.

You can also check out Dan Ebberts' excellent collection of example expressions and tutorials on his MotionScript website.

Dapatkan bantuan dengan lebih pantas dan mudah

Pengguna baharu?