After Effects CCのスクリプティングで気になる新メソッド

June 29, 2013
最近忙しくてブログも全然更新していませんでしたが、やっとAdobe CCをインストールしました。ただ今やってる仕事ではAfter Effectsはほとんど出番ないのです。

しかしそうは言っても気になるので、レンダリング待ちの時間にとりあえずAfter Effectsのスクリプトをダンプして見たところ、ちょっと気になるメソッドをapp.project.itemで見つけました(公式にスクリプトの変更点についてアナウンスがあったわけではないので、これが正式にサポートされているものなのかわかりませんが)。3Dパイプラインとか新しいエッジツールとか目新しいものそっちのけでスクリプトダンプしてるのもどうなんだか...と思いますけど。

app.project.item(index).saveFrameToPng(time, file)

もう読んでそのまま、フレームをPNGとして書き出してくれるメソッドです。

引数timeには秒数で時間(float)を指定します。引数fileには書き出すPNGファイルのFileオブジェクトを指定します。

非常に簡単なサンプルにしてみるとこんな感じ:

var a = app.project.item(1);
var fps = app.project.item(1).frameRate;
var name = app.project.item(1).name

var numFrame = 14;

var fileName = name +"_"+ numFrame +'.png';
var folder = Folder.desktop.fsName;
var path = folder + '/' + fileName;
var filepng = new File(path);

a.saveFrameToPng((numFrame/fps), filepng)


このスクリプトを実行すると最初のitemの14フレーム目をデスクトップにPNGとして書き出してくれます。もちろん最初のアイテムがコンプアイテムである必要があるので、実際に使用するにはそれらの判定を事前に行う必要があります。

書き出しフォーマットをなぜわざわざPNGに限定しているのかというのは、おそらくこれがScriptUI用のitemのサムネイルやプレビューを作成するために実装されてるんじゃないかと。

他にも気になるプロパティとかメソッドあるんですが、とりあえず公式のスクリプティング更新情報が出たらスクリプトリファレンスをCCに対応させようと思います。



[関連記事]
AfterEffects スクリプトリファレンス