节省时间和快速创建动画。
使用表达式,您可以自动设置动作(例如,摆动、抖动或跳动)。这会节省大量时间,因为您不必为每个动作创建新的关键帧。以下是几个帮助您入门的例子。
- After Effects 用户指南
- Beta 版
- 快速入门
- 工作区
- 项目与合成
- 导入素材
- 文本和图形
- 绘图、绘画和路径
- 图层、标记和摄像机
- 动画、关键帧、运动跟踪和抠像
- 透明度与合成
- 调整颜色
- 效果和动画预设
- 表达式和自动化
- 沉浸式视频、VR 和 3D
- 视图和预览
- 渲染和导出
- 使用其他应用程序
- 协作:Frame.io 和团队项目
- 内存、存储、性能
- 知识库
了解创建和使用表达式的基础知识。
当您想创建和链接复杂的动画,但想避免手动创建数十乃至数百个关键帧时,请尝试使用表达式。表达式是一小段代码,与脚本非常相似 - 您可以将其插入到 After Effects 项目中,以便在特定时间点为单个图层属性计算单个值。
与脚本(告知应用程序执行某些操作)不同,表达式会指示属性执行某些操作。例如,您在屏幕上从左到右移动了一个球,但您也希望该球晃动。您可以向其应用“摆动”表达式,而不是使用关键帧对“定位”属性进行动画制作。
表达式语言基于标准的 JavaScript 语言,但您不必了解 JavaScript 就能入门。您可以创建表达式,方法是使用关联器或者复制简单示例并修改示例以满足您的需求。如需了解更多相关信息,请参阅了解表达式语言。
以下是循环使用表达式的基本示例:
为什么使用表达式?
链接不同的属性。
您可以使用表达式链接不同的属性,例如,跨合成的旋转和定位。链接可帮助您创建不同的动画,而无需为每个动画编写不同的表达式。
创建运动信息图。
您可以在创建动态图形模板时使用表达式。调整不同的属性、链接动画并修改 After Effects MOGRT。
控制多个图层以创建复杂动画。
使用“关联器”功能,您可以轻松地从一些控件驱动多个动画以创建动画,而使用其他功能的话则需要执行更多操作。
在开始使用表达式之前,第一步是了解用户界面。使用以下步骤快速入门:
-
创建一个合成,然后选择“图层>新建>纯色”以创建实体图层。
-
在时间轴面板中,选择图层,然后按键盘上的 S 以显示缩放属性。自此,您的使用表达式的旅程将开始。
-
让我们创建一个表达式。在时间轴面板中,按住 Alt 键并单击 (Windows) 或按住 Opt 键并单击 (macOS) 位置旁边的秒表,将表达式添加到属性。After Effects 会为所有属性分配默认表达式,您可以稍后修改这些表达式。
-
请注意创建表达式后用户界面发生的更改。首先,“缩放”属性的值(显示为 100,100)从蓝色变为红色。红色表示该值具有活动表达式。
-
最后,在四个按钮的右侧,您可以查看默认表达式 transform.position。如果要更改表达式,请选择时间轴中的表达式文本以激活表达式编辑器字段。其工作方式与任何文本字段一样,复制、粘贴、选择或拖动文本。按 Enter 键会创建一个新行,并可调整高度。选择后键入所需的表达式,例如“wiggle(3,50)”。要了解更多信息,请参阅编辑表达式。
表达式和关键帧
After Effects 中可进行动画处理的所有属性均具有预表达式值和后表达式值。
预表达式值只是应用任何表达式(静态或由关键帧设置动画)之前的属性值。您可以将预表达式值视为类似于图层像素,而不应用任何效果。然后,表达式可以修改或使用这些预表达式值,就像效果更改或使用图层的像素一样,从而生成后表达式值。
UI 中属性值的突出显示颜色指示属性使用的是预表达式值还是后表达式值;预表达式值为蓝色,而后表达式值则为红色。
可以使用属性值在表达式中访问任何属性的预表达式值。例如,旋转属性上的表达式 value+90 会使该属性在应用表达式之前的值增加 90 度。这也适用于关键帧值;如果旋转的关键帧范围为 0 到 45,则相同的 value+90 表达式将使其从 90 到 135 进行动画制作。关键帧的值也可以通过 key(index).value 进行类似的访问,使用 1 作为 index 来获取第一个关键帧的值,使用 2 作为第二个关键帧的值,依此类推。属性 numKeys 将始终等于属性上的关键帧数,因此 key(numKeys).value 是最后一个关键帧的值。
某些方法,例如 wiggle() 或各种循环等会隐式使用预表达式值。
例如,如果属性的值为 0,表达式 wiggle(10, 10) 将在 -10 到 10 之间设置动画,并在其现有值周围添加摆动动作。将表达式应用于关键帧属性并在原始动画值之上创建辅助动画时也是如此。请参阅属性特性和方法(表达式引用)。
在表达式中使用简单的数学
包含表达式的属性的值显示为红色或粉红色类型。
开始使用表达式的一种好方法是使用关联器创建简单表达式,然后使用简单数学运算(例如下表中所列的运算)调整表达式的行为:
符号 |
函数 |
---|---|
+ |
相加 |
- |
相减 |
/ |
相除 |
* |
相乘 |
*-1 |
执行与原来相反的操作,例如逆时针,而非顺时针。 |
例如,可以通过在表达式结尾键入 *2 将结果增大一倍;也可以通过在表达式结尾键入 /2 将结果减小一半。
在编制适合编辑的表达式时,可以结合这些简单的运算以及更多运算。例如,可以将 /360*100 添加到表达式结尾以将其范围从 0-360 更改到 0-100。如果您要将 360 度刻度盘的值转换为按百分比计算的滑块,此更改将很有帮助。
“表达式语言”菜单
时间轴面板中的表达式语言菜单包含可在表达式中使用的特定于 After Effects 的语言元素。此菜单有助于确定有效元素及其正确语法 – 可使用其作为可用元素的参考。当您从菜单中选择任何对象、属性或方法时,After Effects 会在表达式字段中的插入点将其自动插入。如果选中表达式字段中的文本,新表达式文本将替换所选文本。如果插入点不在表达式字段中,新表达式文本将替换该字段中的所有文本。
可以使用的常用表达式
Wiggle
摆动表达式是最常见的 After Effects 表达式之一。摆动表达式的作用完全如其名称所示,它会导致属性以随机量晃动。此表达式可用于使您的场景看起来更加自然。
括号之间的数字会控制摆动:第一个数字是每秒的摇摆数,而第二个数字是摆动的量。因此,定位属性是 wiggle(2,30) 的表达式代表每秒摆动 2 次,每次摆动量为 30 像素。
时间
时间表达式适用于永久运动的对象。例如,如果要让对象无限旋转,可以将时间表达式添加到旋转属性,且对象每秒钟旋转 1 度。它还适用于基本数学公式,因此,如果您希望让之前的对象以 40 倍的速度更快地旋转,就使用表达式 time*40。
循环
如果您使用多个关键帧来创建重复的动画,则可能会非常耗时。而应使用循环表达式自动执行此过程,并创建复杂的循环动画。有两种类型的循环,loopIn 和 loopOut(更常用)。因此,带有表达式 loopOut() 或 loopOut ("cycle") 的旋转属性可循环播放您的动画,直到时间轴结束。
更多此类示例,请参阅表达式示例。
手动编辑表达式
-
单击表达式字段进入文本编辑模式。
注意:在您进入文本编辑模式后,会选中整个表达式。要添加到表达式,请在表达式中单击以放置插入点;否则,您将替换整个表达式。
-
在表达式字段中键入和编辑文本,可以选择使用表达式语言菜单。
-
要退出文本编辑模式并激活表达式,请执行下列操作之一:
按数字小键盘上的 Enter 键。
在表达式字段外部单击。
在表达式编辑器中自定义表达式的外观
您可以使用脚本和表达式”首选项,在表达式编辑器(位于时间线面板中)中自定义表达式外观。
要打开表达式编辑器,
- macOS:选择 After Effects > 首选项 > 脚本和表达式。
- Windows:选择编辑 > 首选项 > 脚本和表达式。
观看以下视频以开始探索表达式。
更多表达式资源
当您领会了表达式背后的一些概念之后,请前往社区观看一些真实案例并分享您的作品。
AE Enhancer 论坛也提供了有关表达式、脚本和动画预设的许多示例和信息。