LoginSignup
0

More than 5 years have passed since last update.

AE プロジェクトアイテムのコンポジション内の写真を非表示に

Last updated at Posted at 2018-07-26

コンポジション内の写真ファイルを一括で非表示にする

大量にあるコンポジションの中の写真を非表示にする必要がありました。
ただアイテムが静止画かどうか判定するのはあるんですが、レイヤーを判定する方法が見つかりませんでした。
とりあえずスマートではないですが、メモしておきます。

考え方 (ファイル名とレイヤー名で判定する)

プロジェクトパネル内にある写真だけが入っているフォルダ「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();

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0