【ExtendScript】After Effectsから指定のコンポを自動レンダリングするスクリプト
最終的なコード
// autoRender.jsx project = app.project; project_path = project.file.path; mian_compo_index = 2 render(mian_compo_index); function render(compo_index) { var item = project.item(compo_index); var renq = project.renderQueue.items.add(item); var f_name = project_path + "/auto_render.mp4"; var OM = renq.outputModules[1]; OM.applyTemplate("ロスレス圧縮(アルファ付き)"); OM.file = new File(f_name); if (app.project.renderQueue.canQueueInAME == true) { app.project.renderQueue.queueInAME(true); } else { alert("レンダリングに失敗しました。"); } }
コンポジションを指定する
コンポジションを指定するには、プロジェクトパネルのインデックスを使う。
注意が必要なのは、最初のアイテムのインデックスは0ではなくて、1。
// appはAEのグローバル変数 var item = app.project.item(compo_index);
Application object - After Effects スクリプトリファレンス
レンダーキューにコンポジションを追加
上記で指定したコンポジションをレンダーキューへ追加
project = app.project; var item = project.item(compo_index); // レンダーキューに追加 var renq = project.renderQueue.items.add(item);
RenderQueueItem object - After Effects スクリプトリファレンス
レンダリングオペレーション
レンダリングする際の設定をする。
var OM = renq.outputModules[1]; // 出力モジュールテンプレートを指定 OM.applyTemplate("ロスレス圧縮(アルファ付き)"); // 出力ファイル名を指定 OM.file = new File(f_name);
OutputModule object - After Effects スクリプトリファレンス
AME(Adobe Media Encoder)に追加してレンダリングする
canQueueInAME
After Effectsのレンダーキューアイテムの中にキューされたレンダーアイテムが存在しているかどうかを示します。このアトリビュートがtrueを返した場合のみqueueInAME()でAME(Adobe Media Encoder)のキューに追加可能です。
// AE内のレンダーキューにレンダリング待ちのアイテムがあるかどうか if (app.project.renderQueue.canQueueInAME == true) { // AME(Adobe Media Encoder)に追加 // 引数はすぐにレンダーするかどうか // false の場合はAMEのキューに追加はするが、レンダリングは開始しない app.project.renderQueue.queueInAME(true); } else { alert("レンダリングに失敗しました。"); }
canQueueInAME - After Effects スクリプトリファレンス
ENJOY !