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