No.2 バッチによるレンダリング(基礎編)|AEチュートリアル

Aep EFFECTSトップページへ

スポンサードリング

No.2 バッチによるレンダリング(基礎編)リリース

No.2 バッチによるレンダリング(基礎編)

バッチレンダリングフロー

 

 

After Effectsのフォルダ監視機能ではなく、バッチでレンダリングを行う方法をご紹介します。

 

 

フォルダ監視に比べ、実用的に使用するためにはある程度知識が必要となりますが、様々な応用が可能で、一度環境を用意してしまえば非常に効率的な運用が可能になります。

 

 

ユーザーインターフェースを持ったツールによるレンダリングではないため、直感的に理解するのに少々時間がかかるのがこの方法です。コマンドプロンプトの使用に慣れ親しんだプログラマーでなければ、とっかかりに苦労するでしょう。

 

 

Aep EFFECTSは一般的なAE利用者のためのサイトなので、いちからその仕組みを紹介していきたいと思います。

スポンサードリング

aerenderとは

aerenderとは

バッチレンダリングを理解するためには、まず「aerender」とは何かを知る必要があります。

 

「aerender」とは、After Effectsをインストールすると自動的にインストールされる、
コマンドプロンプトで動作するアプリケーションを指します。下記の場所にインストールされているので確認してみましょう。

 

 Cドライブ(メインのドライブ)
 └Program Files
  └Adobe
   └Adobe After Effects CS6
    └Support Files

 

 

aerenderの格納場所

 

上図のように、After Effects本体が格納されている場所にexeファイルが格納されています。

 

このアプリケーションは直接立ち上げることができません。試しにダブルクリックしてみてください、単体でGUIを持たないので起動はしません。

 

 

では、どのように起動させるのでしょうか?

 

 

コマンドプロンプトを使用し、アプリケーションに直接指示する必要があります。

 

 

コマンドプロンプトでaerenderを操作する
ここでコマンドプロンプトが何かわからない人向けにコマンドプロンプトの解説を行います。
コマンドプロンプトとは、プログラムをコマンドライン上で動作させるために使用するWindowsのGUIのことを指します。

 

【コマンドプロンプトを立ち上げる方法】

コマンドプロンプト※cmd.exeを起動するには、

 

【WindowsXP、Windows7の場合】
[スタート]メニューから[すべてのプログラム]−[アクセサリ]−[コマンドプロンプト]を選択します。

 

【Windows 8、Windows10以降】
[スタート]メニューから[すべてのアプリ]−[Windowsシステム ツール]−[コマンドプロンプト]を選択します。

 

 

コマンドプロンプトの基本操作

コマンドプロンプトを起動すると下記のようなGUIが立ち上がります。
このGUIに対してコマンドを入力していくことでレンダリング操作が可能になります。
コマンドプロンプト

 

 

さて、ここからどのようにアプリケーションに命令を行うのか?

 

 

人によってはさっぱりですよね。では実際にコマンドラインでレンダリングを実行してみましょう。

 

 

操作は既定の引数を入力することで可能になります。
引数とはアプリケーションのために用意されている命令文のことです。
※引数についてはAdobeのヘルプサイトから確認することが可能です。

 

下記に引数の内容を引用してみました。

引数 内容
-help 使用方法のメッセージを出力します。
-version aerender のバージョン番号をコンソールに表示します。

レンダリングは実行されません。

-v

[verbose_flag]

verbose_flag には、出力されるメッセージの種類を指定します。

ERRORS:重度および問題のあるエラーのみが表示されます。
ERRORS_AND_PROGRESS:(初期設定)エラーとレンダリングの進行状況が表示されます。

-reuse 現在実行中の After Effects のインスタンスがあれば、それをレンダリングに使用します。既に実行中のインスタンスが使用中の場合は、レンダリングが完了すると設定がディスクに保存されますが、After Effects は終了しません。この引数を使用しない場合は、インスタンスが既に実行されていても、新しい After Effects のインスタンスが起動され、レンダリングが完了すると、After Effects は終了し、設定は保存されません。
-mem_usage

[image_cache_percent]
[max_mem_percent]

image_cache_percentでは、レンダリングしたイメージとフッテージをキャッシュに格納するために使用するメモリの最大のパーセント値を指定します。max_mem_percent は、After Effects で使用できるメモリの合計パーセント値を指定します。これらの 2 つの値は、搭載されている RAM が一定値(n ギガバイト)未満の場合は搭載 RAM に対する割合、それ以外の場合は n に対する割合を表します。n の値は、32 bit Windows では 2 GB、64 bit Windows では 4 GB、Mac OS では 3.5 GB です。
-project

[project_path]

project_path には、開くプロジェクトファイルを指定するパスまたは URI を指定します。この引数を使用しないと、現在開いているプロジェクトが使われます。指定されたプロジェクトがなく、開いているプロジェクトがない場合は、エラーになります。
-comp

[comp_name]

comp_name には、レンダリングするコンポジションを指定します。対象のコンポジションが既にレンダーキューに追加されている場合は、そのコンポジションの最初のインスタンスがレンダリングされます。対象のコンポジションがプロジェクトにあり、レンダーキューに追加されていない場合、コンポジションがレンダーキューに追加されてレンダリングされます。この引数を指定しない場合は、レンダーキュー内のコンポジションすべてがレンダリングされます。この場合は、-project、?log、?output、?v、?mem_usage および -close 引数のみが使用され、その他の引数は無視されます。
-s

[start_frame]

start_frameに、レンダリングする最初のフレームを指定します。この引数を指定しない場合は、ファイルの開始フレームが使用されます。
-e

[end_frame]

end_frameに、レンダリングする最後のフレームを指定します。この引数を指定しない場合は、ファイルの最後のフレームが使用されます。
-i

[increment]

incrementには、レンダリングするフレームの間隔を指定します。値を 1 に設定すると(初期設定)、すべてのフレームが通常どおりにレンダリングされます。1 より大きい値に設定すると、1 つのフレームをレンダリングしてそのフレームをincrement回使用し、increment個のフレームをとばした次のフレームをレンダリングします。値が大きいほど、レンダリングは高速になりますが、モーションの精度は下がります。
-OMtemplate

[output_module_templatet]

output_module_templateに、出力モジュールに適用するテンプレート名を指定します。テンプレートが存在しない場合、この引数を使用するとエラーになります。この引数を指定しない場合は、出力モジュール用に定義済みのテンプレートが使用されます。
-RStemplate

[render_sett ings_template]

render_sett ings_templateには、レンダーアイテムに適用するテンプレート名を指定します。テンプレートが存在しない場合、この引数を使用するとエラーになります。この引数を指定しない場合は、このアイテム用に定義済みのテンプレートが使用されます。
-output

[output_path]

output_pathには、最終出力ファイルを出力するファイルパスまたは URI を指定します。この引数を指定しないと、プロジェクトファイルで定義されているパスに出力されます。
-log

[log_file_path]

og_file_pathには、ログファイルのパスまたは URI を指定します。この引数を指定しないと、標準出力(stdout)に出力されます。
-sound

[sound_flag]

sound_flagに ON と指定すると、レンダリングが完了したときに音声が再生されます。初期設定は OFF です。
-close

[close_flag]

レンダリングの完了時にプロジェクトを閉じるかどうか、また、変更内容を保存するかどうかを指定します。

DO_NOT_SAVE_CHANGES:(初期設定)変更内容を保存せずにプロジェクトを閉じます。
SAVE_CHANGES:変更内容を保存してから、プロジェクトを閉じます。
DO_NOT_CLOSE:既に実行中の After Effects インスタンス使われた場合は、プロジェクトが開いたままになります。After Effects の新しいインスタンスが起動した場合は、レンダリング完了後に終了します。

-rqindex

[index_in_render_queue]

-rqindex は -comp とほぼ同じように動作しますが、コンポジションから自動的にレンダーアイテムは作成されません。
-mp システム構成および環境設定に応じて、複数のフレームを同時にレンダリングする追加プロセスが作成されることがあります(メモリとマルチプロセッサーの環境設定を参照)。
-continueOnMissingFootage ソースフッテージアイテムがなくても、レンダリング操作は続行します。

 

それではまずは、簡単なヘルプ表示を行ってみましょう。
aerender引数ヘルプ

 

上記のように入力して『Enter』ボタンを押すと?????
aerenderエラー

 

エラーでレンダリングが始まりません。このような場合は、コマンドプロンプトの基本的な使い方になりますが、指定場所に『aerender.exe』が存在しないことが原因です。下図のパスを『aerender』がインストールされているパスに変更する、もしくはフルパスで指定する必要がありますので注意してください。

 

【コマンドプロンプトのディレクトリを変更する】
下図のようにコマンドプロンプトでプログラムの場所を変える際には「CD(チェンジディレクトリの略)」+(半角スペース)+「変更先のパス」を入力し「Enter」でディレクトリの変更が行えます。
チェンジディレクトリ

 

【ドラッグ&ドロップでアプリを読み込む】
下図のように『aerender』を直接コマンドプロンプトにドラッグ&ドロップするのも有効です。そのうえで(半角スペース)+引数を入力します。
ドラッグ&ドロップ

 

 

レンダリング手順

それでは実際にレンダリングを行っていきます。
テスト用に下記のディレクトリを作成し、コマンドラインを使ったレンダリング操作を順を追って解説します。

 

レンダリングするプロジェクトの場所
※プロジェクト保存パス

 

レンダリング結果の保存場所
※レンダリング先のパス

 

@aerender.exeのパスを指定

 

CD C:\Program Files (x86)\Adobe\Adobe After Effects CS4\Support Files

 

A引数を入力

 

aerender.exe -project D:\test\aep\batch_render_test.aep -comp "batch_render_test" -output D:\test\rendering\batch_rendering_test[####]

 

この場合、

-project
レンダリング元のプロジェクトファイルパスを指定

 

-comp
レンダリングするコンポジションを指定 ※指定がなければレンダーキューのアイテムを書き出し

 

-output
レンダリング結果の連番を保存する場所の指定 ※拡張子はあってもなくてもOK

 

合計3つの引数を入力しています。

 

そのほかにも、実際には「出力モジュール」や「レンダリング設定」の指定などの指定も、実運用上では必要な要素になることが多いので加えておく必要があるかとは思います。

 

 

【今回の解説にはなかったが実運用上必要になるであろう引数】

-RStemplate
レンダリング設定のテンプレート名を指定(「最高設定」や「ドラフト設定」、「マルチマシン設定」など)
※複数PCによるバッチレンダリングの際には、マルチマシン用の設定を必ず選択する必要があります。

 

-OMtemplate
出力モジュールのテンプレート名を指定

 

 

 

バッチファイルを作成する

これまでの手順で、コマンドラインによるレンダリングの仕組みは理解できたと思います。

 

しかしながら、
毎回毎回コマンドプロンプトを立ち上げて命令を書いていたのでは実運用上手間がかかってしょうがありません。

 

 

 

ですので、下記のどちらかをテキストファイルに記述したうえで拡張子を『txt』⇒『bat』に変更保存し実行させることで手間を省くことが可能です。
バッチファイルの作成

 

 

"C:\Program Files (x86)\Adobe\Adobe After Effects CS4\Support Files\aerender.exe" -project D:\test\aep\batch_render_test.aep -comp "batch_render_test" -output D:\test\rendering\batch_rendering_test[####] -RStemplate "マルチマシン設定" -OMtemplate "PSD"

 

※赤文字を環境に合わせて変更してください。

 

 

CD C:\Program Files (x86)\Adobe\Adobe After Effects CS4\Support Files
aerender.exe -project D:\test\aep\batch_render_test.aep -comp "batch_render_test" -output D:\test\rendering\batch_rendering_test[####] -RStemplate "マルチマシン設定" -OMtemplate "PSD"

 

※赤文字を環境に合わせて変更してください。

 

 

 

複数のPCを使ったバッチによるネットワークレンダリング
では、本来のテーマである複数PCによるレンダリングの方法に話を戻します。

 

バッチレンダリングフロー
※すべてのPCから見た、「レンダリング元のAEP」、「素材」、「レンダリング先」は同パス

 

 

前述までに作成した、バッチファイルをすべてのPC上で実行することで、複数のPCで同時にレンダリングを走らせることが可能になります。

 

 

ちょっと待ってください!

 

 

という声が聞こえてきそうですね。

 

 

このままでいくと、「すべてのPCからのパスを合わせ」、「バッチファイルを作成」まではよいとしてファイル保存後にすべてのPCを立ち上げて、すべてのPCの画面上で作成したバッチファイルをダブルクリックしていくことになります。非常に重たいレンダリングを一度の運用で、複数のPCでレンダリングするなどの場合にはそれでも良いでしょう。しかし、ネットワークレンダリング環境として現場が求めているのは一度きりの運用ではありません。

 

 

いつでも簡単に、作業を行っているPCからレンダリング用PCへ、作業が終わった際にお手軽にレンダリングを投げられる環境が実際のスタジオレベルの運用では必要です。

 

 

それでは次回は『ネットワークレンダリング(応用編)』として、
サードパーティーのアプリケーションを使用した、実運用レベルのネットワークレンダリング環境構築
について解説を行っていきたいと思います。

スポンサーリンク




 

この記事について参考になった、良かったと思っていただけた方、

是非、「リツイート」「お気に入り」登録をお願いします!

このエントリーをはてなブックマークに追加

 

AepEFFECTSへメール

チュートリアル AEエフェクト辞典 ツールストア 書籍紹介・リンク お問い合わせ
このエントリーをはてなブックマークに追加