[After Effect] AWSの大量インスタンスを使って高速レンダリングを行う方法(ネットワークレンダリング)
After Effectの最大の難関は凝った動画を作成した際の書き出しに異様に時間がかかること
一つのマシンでレンダリングすると、普通に残り90時間と出てきて、レンダリングをもう一度やる気を失わせるくらいの時間がかかる。
しかも自分のマシンを90時間ぶんまわし続ける必要があるので、故障などの心配もある。
幸いにもAfter Effectにはネットワークを使って複数台でレンダリングする「分散レンダリング」機能が搭載されている。
この機能を使えば、複数台でレンダリングするのでレンダリング時間も短縮することができる。
ただ、自分の手持ちPCの台数が少なく、またCPUやメモリなどもそんなに積んでいない古いPCだとあまり分散レンダリングの効果が得られない。
大量にPCリソースを安く使えるAWSを使わない手はない
AWSであれば、メモリ256Gという普通では使えないPCを時間で借りることができるので、一気にレンダリングを行ってインスタンスをすぐに消せばそこまでコストはかからない(はず)
ここでは、AWSを使用したAfter Effectの分散レンダリングの方法を紹介する
ちなみにAfter Effectのライセンスは、1個だけでよい
またParticleで有名なRed Giantのライセンスも1個だけでよいので、お得である
Red Giantライセンスのキーは重複するとエラーが発生するので、サポートに連絡するとレンダリング用ライセンスキーを払い出してくれる(1つのライセンスキーにつき5つのレンダリング用ライセンスキー)
*マシンのイメージを作成して、複製を作りまくるとライセンスキーのエラーは発生しないが。。
目次
分散レンダリングの仕組み
分散レンダリング(ネットワークレンダリング)は、レンダリングしたいコンポジションを作成したPC(A)がネットワーク共有フォルダ(B)にプロジェクトファイルを書き出し。
レンダリング専用PC群(C)が協力して、それぞれのフレームをレンダリングして、共有フォルダ(D)にフレームの画像をアップロードするという仕組み。
なので、必要なのは
- レンダリングしたいコンポジションを作成したPC
- ネットワーク共有フォルダ
- レンダリング専用PC群
の3つが必要となる。
AWSで構築するのは、2・3の部分となる。
ネットワーク共有フォルダサーバを構築
分散レンダリングに使用するネットワーク共有フォルダサーバを構築を構築する
最も使っていなくて、コストが安いバージニアリージョンを選択した
Windows2016 Baseを選択
*After EffectがサポートするOSにWindowsサーバ系が入っていないので、少し心配だが、こちらの検証では正常に動作した
インスタンスのタイプは、t2.microで事足りる(このサーバはレンダリングはせずにファイルの置き場所として可動するだけなので。もしかするとt2.nanoでもいけるかも)
すべてのインスタンスは同じアベイラビリティゾーンに配置したほうがネットワーク性能がもっとも良いので、us-east-1aを選択した
ストレージサイズは書き出す動画のサイズにも寄るが、今回は100Gを指定した
セキュリティグループは、PC(A)からのRDPアクセスと、すべてのインスタンスからのSMB通信を受けるので、3389と445ポートを開放
*この状態だとインターネットにSMBを全開放してしまっているので、本当はなんとかしたほうがよい。一応SMBでアクセスしてもパスワードが聞かれるので、ある程度大丈夫だが。
すべての設定が完了したら「起動」
共有フォルダの設定
起動させたインスタンスにRDPアクセス
適当な場所にフォルダを作成(今回はAEというフォルダを作成した)
フォルダのプロパティの共有で、フォルダ共有を有効にする
アクセス権限はEveryoneにした(これも本当はなんとかした方がよい)
レンダリングサーバを1個構築
Windows2016 Baseサーバを起動
After EffectとRed Giantのプラグインをインストール
ae_render_only_node.txt という名前の空のファイルを下記フォルダに配置しておく
C:\Users\\Documents C:\Users\Public\Documents\Adobe
共有サーバのフォルダをネットワークドライブZに指定して、Zにrenderというフォルダを作成
レンダリングサーバのデスクトップ上にrender.batというファイルを作成して、下記コードを実装
@echo off cd "C:\Program Files\Adobe\Adobe After Effects CC 2019\Support Files" afterfx.exe -m -wf "Z:\render"
一旦AMIを作成しておくとよい
レンダリングプロジェクトファイルを出力して共有フォルダに配置
コンポジションを作成しているPCで、レンダリングキューを作成。
出力モジュールをクリックして、出力モジュールウィンドウを開く
形式をPNG、JPEG、TIFFなどの画像形式を選択する
*アルファチャンネル付き動画にしたい場合はこちら↓↓
[After Effect] 透明(アルファチャンネル)付きの動画を書き出す方法
レンダリング設定を開き、「既存ファイルをスキップ」にチェックを入れる
メニューから「ファイル」→「依存関係」→「ファイルを収集」をクリック
出力されたプロジェクトファイルを共有フォルダサーバのrenderフォルダに移動させる
レンダリングサーバでレンダリング開始
デスクトップ上のrender.batを起動
フォルダの監視が開始されるので、先程共有フォルダサーバにアップロードしたプロジェクトファイルが正しく見つかれば、レンダリングが開始される
もし複数台でレンダリングする場合は、レンダリングサーバのAMIからサーバを複数構築して、都度render.batを起動させればよい