使用扩展脚本在后效应项目中按名称获取合成

Poo*_*oja 3 after-effects extendscript composition

我正在研究After Effects脚本并使用AE脚本指南作为学习的基础.

我有一个After Effect项目,其中包含两个AE项目,每个项目中都有多个项目.

我想从具有特定名称的主项目中获取合成但不循环遍历项目中的所有项目.例如,

var myComp = app.project.comp("Composition Name");
Run Code Online (Sandbox Code Playgroud)

这可能吗 ?还有其他方法吗?

Zik*_*iki 5

你可以这样得到comp:

var myComp;
for (var i = 1; i <= app.project.numItems; i ++) {
    if ((app.project.item(i) instanceof CompItem) && (app.project.item(i).name === 'Comp Name')) {
        myComp = app.project.item(i);
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,如果您想检查是否没有更多具有相同名称的comp,您应该像这样写:

var myComp;
for (var i = 1; i <= app.project.numItems; i ++) {
    if ((app.project.item(i) instanceof CompItem) && (app.project.item(i).name === 'Comp Name')) {
        if (myComp) {
            throw new Error();//or something else
        }
        myComp = app.project.item(i);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果你想要你可以把它放在数组中并检查它是否是唯一的返回myComp [0],如果没有做像扔错误那样的东西