介绍
在本文中,我将介绍使用脚本导航 after effects 项目和合成的一些基础知识。我将引用脚本指南中一些最有用的部分,并展示一些有关其工作原理的实际示例。
让我们开始吧。
应用
app
应用程序引用应用程序 after effects 本身。要引用 after effects 中的任何内容,您需要首先告诉脚本查看应用程序。
虽然您可以引用安装 after effects 的设置、文件和计算机系统(我将在另一篇文章中介绍这些选项),但它很可能是您在应用程序后需要引用的主要对象是一个 after effects 项目。
app.newproject()
newproject() 创建一个新的空项目。如果您想在此之前保存当前的作品,after effects 将会提示您。
app.open(file)
open() 同时允许您打开现有项目。将括号留空,它将打开打开项目对话框,就像导航到 after effects 菜单中的文件 > 打开项目… 一样。或者,您可以引用括号内的文件来打开特定项目。
project = new file ("...filepath/ae project.aep"); app.open(project);
您将需要创建一个新的 file() 来从脚本中查找该文件。我更喜欢将其存储在变量中以保持整洁。再次,在文件打开之前,系统会提示您保存当前项目。
项目
app.project
项目引用在 after effects 中打开的当前项目。从这里,我们可以访问项目中的所有项目、创建新项目以及访问渲染队列。
app.project.save([file])
save() 保存项目。在不添加文件选项的情况下,或者如果之前没有保存过项目,此方法将弹出保存对话框,供用户保存项目。请记住 – 您需要在项目中创建一个新文件,然后才能在此方法中引用它。
app.project.importfile(importoptions)
importfile() 的工作方式有点像这样:
new importoptions().file = new file("...filepath/my file.jpg"); app.project.importfile(file)
我将在另一篇文章中更详细地介绍导入文件。但作为快速概述,您可以使用此方法将文件导入到项目中。您不仅需要创建一个新文件,还必须创建新的 importoptions 来指定要导入的内容以及导入方式。这使我们能够执行诸如导入图像序列、导入文件以及强制按字母顺序排列等操作。
app.project.importfilewithdialog()
importfilewithdialog() 同时打开导入素材对话框,供最终用户选择他们的文件。
app.project.renderqueue
renderqueue 授予我们访问渲染队列的权限,并允许我们设置渲染设置甚至渲染合成。我将在另一篇文章中详细讨论这一点。
app.project.activeitem
activeitem 指当前正在查看的项目,通常是合成、素材图层、占位符或实体。它一次仅引用一项,如果有多个项处于活动状态,或者没有项处于活动状态,则返回 NULL。对于添加图层或以某种方式影响用户当前正在处理的内容的脚本,可以方便地引用活动合成。请注意,这与选择的项目不同。
app.project.selection
选择是指当前在项目面板中选择的所有项目。这是您在引用所选项目而不是活动项目时所需要的。
app.project.item(index)
item() 特指项目中的单个项目 – 无论是组合、实体还是您拥有的其他项目。像这样:
app.project.item(1) app.project.item("comp 01")
索引代表项目窗口内项目的索引号,也可以指图层的名称。
app.project.items
同时,
items 指的是项目内的集合 项目。它用于创建新的作品和文件夹。
文件夹和作品
这让我们很好地了解了文件夹和合成。
app.project.items.addfolder(name); app.project.items.addcomp(name, width, height, pixelaspect, duration, framerate);
addfolder() 为您的项目创建一个新文件夹。确保名称参数是一个字符串(以“”或“”表示)。
addcomp() 然而还有更多的参数需要考虑。这是因为创建新作品需要大量信息:
argument | description |
---|---|
name | the name of the composition. needs to be a String (in ” ” or ‘ ‘) |
width | the width of your composition |
height | the height of your composition |
pixelaspect | the pixel aspect ratio. you are almost certainly looking to set this to square pixels, which you can do by setting the ratio to 1. any other pixel aspect ratio can be set by entering the correct ratio (for example, anamorphic 2:1 can be set by entering 2, and d1/dv pal widescreen can be set by entering 1.46). |
duration | the duration of the composition in seconds |
framerate | the frame rate of the composition |
您可以通过引用文件夹来在文件夹内创建新的组合,如下所示:
folder01 = app.project.items.addfolder("comps"); comp01 = folder01.items.addcomp("comp 01", 1920, 1080, 1, 5, 25);
并且可以通过设置项目的parentfolder属性在事后将项目移动到文件夹中:
folder01 = app.project.items.addfolder("comps"); comp01 = app.project.items.addcomp("comp 01", 1920, 1080, 1, 5, 25); comp01.parentfolder = folder01;
创建合成后,您可以使用 openinviewer() 将其设置为活动项目
comp1.openinviewer();
例子
使用我所介绍的一些内容,这里有一个简短的脚本,允许您打开一个新项目,创建 2 个文件夹和 2 个合成,并将一个合成添加到另一个合成中作为预合成。
app.newproject(); folder1 = app.project.items.addfolder("_final"); folder2 = app.project.items.addfolder("precomps"); comp1 = folder1.items.addcomp("comp 01", 1920, 1080, 1, 10, 25); comp2 = folder2.items.addcomp("comp 02", 1920, 1080, 1, 10, 25); comp1.openinviewer(); app.project.activeitem.layers.add(comp2);
快速提示
运行此脚本后,您会发现,如果您在 after effects 中按撤消键,它一次只会撤消每个操作。大多数时候这并不理想,因为脚本经常经历许多操作,这对于最终用户来说非常耗时且烦人。
app.beginUndoGroup(undoString) app.endUndoGroup(undoString)
这就是 beginundogroup() 和 endundogroup() 发挥作用的地方。它们允许您将脚本的操作组合在一起,以便可以一次性撤消它们。 undostring 是您在 after effects 中的撤消选项旁边看到的内容。如果您的脚本中只有一个 beginundogroup() 实例(因为它会自动关闭),则不一定需要添加 endundogroup(),但最好将其添加到脚本末尾,以保持您的脚本整洁。
结论
我希望这有助于了解如何在制作 after effects 脚本时引用 after effects 项目和合成。在下一篇文章中,我将详细介绍如何创建弹出窗口,以便用户与您的脚本进行交互。
有任何疑问吗?这里有问题或者不工作吗?请在评论中告诉我。