题记:最近公司后期需要在AE中导入某镜头的人物场景,加一些固定的特效。苦命的我一边研究官方提供的pdf一边google,花了差不多一周时间才搞定。
1,在AE中创建文件夹:
app.project.items.addFolder("myFolder");
function judgeLayer(layername) {
for(var i = 1; i <= app.project.numItems; i++) {
if(app.project.item(i).name == layername)
{
return false;
}
}
return true;
};
3,找到一个文件夹对象:
function findFolderItemByName(name){
var found = false;
for (i = 1; i <= app.project.numItems; i++){
if (app.project.item(i).name == name && app.project.item(i) instanceof FolderItem ){
var myFolder = app.project.item(i);
found = myFolder;
break
}
}
return found;
}
4,,把文件或者文件夹放入一个父级文件夹中:
childFolder.parentFolder = findFolderItemByName("parentFolderName");
5,获取电脑中某个文件夹中的内容:
var folderObj = new Folder("folderPath");
var moveFileList = folderObj.getFiles();
6,导入序列文件到AE中:
var io = new ImportOptions();
io.file = new File("filePath");
io.sequence = true;
io.forceAlphabetical = true;
mySeq = app.project.importFile(io);
myDuration = mySeq.duration;<span style="font-family: Arial, Helvetica, sans-serif;"> </span><span style="font-family: Arial, Helvetica, sans-serif;"> </span>
myDuration参数表示导入的帧数
var myComp = app.project.items.addComp("testComp", 1920, 1080, 1, 150/25, 25);
这里的
150/25表示的是,总共150帧,因为addComp函数接受的参数的单位是秒。
8,设置Comp的起始时间:
myComp.displayStartTime = 2/25;
这里是设置起始帧为1
9,将Comp中加Layer:
myComp.layers.add(myLayer);
10,设置Comp中某层的某属性:
myComp.layers.byName("test").Scale.setValue([80,80]);
11,将Comp中某层移到最下:
myComp.layers.byName("test").moveToEnd();
12,设置某层的时间:
var nowF = (inComp.layer(1).outPoint - inComp.layer(1).inPoint);
var tarF = timeDuration;
var stretchValue = 100*tarF/nowF;
inComp.layer(1).stretch = stretchValue;
13,设置某层的matte
myLayer.trackMatteType= TrackMatteType.ALPHA
14,给某层加特效
myLayer.Effects.addProperty("Roughen Edges")("Border").setValue(0);
myLayer("Effects")("Roughen Edges")("Scale").setValue(170);
15,加solid层
mySolidLayer = timeCodeComp.layers.addSolid([0,0,0],"solid",1920,1080,1,80/25);
16,给solid层加矩形mask
newMask = mySolidLayer.Masks.addProperty("ADBE Mask Atom");
newMask.maskMode = MaskMode.ADD;
newMask.color = [1,1,0];
myProperty = newMask.property("ADBE Mask Shape");
myShape = myProperty.value;
myShape.vertices = [[600, 70], [600,164], [38,164],[38,70]];
myShape.closed = true;
myProperty.setValue(myShape);
17,加text层
newText = new TextDocument("test");
var theTextLayer = timeCodeComp.layers.addText(newText);
theTextLayer.Position.setValue([163,143]);
var textProp = theTextLayer.property("Source Text");
var textDocument = textProp.value;
textDocument.fontSize=59;
textDocument.font = "Microsoft YaHei";
textDocument.justification = ParagraphJustification.CENTER_JUSTIFY;
textProp.setValue(textDocument);
18,激活某个comp
myComp.openInViewer();