表达式基础知识

了解创建和使用表达式的基础知识。

表达式

当您想创建和链接复杂的动画,但想避免手动创建数十乃至数百个关键帧时,请尝试使用表达式。表达式是一小段代码,与脚本非常相似 - 您可以将其插入到 After Effects 项目中,以便在特定时间点为单个图层属性计算单个值。

与脚本(告知应用程序执行某些操作)不同,表达式会告诉属性执行某种操作。例如,您在屏幕上从左到右移动了一个球,但您也希望该球晃动。您可以向其应用“摆动”表达式,而不是使用关键帧对“定位”属性进行动画制作。

表达式语言基于标准的 JavaScript 语言,但您不必了解 JavaScript 就能入门。您可以创建表达式,方法是使用关联器或者复制简单示例并修改示例以满足您的需求。如需了解更多相关信息,请参阅了解表达式语言

以下是循环使用表达式的基本示例:

为什么使用表达式?

节省时间和快速创建动画。
使用表达式,您可以自动化操作(例如,摆动、抖动或跳动)。这会节省大量时间,因为您不必为每个动作创建新的关键帧。以下是几个帮助您入门的例子:

链接不同的属性。

您可以使用表达式链接不同的属性,例如,跨合成的旋转和位置。链接可帮助您创建不同的动画,而无需为每个动画编写不同的表达式。

创建运动信息图。

您可以在创建动态图形模板时使用表达式。调整不同的属性、链接动画并修改 After Effects MOGRT。

控制多个图层以创建复杂动画。

使用“关联器”功能,您可以轻松地从一些控件驱动多个动画以创建动画,用其他功能则需要更多操作。

创建动画图形和图表。

快速创建动画和运动信息图,例如动态世界地图和指示不同国家/地区的污染指数的动态条形图。

保存和重用表达式。

将表达式存储为模板并在其他 After Effects 项目中重复使用。无需重新发明轮子!

表达式 UI

在开始使用表达式之前,第一步是了解用户界面。使用以下步骤快速入门:

  1. 创建一个合成,然后选择“图层>新建>纯色”以创建实体图层。

  2. 时间轴面板中,选择图层,然后按键盘上的 S 以显示缩放属性。自此,您的使用表达式的旅程将开始。

    表达式

  3. 让我们创建一个表达式。在时间轴面板中,按住 Alt 键并单击 (Win) 或按住 Option 并单击 (Mac)“位置”旁边的秒表,将表达式添加到属性。After Effects 为您可以稍后修改的所有属性分配默认表达式。

  4. 请注意创建表达式后用户界面发生的更改。首先,“缩放”属性的值(显示为 100,100)从蓝色变为红色。红色表示该值具有现用表达式。

    表达式打开

  5. 看到 twirls 显示在秒表的左侧,请单击打开它。使用它来公开表达式本身。

    • 第一个按钮看起来像等号(“=”),并开启和关闭表达式。当表达式启用时,它会显示为蓝色。
    • 第二个按钮会在图表编辑器中显示一段时间内表达式的值。
    • 带有小螺旋线的第三个按钮是可用于帮助构造表达式的关联器。 
    • 第四个按钮会打开“表达式语言”菜单,该菜单可用于帮助构造表达式。
    表达式选项

  6. 最后,在四个按钮的右侧,您可以查看默认表达式 transform.position。如果要更改表达式,请单击时间轴中的表达式文本以激活表达式编辑器字段。其工作方式与任何文本字段一样,复制、粘贴、选择或拖动文本。按 Enter 键会创建一个新行,并可调整高度。单击它,然后键入所需的表达式,例如“晃动”(3,50)。要了解更多信息,请参阅编辑表达式

    编辑表达式

表达式和关键帧

在向某一属性添加表达式后,可以继续为该属性添加或编辑关键帧。表达式可以采用某一属性值(由其关键帧确定)并使用该值作为生成新的修改值的输入。例如,除了已设置关键帧的运动外,图层的旋转属性上的 value+90 表达式还会将旋转属性的值增大 90 度。

某些方法(例如摆动)直接在现有属性值上操作。(参见属性归因和方法(表达式引用)。)

图层的位置属性的wiggle(10, 10) 表达式会保留图层的关键帧的运动并使其稍微摆动一点。

在表达式中使用简单的数学

包含表达式的属性的值显示为红色或粉红色类型。

开始使用表达式的一种好方法是使用关联器创建简单表达式,然后使用简单数学运算(例如下表中所列的运算)调整表达式的行为:

符号

函数

+

相加

-

相减

/

相除

*

相乘

*-1

执行与原来相反的操作,例如逆时针,而非顺时针.

例如,可以通过在表达式结尾键入 *2 将结果增大一倍;也可以通过在表达式结尾键入 /2 将结果减小一半。

在编制适合编辑的表达式时,可以结合这些简单的运算以及更多运算。例如,可以将 /360*100 添加到表达式结尾以将其范围从 0-360 更改到 0-100。如果您要将 360 度刻度盘的值转换为按百分比计算的滑块,此更改将很有帮助。

“表达式语言”菜单

“表达式语言”菜单
“表达式语言”菜单

“时间轴”面板中的“表达式语言”菜单包含可在表达式中使用的特定于 After Effects 的语言元素。此菜单有助于确定有效元素及其正确语法;可使用其作为可用元素的参考。当您从菜单中选择任何对象、属性或方法时,After Effects 会在表达式字段中的插入点将其自动插入。如果选中表达式字段中的文本,新表达式文本将替换所选文本。如果插入点不在表达式字段中,新表达式文本将替换该字段中的所有文本。

可以使用的常用表达式

Wiggle

wiggle
随机摆动

“摆动”表达式是最常见的 After Effects 表达式之一。摆动表达式的作用完全如其名称所示,它会导致属性以随机量晃动。此表达式可用于使您的场景看起来更加自然。

括号之间的数字会控制摆动:第一个数字是每秒的摇摆数,而第二个数字是摆动的量。因此,使用 wiggle(2,30) 表达式的定位属性摆动 2 次,最多 30 像素的。

时间

time*40
每秒无限旋转 40 度

Time 表达式适用于具有永久运动的对象。例如,如果要让对象无限旋转,可以将表达式 time 添加到旋转属性,且对象每秒钟旋转 1 度。它还适用于基本数学公式,因此,如果您希望让之前的对象以 40 倍的速度更快地旋转,就使用表达式 time*40

循环

loop_out
循环入点和出点

如果您使用多个关键帧来创建重复的动画,则可能会非常耗时。而应使用 loop 表达式自动执行此过程,并创建复杂的循环动画。有两种类型的循环,loopIn loopOut(更常用)。因此,带有表达式 loopOut();loopOut("cycle"); 的旋转属性可循环播放您的动画,直到时间轴结束。

更多此类示例,请参阅表达式示例

手动编辑表达式

  1. 单击表达式字段进入文本编辑模式。

    注意:

    在您进入文本编辑模式后,会选中整个表达式。要添加到表达式,请在表达式中单击以放置插入点;否则,您将替换整个表达式。

  2. 在表达式字段中键入和编辑文本,可以选择使用“表达式语言”菜单。
  3. 要退出文本编辑模式并激活表达式,请执行下列操作之一:
    • 按数字小键盘上的 Enter 键。

    • 在表达式字段外部单击。

在表达式编辑器中自定义表达式的外观

时间轴面板中的表达式编辑器
时间轴面板中的表达式编辑器

您可以使用“脚本和表达式”首选项,在表达式编辑器(位于时间轴面板中)中自定义表达式外观。要打开它,请选择“After effect>首选项>脚本和表达式”(Mac) 或“应用程序>首选项>”。表达式”(Win)。要了解更多信息,请参阅使用表达式编辑器

观看以下视频以开始探索表达式。

更多表达式资源

当您领会了表达式背后的一些概念之后,请前往社区观看一些真实案例并分享您的作品。

您还可通过 MotionScript 网站查看 Dan Ebberts 宝贵收藏,其中包含了相关的表达式示例和教程。

AE Enhancer 论坛也提供了有关表达式、脚本和动画预设的许多示例和大量信息。

Adobe 徽标

登录到您的帐户