今回は、Adobe Bridgeのウィンドウで選択した画像ファイルを自動的にAfterEffectsに配置するスクリプトです。なお、スクリプトはBridgeやIllustratorから実行するのではなく、ESTK上から実行してください。実行する際のターゲットアプリケーション名はBridgeになります。
以下のスクリプトは、Bridge CS3のウィンドウで選択された画像をファイルをAfterEffects CS3に配置するものです。
以下のスクリプトは、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";
【古籏一浩】openspc@alpha.ocn.ne.jp
< http://www.openspc2.org/
>
梅雨明けで猛烈な暑さ。マシンの放熱で部屋はいつでも猛暑。特に暑いのが、新たに導入した、以下の15TB HDD。RAID5で使っているので実質12TB。これだけあると、映像素材など全部入れても4TBも空いてる状態。今の所、順調に稼働していて結構よい感じです。
・CRIB535EUF 15TB [CRIB535EUF-150001]
< http://www.akibakan.com/BCAK0050584/
>
・漫画でHTML5を覚える(没になった章末の漫画)
< http://www.openspc2.org/reibun/comipo/HTML5/
>
・Final Cut Pro X使い方辞典
< http://www.openspc2.org/reibun/FinalCutProX/
>
・毎度おなじみASCII.jpの連載。HTML5+NimbleKitでiPhoneアプリ作り第7回
「NimbleKitでiPhone用動画アプリを自作しよう」
< http://ascii.jp/elem/000/000/616/616065/
>
・Google API Expertが解説する HTML5逆引きリファレンス【発売中!!】
< http://www.amazon.co.jp/dp/4844330349
>
・iPhone/iPad × HTML5アプリ制作
< http://www.amazon.co.jp/dp/4797362618
>
・ハイビジョン映像素材集
< http://www.openspc2.org/HDTV/
>
・Adobe Illustrator CS3 + JavaScript 自動化サンプル集
< http://www.openspc2.org/book/PDF/Adobe_Illustrator_CS3_JavaScript_Book/
>