クリエイター手抜きプロジェクト[270]Adobe Premiere CS5編 使用されている画像などの項目のレポートを出力する(2)
── 古籏一浩 ──

投稿:  著者:


今回もAdobe Premiere CS5でレポートを出力するネタです。前回のスクリプトでは、ビン(フォルダ)内にある項目が出力できませんした。Premiereは無理に参照しようとすると、すぐにエラーで停止してしまうような感じなので、対象となる項目がフッテージ(素材)かフォルダかを調べてから実行しなければいけません。

ここらへんはAdobe AfterEffectsと似ています。プロパティ名も、似ているので推測しつつ作ってみました。

以下のスクリプトを実行すると全てのフッテージ、ビンのパスをテキストファイルとして出力します。




// プロジェクト内の項目情報を出力する(再帰)
(function(){
var savefile = File.saveDialog("保存するレポートファイル名を入れて下さい!");
if (!savefile) return;
if (!savefile.open("w")){
alert("レポートファイルを保存できません");
return;
}
savefile.writeln(app.project.name); // プロジェクト名
savefile.writeln(app.project.path); // プロジェクトが保存されているパス
var itemList = app.project.rootItem.children;
getName(itemList);
// getName
function getName(root){
for(var i=0; i<root.numItems; i++){
savefile.writeln(root[i].treePath);
if(root[i].type == 2){ // ビン(フォルダ)の場合に再帰
getName(root[i].children);
}
}
}
})();


より見やすくインデントを付けて出力したい場合には、以下のスクリプトを使ってください。


// プロジェクト内の項目情報を出力する(再帰)
(function(){
var savefile = File.saveDialog("保存するレポートファイル名を入れて下さい!");
if (!savefile) return;
if (!savefile.open("w")){
alert("レポートファイルを保存できません");
return;
}
savefile.writeln(app.project.name); // プロジェクト名
savefile.writeln(app.project.path); // プロジェクトが保存されているパス
var itemList = app.project.rootItem.children;
var nest = -1;
getName(itemList);
// getName
function getName(root){
nest++;
for(var j=0,indent = ""; j<nest; j++){ indent = indent + " "; }
for(var i=0; i<root.numItems; i++){
savefile.writeln(indent+root[i].name);
if(root[i].type == 2){ // ビン(フォルダ)の場合に再帰
getName(root[i].children);
}
}
}
})();


Premere CS5でスクリプトを作る人がいるかどうか謎ですが、参考情報としては以下のようになっています。

・プレミアのスタックの深さは227〜272あたりまで(状況により変化)
・シーケンスや映像などの素材(フッテージ)のタイプ番号は1
・ビン(フォルダ)のtype番号は2
・プロジェクトルートのtype番号は3


【古籏一浩】openspc@alpha.ocn.ne.jp
< http://www.openspc2.org/
>

プレミアのJavaScriptはリファレンスが全くないので大変。でも、公開されているドキュメントがしっかり間違っているというパターンにも遭遇したので、最後は自分でテストするしかないのでしょう。

先週吉井さんが紹介していたiPad用のペンを購入してみました。
・Touch Pen
< http://www.princeton.co.jp/product/digitalaudio/piptp2.html
>

アプリケーションはHTML5+Canvasで自作したもの程度でも、すんなりペンに追従してきます。高速化/最適化すれば、もっと速くできるとは思うけど実用上十分。というか絵の勉強用にしか使わないけど。下絵トレースするようにすれば、学習効果出るかも......。


・Retro Driver【9話まで書いた】
< http://www.openspc2.org/reibun/comipo/RetroDriver/
>

・HTML5+JavaScriptアイデア&実践サンプル【発売中】
< http://www.amazon.co.jp/dp/4048704486
>

・JavaScriptコーディング ベストプラクティス【発売中】
< http://www.amazon.co.jp/dp/4844361791
>

・Google API Expertが解説するHTML5ガイドブック
< http://www.amazon.co.jp/dp/4844329278
>

・ハイビジョン映像素材集
< http://www.openspc2.org/HDTV/
>

・Adobe Illustrator CS3 + JavaScript 自動化サンプル集 発売中
< http://www.openspc2.org/book/PDF/Adobe_Illustrator_CS3_JavaScript_Book/
>