AE 脚本入门 3:批量更改素材路径
Original...About 1 min
AE 脚本入门 3:批量更改素材路径
需求
一个很常见的需求:我的项目素材库里放了大量素材,在文件系统中更改了它们的位置,导致在 AE 中缺失。如何重新链接素材文件?
前置知识:File
看过文档应该知道,素材是 FootageItem
对象。它有一个属性为 file
,表示对应的源文件。这是只读的,无法修改。但是有 replace
方法,它接受一个 File
类型的参数,表示替换素材。该方法执行后,会更新素材的名称、长宽等属性。
如何创建这个 File
呢?根据 File
的文档,可以用 new File ([ path ] );
来构造,这里 path
形式比较多样,可以是当前平台文件系统路径,也可以是 URI 格式。由详细说明可知,平台特定路径就是我们熟悉的 Driver:\path\to\file
,并且可以通过 File
对象的 fsName
属性获取。
实操
下面开始动手了。首先要知道需要修复哪些素材的路径,最简单的方法应该是在素材库里选中,这样就可获取了。
var selection = app.project.selection; // Array of FootageItem, indexed [0..n-1]
然后循环,对于每项,获取它的 file
的路径,替换成想要的,再构造一个新的 File
给 replace
掉即可。
完整代码如下:
app.beginUndoGroup("Fix footage paths");
var selection = app.project.selection;
for (var i = 0; i < selection.length; i++) {
var it = selection[i];
it.replace(new File(it.file.fsName.replace("\\assets\\", "\\assets\\images\\")));
}
app.endUndoGroup();