After Effects 中的脚本

优质
小牛编辑
133浏览
2023-12-01

脚本 是一系列的命令,它告知应用程序执行一系列操作。您可以在大多数 Adobe 应用程序中使用脚本来自动执行重复性任务、执行复杂计算,甚至使用一些没有通过图形用户界面直接显露的功能。例如,您可以指示 After Effects 对一个合成中的图层重新排序、查找和替换文本图层中的源文本,或者在渲染完成时发送一封电子邮件。

After Effects 脚本使用 Adobe ExtendScript 语言,该语言是 JavaScript 的一种扩展形式。ExtendScript 文件具有 .jsx 或 jsxbin 文件扩展名。

有关 After Effects 可用脚本功能的介绍,请参阅 After Effects 开发中心部分上的“After Effects 脚本指南”。

加载和运行脚本

当 After Effects 启动时,它将从“脚本”文件夹加载脚本。对于 After Effects,“脚本”文件夹默认位于以下位置:

  • (Windows) Program Files\Adobe\Adobe After Effects <版本>\Support Files
  • (Mac OS) Applications/Adobe After Effects <版本>

脚本也安装在用 After Effects CC 12.1 启动的用户位置中。

After Effects 自带的几个脚本将自动地安装在“脚本”文件夹中。

从“文件”>“脚本”菜单可以使用加载的脚本。如果您在 After Effects 运行期间编辑脚本,则必须保存更改以便应用更改。如果您在 After Effects 运行期间在“脚本”文件夹中放置了一个脚本,则必须重新启动 After Effects 以便该脚本出现在“脚本”菜单中,但您可以使用“运行脚本文件”命令立即运行这一新脚本。

可以从“窗口”菜单的底部使用“ScriptUI 面板”文件夹中的脚本。如果编写脚本的目的是在一个可停靠面板中提供用户界面,则应将该脚本放在 ScriptUI 文件夹中。ScriptUI 面板很像 After Effects 用户界面中的默认面板。

注意:默认情况下,不允许脚本写入文件或通过网络收发通信。要允许脚本写入文件和通过网络通信,请选择“编辑”>“首选项”>“常规”(Windows) 或“After Effects”>“首选项”>“常规”(Mac OS),然后选择“允许脚本写入文件和访问网络”选项。

  • 要运行已加载的脚本,请选择“文件”>“脚本”>[脚本名称]。
  • 要运行尚未加载的脚本,请选择“文件”>“脚本”>“运行脚本文件”,找到并选择脚本,单击“打开”。
  • 要停止运行脚本,请按 Esc 键。
  • 要从命令行运行脚本,请从命令行调用 afterfx.exe。以 -r 开关和要运行的脚本的完整路径为参数。此命令不会打开 After Effects 应用程序的新实例;它在现有实例中运行脚本。

    示例(对于 Windows):

    afterfx -r c:\script_path\example_script.jsx

注意:您可以使用此命令行技术并结合带自定义键盘的软件,将脚本调用绑定到一个键盘快捷键。

您可以在 After Effects 中查看最近运行的 10 个脚本的列表。要查看此列表,请选择“文件”>“脚本”>“最近的脚本文件”。

要再次运行最近运行的十个脚本中的任何一个,请按 Cmd+Option+Shift+D (macOS) 或 Ctrl+Alt+Shift+D (Win)。

Jeff Almasol 提供了一个创建简单控制台面板的脚本。控制台面板包括一个文本区域,从中您可以输入要估值的 ExtendScript 命令。这里不捕获错误或消息;此控制台只是一个简单的命令输入途径,您无需先创建一个脚本。有关信息,请参阅 Jeff Almasol 的 redefinery 网站。

注意:在 AE 脚本网站上,Lloyd Alvarez 就在无法访问“脚本”或“ScriptUI 面板”文件夹的情况下如何运行 .jsxbin 脚本提供了一则提示。

After Effects 附带的脚本

After Effects 提供了几个预先写好的脚本来帮助您执行常见任务,您可将其作为修改和创建您自己的脚本的基础。

注意:运行示例脚本 Demo Palette.jsx,让自己对于能通过脚本做什么事情有些认识。

编写和修改脚本

您可以使用脚本编辑器(ExtendScript 工具包的一部分)编写自己的要用于 After Effects 的脚本。ExtendScript 工具包为您创建、调试和测试自己的脚本提供了一个便利界面。有时,您需要做的只是对现有脚本稍加修改以便满足您的要求;这样的小改动常常无需多少计算机编程和脚本语言知识就能完成。

有关更多信息,请参阅 After Effects 脚本指南。

要启动脚本编辑器,请选择“文件”>“脚本”>“打开脚本编辑器”。

AE Enhancers 论坛上提供了一个教程,教授读者如何一步步创建脚本。

Jeff Almasol 在他的 redefinery 网站上提供了一套脚本实用工具(如有用的函数),可方便用户创建自己的脚本。

David Torno 提供 After Effects 脚本匹配名列表。

脚本访问

动态图形模板的脚本访问

使用以下脚本方法,脚本可以将属性添加给基本图形面板和导出动态图形模板:

  • 属性 canAddToMotionGraphicsTemplate() 方法 app.project.item(index).layer(index).propertySpec.canAddToMotionGraphicsTemplate(comp) 测试是否可以将属性添加到指定合成的基本图形面板。如果可以添加属性,则返回 true,否则返回 false。如果不能添加属性,可能是因为它不是受支持的属性类型之一或属性已被添加到该合成。After Effects 显示警告对话框。 

支持的属性类型是:

  • 复选框
  • 颜色
  • 数字滑块 (即单值数值属性,如“变换”>“不透明度”或滑块控件表达式控制效果)
  • 源文本

参数

合成要测试的合成将属性添加到 compItem。

返回

布尔值。

  • 属性 addToMotionGraphicsTemplate() 方法 app.project.item(index).layer(index).propertySpec.addToMotionGraphicsTemplate(comp) 将属性添加给指定合成的基本图形面板。如果属性添加成功,则返回 true,否则返回 false。如果未添加属性,可能是因为它不是受支持的属性类型之一或属性已被添加到该合成。After Effects 将显示警告对话框。使用 canAddToMotionGraphicsTemplate() 方法来测试是否可以将属性添加到动态图形模板。

参数

合成要测试的合成将属性添加到 compItem。

返回

布尔值。

  • CompItem motionGraphicsTemplateName 属性 app.project.item(index).motionGraphicsTemplateName 在基本图形面板中为合成读取或写入名称属性。基本图形面板中的名称用于导出的动态图形模板的文件名称,如 My Template.mogrt。以下示例设置活动合成的名称,然后将其返回为警告: 

app.project.activeItem.motionGraphicsTemplateName = "My Template";
alert(app.project.activeItem.motionGraphicsTemplateName);

类型:

字符串;读取/写入。

  • CompItem exportAsMotionGraphicsTemplate() 方法 app.project.item(index).exportAsMotionGraphicsTemplate(doOverWriteFileIfExisting, file_path) 将合成导出为动态图形模板。 如果动态图形模板导出成功,则返回 true,否则返回 false。基本图形面板中的名称用于动态图形模板的文件名称,如 My Template.mogrt。使用 motionGraphicsTemplateName 属性设置名称。(可选)指定保存动态图形模板文件的文件夹的路径。如果未指定,则文件会保存在当前用户的基本图形文件夹中:

macOS

/Users//Library/Application Support/Adobe/Common/Essential Graphics/

Windows:

C:\Users\\AppData\Roaming\Adobe\Common\Essential Graphics\

如果项目自上次保存后有更改,After Effects 会提示用户保存项目。为了避免出现这种情况,请在导出动态图形模板之前使用项目 save() 方法。

参数

doOverWriteFileIfExisting是否覆盖具有相同名称的现有文件、布尔值。 必填。
file_path将保存文件的文件夹的路径。(可选)。

返回

布尔值。

  • CompItem openInEssentialGraphics() 方法 app.project.item(index).openInEssentialGraphics() 在基本图形面板中打开合成。

参数

返回

查找更多有用脚本的位置

在 Adobe 附加项网站上查找脚本、项目和其他有用项。

Dan Ebberts 在他的 MotionScript 网站的脚本部分提供脚本教程和有用的脚本。

Lloyd Alvarez 在他的 After Effects 脚本网站上提供了一个有用的脚本集。

AE Enhancers 论坛提供关于 After Effects 中的脚本(以及表达式和动画预设)的示例脚本和有用信息。

Jeff Almasol 在他的 redefinery 网站上提供了一个有用的脚本集。

Dale Bradshaw 在他的 Creative Workflow Hacks 网站上提供了脚本和技巧。

nabscripts 网站提供了很多有用的脚本。

Christopher Green 在他的网站上提供了许多有用的脚本。