【AE教程】AE脚本开发一些经验

15 九月, 2016
7
0

after-effects-script
作者网名:淡蓝

题记:

最近公司后期需要在AE中导入某镜头的人物场景,加一些固定的特效。苦命的我一边研究官方提供的pdf一边google,花了差不多一周时间才搞定。

具体步骤

1,在AE中创建文件夹:

app.project.items.addFolder("myFolder");

2,判断文件夹是否存在:

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参数表示导入的帧数

7,新建Comp:

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();