选择任何一个属性或一组属性并选择编辑 > 使用属性链接复制或编辑 > 使用相对属性链接复制。
- After Effects 用户指南
- Beta 版
- 快速入门
- 工作区
- 项目与合成
- 导入素材
- 文本和图形
- 绘图、绘画和路径
- 图层、标记和摄像机
- 动画、关键帧、运动跟踪和抠像
- 透明度与合成
- 调整颜色
- 效果和动画预设
- 表达式和自动化
- 沉浸式视频、VR 和 3D
- 视图和预览
- 渲染和导出
- 使用其他应用程序
- 协作:Frame.io 和团队项目
- 内存、存储、性能
- 知识库
了解如何在 After Effects 中添加、编辑和使用表达式。
在属性中添加或移除表达式
您可以设置关键帧的任何属性都可以使用表达式。
要添加和显示表达式,请在时间轴面板中选择该属性并执行以下操作之一:
- 选择动画 > 添加表达式。要移除,请选择动画 > 移除表达式。
- 按住 Alt 键并单击 (Windows) 或按住 Option 键并单击 (macOS) 时间轴面板或效果控件面板中属性名称旁边的秒表按钮。重复此步骤以移除表达式。
表达式激活后,属性下会出现四个图标,并且值会变为红色。
关联一组属性
关联器是在 After Effects 中进行关联的拖放选择工具。选择并按住表达式旁边的螺旋图标以进入选择模式。拖动到另一个属性时,关联器会链接到您的光标。释放鼠标将指向下面的属性,并自动生成表达式语法。
要跨图层和合成关联一组属性,请使用属性链接:
-
-
然后将这些属性粘贴到合成中的任何图层上。此时,粘贴后的属性将会连接到属性复制来源的图层。对原始属性所作的所有更改,都将反映在粘贴的属性链接实例中。
(或)
在对原图层作出更改后,可复制带属性链接的整个图层并进行粘贴,以生成副本。
通过使用相对属性链接复制命令复制图层的位置属性的结果如下:
thisComp.layer(“control_layer”).transform.position
通过使用属性链接复制命令复制图层的位置属性的结果如下:
comp(“source_comp”).layer(“control_layer”).transform.position
禁用表达式
要暂时禁用表达式,请选择启用表达式开关。表达式处于禁用状态时,此开关中会显示一条斜杠。
编辑表达式
使用关联器编辑表达式
如果您不确定是否使用 JavaScript 或 After Effects 表达式,请继续并开始使用关联器。使用此工具可更轻松地关联表达式属性。
-
请确保您的属性应用了某种表达式。例如,按住 Alt 键并单击 (Windows) 或按住 Opt 键并单击 (macOS) 缩放属性左侧的秒表图标来应用表达式。
-
转到时间轴面板并在文本字段内选择以激活表达式编辑器。将光标放在要编辑表达式的位置。
-
在插入点的表达式字段中输入表达式。
- 如果选中表达式字段中的文本,新表达式文本将替换所选文本。
- 如果插入点不在表达式字段中,新表达式文本将替换该字段中的所有文本。
-
可以将关联器拖动到属性的名称或值。如果拖动到属性的名称,则生成的表达式会将所有值作为一个整体显示。例如,如果您将关联器拖动到位置属性的名称,则会显示如下表达式:
thisCompayer(“Layer 1”)ransformosition
-
如果将关联器拖到位置属性的某个组件值(例如 y 值),则会出现以下表达式。属性的 x 和 y 坐标均链接到位置属性的 y 值:
temp = thisCompayer(“Layer 1”)ransformosition[1 [temp, temp]
如果您使用关联器创建表达式以引用图层,且该图层与同一合成中的另一图层名称相同,则目标图层的名称会更改。新的图层名称是结尾有一数字的旧的图层名称。此更改是确保表达式清楚引用合成中的单个图层所必需的。
关联器创建的表达式格式
关联器会创建表达式,这些表达式使用在时间轴面板中显示的属性名称。由于这些名称是内置的,因此可以在 After Effects 以另一种语言运行时使用。可编辑的属性名称使用双引号括起,并在不同语言中保持一致。如果不以其他语言共享项目,请取消选择该选项。
以下是使用简明英语的一个示例:
thisCompayer(“Layer 1”)ransformosition
以下是未使用简明英语的同一表达式:
thisCompayer(“Layer 1”)(“Transform”)(“Position”)
因为默认情况是使用简明英语,所以本文档在多数示例和插图中使用简明英语。
手动编辑表达式
-
单击表达式字段进入文本编辑模式。在您进入文本编辑模式后,会选中整个表达式。要添加到表达式,请在表达式中单击以放置插入点;否则,您将替换整个表达式。
-
在表达式字段中键入和编辑文本,可以选择使用表达式语言菜单。要查看多行表达式的更多部分,请拖动表达式字段的底部或顶部以调整其大小。
-
要退出文本编辑模式并激活表达式,请执行下列操作之一:
- 按数字小键盘上的 Enter 键。
- 在表达式字段外部单击。
显示表达式和表达式图表
在“时间轴”面板中显示表达式
- 显示有错误的表达式:
您可以选择仅显示包含表达式错误的属性,这有助于您快速查看和更正错误。使用以下步骤来实现这一点:
- 选择要查看其错误的图层,然后右键单击打开弹出菜单。
- 选择显示 > 显示表达式错误。
- 仅显示表达式的属性:
要仅显示表达式的属性,请选择一个或多个图层,然后按 EE。
- 时间轴搜索:
可使用时间轴面板中的搜索字段来搜索表达式以及属性的其他组件。如果搜索字符串显示在表达式中,则属性及其包含的属性组和图层将显示在搜索结果集中。
要调整表达式字段的大小,请向上或向下拖动其顶部边缘。
图表编辑器中的表达式
在图表编辑器模式中,单个表达式字段在图表编辑器底部显示为可调整大小的框。仅显示所选属性的表达式。要同时显示多个表达式字段,时间轴面板必须采用图层条模式。
要在图层条模式和图表编辑器模式之间切换,请按 Shift+F3。此外,还可使用时间轴面板顶部的图表编辑器按钮 实现此操作。
要在图表编辑器中显示表达式字段,请从图表编辑器底部的选择图表类型和选项菜单中选择显示表达式编辑器。在向属性添加表达式后,将显示表达式编辑器。
要了解表达式如何更改值或速度图表,请在图表编辑器中显示值或速度图表时,选择显示后表达式图表按钮。
阅读图表编辑器
暗淡的彩色图表显示应用表达式之前的值或速度。而明亮的彩色图表显示应用表达式之后的值或速度。打开位置属性的图表叠加会更改合成面板中显示的运动路径,以便您能够查看受表达式影响的路径。
向表达式添加注释
如果您编写一个复杂的表达式,则应添加注释来解释该表达式的作用及其工作原理。
使用以下语法之一来注释您的代码:
- 在注释开头键入 //。将忽略 // 和行尾之间的任何文本。
例如: //这是一条注释。 - 在注释开头键入 /* 并在注释结尾键入 */。将忽略 /* 和 */ 之间的任何文本。
例如:/*这是一条多行注释。*/
保存和重复使用表达式
编写表达式后,您可以将其复制并粘贴到文本编辑应用程序中进行保存,以备后用。您还可将其保存在动画预设或模板项目中。然而,因为表达式的编写涉及项目中的其他图层且可能会使用特定图层名称,所以有时必须修改表达式才能在项目之间传递表达式。
您可以使用正常的 JavaScript 函数语法在表达式中定义自己的函数。在此示例中,定义了一个计算两个值的平均值的函数,且最后一行使用以下函数:
function average(a, b) { return (a + b) / 2; } average(position, thisComp.layer(1).position);
您必须在用到函数的每个表达式中确切定义每个函数。没有可以添加到的函数的全局库。
如果要保存表达式以便在其他项目中使用,请考虑向表达式添加注释。(请参阅向表达式添加注释。)您还应使用变量以便能够在一个位置更改值而无需在多个位置更改值。
例如,此表达式开头有一个说明表达式用途的多行注释并且在声明并初始化变量后有一个说明变量用途的简短注释:
/* “源文本”属性上的此表达式代表图层的名称及其“不透明度”属性的值。*/ var myLayerIndex = 1; // layer to inspect, initialized to 1, for top layer thisComp.layer(myLayerIndex).name + ": \rOpacity = " + thisComp.layer(myLayerIndex).opacity.value
您可以保存包括表达式的动画预设并在其他项目中重用动画预设,前提是表达式不引用其他项目中不存在的属性。当您保存其中的属性具有表达式但没有关键帧的预设时,只会保存表达式。如果该属性具有一个或多个关键帧,则保存的预设包含表达式以及所有关键帧值。
将表达式另存为预设
您可以使用以下步骤将表达式另存为预设并在其他项目中使用:
-
在时间轴中,选择应用表达式的属性,例如,将表达式应用于图层的旋转属性,因此选中该属性。然后,选择动画 > 保存动画预设。
-
重命名预设,比如说“Time40”,然后保存。默认情况下,会将其作为 Adobe After Effects 预设文件保存在用户预设文件夹中。
-
要应用您的预设,请旋转打开效果和控制菜单下的动画预设。此处有两个文件夹(预设和用户预设),旋转打开用户预设。该文件夹包含您在 After Effects 中创建的所有预设。将“Time40”预设拖到正在处理的图层上,即可应用表达式!
从图层属性复制表达式
您可以从图层属性复制表达式,可以包含也可以不包含该属性的关键帧。
- 要将表达式和关键帧从一个属性复制到其他属性,请在时间轴面板中选择源图层属性,复制该图层属性,选择目标图层属性,然后粘贴。
- 要将表达式从一个属性复制到其他属性且不复制关键帧,请选择源属性,选择编辑 > 仅复制表达式,选择目标属性,然后粘贴。
当您要同时复制多个表达式并将其粘贴到一个或多个新图层上时,或者当您要复制一个表达式并将其粘贴到多个图层上时,复制不含关键帧的表达式非常有用。
正如粘贴关键帧和其他项一样,您通常可以将其粘贴到目标图层,并且依赖 After Effects 确定哪个属性应该是粘贴操作的目标。例如,这适用于将“位置”属性从一个图层复制到另一个图层。但是,如果要将表达式从位置属性粘贴到“缩放”属性中,则必须选择目标属性。
更多表达式资源
当您领会了表达式背后的一些概念之后,请前往社区观看一些真实案例并分享您的作品。
您还可通过 MotionScript 网站查看 Dan Ebberts 的精彩内容集合,其中包含了相关的表达式示例和教程。