Adobe AfterEffects CS3/CS4/CS5/CS5.5編 Bridgeで選択したファイルをAfterEffectsに配置する

今回はAdobe Bridgeのウィンドウで選択した画像ファイルを自動的にAfterEffectsに配置するスクリプトです。なお、スクリプトはBridgeやIllustratorから実行するのではなくESTK上から実行してください。実行する際のターゲットアプリケーション名はBridgeになります。
以下のスクリプトはBridge CS3のウィンドウで選択された画像をファイルをAfterEffects CS3に配置するものです。


var fileList = app.document.selections;
for(var i=0; i<fileList.length; i++){
myBTalk(fileList[i].path);
}

function myBTalk(filename){
var scriptcode = 'var opt = new ImportOptions();';
scriptcode += 'opt.file = new File("'+filename+'");';
scriptcode += 'app.project.importFile(opt);';
$.writeln(scriptcode);
var btObj = new BridgeTalk;
btObj.body = scriptcode;
btObj.target = "aftereffects-8";
btObj.send();
}


上記のスクリプトは選択したファイルを、そのままフラットな階層に配置します。このような機能はBridgeに用意されているので、これだけではたいして意味がありません。できれば階層構造を保ったままプロジェクトに読み込んで欲しいところです。その場合は以下のスクリプトになります。

myBTalk(app.document.selections);

function myBTalk(fileList){
var scriptcode = 'var fileList = [';
for(var i=0; i<fileList.length; i++){
scriptcode += '"'+fileList[i].path+'"';
if (i != fileList.length-1) scriptcode += ',';
}
scriptcode +='];';
scriptcode +='var myFolder = makeFolder(fileList[0]);';
scriptcode +='for(var i=0; i<fileList.length; i++){';
scriptcode +='var opt = new ImportOptions();';
scriptcode +='opt.file = new File(fileList[i]);';
scriptcode +='app.project.importFile(opt).parentFolder = myFolder;';
scriptcode +='};';
scriptcode +='function makeFolder(path){';
scriptcode +='var fd = path.split("/");';
scriptcode +='var pFolder = itemFolder = app.project.items.addFolder(fd[fd.length-2]);';
scriptcode +='for(var i=fd.length-3; i>0; i--){';
scriptcode +='var subFolder = app.project.items.addFolder(fd[i]);';
scriptcode +='pFolder.parentFolder = subFolder;';
scriptcode +='pFolder = subFolder;';
scriptcode +='}';
scriptcode +='return itemFolder;';
scriptcode +='}';

$.writeln(scriptcode);
var btObj = new BridgeTalk;
btObj.body = scriptcode;
btObj.target = "aftereffects-8";
btObj.send();
}

なお、すでに同じ階層構造のフォルダがある場合でも、そこには配置せず新たに作成して配置してしまうので注意してください。 また、AfterEffects CS4に配置したい場合は

btObj.target = "aftereffects-8";
  ↓
btObj.target = "aftereffects-9";


AfterEffects CS5の場合は以下のように変更してください。

btObj.target = "aftereffects-8";
  ↓
btObj.target = "aftereffects-10";


[サンプルをダウンロード]