使い回し用　フォルダ分けされた大量の写真をコンポジションに変換する

#自分用なので綺麗ではないですが

環境説明

プロジェクトパネルには大量のフォルダ分けされた写真がある
＿Assetsの中にはトランジション用のalphの名前が付いたアイテムがいくつか入っている

最終的にフォルダ分けされたフォルダに_precompというフォルダを作って
その中にトランジション用のalphと写真をまとめたコンポジションを格納していくってやつ

どっかの部分だけ使い回したりしそうなのでメモ。

```jsx
var myItems = app.project.selection;
var myItemName = new Array(app.project.selection.length);
var _AssetsFolderObj ;
var AlphItems =[];
existFolderNmae("_Assets")
getAlph_Folder()
app.beginUndoGroup("undo");//アンドゥグループ開始
createComps()
app.endUndoGroup();//アンドゥグループの終わり
////$.writeln(getBorderObj())

function createComps(){
    var havePrecompFolderObj =false ;
    var PrecompFolderObj  ;
    for (var i=1; i <=myItems[0].parentFolder.numItems; i++){
        var item =myItems[0].parentFolder.item(i);
        var flag = item instanceof FolderItem;
        var pattern = '_preComp';
        if( ( flag == true ) && (item.name.indexOf(pattern) === 0)   ){
            havePrecompFolderObj = true;
            PrecompFolderObj = myItems[0].parentFolder.item(i);
            break ;
        }
    }
    if ( havePrecompFolderObj == false ){
       PrecompFolderObj =  app.project.items.addFolder('_preComp');
       PrecompFolderObj.parentFolder = myItems[0].parentFolder
    }
    $.writeln(havePrecompFolderObj)
    
    for (var i=0; i <myItems.length; i++){
        myItemFolder = myItems[i].parentFolder 
        myItem = myItems[i];
        myItemName = myItem.name;
        var myComp = app.project.items.addComp(myItemName,1920,1080,1.0,600,29.97)//コンポジションを作成
        myComp.parentFolder = PrecompFolderObj;
        var myLayerObj = myComp.layers.add(myItem);
        var setScall = objScallSetting(myLayerObj,myComp.width,myComp.height);
        myLayerObj.property("ADBE Transform Group").property("ADBE Scale").setValue([setScall,setScall]);
        myLayerObj.property("ADBE Transform Group").property("ADBE Scale").expression = scallExp();
        //border,mov追加
        myComp.layers.add(getBorderObj())        //alphアイテムをランダムで選ぶ
        var random = Math.floor( Math.random() * (AlphItems.length) ) ;
        //$.writeln(random);
        //$.writeln(AlphItems[random])
        for ( var j=0; j <AlphItems[random].length; j++){
             //$.writeln("j = "+ j );
             //$.writeln(AlphItems[random][j] .name)
             if ( j == AlphItems[random].length-1 ){
                myComp.layers.add(AlphItems[random][j]).blendingMode = BlendingMode.STENCIL_ALPHA ;
             }else{
                myComp.layers.add(AlphItems[random][j])               
             }

        }
        
    }
}

function objScallSetting(obj,compWidth,compHeight){
    width = obj.width;
    height = obj.height;
    var ScallIs;
    if ( width > height){
        ScallIs = compWidth/width*100;
    }else{
        ScallIs = compHeight/height*100;
    }
    return ScallIs
}

//_Aseetsのフォルダーを取得
function existFolderNmae(fName){
    for ( var i=1; i <= app.project.numItems; i++){
        var aItem = app.project.item(i);
        var flag = aItem instanceof FolderItem;
        if ( ( flag == true ) && (aItem.name == fName) )  {
            _AssetsFolderObj = aItem;
            return true;
        }
    return false
    }
}

//alph_のフォルダなら配列に
function getAlph_Folder(){
    var tempArray = [];
    for ( var i=1; i <= app.project.numItems; i++){
        var aItem = app.project.item(i);
        var flag = aItem instanceof FolderItem;
        var pattern = 'alph';
        
        if( ( flag == true ) && (aItem.name.indexOf(pattern) === 0)   ){
            tempArray.push(aItem)
        }
    }

    //alphフォルダの中身を配列に
    for ( var i=0; i < tempArray.length; i++){
        AlphItems[i] = [];
    //$.writeln(tempArray[i].numItems)
        for ( var j = 1 ; j <= tempArray[i].numItems ; j++ ){
                 //$.writeln(tempArray[i].item(j).name)
                 AlphItems[i][j-1] = tempArray[i].item(j) ;
        }
    }
}
 
//_borderのobjをゲット
function  getBorderObj(){
    for ( var i=1; i <= app.project.numItems; i++){
        var aItem = app.project.item(i);
        if ( aItem.name == "border.mov" )  {
            return aItem;
        }
    }
}


function  scallExp(){
var exp = 'sp = time*.3;\
value+[sp,sp]\
'
   return exp
}



```