実行すると、開いているaepファイルと同じフォルダに、使用エフェクト一覧テキストファイルを出力します。
[解説]
var fileObj = new File(decodeURI(app.project.file.parent)+"/dev["+decodeURI(app.project.file.name)+"]使用エフェクト一覧.txt");
fileObj.encoding = "UTF-8";
var flag = fileObj.open("w");
var compName="";
if (flag == true)//ファイルが開けなければ終了
{
// プログレス準備
var greWin = new Window('window','実行中',[500,500,800,580]);
var st=greWin.add('statictext',[20,10,130,30],"全体の進行状況");
greWin.Dilog = greWin.add("progressbar",[20,30,280,40],0,100);
greWin.center();
greWin.show();
var allFxAr = [];
var tx=
"["+decodeURI(app.project.file.name)+"]\r"+
"aep使用エフェクト名一覧\r\r";
tx+=
"*---------------------------------\r"+
"*[コンポジション名]\r"+
"*---------------------------------\r"+
"* (レイヤー番号):[レイヤー名]\r"+
"* : エフェクト名1\r"+
"* : エフェクト名2\r"+
"* (以下エフェクト続く…)\r\r";
//プロジェクトウィンドウ全検索
for (i=1; i<=app.project.items.length; i++){
var itm = app.project.item(i);
if(itm instanceof CompItem){// - [compなら]中身も全検索
for(var j=1;j<=itm.numLayers;j++){//コンポジション内全検索
var lyr = itm.layer(j);//ファイル置換はitm.nameに、テキスト変換はlyr.nameに適用
var is3Dobj=false;//ライト、カメラレイヤー回避
if(lyr.matchName == "ADBE Camera Layer") is3Dobj=true;
if(lyr.matchName == "ADBE Light Layer") is3Dobj=true;
if ( !is3Dobj){
var numEff=lyr.property("Effects").numProperties;
if (numEff){
if (compName!=itm.name){
compName=itm.name;
tx+="\r---------------------------------\r";
tx+="["+compName+"]コンポ\r";
}
tx+="\r"+" #" + lyr.index + " [" + lyr.name+"]レイヤー\r";
for(k=1;k<=numEff;k++){
var effName="("+lyr.property("Effects").property(k).matchName+") "+lyr.property("Effects").property(k).name;
tx+=" " + " : " + effName+"\r";
allFxAr.push(effName);
}
}
}
}
}
}
f_arrayUnique(allFxAr);//重複削除
allFxAr.sort(//番号順にソート
function(a,b){
if(a<b)return -1;
if(a>b)return 1;
return 0;
}
);
tx+="\r\r全エフェクト一覧\r"+allFxAr.join("\r");
fileObj.write(tx);
greWin.close();
fileObj.close();
alert("aep使用エフェクト名一覧 - 書き出し完了");
}else{
alert("ファイル保存取り消し");
}
//配列重複削除
function f_arrayUnique(ary){
var i, j, len;
i = 0;
len = ary.length;
while(i < len){
j = i + 1;
while(j < len){
if(ary[j] === ary[i]){
ary.splice(j, 2);
len--;
}else{
j++;
}
}
i++;
}
}
出力されるファイル例
[sample.aep] aep使用エフェクト名一覧 *--------------------------------- *[コンポジション名] *--------------------------------- (レイヤー番号):[レイヤー名] : エフェクト名1 : エフェクト名2 (以下エフェクト続く…) [sample comp]コンポ#8 [mask 2]レイヤー
: (ADBE Angle Control) angle
: (ADBE Checkbox Control) 上下反転
: (ADBE Color Control) fill_color
: (ADBE Color Control) strk_color
#10 [shape 2]レイヤー
: (ADBE Checkbox Control) 縦書き
: (ADBE Slider Control) n個で改行
: (ADBE Slider Control) ズレX
: (ADBE Slider Control) ズレY
全エフェクト一覧 (ADBE Angle Control) angle (ADBE Checkbox Control) 上下反転 (ADBE Checkbox Control) 縦書き (ADBE Color Control) fill_color (ADBE Color Control) strk_color(ADBE Slider Control) n個で改行
(ADBE Slider Control) ズレX (ADBE Slider Control) ズレY
このようにコンポジションの構造もわかるように残していきます。
コンポジション名、レイヤー番号、レイヤー名、エフェクト、エフェクト名と個別表示に加え、最後に全エフェクト一覧を列挙します。
使用しているエフェクトを確認し、渡す相手のPCにないエフェクトを確認する際などに活躍します。
この記事へのコメントはありません。