コンポジション内の写真ファイルを一括で非表示にする
大量にあるコンポジションの中の写真を非表示にする必要がありました。
ただアイテムが静止画かどうか判定するのはあるんですが、レイヤーを判定する方法が見つかりませんでした。
とりあえずスマートではないですが、メモしておきます。
考え方 (ファイル名とレイヤー名で判定する)
プロジェクトパネル内にある写真だけが入っているフォルダ「picsフォルダ」のファイル名を配列に入れ、その後コンポジションの中のレイヤーと一致するか調べて、picsフォルダにある写真のファイル名とレイヤーのファイル名が一致したら非表示という方法です。
var projectLength = app.project.numItems;
$.writeln('projectLength'+projectLength);
var pics_item_No = ""
for (var i = 1; i < projectLength ; i ++){
var fixName = 'pics' ; //←これが写真に入ったフォルダ名の変数です。
var temp = app.project.item(i).name;
if (temp == fixName){
pics_item_No = i;
}
}
var picsfolderPath = app.project.item(pics_item_No);
$.writeln('picsfolderPath'+picsfolderPath.numItems)
var picsArray = [] ;
for (var i = 1; i < picsfolderPath.numItems ; i ++){
var picsName = picsfolderPath.item(i).name;
picsArray.push(picsName)
}
var target = app.project.selection;
app.beginUndoGroup("undo");
for ( var i = 0 ; i< target.length ; i++){
var tempComp = target[i];
var tempLayers = tempComp.numLayers;
for (var j = 1 ; j < tempLayers +1 ; j ++ ){
var layerName = tempComp.layer(j);
for(var k = 0 ; k < picsArray.length ; k++){
if (layerName.name == picsArray[k]){ //ここで←名前を判定する
layerName.enabled=false;
}
}
}
}
app.endUndoGroup();