|
|
Save and reuse expressionsOnce you have written an expression, you can save it for future use by copying and pasting it into a text-editing application or by saving 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);
Note: 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, you should add 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 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. You can copy an expression from a layer property, with or without the keyframes for the property. Note: 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 yourself
if you are pasting an expression from a Position property into a
Scale property.
|