正在编辑表达式

  1. After Effects 用户指南
  2. Beta 版
    1. Beta 版项目概述
    2. After Effects Beta 版主页
  3. 快速入门
    1. After Effects 快速入门
    2. After Effects 的新增功能 
    3. 发行说明 | After Effects
    4. After Effects 系统要求
    5. After Effects 中的键盘快捷键
    6. 支持的文件格式 | After Effects
    7. 硬件建议
    8. 适用于 Apple Silicon 的 After Effects
    9. 规划和设置
  4. 工作区
    1. 常规用户界面项
    2. 了解 After Effects 界面
    3. 工作流程
    4. 工作区、面板和查看器
  5. 项目与合成
    1. 项目
    2. 合成基础知识
    3. 预合成、嵌套和预渲染
    4. 使用合成分析器查看详细的性能信息
    5. CINEMA 4D 合成渲染器
  6. 导入素材
    1. 准备并导入静止图像
    2. 从 After Effects 和 Adobe Premiere Pro 导入
    3. 导入和解释视频与音频
    4. 准备和导入 3D 图像文件
    5. 导入和解释素材项目
    6. 使用素材项目
    7. 使用“场景编辑检测”检测编辑点
    8. XMP 元数据
  7. 文本和图形
    1. 文本
      1. 设置字符格式和“字符”面板
      2. 文本效果
      3. 创建和编辑文本图层
      4. 设置段落格式和“段落”面板
      5. 凸出文本和形状图层
      6. 为文本设置动画
      7. 文本动画的示例和资源
      8. 实时文本模板
    2. 动态图形
      1. 在 After Effects 中使用动态图形模板
      2. 使用表达式在动态图形模板中创建下拉列表
      3. 使用“基本属性”创建动态图形模板
      4. 替换动态图形模板和基本属性中的图像和视频
      5. 使用“属性”面板更快、更轻松地制作动画
  8. 绘图、绘画和路径
    1. 形状图层、路径和矢量图形的概述
    2. 绘画工具:笔刷、仿制图章和橡皮擦
    3. 将形状描边椎体化
    4. 形状图层的形状属性、绘画操作和路径操作
    5. 使用“位移路径”形状效果更改形状
    6. 创建形状
    7. 创建蒙版
    8. 使用内容识别填充面板,移除视频中的对象
    9. Roto 笔刷和调整遮罩
  9. 图层、标记和摄像机
    1. 选择和排列图层
    2. 混合模式和图层样式
    3. 3D 图层
    4. 图层属性
    5. 创建图层
    6. 管理图层
    7. 图层标记和合成标记
    8. 摄像机、光和目标点
  10. 动画、关键帧、运动跟踪和抠像
    1. 动画
      1. 动画基础知识
      2. 使用人偶工具制作动画
      3. 管理形状路径和蒙版并对其进行动画制作
      4. 使用 After Effects 为 Sketch 和 Capture 形状制作动画
      5. 分类动画工具
      6. 使用数据驱动的动画
    2. 关键帧
      1. 关键帧插值
      2. 设置、选择和删除关键帧
      3. 编辑、移动和复制关键帧
    3. 运动跟踪
      1. 跟踪和稳定运动
      2. 人脸跟踪
      3. 蒙版跟踪
      4. 蒙版引用
      5. 速度
      6. 时间拉伸和时间重映射
      7. 时间码和时间显示单位
    4. 抠像
      1. 抠像
      2. 抠像效果
  11. 透明度与合成
    1. 合成和透明度概述及资源
    2. Alpha 通道和遮罩
    3. 轨道遮罩和移动遮罩
  12. 调整颜色
    1. 颜色基础知识
    2. 色彩管理
    3. 颜色校正效果
    4. OpenColorIO 和 ACES 色彩管理
    5. 增强的 HDR 支持
  13. 效果和动画预设
    1. 效果和动画预设概述
    2. 效果列表
    3. 效果管理器
    4. 模拟效果
    5. 风格化效果
    6. 音频效果
    7. 扭曲效果
    8. 透视效果
    9. 通道效果
    10. 生成效果
    11. 时间效果
    12. 过渡效果
    13. 果冻效应修复效果
    14. 模糊和锐化效果
    15. 3D 通道效果
    16. 实用效果
    17. 遮罩效果
    18. 杂色和颗粒效果
    19. 保留细节放大效果
    20. 旧版效果
  14. 表达式和自动化
    1. 表达式
      1. 表达式基础知识
      2. 了解表达式语言
      3. 使用表达式控件
      4. JavaScript 与旧版 ExtendScript 表达式引擎之间的语法差别
      5. 正在编辑表达式
      6. 表达式错误
      7. 使用表达式编辑器
      8. 使用表达式编辑和访问文本属性
      9. 表达式语言引用
      10. 表达式示例
    2. 自动化
      1. 自动化
      2. 脚本
  15. 沉浸式视频、VR 和 3D
    1. 在 After Effects 中构造 VR 环境
    2. 应用沉浸式视频效果
    3. 用于 VR/360 视频的合成工具
    4. 高级 3D 渲染器
    5. 将 3D 模型导入并添加到合成中
    6. 从 Creative Cloud Libraries 导入3D 模型
    7. 基于图像的光照
    8. 从 3D 模型中提取光线和相机并为其制作动画
    9. 跟踪 3D 摄像机运动
    10. 投射和接受阴影
    11. 嵌入的 3D 模型动画
    12. 阴影捕手
    13. 3D 深度数据提取
    14. 修改 3D 图层的素材属性
    15. 使用 3D 设计空间
    16. 3D 变换 Gizmo
    17. 使用 3D 动画执行更多操作
    18. 使用 Mercury 3D 引擎实时预览对 3D 设计的更改
    19. 向图形添加响应式设计
  16. 视图和预览
    1. 预览
    2. 使用 Mercury Transmit 进行视频预览
    3. 修改和使用视图
  17. 渲染和导出
    1. 渲染和导出的基础知识
    2. After Effects 中的 H.264 编码
    3. 将 After Effects 项目导出为 Adobe Premiere Pro 项目
    4. 转换影片
    5. 多帧渲染
    6. 自动渲染和网络渲染
    7. 渲染和导出静止图像及静止图像序列
    8. 在 After Effects 中使用 GoPro CineForm 编解码器
  18. 使用其他应用程序
    1. Dynamic Link 和 After Effects
    2. 使用 After Effects 和其他应用程序
      1. 将 After Effects 项目导出为 Premiere Pro 项目
    3. After Effects 中的同步设置
    4. After Effects 中的 Creative Cloud Libraries
    5. 增效工具
    6. Cinema 4D 和 Cineware
  19. 协作:Frame.io 和团队项目
    1. 在 Premiere Pro 和 After Effects 中协作
    2. Frame.io
      1. 安装和激活 Frame.io
      2. 将 Frame.io 与 Premiere Pro 和 After Effects 搭配使用
      3. 常见问题解答
    3. 团队项目
      1. 开始使用团队项目
      2. 创建团队项目
      3. 使用团队项目进行协作
  20. 内存、存储、性能
    1. 内存和存储
    2. After Effects 处理预览时内存不足问题的方式    
    3. 提高性能
    4. 首选项
    5. After Effects 的 GPU 和 GPU 驱动程序要求
  21. 知识库
    1. 已知问题
    2. 已修复的问题
    3. 常见问题解答
    4. After Effects 和 macOS Ventura
    5. After Effects 处理预览时内存不足问题的方式

了解如何在 After Effects 中添加、编辑和使用表达式。

在属性中添加或移除表达式

您可以设置关键帧的任何属性都可以使用表达式。

要添加和显示表达式,请在时间轴面板中选择该属性并执行以下操作之一:

  • 选择动画 > 添加表达式。要移除,请选择动画 > 移除表达式
  • 按住 Alt 键并单击 (Windows) 或按住 Option 键并单击 (macOS) 时间轴面板或效果控件面板中属性名称旁边的秒表按钮。重复此步骤以移除表达式。

表达式激活后,属性下会出现四个图标,并且值会变为红色。

关联器是在 After Effects 中进行关联的拖放选择工具。选择并按住表达式旁边的螺旋图标以进入选择模式。拖动到另一个属性时,关联器会链接到您的光标。释放鼠标将指向下面的属性,并自动生成表达式语法。

表达式选择

要跨图层和合成关联一组属性,请使用属性链接:

  1. 选择任何一个属性或一组属性并选择编辑 > 使用属性链接复制编辑 > 使用相对属性链接复制

  2. 然后将这些属性粘贴到合成中的任何图层上。此时,粘贴后的属性将会连接到属性复制来源的图层。对原始属性所作的所有更改,都将反映在粘贴的属性链接实例中。

    (或)

    在对原图层作出更改后,可复制带属性链接的整个图层并进行粘贴,以生成副本。

通过使用相对属性链接复制命令复制图层的位置属性的结果如下:

thisComp.layer(“control_layer”).transform.position

通过使用属性链接复制命令复制图层的位置属性的结果如下:

comp(“source_comp”).layer(“control_layer”).transform.position

禁用表达式

要暂时禁用表达式,请选择启用表达式开关。表达式处于禁用状态时,此开关中会显示一条斜杠。

表达式

编辑表达式

使用关联器编辑表达式

如果您不确定是否使用 JavaScript 或 After Effects 表达式,请继续并开始使用关联器。使用此工具可更轻松地关联表达式属性。 

文本

  1. 请确保您的属性应用了某种表达式。例如,按住 Alt 键并单击 (Windows) 或按住 Opt 键并单击 (macOS) 缩放属性左侧的秒表图标来应用表达式。

  2. 转到时间轴面板并在文本字段内选择以激活表达式编辑器。将光标放在要编辑表达式的位置。

  3. 在插入点的表达式字段中输入表达式。

    • 如果选中表达式字段中的文本,新表达式文本将替换所选文本。 
    • 如果插入点不在表达式字段中,新表达式文本将替换该字段中的所有文本。
  4. 可以将关联器拖动到属性的名称或值。如果拖动到属性的名称,则生成的表达式会将所有值作为一个整体显示。例如,如果您将关联器拖动到位置属性的名称,则会显示如下表达式:

      thisCompayer(“Layer 1”)ransformosition
  5. 如果将关联器拖到位置属性的某个组件值(例如 y 值),则会出现以下表达式。属性的 x 和 y 坐标均链接到位置属性的 y 值:

      temp = thisCompayer(“Layer 1”)ransformosition[1 
      [temp, temp]
注意:

如果您使用关联器创建表达式以引用图层,且该图层与同一合成中的另一图层名称相同,则目标图层的名称会更改。新的图层名称是结尾有一数字的旧的图层名称。此更改是确保表达式清楚引用合成中的单个图层所必需的。

关联器创建的表达式格式

关联器创建的表达式格式由表达式关联器写入简明英语首选项决定。

  • 编辑 > 首选项 > 常规 (Windows)
  • 首选项 > 脚本和表达式 (macOS)

关联器会创建表达式,这些表达式使用在时间轴面板中显示的属性名称。由于这些名称是内置的,因此可以在 After Effects 以另一种语言运行时使用。可编辑的属性名称使用双引号括起,并在不同语言中保持一致。如果不以其他语言共享项目,请取消选择该选项。

以下是使用简明英语的一个示例:

  thisCompayer(“Layer 1”)ransformosition

以下是未使用简明英语的同一表达式:

  thisCompayer(“Layer 1”)(“Transform”)(“Position”)
注意:

因为默认情况是使用简明英语,所以本文档在多数示例和插图中使用简明英语。

手动编辑表达式

手动编辑表达式

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

  2. 在表达式字段中键入和编辑文本,可以选择使用表达式语言菜单。要查看多行表达式的更多部分,请拖动表达式字段的底部或顶部以调整其大小。

  3. 要退出文本编辑模式并激活表达式,请执行下列操作之一:
    • 按数字小键盘上的 Enter 键。
    • 在表达式字段外部单击。

显示表达式和表达式图表

在“时间轴”面板中显示表达式

  • 显示有错误的表达式:

您可以选择仅显示包含表达式错误的属性,这有助于您快速查看和更正错误。使用以下步骤来实现这一点:

  1. 选择要查看其错误的图层,然后右键单击打开弹出菜单。
  2. 选择显示 > 显示表达式错误
显示表达式错误

显示表达式

  • 仅显示表达式的属性:

要仅显示表达式的属性,请选择一个或多个图层,然后按 EE

时间轴搜索

  • 时间轴搜索

可使用时间轴面板中的搜索字段来搜索表达式以及属性的其他组件。如果搜索字符串显示在表达式中,则属性及其包含的属性组和图层将显示在搜索结果集中。

注意:

要调整表达式字段的大小,请向上或向下拖动其顶部边缘。

图表编辑器中的表达式

图表编辑器模式中,单个表达式字段在图表编辑器底部显示为可调整大小的框。仅显示所选属性的表达式。要同时显示多个表达式字段,时间轴面板必须采用图层条模式。

文本

要在图层条模式和图表编辑器模式之间切换,请按 Shift+F3。此外,还可使用时间轴面板顶部的图表编辑器按钮 实现此操作。

文本

要在图表编辑器中显示表达式字段,请从图表编辑器底部的选择图表类型和选项菜单中选择显示表达式编辑器。在向属性添加表达式后,将显示表达式编辑器。

文本

要了解表达式如何更改值或速度图表,请在图表编辑器中显示值或速度图表时,选择显示后表达式图表按钮。

阅读图表编辑器

暗淡的彩色图表显示应用表达式之前的值或速度。而明亮的彩色图表显示应用表达式之后的值或速度。打开位置属性的图表叠加会更改合成面板中显示的运动路径,以便您能够查看受表达式影响的路径。

在图表中显示颜色 (gif)

向表达式添加注释

如果您编写一个复杂的表达式,则应添加注释来解释该表达式的作用及其工作原理。

使用以下语法之一来注释您的代码:

  • 在注释开头键入 //。将忽略 // 和行尾之间的任何文本。
    例如: //这是一条注释。
  • 在注释开头键入 /* 并在注释结尾键入 */。将忽略 /**/ 之间的任何文本。
    例如:/*这是一条多行注释。*/

保存和重复使用表达式

编写表达式后,您可以将其复制并粘贴到文本编辑应用程序中进行保存,以备后用。您还可将其保存在动画预设或模板项目中。然而,因为表达式的编写涉及项目中的其他图层且可能会使用特定图层名称,所以有时必须修改表达式才能在项目之间传递表达式。

您可以使用正常的 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

您可以保存包括表达式的动画预设并在其他项目中重用动画预设,前提是表达式不引用其他项目中不存在的属性。当您保存其中的属性具有表达式但没有关键帧的预设时,只会保存表达式。如果该属性具有一个或多个关键帧,则保存的预设包含表达式以及所有关键帧值。

将表达式另存为预设

您可以使用以下步骤将表达式另存为预设并在其他项目中使用:

  1. 时间轴中,选择应用表达式的属性,例如,将表达式应用于图层的旋转属性,因此选中该属性。然后,选择动画 > 保存动画预设

  2. 重命名预设,比如说“Time40”,然后保存。默认情况下,会将其作为 Adobe After Effects 预设文件保存在用户预设文件夹中。

  3. 要应用您的预设,请旋转打开效果和控制菜单下的动画预设。此处有两个文件夹(预设用户预设),旋转打开用户预设。该文件夹包含您在 After Effects 中创建的所有预设。将“Time40”预设拖到正在处理的图层上,即可应用表达式!

从图层属性复制表达式

您可以从图层属性复制表达式,可以包含也可以不包含该属性的关键帧。

  • 要将表达式和关键帧从一个属性复制到其他属性,请在时间轴面板中选择源图层属性,复制该图层属性,选择目标图层属性,然后粘贴。
  • 要将表达式从一个属性复制到其他属性且不复制关键帧,请选择源属性,选择编辑 > 仅复制表达式,选择目标属性,然后粘贴。
提示:

当您要同时复制多个表达式并将其粘贴到一个或多个新图层上时,或者当您要复制一个表达式并将其粘贴到多个图层上时,复制不含关键帧的表达式非常有用。

注意:

正如粘贴关键帧和其他项一样,您通常可以将其粘贴到目标图层,并且依赖 After Effects 确定哪个属性应该是粘贴操作的目标。例如,这适用于将“位置”属性从一个图层复制到另一个图层。但是,如果要将表达式从位置属性粘贴到“缩放”属性中,则必须选择目标属性。

更多表达式资源

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

您还可通过 MotionScript 网站查看 Dan Ebberts 的精彩内容集合,其中包含了相关的表达式示例和教程。

更快、更轻松地获得帮助

新用户?