After Effects 2020のAEPをダウングレードするバッチを作った


はじめに

どうも、遊技機界隈でよくわからない仕事をしている下原です。
遊技機界隈の作業1つにオーサリングという作業があります。
こちらは簡単に言えば、映像用の基板(ハード)に組み込むための処理を行うために、映像作成ソフト(現在はほぼAfter Effects一択)を活用して組み込み処理のために中のデータを最適化する作業になります。
オーサリングについての詳しいルールについてはメーカーやハードによって異なりますし、説明をしだすと膨大になりますので今回は除外させていただきまして…。

そのオーサリングを行う際に、ハードの制約の都合上、古いバージョンのAfter Effectsで作成しなければならないという、映像制作者泣かせの仕様があったりします。

組み込み用のツールを作成した当時の最新バージョンだったり、或いはハード的な仕様の都合だったりと理由は様々らしいです(私もあまり詳しくありません…)

しかし、Adobe社のツールではダウングレードは2バージョン前しか行えないという仕様があり、修正の度にダウングレードを何度も行わなければいけないというAdobeの担当者(と古いバージョンを仕様する開発都合)をぶん殴りたくなるような問題などもあります。

そのため、この作業を簡略化できないかと思い、色々と調べてみました。

探してみたところ

飯澤英俊さんという、これまた遊技機関連のAfterEffectsのツールを開発されている方が5年前に書かれていた記事を見つけました!

下位バージョン保存補助バッチ(AEP Project)

やったね!

…あれ、動かない?
あ、この処理はCC13までしか対応してない…(悲哀)

なので、現行の最新バージョンである、After Effects 2020 から After Effects CC2014(CC13) までのダウングレードのバッチ処理を作ってみた。

貴方の思い(勝手に)引き継ぎます!

必要なもの

  • After Effects CC2020(17)
  • After Effects CC2018(15)
  • After Effects CC2014(13)

ダウングレードするためにはもちろん、各バージョンのソフトが必要になります。
(横道に逸れますが、これが意外と厄介だったりもします)

コード

CC2020からCC2018にダウングレードするバッチ
@echo off
setlocal ENABLEDELAYEDEXPANSION
rem cc2020 -> cc2018
for %%f in (*.aep) do (
    set nameStr=%%f
    set nameStr2=!nameStr:.aep=_cc2018.aep!
    set renameStr2=!nameStr:.aep=" コピー  CC (15.x).aep"!
    set fullPathStr=%CD%
    set aePathStr=!fullPathStr:\=/!
    set scriptStr="app.open(new File("!aePathStr!/!nameStr!"));app.executeCommand(4163);"
    set scriptStr=!scriptStr:""="!
    "C:\Program Files\Adobe\Adobe After Effects 2020\Support Files\AfterFX.exe" -s !scriptStr!
    rename !renameStr2! !nameStr2!
)
CC2018からCC2014にダウングレードするバッチ
@echo off
setlocal ENABLEDELAYEDEXPANSION
for %%f in (*_cc2018.aep) do (
    set nameStr=%%f
    set nameStr2=!nameStr:_cc2018.aep=_cc2014.aep!
    set renameStr2=!nameStr:.aep=" コピー  (CC (13)).aep"!

    set fullPathStr=%CD%
    set aePathStr=!fullPathStr:\=/!
    set scriptStr="app.open(new File("!aePathStr!/!nameStr!"));app.executeCommand(4035);"
    set scriptStr=!scriptStr:""="!
    "C:\Program Files\Adobe\Adobe After Effects CC 2018\Support Files\AfterFX.exe" -s !scriptStr!
    rename !renameStr2! !nameStr2!
    del !nameStr!
)

飯澤さんが作られたバッチと一番異なる所はapp.executeCommand(4163);app.executeCommand(4035);のところです、なんと。 CC2020とCC2018は過去バージョンとダウングレードのCommandIDが違うという仕様になっており、そのまま置き換えて書き換えても動かないという問題があります。

これより過去のものは上記で紹介した飯澤英俊の記事を参考にして組み合わせてご使用ください。

また、ダウングレードの際の「保存する」やバージョンに対応していないプラグインなどの確認の際にエンターやクリックが必要になってきます。
私の場合は、こちらの処理についてはUWSCも活用して力業で対応していたりします。

そこは環境によって変わってきそうなので今回は割愛させていただきます。

非常にニッチな処理であるAE Script、最新情報は国内にはほぼないので海外サイトや自分で調査するしかないっていうものですが、まだまだ利用者は多いのでマニュアル増えてくれ~、あと既存バグ許さん。