実際に燃えているプラスチックのにおいがしない限り、レンダリングしているときは満足できません。AEが宇宙の熱死までレンダリングが完了しないことを告げるよりもイライラすることはありませんが、同時にCPUはほとんどありません。汗をかく。しかし、それについてあなたができることがいくつかあります。
After Effectsには、Macでaerender.exe plain ol ' aerenderと呼ばれるコマンドラインレンダラーが付属しています。それはAEプログラムフォルダにあります。これを使用することは、コマンドラインの-= 素晴らしい-=パワーに慣れていない人にとっては少しやりがいのある作業ですが、After Effectsで大幅な作業を行い、すべての機能を活用できるようにしたい場合は、間違いなく実行する価値があります。あなたの機械の力。
それの美しさは、好きなだけインスタンスを実行できることです。通常は、メモリが不足するまでインスタンスを追加し続けます。私は40の物理コアマシンを使用しており、CPUを最大限に活用するには多くの時間がかかりますが、最終的に管理したスクリーンショットを次に示します。これらのウィンドウはそれぞれ、AEレンダリングエンジンの新しいインスタンスです。
この例では、各レンダラーのフレームごとの速度が単一のインスタンスと比較してほとんど低下していないため、約4000%の速度向上を達成しました。YMMV。マシンのコアの数とRAMの量によって異なります。私は非常に長く、かなり複雑なコンプを含むプロジェクトを持っていたので、その努力に行きました。このテクニックがなければプロジェクトは成功しなかったでしょう。あるいは、私はそれを商用のレンダーファームに送り出さなければなりませんでした。
もちろん、スピードアップには代償が伴いますが、これはワークフローの複雑さが少し増加します。画像シーケンスとしてレンダリングするようにコンプを設定し、マルチレンダー設定を使用して、各レンダラーが次のレンダリングされていないフレームを探すようにする必要があります。最後に、ムービーファイルが必要な場合は、圧縮パスを実行する必要がありますが、私の場合、通常はpngまたはtiffシーケンスにマスターし、マスターからクライアント用にh.264でエンコードされたコピーを実行します。
そして、コマンドラインについて少し知っておく必要があります。そんなに不機嫌そうに見えるのをやめてください。それは良いことです。それは良いことです。
ウィンドウズ
そのシナリオで使用したPowerShellコマンドラインは次のとおりです。
for ($i = 0 ; $i -lt 40; $i++ ){
Start-Process 'C:\Program Files\Adobe\Adobe After Effects <<version>>\Support Files\aerender.exe'-ArgumentList '-project', '"c:\path\to\project.aep"'
sleep 5;
}
これはpowershellウィンドウで実行されます(タイプしてWindowsRからpowershell.exeと入力します)。これは、Windowsの最新バージョンに統合されたシェルスクリプト言語で、あらゆる種類のものに使用できます。
Bashバージョン> 3(OSXの現在のバージョンのデフォルトシェル)を使用するMac、または実際にzshのようなよりクールなシェルでは、次のスクリプトを使用できます。
for i in {1..40}; do
/Applications/Adobe\ After\ Effects\ CC\ 2017/aerender -project ~/Path/to/myproject.aep &
sleep 5
done
スクリプトは次のように機能します。
- 繰り返しを40回繰り返すループを開始します。40を適切な量と考えるものに変更できます。
- 次に
start-process
、PS のコマンドまたは&
in bashのいずれかを使用してaerenderを新しいプロセスとして開始します。明らかに、パスをaerender.exe / aerenderに変更し、プロジェクトをマシン上の任意のパスに変更します。コマンドラインでパスを入力する迅速かつ正確な方法は、ファイルとフォルダーをそこにドラッグすることです。また、tabパスを自動入力するためにを使用すると、入力や入力ミスを大幅に削減できます。
- 最後に5秒間スリープします。大量のaerenderのインスタンスを開くのが速すぎると、コンピューターをブルースクリーン/カーネルパニックさせる信頼できる方法であることがわかりました。
複数のカンプがある場合、それらをムービーとしてレンダリングできますが、コンプごとに新しいレンダラーを開始できます。このようにaerender.exeを呼び出すと
aerender.exe -project "c:\path\to\proj.aep" -rqindex 3
レンダーキューの3番目のコンポーネントをレンダリングします。あなたができるスクリプトにそれを入れる:
ウィンドウズ
$numcomps = 12
$projpath= "C:\path\to\project.aep"
for($i=1; $i -lt ($numcomps+1); $i++){
Start-Process 'C:\Program Files\Adobe\Adobe After Effects <<version>>\Support Files\aerender.exe' -ArgumentList '-project', '$projpath', '-rqindex', '$i'
sleep 5;
}
マック
for i in {1..12}; do
/Applications/Adobe\ After\ Effects\ CC\ 2017/aerender -project ~/Path/to/myproject.aep -rqindex $i &
sleep 5
done
これにより、コンプごとに新しいaerenderインスタンスが開始されます。12を変更して、キューにあるコンプの数を増やします。キューに多数のカンプがある場合、この手法は問題に遭遇する可能性があることに注意してください。すべての物理メモリを使用すると、非常に迅速に震えが止まります。インスタンスの数を抑えるには、実行中のaerenderプロセスの数を確認し、実行中のプロセスが終了したときにのみ新しいプロセスを開始する必要があります。より簡単な回避策は、インスタンスに必要な数だけプロジェクトのコピーを作成し、それらの間でレンダーキューを分割して、それらをすべて同時にレンダリングすることです。したがって、レンダリングスレッド1はレンダリングコンポーネント1、2、3をレンダリングし、レンダリングスレッド2は3、4、5を実行します。
詳細はこちら(私のブログ)。