用户指南 取消(C)

使用表达式编辑和访问文本属性

  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 色彩管理
  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 处理预览时内存不足问题的方式

使用表达式控件编辑文本样式和文本属性。

使用表达式来控制任何文本表达式或动态图形模板中的文本样式。表达式可用于:

  • 链接多个标题并同时更新它们的样式(对于设计标题非常有用)。
  • 在多个文本图层之间保持字体、大小和样式同步。
  • 对文本属性进行全局更改。
  • 文本图层中设置单个字符的样式属性。(Beta 版)

文本图层设置这些属性后,您可以引用该图层属性,以便在整个合成中轻松应用更改。After Effects 表达式使用属性来读取(获取)文本样式值和函数方法,以将它们写入(设置)表达式引擎。这样,您可以跨文本图层链接文本样式,或设置控件,以便为其制作动画或将其用于动态图形模板。

在您开始使用表达式编辑文本属性之前

  1. 选择项目设置 > 表达式 > 表达式引擎 > Javascript,将表达式引擎设置为 Javascript。
  2. 将表达式添加文本图层的源文本属性。
  3. 表达式语言弹出菜单中,选择文本 > 属性 > 文本属性 文本 > 设置样式(Beta 版)。

可用的文本属性

可以使用样式对象读取和设置以下文本样式属性:

  • 字体
  • 字体大小
  • 仿粗体
  • 仿斜体
  • 全部大写字母
  • 小型大写字母
  • 跟踪
  • 行距
  • 自动行距
  • 基线偏移
  • 填充(启用/禁用)
  • 填充颜色
  • 描边(启用/禁用)
  • 描边颜色
  • 描边宽度
  • 数字组合(Beta 版)
  • 缩放(Beta 版)
  • 字距微调(Beta 版)
  • 比例间距(Beta 版)
  • 基线方向(Beta 版)
  • 基线选项(Beta 版)
“表达式语言”弹出菜单列出了可供选择的所有文本属性。
“表达式语言”弹出菜单列出了所有文本属性,包括当前在 After Effects Beta 版中的所有文本属性。

文本图层的源文本属性由表达式解释为 JavaScript 字符串。可以使用 sourceText 读取文本本身,但如果要修改样式属性,则必须使用 setText 方法在样式对象上设置文本。查看一些示例

包含段落的文本图层的表达式

开始新文本行

在字符串表达式中使用 \r 开始一个新的文本行。例如,要将原始文本从一个图层复制到同一图层上,并在新行中用全部大写的字符重复原始文本,请使用以下表达式:

  text.sourceText + “\r” + text.sourceText.toUpperCase()

可用的段落属性

表达式中的段落样式设置现在可供测试和反馈。立即在 After Effects (Beta) 中试用。

除了文本样式属性之外,还可以使用段落属性。只能将这些属性应用于整个文本图层。段落属性仅在 After Effects (Beta) 中可用。

  • 方向
  • 多行书写器
  • 首行缩进
  • 对齐方式
  • 行距类型
  • 左边距
  • 右边距
  • 段后间距
  • 段前间距
  • 罗马式悬挂标点
“表达式语言”弹出菜单列出了所有段落属性,包括当前在 After Effects Beta 版中可用的所有属性。
“表达式语言”弹出菜单列出了 After Effects Beta 版中包含的所有段落属性。

在 After Effects (Beta) 社区中,进一步了解新表达式

PostScript 字体表达式菜单

在表达式中引用字体时,它们必须使用特殊的“系统名称”(或类似名称)。建议从文本 > 字体 > 选择字体对话框插入这一特殊名称,避免表达式错误。

  • 打开表达式语言弹出菜单,然后选择文本 > 字体。这将打开一个带有下拉菜单的对话框,用于选择要插入到表达式中的字样和字体。
“字体”菜单
使用“表达式语言”菜单选择要插入到表达式中的字样和字体。

字体同步

仅在表达式编辑器中引用的字体不记录为项目使用的字体。为确保所有在表达式编辑器中引用的字体将会“自动同步”或填充解析字体对话框,在图层上使用所有这些字体,即使该图层源已隐藏。

使用的字体
如果表达式引用系统未安装的字体,则可能会显示“解析字体”对话框。

样式对象

文本图层的所有样式设置属性都存在于样式对象中,可使用以下方法在源文本属性上访问:

// 使用源文本属性的完整路径 
text.sourceText.style

// 使用当前属性的通用名称 
thisProperty.style

使用单独的样式与使用上面两个示例中的任何一个相同,但是如果组合来自多个文本图层的样式属性,这可能会造成混淆。

也可以读取其他文本图层的样式属性。使用关联器在上面显示的第一个示例的开头创建指向其他文本图层的链接。

// 访问特定文本图层的样式对象 
 
thisComp.layer(“Other Layer Name”).text.sourceText.style;

文本图层中单个字符的样式属性

表达式中的逐字文本样式设置现在可供测试和反馈。立即在 After Effects (Beta) 中试用。

除了使用文本表达式来设置整个文本图层的样式属性之外,您还可以在图层中设置单个字符的样式属性。逐字控件的优点是可自动重新排出文本,例如在缩放字母、使用上标和使用其他字体时,就像使用字符面板中的子字符串样式设置一样。

示例

更改某些字词的字体

textourceTexttyle
etFont(“Montserrat-Light”) 
etFont(“Gigantic”, 0, 6)etFont(“Gigantic”, 10, 6)etFont(“Gigantic”, 20)
 

将文本图层的第一行设置为粗体并放大

 text.sourceText.style.setFontSize(100, 0, 30).setFauxBold(true, 0, 30) 

设置字符的上标

要使用该字符串,请添加带有“第一和第二位”文本的文本图层,并将以下内容应用于源文本

textourceTexttyleetBaselineOption(“superscript”,1,2)etBaselineOption(“superscript”, 9, 2) 

组合样式和源文本

文本和样式
组合样式和源文本

要同时返回样式和实际源文本的值,必须结合使用 getStyleAtsetText 函数。以下是如何编写此表达式的两个示例。

// 返回样式和实际源文本的值(简写) var sourceTextProperty = thisComp.layer(“MAIN TEXT”).text.sourceText; var newStyle = sourceTextProperty.getStyleAt(0,0); newStyle.setText(sourceTextProperty);
// 按图层堆叠顺序返回上一层的样式和实际源文本的值 var sourceTextProperty = thisComp.layer(index - 1).text.sourceText; var newStyle = sourceTextProperty.getStyleAt(0,0); newStyle.setText(sourceTextProperty);
下拉字体
将字体或样式链接到下拉菜单

可使用下拉菜单控制文本样式,例如将文本图层锁定为特定字体。这对于品牌指南、模板、MoGRTS 等都很有用:

// 使用下拉菜单控件将文本图层锁定为特定字体 var dropDownMenu = thisComp.layer(“LayerName”).effect(“Dropdown Menu Control”)(“Menu”); switch (dropDownMenu.value) { case 1 : text.sourceText.style.setFont(“Georgia”); break; case 2 : text.sourceText.style.setFont(“Impact”); break; default : text.sourceText.style.setFont(“Tahoma”); }

主文本图层

主文本图层
从“文本图层 1”获取文本属性,但覆盖字体大小和填充颜色

将多个文本图层链接到某个主字体控制器以同时控制多个图层的文本样式。创建两个文本图层,并将此表达式粘贴到其中一个的源文本中:

// 从文本图层获取所有文本属性 
 
thisComp.layer(“Text Layer 1”).text.sourceText.style;

可以从文本图层获取样式,但需通过使用 Set 函数添加值来覆盖特定的文本属性。以下是使用填充颜色字体大小的两个示例。

// 从“文本图层 1”获取所有文本属性,但使用硬编码值覆盖填充颜色和字体大小 var newStyle = thisComp.layer(“Text Layer 1”).text.sourceText.style; newStyle.setFillColor(hexToRgb(“FF0000”)).setFontSize(100);
// 从“文本图层1”获取所有文本属性,但使用图层的当前文本属性覆盖填充颜色和字体大小 var newStyle = thisComp.layer(“Text Layer 1”).text.sourceText.style; var currentFillColor = thisProperty.style.fillColor; var currentFontSize = thisProperty.style.fontSize; newStyle.setFillColor(currentFillColor).setFontSize(currentFontSize);

示例

下面提供了有关如何通过表达式访问和使用文本属性值的示例。

字体

以下是访问文本图层的字体字体大小仿粗体仿斜体字符间距行距的示例:

// 返回文本图层本身的字体名称 text.sourceText.style.font; // 返回另一个文本图层正在使用的字体名称 var otherLayer = thisComp.layer(“Other Layer Name”); otherLayer.text.sourceText.style.font; // 返回文本图层自身字体大小的值 text.sourceText.style.fontSize; // 返回另一个文本图层的字体大小值 var otherLayer = thisComp.layer(“Other Layer Name”); otherLayer.text.sourceText.style.fontSize; // 返回图层文本是否为仿粗体的布尔值(True 或 False) text.sourceText.style.isFauxBold; // 返回图层文本是否为仿斜体的布尔值(True 或 False)text.sourceText.style.isFauxItalic; // 以数字形式返回文本图层的跟踪值 text.sourceText.style.tracking; // 以数字形式返回文本图层的行距值 text.sourceText.style.leading;

填充

以下是访问文本图层的填充填充颜色的示例:

// 返回一个布尔值,表示图层的文本是否应用了填充(True 或 False)
text.sourceText.style.applyFill; 
 
// 返回文本图层填充颜色的值 
// 默认情况下,这将返回一个 RGB 值数组,范围为 0 – 1.0 之间 
text.sourceText.style.fillColor; 
 
// 使用 setApplyFill 和 setFillColor 设置文本图层的填充颜色 
// setFillColor 值定义为 RGB 数组,范围为 0 – 1.0 之间 
var newStyle = style.setApplyFill(true); 
 
newStyle.setFillColor([1.0, 1.0, 1.0]); 
 
// 设置文本图层的填充颜色,用 hexToRGB 替换 0 – 1.0 RGB 数组以定义具有十六进制值的颜色值 
var newStyle = style.setApplyFill(true); 
 
newStyle.setFillColor(hexToRgb(“FFFFFF”));

填充 RGB 值

// 返回填充颜色的红色 (R) 值
 
text.sourceText.style.fillColor[0];
注意:

要返回文本图层的 R、G 或 B 的填充颜色值,请分别在括号中添加 0、1 或 2。

描边

以下是访问文本图层的描边描边颜色描边宽度的示例:

// 返回一个布尔值,表示图层的文本是否应用了描边(True 或 False)
text.sourceText.style.applyStroke; 
 
// 返回文本图层的描边颜色值
// 默认情况下,这将返回一个 RGB 值数组,范围为 0 – 1.0 之间 
text.sourceText.style.strokeColor; 
 
// 使用 setApplyStroke 和 setStrokeColor 设置文本图层的描边颜色 
// setStrokeColor 值被定义为一个 RGB 数组,范围为 0 – 1.0 之间 
var newStyle = style.setApplyStroke(true); 
 
newStyle.setStrokeColor([1.0, 0.0, 0.0]); 
 
// 设置文本图层的描边颜色,用 hexToRGB 替换 0 – 1.0 RGB 数组以定义具有十六进制值的颜色值 
var newStyle = style.setApplyStroke(true); 
 
newStyle.setStrokeColor(hexToRgb(“FF0000”)); 
 
// 以数字形式返回文本图层的描边宽度值 
text.sourceText.style.strokeWidth;

描边 RGB 值

// 返回描边颜色的绿色 (G) 值 
 
text.sourceText.style.strokeColor[1];
注意:

要返回文本图层的 R、G 或 B 的描边颜色值,请分别在括号中添加 0、1 或 2。

getStyleAt 函数

使用此 get 函数在特定时间返回特定字符的样式值。索引应该是一个数字,是需要其样式的字母或字符的索引。atTime 也应该是一个数字,即在样式已设置关键帧并随时间变化的情况下,在合成中获取样式的时间。

text.sourceText.getStyleAt(index, atTime);
注意:

text.sourceText.styletext.sourceText.getStyleAt(0,0) 的使用方法相同。

// 在时间轴开头获取第一个字符的样式 text.sourceText.getStyleAt(0,0);

Set 函数

可以单独使用或组合使用其他 Set 函数来跨图层驱动样式。对源文本属性的样式对象调用以下每个函数:

// 将字体设置为 Arial 
styleetFont(“ArialMT”) 
 
// 将字体大小设置为 80 
styleetFontSize(80 
 
// 使用布尔值启用仿粗体 
styleetFauxBold(true) 
 
// 使用布尔值启用仿斜体 
styleetFauxItalics(true) 
 
// 使用布尔值启用所有大写字母 
styleetAllCaps(true) 
 
// 使用布尔值启用小型大写字母 
styleetSmallCaps(true) 
 
// 将字符间距设置为数字
styleetTracking(10 
 
// 将行距设置为数字
styleetLeading(10 
 
// 使用布尔值启用自动行距 
styleetAutoLeading(true 
 
// 将基线偏移设置为数字 
styleetBaselineShift(10 
 
// 将描边宽度设置为数字 
styleetStrokeWidth(10 

// 目前为 Beta 版 - 将文本图层的第一行设置为粗体并放大
 textourceTexttyleetFontSize(100, 0, 30)etFauxBold(true, 0, 30)

// 目前为 Beta 版 - 为字符设置上标 
textourceTexttyleetBaselineOption(“superscript”,1,2)etBaselineOption(“superscript”, 9, 2) 

文本样式的所有 set 函数都可以链接在一起以轻松设置多个属性,而无需每次都声明新样式,如下例所示:

注意:

在设置好最后一个属性之后才使用分号。在单独的行中列出每个属性有助于使整个链更易于阅读。

// 启用填充、设置填充颜色、设置基线、设置跟踪,并启用自动行距 text.sourceText.style .setApplyFill(true) .setFillColor(hexToRgb(“FFFFFF”)) .setBaselineShift(10) .setTracking(25) .setAutoLeading(true);

源文本表达式的其他用途

向合成添加文本图层并向其源文本属性添加表达式可能是检查其他图层的属性值的一种非常好的方法。例如,源文本属性的以下表达式以图层堆积顺序报告下一个图层的不透明度属性的名称和值:

var nextLayer = thisComp.layer(index + 1); nextLayer.name + “\rOpacity = ” + nextLayer.opacity.value; 

以下示例在设置其“视频”开关的当前时间以堆积顺序报告用作最高图像图层源的素材项目的名称:

// 将 sourceFootageName 创建为一个空字符串 var sourceFootageName = “”; // 循环合成中的所有层 (var i = 1; i <= thisComp.numLayers; i++) { // 如果 i 匹配该层的索引,则继续下一个循环 (i == index) { continue; } // 为循环的当前迭代设置 myLayer var myLayer = thisComp.layer(i); // 如果 myLayer 没有视频或未处于活动状态,则继续下一个循环/层 if ( !myLayer.hasVideo || !myLayer.active ) { continue; } // 如果当前时间 myLayer 处于活动状态 if ( myLayer.active ) { try { // 将 sourceFootageName 设置为 myLayer 的源名称 sourceFootageName = myLayer.source.name; } catch ( err ) { // 如果 myLayer 没有源,// 将 sourceFootageName 设置为 myLayer 的名称 sourceFootageName = myLayer.name; } // 停止循环中断; } } // 显示 sourceFootageName sourceFootageName;

将表达式另存为预设

选择添加了表达式的源文本属性。然后,选择动画 > 保存动画预设,以便在其他项目中重复使用这些表达式。动画预设保存在效果和预设面板中。

有关更多信息,请参阅效果和动画预设概述

更多表达式资源

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

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

 Adobe

更快、更轻松地获得帮助

新用户?

Adobe MAX 2024

Adobe MAX
创意大会

10 月 14 日至 16 日迈阿密海滩及线上

Adobe MAX

创意大会

10 月 14 日至 16 日迈阿密海滩及线上

Adobe MAX 2024

Adobe MAX
创意大会

10 月 14 日至 16 日迈阿密海滩及线上

Adobe MAX

创意大会

10 月 14 日至 16 日迈阿密海滩及线上