1

在 Adob​​e After Effects (AE) 中,我正在编写一个简短解释动画的脚本。AE 中的脚本语言看起来很像 Javascript,只是脚本语言的文档级别很低(即使在网络上也是如此)。

我在 AE 中添加了两个合成,每个合成都包含层。问题是在运行脚本后,两个场景都从 AE 时间轴的开头开始。我想在“scene1”完成后开始“scene2”。但我无法弄清楚如何做到这一点。我开始使用“displayStartTime”,但不幸的是,在运行脚本后,两个场景在时间线中的 0 处重新开始,因此相互重叠。

有人知道如何解决这个问题吗?

(两个场景的持续时间都是 5 秒)

var scene1 = addComposition("SCENE1", 1920, 1080, 1, 5, 30, compositionType.scene, compMain); 
scene1.collapseTransformation = true;
scene1.displayStartTime = 1; //start this scene from the beginning, and  therefore overrule main.
var bg1 = scene1.layers.addSolid(hexToRgb(backgroundColor.white) , "BACKGROUND ONE", 1920, 1080, 1); 
var art1 = scene1.layers.add(getArtworkItem(artworkList, "funk-elogo")); //add artwork to this scene, start at 1, setplop starts at 1
art1.startTime = 1;
setPlop(art1, 1, 1);

var scene2 = addComposition("SCENE2", 1920, 1080, 1, 5, 30, compositionType.scene, compMain);
scene2.collapseTransformation = true;
scene2.displayStartTime = 6; //start this scene after scene 1
var bg2 = scene2.layers.addSolid(hexToRgb(backgroundColor.white) , "BACKGROUND TWO", 1920, 1080, 1); 
var art2 = scene2.layers.add(getArtworkItem(artworkList, "office")); //add artwork to this scene, start at 1, setplop starts at 1
art2.startTime = 1;
setPlop(art2, 1, 1);
4

1 回答 1

1

您必须使用层的 startTime 和 outPoint。这是一个简单的例子。该脚本需要一个包含两层的活动组合。

function fun(){
app.beginUndoGroup("XXX");
var curComp = app.project.activeItem;
   if (!curComp || !(curComp instanceof CompItem)){
        alert("no active comp");
        return;
    };
if(curComp.numLayers < 2){
    alert("Not enough layers");
    return;
    }
var compone = curComp.layer(1);
var comptwo = curComp.layer(2);
comptwo.startTime = compone.outPoint;
app.endUndoGroup();
}

fun();

有关更多信息,请查看After Efffects CS6 脚本指南

于 2014-06-09T09:56:43.797 回答