2014-06-09 51 views
1

在Adobe 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); 
+0

了一下:ExtendScript *爲*的javascript,這意味着你可以使用大量的JavaScript庫的意思做網絡工作在After Effects。我已經成功地使用了json序列化程序庫和linqjs。 – John

回答

1

你與startTime和層的出點工作。這裏有個簡單的例子。腳本需要一個有兩個圖層的活動組件。

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 Scripting guide

+0

Thx!有效 :) – user3374131

相關問題