DeadlineでAfterEffectを掛けてトラブルが多い場合

#はじめに
Deadlineの情報ってかなり少ないですよね。。。しかもAfterEffectになるとなおさら。
今回は、DeadlineでAfterEffectを掛けるときにAErender.exeのエラーが走るのに、無視されるという現状があったため、それの回避方法を紹介。

##ロジック
結構ある問題として、そもそもDeadlineでAEの問題を拾ってくれないという悲しい事情がある。
拾ってくれてもエラーとして判定しないとか。
とりあえずAEレンダーがトラブル⇒これをキャッチ⇒エラーとして処理⇒再レンダリング
という形に持っていく。

###作業
DeadlineのAfterEffectを実行するプラグイン自体のコードをいじります。
pythonでできてるので、やりやすい。。。

① AfterEffectのプラグインの入っている場所（リポジトリの中）を開く
　　　DeadlineRepository10\plugins\AfterEffects\AfterEffects.py

② 次の部分を探す

```python:AfterEffecr.py
self.AddStdoutHandlerCallback( ".*Unable to obtain a license.*").HandleCallback += self.HandleStdoutError
 ```

③ この下等に次の文章を加える

```python:AfterEffecr.py
self.AddStdoutHandlerCallback( ".*WORNING:After*").HandleCallback += self.HandleStdoutError
 ```

④ 保存する。

たったこれだけ。
ちなみに、Slaveのインストール時にインストールした諸々に、このプラグインは含まれていないので再セットアップはもちろん不要。もちろん即時反映されます。

### 結果

以前は

```text:before.log
=======================================================
Log
=======================================================
2018-05-14 15:08:03:  0: Executing plugin command of type 'Sync Files for Job'
2018-05-14 15:08:03:  0: All job files are already synchronized
2018-05-14 15:08:03:  0: Plugin AfterEffects was already synchronized.
2018-05-14 15:08:03:  0: Done executing plugin command of type 'Sync Files for Job'
2018-05-14 15:08:03:  0: Start Job timeout is disabled.
2018-05-14 15:08:03:  0: Task timeout is disabled.
2018-05-14 15:08:03:  0: Plugin rendering frame(s): 1130-1149
2018-05-14 15:08:03:  0: Executing plugin command of type 'Render Task'
2018-05-14 15:08:03:  0: INFO: Attempting to create "C:¥Users¥admin¥Documents¥ae_render_only_node.txt" to force After Effects to run in Render Engine mode
2018-05-14 15:08:03:  0: INFO: Stdout Redirection Enabled: True
2018-05-14 15:08:03:  0: INFO: Stdout Handling Enabled: True
2018-05-14 15:08:03:  0: INFO: Popup Handling Enabled: True
2018-05-14 15:08:03:  0: INFO: QT Popup Handling Enabled: False
2018-05-14 15:08:03:  0: INFO: WindowsForms10.Window.8.app.* Popup Handling Enabled: False
2018-05-14 15:08:03:  0: INFO: Using Process Tree: True
2018-05-14 15:08:03:  0: INFO: Hiding DOS Window: True
2018-05-14 15:08:03:  0: INFO: Creating New Console: False
2018-05-14 15:08:03:  0: INFO: Running as user: admin
2018-05-14 15:08:03:  0: INFO: Executable: "C:¥Program Files¥Adobe¥Adobe After Effects CC 2017¥Support Files¥aerender.exe"
2018-05-14 15:08:03:  0: INFO: Failing on warning messages
2018-05-14 15:08:03:  0: INFO: Argument: -project "¥¥10.1.1.110¥NakedNAS2¥RENDERING¥tanaka¥AE¥himitsu-ten_0418_08.aep" -comp "himitsu_title" -s 1130 -e 1149 -sound OFF -close DO_NOT_SAVE_CHANGES
2018-05-14 15:08:03:  0: INFO: Full Command: "C:¥Program Files¥Adobe¥Adobe After Effects CC 2017¥Support Files¥aerender.exe" -project "¥¥secret¥AE¥himitsu-ten_0418_08.aep" -comp "himitsu_title" -s 1130 -e 1149 -sound OFF -close DO_NOT_SAVE_CHANGES
2018-05-14 15:08:03:  0: INFO: Startup Directory: "C:¥Program Files¥Adobe¥Adobe After Effects CC 2017¥Support Files"
2018-05-14 15:08:03:  0: INFO: Process Priority: BelowNormal
2018-05-14 15:08:03:  0: INFO: Process Affinity: default
2018-05-14 15:08:03:  0: INFO: Process is now running
2018-05-14 15:08:03:  0: STDOUT: aerender version 14.2.1x34
2018-05-14 15:08:04:  0: STDOUT:  has video RAM(MB): 8
2018-05-14 15:08:10:  0: STDOUT: WARNING:After Effects 警告: Grouped_Message_{このプロジェクトには、見つからないエフェクトへの参照があります。復元するには次のエフェクトをインストールしてください。|||このプロジェクトには、見つからないエフェクトへの参照があります。復元するには次のエフェクトをインストールしてください。###@0 個のエフェクトが見つかりません。}「Optical Flares」
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  2018/05/14 15:08:13 : コンポジションﾞhimitsu_titleﾞの開始
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  レンダリング設定 : 最良設定
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  画質 : 最高
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  解像度 : フル画質
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  サイズ : 1280 x 800
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  プロキシ : プロキシ使用しない
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  エフェクト : 現在の設定
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  ディスクキャッシュ : 読み取り専用
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  色深度 : 現在の設定
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  フレームブレンド : チェックしたレイヤーをオン
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  フィールドレンダリング : オフ
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  プルダウン : オフ
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  モーションブラー : チェックしたレイヤーをオン
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  ソロ : 現在の設定
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  時間範囲 : カスタム
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  開始 : 01130
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  終了 : 01149
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  デュレーション : 00020
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  フレームレート : 29.97 (コンポ)
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  ガイドレイヤー : すべてオフ
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  既存ファイルをスキップ : オフ
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  出力モジュール : ロスレス圧縮
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  出力先 : ¥¥secret¥himitsu_title¥himitsu_title_[#####].png
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  形式 : PNG
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  出力情報 : -
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  開始フレーム : 1130
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  オーディオ出力 : -
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  チャンネル : RGB+アルファ
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  深度 : 数百万色＋
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  カラー : ストレート
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  サイズ変更 : -
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  クロップ : -
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  最終サイズ : 1280 x 800
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  プロファイル :  -
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  レンダリング後の処理 : なし
2018-05-14 15:08:13:  0: STDOUT: PROGRESS:  
2018-05-14 15:08:29:  0: STDOUT: PROGRESS:  01130 (1): 16 秒
2018-05-14 15:08:43:  0: STDOUT: PROGRESS:  01131 (2): 14 秒
2018-05-14 15:09:02:  0: STDOUT: PROGRESS:  01132 (3): 19 秒
2018-05-14 15:09:16:  0: STDOUT: PROGRESS:  01133 (4): 14 秒
2018-05-14 15:09:30:  0: STDOUT: PROGRESS:  01134 (5): 14 秒
2018-05-14 15:09:45:  0: STDOUT: PROGRESS:  01135 (6): 15 秒
2018-05-14 15:09:59:  0: STDOUT: PROGRESS:  01136 (7): 13 秒
2018-05-14 15:10:13:  0: STDOUT: PROGRESS:  01137 (8): 14 秒
2018-05-14 15:10:27:  0: STDOUT: PROGRESS:  01138 (9): 14 秒
2018-05-14 15:10:39:  0: STDOUT: PROGRESS:  01139 (10): 13 秒
2018-05-14 15:10:51:  0: STDOUT: PROGRESS:  01140 (11): 12 秒
2018-05-14 15:11:03:  0: STDOUT: PROGRESS:  01141 (12): 12 秒
2018-05-14 15:11:16:  0: STDOUT: PROGRESS:  01142 (13): 12 秒
2018-05-14 15:11:28:  0: STDOUT: PROGRESS:  01143 (14): 12 秒
2018-05-14 15:11:39:  0: STDOUT: PROGRESS:  01144 (15): 12 秒
2018-05-14 15:11:51:  0: STDOUT: PROGRESS:  01145 (16): 11 秒
2018-05-14 15:12:01:  0: STDOUT: PROGRESS:  01146 (17): 11 秒
2018-05-14 15:12:11:  0: STDOUT: PROGRESS:  01147 (18): 10 秒
2018-05-14 15:12:23:  0: STDOUT: PROGRESS:  01148 (19): 12 秒
2018-05-14 15:12:36:  0: STDOUT: PROGRESS:  01149 (20): 13 秒
2018-05-14 15:12:36:  0: STDOUT: PROGRESS:  2018/05/14 15:12:36 : コンポジションﾞhimitsu_titleﾞの終了
2018-05-14 15:12:36:  0: STDOUT: PROGRESS:  合計経過時間 : 4 分 25 秒
2018-05-14 15:12:41:  0: STDOUT: LoadLibrary "n" failed!
2018-05-14 15:12:41:  0: STDOUT: LoadLibrary "n" failed!
2018-05-14 15:12:41:  0: INFO: Process exit code: 0
2018-05-14 15:12:41:  0: INFO: Checking for file "C:¥Users¥admin¥Documents¥ae_render_only_node.txt"
2018-05-14 15:12:41:  0: INFO: Attempting to delete "C:¥Users¥admin¥Documents¥ae_render_only_node.txt" to allow After Effects to run in the workstation enviroment
2018-05-14 15:12:41:  0: INFO: Checking: ¥¥secret¥himitsu_title¥himitsu_title_01130.png
2018-05-14 15:12:41:  0: INFO: Checking: ¥¥secret¥himitsu_title¥himitsu_title_01131.png
2018-05-14 15:12:41:  0: INFO: Checking: ¥¥secret¥himitsu_title¥himitsu_title_01132.png
2018-05-14 15:12:41:  0: INFO: Checking: ¥¥secret¥himitsu_title¥himitsu_title_01133.png
2018-05-14 15:12:41:  0: INFO: Checking: ¥¥secret¥himitsu_title¥himitsu_title_01134.png
2018-05-14 15:12:41:  0: INFO: Checking: ¥¥secret¥himitsu_title¥himitsu_title_01135.png
2018-05-14 15:12:41:  0: INFO: Checking: ¥¥secret¥himitsu_title¥himitsu_title_01136.png
2018-05-14 15:12:41:  0: INFO: Checking: ¥¥secret¥himitsu_title¥himitsu_title_01137.png
2018-05-14 15:12:41:  0: INFO: Checking: ¥¥secret¥himitsu_title¥himitsu_title_01138.png
2018-05-14 15:12:41:  0: INFO: Checking: ¥¥secret¥himitsu_title¥himitsu_title_01139.png
2018-05-14 15:12:41:  0: INFO: Checking: ¥¥secret¥himitsu_title¥himitsu_title_01140.png
2018-05-14 15:12:41:  0: INFO: Checking: ¥¥secret¥himitsu_title¥himitsu_title_01141.png
2018-05-14 15:12:41:  0: INFO: Checking: ¥¥secret¥himitsu_title¥himitsu_title_01142.png
2018-05-14 15:12:41:  0: INFO: Checking: ¥¥secret¥himitsu_title¥himitsu_title_01143.png
2018-05-14 15:12:41:  0: INFO: Checking: ¥¥secret¥himitsu_title¥himitsu_title_01144.png
2018-05-14 15:12:41:  0: INFO: Checking: ¥¥secret¥himitsu_title¥himitsu_title_01145.png
2018-05-14 15:12:41:  0: INFO: Checking: ¥¥secret¥himitsu_title¥himitsu_title_01146.png
2018-05-14 15:12:41:  0: INFO: Checking: ¥¥secret¥himitsu_title¥himitsu_title_01147.png
2018-05-14 15:12:41:  0: INFO: Checking: ¥¥secret¥himitsu_title¥himitsu_title_01148.png
2018-05-14 15:12:41:  0: INFO: Checking: ¥¥secret¥himitsu_title¥himitsu_title_01149.png
2018-05-14 15:12:41:  0: Done executing plugin command of type 'Render Task'
```

そう、何事もなく普通にかかってしまうのです。。。そんなばかな。
なにが「Done executing plugin command of type 'Render Task'」だ！っていう。。。

それが、プラグインへたった一文追加するだけで下のように！

```text:after.log
=======================================================
Error
=======================================================
WARNING:After Effects
   at Deadline.Plugins.PluginWrapper.RenderTasks(String taskId, Int32 startFrame, Int32 endFrame, String& outMessage, AbortLevel& abortLevel)

=======================================================
Type
=======================================================
RenderPluginException

=======================================================
Stack Trace
=======================================================
   at Deadline.Plugins.SandboxedPlugin.(DeadlineMessage )
   at Deadline.Plugins.SandboxedPlugin.RenderTask(String taskId, Int32 startFrame, Int32 endFrame)
   at Deadline.Slaves.SlaveRenderThread.(TaskLogWriter )

=======================================================
Log
=======================================================
2018-05-14 16:28:53:  0: Loading Job's Plugin timeout is Disabled
2018-05-14 16:28:55:  0: Executing plugin command of type 'Sync Files for Job'
2018-05-14 16:28:55:  0: All job files are already synchronized
2018-05-14 16:28:55:  0: Plugin AfterEffects was already synchronized.
2018-05-14 16:28:55:  0: Done executing plugin command of type 'Sync Files for Job'
2018-05-14 16:28:55:  0: Executing plugin command of type 'Initialize Plugin'
2018-05-14 16:28:55:  0: INFO: Executing plugin script 'C:¥Users¥admin¥AppData¥Local¥Thinkbox¥Deadline10¥slave¥DL09-1¥plugins¥5af937731de4af14847cd57f¥AfterEffects.py'
2018-05-14 16:28:56:  0: INFO: Fail on Existing After Effects process: 0
2018-05-14 16:28:56:  0: INFO: About: After Effects Plugin for Deadline
2018-05-14 16:28:56:  0: INFO: Render Job As User disabled, running as current user 'admin'
2018-05-14 16:28:56:  0: INFO: The job's environment will be merged with the current environment before rendering
2018-05-14 16:28:56:  0: Done executing plugin command of type 'Initialize Plugin'
2018-05-14 16:28:56:  0: Start Job timeout is disabled.
2018-05-14 16:28:56:  0: Task timeout is disabled.
2018-05-14 16:28:56:  0: Loaded job: himitsu-ten_0418_09.aep - himitsu_title (5af937731de4af14847cd57f)
2018-05-14 16:28:56:  0: Executing plugin command of type 'Start Job'
2018-05-14 16:28:56:  0: INFO: Executing global job preload script 'C:¥Users¥admin¥AppData¥Local¥Thinkbox¥Deadline10¥slave¥DL09-1¥plugins¥5af937731de4af14847cd57f¥GlobalJobPreLoad.py'
2018-05-14 16:28:56:  0: INFO: Looking for AWS Portal File Transfer...
2018-05-14 16:28:56:  0: INFO: Looking for File Transfer controller in C:/Program Files/Thinkbox/S3BackedCache/bin/task.py...
2018-05-14 16:28:56:  0: INFO: Could not find AWS Portal File Transfer.
2018-05-14 16:28:56:  0: INFO: AWS Portal File Transfer is not installed on the system.
2018-05-14 16:28:56:  0: Done executing plugin command of type 'Start Job'
2018-05-14 16:28:56:  0: Plugin rendering frame(s): 1850-1869
2018-05-14 16:28:56:  0: Executing plugin command of type 'Render Task'
2018-05-14 16:28:56:  0: INFO: Attempting to create "C:¥Users¥admin¥Documents¥ae_render_only_node.txt" to force After Effects to run in Render Engine mode
2018-05-14 16:28:56:  0: INFO: Stdout Redirection Enabled: True
2018-05-14 16:28:56:  0: INFO: Stdout Handling Enabled: True
2018-05-14 16:28:56:  0: INFO: Popup Handling Enabled: True
2018-05-14 16:28:56:  0: INFO: QT Popup Handling Enabled: False
2018-05-14 16:28:56:  0: INFO: WindowsForms10.Window.8.app.* Popup Handling Enabled: False
2018-05-14 16:28:56:  0: INFO: Using Process Tree: True
2018-05-14 16:28:56:  0: INFO: Hiding DOS Window: True
2018-05-14 16:28:56:  0: INFO: Creating New Console: False
2018-05-14 16:28:56:  0: INFO: Running as user: admin
2018-05-14 16:28:56:  0: INFO: Executable: "C:¥Program Files¥Adobe¥Adobe After Effects CC 2017¥Support Files¥aerender.exe"
2018-05-14 16:28:56:  0: INFO: Failing on warning messages
2018-05-14 16:28:56:  0: INFO: Argument: -project "¥¥secret¥himitsu-ten_0418_09.aep" -comp "himitsu_title" -s 1850 -e 1869 -sound OFF -close DO_NOT_SAVE_CHANGES
2018-05-14 16:28:56:  0: INFO: Full Command: "C:¥Program Files¥Adobe¥Adobe After Effects CC 2017¥Support Files¥aerender.exe" -project "¥¥secret¥himitsu-ten_0418_09.aep" -comp "himitsu_title" -s 1850 -e 1869 -sound OFF -close DO_NOT_SAVE_CHANGES
2018-05-14 16:28:56:  0: INFO: Startup Directory: "C:¥Program Files¥Adobe¥Adobe After Effects CC 2017¥Support Files"
2018-05-14 16:28:56:  0: INFO: Process Priority: BelowNormal
2018-05-14 16:28:56:  0: INFO: Process Affinity: default
2018-05-14 16:28:56:  0: INFO: Process is now running
2018-05-14 16:28:56:  0: STDOUT: aerender version 14.2.1x34
2018-05-14 16:28:57:  0: STDOUT:  has video RAM(MB): 8
2018-05-14 16:29:04:  0: INFO: Checking for file "C:¥Users¥admin¥Documents¥ae_render_only_node.txt"
2018-05-14 16:29:04:  0: INFO: Attempting to delete "C:¥Users¥admin¥Documents¥ae_render_only_node.txt" to allow After Effects to run in the workstation enviroment
2018-05-14 16:29:04:  0: STDOUT: WARNING:After Effects 警告: Grouped_Message_{このプロジェクトには、見つからないエフェクトへの参照があります。復元するには次のエフェクトをインストールしてください。|||このプロジェクトには、見つからないエフェクトへの参照があります。復元するには次のエフェクトをインストールしてください。###@0 個のエフェクトが見つかりません。}「Optical Flares」
2018-05-14 16:29:04:  0: Done executing plugin command of type 'Render Task'

=======================================================
Details
=======================================================
Date: 05/14/2018 16:29:07
Frames: 1850-1869
Elapsed Time: 00:00:00:14
Job Submit Date: 05/14/2018 16:14:56
Job User: admin
Average RAM Usage: 7631142912 (8%)
Peak RAM Usage: 7631142912 (8%)
Average CPU Usage: 5%
Peak CPU Usage: 10%
Used CPU Clocks (x10^6 cycles): 36606
Total CPU Clocks (x10^6 cycles): 732101
```

2018-05-14 16:29:04:  0: Done executing plugin command of type 'Render Task'
ここで切られて、エラーとして再度掛かるように！めでたしめでたし。