AfterEffects Script アニメプレビズ用のあれこれ

最近、線撮を含めアニメのプレビズのご依頼を立て続けにうけたことで
前から思っていたことや、最近あたった問題に関して少し解決してみました。


AfterEffectsScript RenderToMyPath

AEやC4Dを含め作業に最適化したディレクトリやファイルを出力するスクリプトを書いて
管理しているにも関わらずAEでは出力先を毎回指定してるな、、、
でまー、それなりに時間がかかる画面作りの場合は
そんなには思わないんですが、ストップアンドゴーで
新規でプロジェクトをつくりタイミングのみつけてどんどん出力していくような作業 の場合はとにかくだるい。
前からわかってはいたけれど、今回ばかりは手をつけずにはおられない。

キッカケとして、とある作品OPのプレビズや、線撮の依頼をお請けする機会が続いたんですがまーだるいです。
MacなのでダイアログにD&Dすることでディレクトリを指定できるってのが救いです。
winの場合はパスを貼ったりする感じになるんでしょうね。

自分の裁量で作業できる場合は、出力にかぎらず好きに管理しますが
そうじゃない場合は、テンプレに則ってやるべきかなと言う感じで進めています。
レンダリング設定なんかは特に迂闊に変更すると編集さんなどに迷惑をかける可能性もありますし。
注意が必要です。

しかし、それはそれとして無駄な手数はやはり省きたいので
出力先を簡単に変更するためのスクリプトを書くことにしました。

通常作業、プレビズ制作に限らず
カット単位で制作する場合の流れは以下の通りです。

  1. Script(Python or AE)でディレクトリを作る(プロジェクトルート、カットNo.毎の)
  2. AEでカット用のプロジェクトを作成する
  3. テンプレ(基本コンポ)のインポート(スクリプト処理)
  4. aepを保存する。(フォルダ生成スクリプトで出力する0バイトの空ファイルに上書き)
  5. コンポやレイヤーの名前、尺やワークエリアなどを指定する(必要に応じて、通常はスクリプト)
  6. フッテージのインポート

これが作業前の準備・助走プロセスです。

aepを保存の後に
フォルダパスが取得できるようになるので

その際にこの度目標とするレンダリング先を指定する
というのを連結するのが良かろうと考えました。
プロジェクトを保存するのはスクリプトでできますからそれに付け加えてしまいます。
保存先も最初の段階でディレクトリ内に生成されているので自動指定できます。

ちなみにコンポ名や尺、ワークエリアの変更をaep保存後に置いているのも同様の理由
手打ちで作業を噛み締めつつ進めて行きたいという職人タイプではないですし
むしろ、コンポやディレクトリが命名ルールに沿わない形になったりする状態がいやなので
スクリプト一括で処理しレギュレーションをそろえてしまいたいわけです。

そもそも、名前や尺の入力はできるだけ回数を減らせば不揃いになる確率は下がります。
全カットを通して文字列の乱れがない状態にできれば管理も楽になります。
さらにいうと気分などに左右される不安定な手入力(私の場合)よりも簡単に取得できるのが望ましいです。
と言うことでaepは空のファイルに上書きという方法をとっているわけです。

余談ですが、、、RenderQueue関係のスクリプトを書くのは久しぶりです。
15年ほど前に最初にAEのスクリプトを書き始めたのが
RenderQueueを操作するものだったのを思い出しました。
当初はエクスプレッションが少しわかる程度で
スクリプトは全くわからずに書きはじめ、ちょっとずつ覚えていったわけですが
最初のスクリプトは3ヶ月ほどかかったように記憶しています。

今回は流石にサクッと書けました。3時間ほどでしょうか。
使用感・運用は実に楽です。
作業の流れを整理して気づいたんですがaep保存時
さらにファイルインポートもくっつけてしまおうかなと考えています。


How to mask animation drawn with only lines on transparent layers

次はデジタルの描きコンテや原画が増えているようにおもいますが
初めてそれらの線撮を業務としてする機会がありました。
レイアウト・コンテ用紙などのテンプレをみた感じでそーなるのは
仕方ないかーという感じだったんですが、、、
作画に透明の新規レイヤーを採用して描かれているわけです。
旧来の作画だと理屈的には、紙に描いていくわけなので
白レイヤーを乗算などで透過させつつ描いていくことになるだろうと
考えます。ところがそうはなっていない。

会社の方針によって、PSなどでマスクアウトしていくこともあるでしょうが
個人的にはあくまでラインテストですから、AE上で全て完結させたいです。
各レイヤーをプリコンプするなり、シーケンスレイヤーにするなりしたコンポを作り
その上でマスクアウトしていくなど簡単な対処が様々あるのでまったくもって大した問題ではありません
全てのレイヤーのマスクも切っちゃった後でしたし
主にコピペでいけるエフェクトでなんとかする方法はないものかってことで試してみました。
最初はこれでいけんじゃね?と高を括って 単色合成色を割り当ててみましたが
マスクが無視されてしまいます。

結果として

塗り(全てマスク:オン)→計算(2つ目のレイヤーでそのレイヤーを指定する)

で思った感じになりました。


ボールドに関しての考察

アニメ制作のフローで俗にいう音響プロダクション用の線撮をしない、プレビズを作らないと決めていて
その努力もしている制作会社なら準備をする必要もないので別によいとは思うんですが
セリフや音響用のボールドに関して20年前から全く変わってないことに驚いてしまいました。

特にスポットのヘルプで参加するような場合には

  1. 当然キャラがわからない、演出さんによっては達筆すぎだったり、ニックネームで書いていたり
    全くもって不毛な考察・解読に時間を使うことがあります。
  2. キャラ名がわかったとて、悩ましいローマ字のファイル名(何故か各種ファイルとして出力されている)の中から探すという
    とてもイライラする状況に陥ります。

この状況前者は主に演出や制作、およびシステムの問題で撮影という部署ではどうすることもできないので
この度は触れませんが
後者はなんとかなるだろうという気がしてならない。
ということで、ボールドをストレスなく表示されるよう
仕込めんものか?と考えて外部の補助機能なしというコンセプトを重視して開発しました。

悶々と線撮作業をしながら考えていたような仕組みが外部ファイルのスクリプトなどつかわずにできました。
具体的には

レイヤー名を変更→表示が変更される

という形です。
詳しい説明は割愛しますが、アニメ撮影の基本コンポと言われる中で多くの
似たようなことが行われていますので想像が着くと思います。

レイヤー名を変更するという日常的なことで対応できるので
作業ストレスはかなり軽減されます。

自分用のさらなる作業軽減策としてjsonデータからリネーム用ローンチャスクリプトを作ってみました。
以前にもこういったリネームローンチャは書いたことがありますが、ボタン一つでリネームができるのは楽ちんです。

設定化したjsonをつくって読み込ませるだけで 簡単にローンチャになるのはあとで応用が効きやすく
汎用性もあるので良いですしね。

このスクリプトを書いてるときに気がつきましたが
jsonをあつかう場合に普段web制作する際はJqueryでファイルさえ指定すれば
parseされたデータにしてくれるのが楽だってことです。
AEのScriptでファイル読み込み、jsonデータとしてフォーマット、jsonとしてparseする
のは一手間だなーと感じました。jsonであるメリットを享受できない場合は使わなくてよいかも、、、

今回他にも未だに基本ファイルがtgaだったりして、何度か驚くことがありました。
てか、ボールドはテキストレイヤーで作るようにしたほうがよくないっすかね?

現代のテクノロジーにマッチさせようとしたり、アップデートされていっていないってことには
かなり疑問も残りましたね。



コメントを書く