AWS Deadline Cloud: After Effects プラグインを conda 配信したら Worker でだけ機能しなかった話
はじめに
AWS Deadline Cloud の CMF (Customer-Managed Fleet) で After Effects (以下 AE) のレンダーファームを組み、AE 本体を conda パッケージとして Worker に配信する構成で遭遇した問題を共有します。
ローカルの AE では問題なく適用できていたサードパーティプラグインが、同じシーンを Worker でレンダリングすると効果が出ませんでした。原因は、一部のプラグインのインストール先が AE 専用のフォルダではなく、Adobe 全製品で共通のフォルダだったことです。 conda 配信では後者が Worker に届かないため、ローカルでは機能するのに Worker でだけ機能しない、という状態になります。
AWS Deadline Cloud とは
AWS Deadline Cloud は、3DCG/VFX 制作向けのレンダーファームをクラウド上に構築できるマネージドサービスです。Worker のオートスケーリングやジョブ管理などレンダーファーム運用に必要な機能を備えています。
対象読者
- AWS Deadline Cloud の CMF で AE を conda 配信している、もしくは検討している方
- ローカルでは機能するプラグインが Worker でだけ機能しない事象に悩んでいる方
- AE のサードパーティプラグインのインストール先を正しく押さえたい方
参考
- AWS Deadline Cloud Developer Guide: S3 を使った conda channel の作成
- aws-deadline/deadline-cloud-for-after-effects
- aws-deadline/deadline-cloud-samples: aftereffects recipe
- Adobe: After Effects のプラグイン (MediaCore / Common Plug-ins の配置)
前提となる構成
conda 配信で AE を Worker に届ける流れを簡単に説明します。
- AE のインストール先である Support Files フォルダ (これが AE 専用のフォルダ) を zip 化
- conda パッケージにして S3 のチャンネルに配置
- Worker はジョブ実行時に conda でこれを展開し、aerender を起動
つまり Worker に展開されるのは Support Files の中身だけです。
構成を図にすると次のようになります。
原因: Adobe Common と AE 専用フォルダの 2 系統
AE のプラグインのインストール先には 2 系統あります。1 つは AE の Support Files 配下にある AE 専用の Plug-ins フォルダです。もう 1 つは、Adobe の全製品が共通で参照する Adobe\Common\Plug-ins\<世代番号>\MediaCore\ です。一部のサードパーティプラグインは後者にインストールされます。
ローカルの AE は両方のフォルダを自動で探索するため、Adobe Common 配下のプラグインも普通に使えます。ところが conda 配信で zip 化する対象は AE 専用フォルダ (Support Files) だけです。そのため Adobe Common 配下のプラグインは conda パッケージに含まれず、Worker に届きません。 これが、ローカルでは機能するのに Worker でだけ機能しない、という症状の正体です。
誤認しやすいポイント
インストール直後に AE 専用フォルダだけを見て、プラグインの実体ファイルが無いことからインストールに失敗したと早合点しやすい点にも触れておきます。実際にはインストール自体は成功していて、Adobe Common 側に置かれているだけです。探している場所が違うわけです。
切り分けの一手として、AE 専用フォルダと Adobe Common の両方を確認することをおすすめします。どちらかにプラグインの実体 (AE のプラグインは .aex という拡張子) があれば、インストール自体は成功しています。
対処: robocopy でミラーしてから zip 化
対処は単純です。zip 化の前に、Adobe Common 配下のプラグインを AE 専用フォルダへミラーコピーします。これにより Support Files の zip にプラグインが含まれ、Worker に届きます。
$src = 'C:\Program Files\Adobe\Common\Plug-ins\7.0\MediaCore\<plugin-vendor>'
$dst = 'C:\Program Files\Adobe\Adobe After Effects <version>\Support Files\Plug-ins\<plugin-vendor>'
robocopy $src $dst /E /COPY:DAT /R:0
プラグインのインストーラーがインストール先のパスを指定できる場合は、最初から AE 専用フォルダ配下を指定すれば、このミラーコピー自体が不要になります。プラグインによって挙動が分かれるため、まずインストール先を確認してから手段を選んでください。
まとめ
ローカルの AE と、conda 配信した Worker では、プラグインの探索パスが異なります。ローカルで機能することは、Worker で機能することを保証しません。conda 配信では、Worker に展開される範囲にプラグインの実体が入っているかを基準に確認してください。Adobe Common 配下にしか無いプラグインは、zip 化の前にミラーコピーで AE 専用フォルダへそろえます。
AWS Deadline Cloud で AE のレンダーファームを構築する方の参考になれば幸いです。






