エーイーのやつ。

今月〜来月あたりに、iMac 2020の出荷時に装着していた4GBメモリモジュール2枚を外して、32GBメモリモジュール2枚に差し替えようと思います。26000円くらいかかるけど、勢いのあるうちに済ませておきたいので、交換します。

 

そうすれば、自宅のiMac 5K 2020は、128GBメモリ!

 

既に増設していた32GBモジュール2枚と組み合わせて、4つのスロットは全て32GBで埋め尽くされることになり、仕事場のiMac Proでも為し得なかった128GBのメモリ容量となります。

 

私が初めて、自分用にあてがってもらったQuadra650は、オンボードメモリが4MBか8MBで、メモリモジュール(シムだったと思います)を128MB増設して、132MBか136MBだったと記憶します。

 

20年余の月日は、とうとうコンシューマ向け(と言っても上級機種ですが)のメモリを1000倍にするのですネ。

 

128MBから128GBへ。

 

 

 

After Effectsがバカスカとメモリを喰うんでなあ‥‥。

 

でも、メモリが必要なら、できる限り、与えます。だって、ユーザができる改善案ですもんネ。

 

だから。

 

バグは直してちょ。ユーザじゃ手出し出来んのよ。

 

After Effects史上、5本の指に入るであろう、最凶のバグです。

 

私は様々なバンク素材を数年前にProRes4444 アルファ付きに変換し直したのです。画質がとびきり綺麗で非圧縮同然の最高画質なので。

 

それらのバンク素材がすべて8bitで認識されてしまい、CC2020から出力した10bit素材まで8bitで読み込まれる、今回の最凶最悪のバグは、正直に言えば、アドビに作業損失の保証くらいしてほしいレベルの「人災」です。

 

でもそんなことは言わんす。このブログで愚痴るだけにします。

 

だから、はやく直して。最凶のバグを。

 

 

 

ちなみに、数日前にAfter Effectsの17.1.4と17.5ベータのアップデートがありましたが、バグは治ってません。

 

ここまで治せない期間(数ヶ月)が続くと、内部で何かあるんでしょうかね??? 邪推したくなるほど、治りませんな。

 

 

 

 


10年の沈黙

After Effectsの3Dレイヤーを活用したコンポジットは、既に10年前以上に欧米が積極的に活用していました。‥‥にも関わらず、日本ではほとんど顧みられることがなかったのは、UIの使い易さ云々ではなく、日本のアニメ制作体制がZ軸の導入を阻んでいたからです。

 

アニメーターが従来の方法でレイアウトを描く。‥‥その時点ですでにZ軸は存在しておりません。横幅と縦幅のXY平面の世界です。TUやTBはZ軸というよりは拡大縮小であって、奥行きを表現するものとしては認識されていません。

 

レイアウトでZ軸が存在しないので、その後に続く工程でもXY軸の2軸だけで継承されます。撮影も同じ。

 

つまり、アニメーターがコンポジットを深く理解し、レイアウトを描く時点でコンポジットの立体構成が頭の中にできていなければ、どんなにAfter EffectsのUIが改良されようと、Z軸は活用されないままです。

 

もちろん、背景の位置をプラスに、手前のBOOKの位置をマイナスに設定することで、当座できそうなZ軸配置は可能です。しかし、後付けには限度があって、どのくらいフォーカス面から離せば良いかはコンポジター(今の通り名は撮影)のさじ加減ですし、カメラワークによってはバレが生じることもあります。特にティルト〜角度を傾けると、バレの危険性が高くなります。

 

下図は、3Dレイヤーのサンプルとして以前に作ったものです。左が3Dレイヤーで組んだコンポジションの中をカメラが動く様子、右がアニメ撮影の単純なTUです。

 

*一見普通の線画に見えますが、全てベクター線です。ぐりぐりと太い鉛筆で描いた線画(当時はApple Pencil登場前)をスキャンしてベクター化し、どんなに近いてもジャギやボケが発生しないようになっています。従来の仕上げ&撮影方式でこんなに寄ったら、ボケてしまいますので、従来方式では皆の嫌いな「拡大作画」で処理することになります。

*ちなみに、左の映像で徐々に背景や前景がボケていくのは、被写界深度が浅くなるからで、そのようにカメラの絞りを設定しています。

 

このカメラワークをおこなうには、After EffectsのUI云々の前に、まずアニメーターが3Dレイヤーで構成するレイアウトを描いて、適切な舞台セットを組むことが必要です。

 

今までの通りのレイアウトしか描かずに、「撮影さんよろしく」というわけにはいきません。

 

つまり、3Dレイヤーで立体的なコンポジットが可能になる‥‥ということは、アニメ業界の技術が生まれ変わる‥‥ということと同義です。そしてアニメ業界の一般的なワークフローも再定義されるでしょう。

 

アニメーターが3Dレイヤーを用いたレイアウトを描けるということは、アニメーターがコンポジットに深く関与することですから、今までの撮影の枠組みは大きく姿を変えます。

 

3Dレイヤーだけでなく、直にAfter Effectsに描画するテクニックも、長らく封印されたままですが、アニメーターがコンポジットに積極的に関わるようになれば、当然、エフェクト作画系は「その場でAfter Effects作画」で描くものも増えてくるでしょう。

 

以下は、同じく以前にデモとして作った映像です。黒い平面レイヤーに白で描画するとAfter Effectsで瞬時にエフェクト処理され炎のVFXが可能になる様子です。

 

*このデモを作った当時は、マシンの性能も低かったので、VFXの描画がワンテンポ遅れていますが、最新のiMac 5Kでメインメモリとビデオメモリ増し増し環境なら、応答速度も高速でしょう。

*これも随分前の映像なので、板タブ(Intuos)で描きました。今だったら、iPadとAstroPad等でもっと身近な感覚で描けるでしょうネ。

 

こんな調子で白いマスク作画を送り描きすれば、手描きの炎のアニメーションを作ることができます。プラズマやスパーク、破片、火花、マズルフラッシュ、弾着、衝撃波‥‥、いかにもすぐに出来そうですよネ。

 

 

 

日本人は巧みに道具を使いこなす一方で、一度体得した道具や方法論に固執するあまり、新しい道具や方法論を「拒絶」と言ってよいほどに遠ざけて使いこなせない側面も合わせ持ちます。

 

これらの機能は10年以上前から使用可能ですが、アニメ業界ではサッパリ何も‥‥ですよネ。

 

カットアウトは無視し続けるわ、レイヤー直描き作画も無視するわ、3Dレイヤーも無視するわ‥‥で、日本は10年以上の時間をずっと無駄にしてきたのです。

 

まあ、その代償として、定型の制作方法で膨大な作品数とカット数をこなしてきましたが、それでアニメ業界の技術はどれほどバリエーションを増やしたでしょうか。‥‥どちらかというと、くる日もくる日も同じような作業で僅かなマイナーチェンジで埋め尽くした日々だったのではないでしょうか。

 

 

 

3DレイヤーでXYZ軸の立体的なコンポジットが可能になる日。

 

それはアニメ業界の制作技術の大転換を意味します。

 

アニメーターがコンポジットに関わることで、ようやくものごとが変わり始めます。

 

報酬も今までのようには、いかなくなるでしょう。

 

そこからスタートです。

 

 


即席スクリプト

After Effectsは色んなところにガタがでています。

 

After Effectsのプロジェクトの中に、既に作ったプロジェクトを入れ子で読み込む際に、読み込む数が多いと非常に読み込む速度が遅くなるのは、おそらく数を読み込むほど総当たりの処理が増えるからでは?‥‥とは思うものの、ユーザサイドではその速度低下を改善することができません。

 

できることは、「そもそも、数を読み込まない」しかないです。

 

数を一気に読み込むのではなく、1つずつ処理する、もしくは10個くらいに抑えて処理すれば、速度の遅さを回避できます。

 

 

 

現場では、状況によって大量に処理しなければならない場面があります。

 

たとえば、570ファイルのAEPを一気にレンダリングする場面とか。

 

1つ1つのAEPファイルの内容は軽くても、大量の処理が必要な場合に、現バージョンのCC2020では、読み込むAEPファイルが多いほど、読み込み時間が鈍化します。

 

例えば、100個のAEPファイルをプロジェクトに読み込んだ際には、20個目あたりから1個ずつの読み込み時間が低下し、40個目あたりでは1個の読み込みに10秒くらいかかるようになり、70個目あたりだと、1個あたり30〜60秒くらいの待ち時間が生じます。

 

数が増えると、処理が極端に遅くなっていく‥‥という状態は、総当たりの処理数がどんどん増えていく感じに似ています。100個のファイルを読み込むには、以前の99個の読み込み済みのファイルの内部項目を総当たりでチェックしているような雰囲気。

 

インサイダーじゃないので、単なる想像でしかないですが、とにかく遅いです。昔のAfter Effectsは高速な連続読み込みが可能でしたが、いつの頃からか、CC2020においては速度が極端に遅くなっています。

 

 

 

私がAfter Effectsを使い始めたのは、バージョン3.1の頃です。1997年。

 

現在のAfter Effectsのバージョンは17.1。次のバージョンは17.5。2020年。

 

After Effectsがどんどん高機能化して、コンポジットソフトの騎手として成長し躍進する姿を、ユーザとして一緒に見てきて、いつしか進化が鈍化し、そして今、老いぼれて各所にガタが出ている姿を見るのは、正直、悲しく切ないものです。

 

人と同じく、ソフトウェアプログラムも老いるのかな。

 

 

 

とは言え、感傷的な気分に浸っていても、570個のAEPファイルを処理する現実はそこに横たわったままです。

 

数を読み込むのと速度が落ちるのなら、1つずつ処理すれば良いです。プロジェクトに大量のAEPファイルを読み込むこと自体を止めれば回避できます。

 

570個のファイルは、H.264の軽量なオフライン素材としてレンダリングする内容だったので、After Effects本体のレンダリングではなく、AME(アドビメディアエンコーダ)に送ってレンダリングする必要がありました。

 

大量に読み込んで、大量にAMEに一気に送る‥‥という手段はあきらめて、1つずつAEPファイルを開いてAMEに送る方針に変更しました。570個のAEPファイルを1つずつネ。

 

「げ! そんな大変な‥‥」と思うでしょうが、自動処理なら大変ではないです。自動処理する様子を見守っていれば良いだけです。

 

 

 

即席でスクリプトを作り、大量処理を自動化します。

 

スクリプトの内容は以下。

 

After EffectsでAEPファイルを開く。

 

レンダキューの項目をAMEにキューする。

 

AEPファイルを保存せずに閉じる。

 

たった、これだけです。2〜3分もあれば処理そのものは書けます。

 

しかし、After Effectsには「フォントがない」とかの警告や、そもそもユーザが誤ってAEPファイル以外を処理しようとしてオープンできなくて止まる‥‥などの、スクリプトが停止しそうなエラーへの最低限の対策は施しておく必要があります。‥‥自分自身で作ったプログラムで、自分だけで使う場合でも、うっかりミスには対応しておくのが良いです。

 

最低限のエラー対策を施して、macOSで動作するAppleScriptのアプレット&ドロップレットに仕立てたのが、以下。

 

on run

    tell application "Finder"

        set x to selection

        my main(x)

    end tell

end run

 

on open x

    my main(x)

end open

 

to main(x)

    set err to 0

    set errList to ""

    repeat with xx in x

        repeat --continueの代用

            tell application "Finder"

                set xxName to name of xx

                if name extension of xx is not "aep" then

                    set err to err + 1

                    set errList to errList & xxName & return

                    exit repeat --continue

                end if

            end tell

            tell application "Adobe After Effects 2020"

                set num to (DoScript "app.exitCode=0;

app.beginSuppressDialogs();

var prj =app.open(new File('" & (xx as Unicode text) & "'));

app.endSuppressDialogs(false);

if (prj.renderQueue.canQueueInAME) {

    prj.renderQueue.queueInAME(false);

} else {

    app.exitCode=1;

}

prj.close(CloseOptions.DO_NOT_SAVE_CHANGES);") as integer

            end tell

            if num > 0 then

                set err to err + num

                set errList to errList & xxName & return

            end if

            exit repeat --continue

        end repeat

    end repeat

    

    activate

    if err < 1 then

        display dialog "全ての項目をAMEにキューしました." with icon note buttons {"終了"} default button 1

    else

        display dialog ((count of x) as text) & "項目のうち、" & (err as text) & "項目がキューできませんでした." with icon caution buttons {"終了"} default button 1 default answer errList

    end if

end main

 

*「x」とか「xx」とか、如何にも短いスクリプト向きの変数名は、私のクセです。長文でサブルーチンが多数ある場合は、ちゃんと判りやすい名前にしますヨ。‥‥後で後悔するから。

 

 

こうしたスクリプトを作って、Appとして書き出して、ドラッグ&ドロップで動作するツールとして活用します。

 

行数からもわかるように、コンパクトに収めたスクリプトなので、動作検証も含めて1時間もあれば作ることが可能です。

 

自分だけが使うことが前提なので、考えもしないような使われ方に対するエラー対策は不要で、短時間でビルドできます。予期せぬエラー対策にあれこれ対処しているうちに、どんどん時間がかかるんだよねえ‥‥。個人やグループ内の限定使用ならば、使い方を伝達できるので、エラー対策は最低限で済んで開発時間も極端に短くて済みます。

 

After Effects内部のキューでレンダリングする場合は、タイムアウト(スクリプトが応答待ちで時間切れになってエラーになる)に対応しつつ、1つずつレンダリング実行するスクリプトを作ればイケそうです。

 

 

 

20年以上愛着のあるAfter Effectsが老いぼれていく姿を、リアルタイムで見るのはツラいです。

 

アドビの気の抜けたバージョンアップ状況が、いつしか改善されることを期待しつつ、今はユーザ側の立ち回りで対応して、After Effectsの疲労をアシストする必要があります。目の前の現実は待ってくれませんもんネ。

 

After Effectsの姿が未来のアドビを象徴しないように願いつつ。

 

 

 


出入口に転がっているソレ

Adobe CC。今はベータテスターではなくても、ベータ版が試せるようになっています。

 

 

After Effectsの重大なバグ〜10bitや12bitのQTが場合によって8bitで認識され画質が大きく損なわれる〜は、ベータ版では直っているか期待していると、実はガッカリなことに、そのままバグを継承しています。

 

お粗末。

 

これ、納品で事故って、全て書き出し直してラボに入れ直し‥‥なんて事も起きる、自動車で言えば「欠陥車」並み、リコール並みの痛烈なバグです。

 

特定の条件でAfter Effectsを使うと事故が起こる‥‥という点で、リコール対象車と同等です。

 

 

 

しかし、After Effectsに限らず、Adobe CC全体は、CC2019以降しか入手できませんので、CC2018を使い続ける‥‥みたいな対応はできません。新規マシンを導入して再インストールしたり、新しくアカウントを追加して新規インストールする場面では、もう過去のバージョンはインストールできなくなります。

 

つまり、新しいバージョンをしっかりと動作するようにリリースしてくれないと、アドビの甘い製品管理の影響で納品不能になったり、事故が発生する‥‥ということです。

 

 

 

やっぱり、After Effects一強状態から抜け出さんと、アドビのていたらくのいいなりです。

 

しかしねえ‥‥。今のところ、After Effectsの代わりになるほど、強力なコンポジットソフトウェアはないのよね。‥‥どれも大味で、隅々まで手が行き届かない。

 

必要なのは、After Effects エレメンツやAfter Effects エッセンシャルじゃないのよ。After Effects プロ ‥‥なのよネ。

 

 

 

‥‥て、さあ。

 

こんなことで未来に不安を感じたり、乗り換え先を色々探したりするのは、アドビがどうしようもないウンコみたいなバグをいつまでも放置するからなのよネ。ウンコが玄関に転がってても、そのまま放置する会社なのかね?

 

ウンコなんて口が悪い‥‥とは私も思いますが、ほんとに臭くて汚くて、避けて通るしかないバグなんですよ。しかもそのウンコが家の入口に置いてあるので、どうにも困ってしまうのです。

 

さっさと直してくれれば、丸く収まる。ただそれだけのことを、ルーズに何ヶ月も重大なバグを放置するから、アドビから心が離れていくのです。

 

 

 

とにかく、早く重大なバグを直すべし。

 

ただそれだけで、大きな安心を顧客に提供できるんですから。

 

 


アドビはバグを直せ

サブスクでいつでも最新版で全てのAppが使えるようになったアドビ CC。

 

私はCCに移行してからと言うもの、利点を実感していますが、最近は悪影響も少なからず感じ始めています。

 

リリースする製品のクオリティが雑になりました。

 

サブスクで黙っていてもお金が入ってくるからでしょう。

 

以前のような売り上げの不安が解消されて、緊張感が緩んだんです。アドビも人の子だもんな。ほんとに正直にいって、「雑になった原因」はソレだと思います。

 

 

 

After Effects CC 2020では、致命的なバグがあります。

 

そしてそのバグが何ヶ月も放置されたままです。

 

毎月金をみんなから払って貰ってんのに、何やってんの? アドビ?

 

特定の条件で、酷く画質が落ちるバグなんて、最悪でしょ。

 

 

 

サブスクは、顧客との信頼関係の上に成り立っているんですよ。

 

顧客の上にあぐらをかくためのものじゃないよ。

 

開発とサポートを手抜きするための方便になるんだったら、サブスクほど理不尽なものはないです。

 

 

 

早くバグを治してくださいな。

 

もう、既知でしょ。色んな方面から報告があるでしょ。

 

こともあろうに、次バージョンのAfter Effects 17.5にも同じ致命的なバグがあります。

 

また、同じバグを抱えてリリースするつもりなのかな。だとすれば、相当腐ってますよネ。

 

 

 

1日でもはやく、致命的なバグが治ることを、After EffectsのCC2020には希望します。

 

 


0+0のエクスプ

After Effectsの時間から(0+0)書式に変換する方法は、色々考えつきますが、一番手取り早いのは、タイムコードからコマ数を取得する方法です。

 

ご存知、タイムコードはゼロスタートです。1スタートではありません。

 

00:00:00:00

 

これを、

 

0+01

 

‥‥へと変換するのなら、

 

00:00:00:00の末尾0001へと変更すれば簡単ですネ。フレーム総数を24で割って余りを計算するより段取りが楽です。

 

タイムコードは : もしくは、 ; で区切られていますので、split()で分割が容易です。

 

タイムコードの文字列.split(":")[3]

 

‥‥で、末尾のフレーム数を取り出すことができます。配列は0スタートなので、4番目の要素を取り出す場合は[3]と指定します。

 

しかし、00に1を足しても01にはならず、1になります。桁揃えを喪失します。(暗黙の型変換によって、文字の数字が、数値の数字に変換されるため)

 

ゆえに、00に1を足すのではなく、101を足して、一旦3桁にした後で、文字に変換、その後に先頭の1文字を消せば、「01」になります。10101の部分を取り出すわけですネ。

 

秒数の表示部分は、単純に「time」を小数点切り下げで得られます。

 

‥‥ということを、エクスプレッションで表現すると、やや長い1文ですが、1行だけで(0+0)書式のアニメ業界タイムシート書式を作り出すことが可能です。

 

 

Math.floor(time)+"+"+String(Number(timeToTimecode(time, 24, true).split(":")[3])+101).slice(1);

 

 

この1行をテキストレイヤーのテキストソースのエクスプレッションに加えるだけで、「タイムコード」エフェクトを苦し紛れに1スタートで使わなくても、タイムシートの表記に合わせることができます。

 

 

 

やっぱりさ‥‥。

 

0+24が00:00:01:00で表示されるのは、いかにもマズイし、事故の元だし、タイムコードに不慣れで使えてない証しだと思うのですよ。

 

「00:00:03:00は、ほんとは、00:00:02:23だけど、読み替えに慣れてるからOK」‥‥なんて言い草は、映像業界のプロとして生きるなら、すぐにヤメましょう。

 

 

 

1から数え始めて24で終わりたいのなら、テキストレイヤーとエクスプレッションを活用しましょう。

 

何行にも渡る面倒なエクスプレッションならともかく、1行で済む簡潔な内容ですから、CS6時代の本当の終了の際に、After Effectsのエクスプレッションも点検し、古い予約語の更新だけでなく、タイムコードの好ましくない1フレームオフセットも廃止して、すっきり綺麗なテキストレイヤーにまとめるのが良いと思いますヨ。

 

 

 

 


良いも悪いも

CS5が昔過ぎると言っても、今のCC2020が決して素晴らしいわけでもない‥‥のは、なんとも。

 

例えば、After Effectsの最新バージョンでも、レンダーキューのGUI更新に不具合があります。

 

もう1年以上も前に発覚した不具合だろうに、まだ治らんのか。

 

 

 

■After Effectsのレンダーキューにおいて、レンダリングが進行しているにも関わらず、ステータスが「キュー」のままで「完了」にならない「バグ」。

 

下図は、既に3番目のレンダーキューアイテムをレンダリングしているにも関わらず、2番目のキューアイテムが「完了」表示になっておりません。‥‥これ、急いでいる時に、すごく困る不具合なんスよネ‥‥。

 

*一見、普通に見えるスクリーンショットですが、レンダリングのプログレスバーが進行状態なのに、ステータスが「終了」と「キュー」だけなのは、After Effectsを使い慣れた人なら異常な状態に気付きますよネ。「レンダリング中」のステータスはいずこに?

 

 

このバグ、レンダリングが全て終了しても、ステータスは「キュー」のままです。「完了」にならんのよ。

 

あまり気安くバグだバグだと言いたくないですけど、これは「バグ」としか言いようがないでしょう。仕様変更であるわけがない。

 

 

 

いつになったら、このバグ、治るのかな‥‥‥。

 

 

 

最近のAfter Effectsは、こうしたバグをしょうがなく認知した上で、不具合を受け流して使うソフトウェアなんですよネ。

 

ダメ出しばかりしてても先に進まんから、「良かった探し」で気を取り直して使っています。

 

ただ‥‥‥。

 

サブスクがこうしたお粗末な正式リリースを招いたのだとしたら、悲しいことですネ。

 

 

 

 

まあ、このへんにしとこ。

 

ダメ出しのネタなんて、世間にいっぱいあるのだから、それらをピックアップして、「ダメな部分を見抜いてやった!」なんて延々と続けられます。

 

歳を食うと、経験が蓄積しているので、ダメ出しは得意になるんですよ。歳食えば誰しも。

 

とは言え‥‥、悪所を指摘してダメ出しばかりの人生じゃ、死ぬまでダメ出しして終わるように思います。

 

「あれ。俺って、ダメ出しばかりして、何かを「良い出し」できただろうか。」なんて、死に際に後悔したくないわな。

 

 

 

なので、After Effectsにバグがあろうが、After Effectsの有効活用法を、模索し続けます。

 

iMacとiPadとApple Pencil、そしてAdobe CCが身近にあれば、昔は絶対に不可能だったことが今はできるんだもん。

 

要望や不具合のフィードバックはしつつ、良い部分を見つけて育てて大きくしていかないとネ。

 

 


this_comp

After Effectsのエクスプレッションにおいて、「このコンポジション」を表す予約語は、

 

thisComp

 

‥‥なのですが、10年近く前のCS5くらいまでは、

 

this_comp

 

‥‥でした。

 

なので、エクスプレッションにおいて「this_comp」があると、昔に作った文を引き継いでいることが判ります。

 

で‥‥、昔に作ったままで何もなければ良いのですが、最近のAfter Effectsだと、盛大にエクスプレッションエラーを引き起こすことがあります。

 

例えば、本撮以外は非表示にしておきたいテキストレイヤーなどが、エクスプレッションエラーにより機能せず、意図せず表示されて、レンダリングが全滅したりします。

 

 

 

そろそろ、テンプレートのAEPを新バージョンのAfter Effectsで総点検して、昔の書き方のままのエクスプレッションは訂正しておいたほうが良いです。

 

新規で制作現場に参入する場合、昔のバージョンで統一することは困難ですが、新バージョンなら可能です。最近までCS6の縛りが強かったアニメ撮影事情ですが、さすがにそれは今では通用しないですよネ。新規に機材が必要になって調達する場合、WindowsXP時代のソフトウェアを指定することは無茶です。

 

2020年代になった今、CS5や6のプロジェクトは眠らせて、最近のバージョンに合うように書き直す頃合いかと思います。

 

平成、そして、2010年代が、こうして徐々に過去のものになっていくんでしょうネ。

 

 

 


即席タイムリマップ。そして小数点の誤差変更‥‥。

タイムシートのセルのタイミングをAfter Effectsに反映させる際に、ほとんどの人がタイムリマップを使っていると思います。

 

そのタイムリマップのデータを生成する方法はいくつかあり、私はテキストで流し込む方法を使ってきました。

 


Adobe After Effects 8.0 Keyframe Data


    Units Per Second    24
    Source Width    1750
    Source Height    1233
    Source Pixel Aspect Ratio    1
    Comp Pixel Aspect Ratio    1

Time Remap
    Frame    seconds    
    0    0.0417084    
    3    0.0834168    
    6    0.125125    
    9    0.166834    
    12    0.208542    
    72.0723    3.003    


End of Keyframe Data

 

もちろん、このテキストを手で入力するわけではなく、何らかのエディタでシート打ちをして、その内容から変換するプログラムを作って対処しています。

 

が、しかし。

 

そのプログラムが手元にない場合は、何らかの方法でちゃちゃっと対応したい時があり、まさに昨日今日がその時でした。

 

 

 

私はTSXというAppを自作し、15年以上の長きに渡って対応してきましたが、今回のコロナのテレワークに合わせて久々に内容更新と再コンパイルしたTSXを、家のiMacに忘れてきてしまいました。

 

忘れて手元になければ、使えないですネ。

 

なので、前々から考えていた、マーカーのコメント欄を利用してタイムリマップを反映させるエクスプレッションを作りました。

 

 

 

まずコメント欄には、「1行を1コマ」に見立てた、セルのタイミングを書き込みます。「0」は空セル、「1」〜「8」は放電・スパークの絵です。スパークのタイミングなので、明滅したりと賑やかです。

 

1

2

3

4

 

5

 

6

0

6

0

 

7

0

7

0

8

0

8

0

 

1

2

0

5

6

0

7

0

8

 

 

ハッキリ申しまして、行番号のないコメント欄に直にタイミングを書き込むのは、やりにくさ極まれりです。行番号が表示されるエディタで一旦書き込んでから、コピペしてコメント欄に書き込んだほうがミスが防げます。

 

当該のセルのレイヤーにマーカーを適用し、コメント欄にセルタイミングを書き込んだのちに、エクスプレッションを適用すれば、シート打ちの状態が反映されます。

 

 

 

 

 

実際のソース文は以下。

 

offset=0.001;

fps = 1.0 / thisComp.frameDuration;

t=thisLayer.marker.key(1).comment.split("¥r");

i=timeToFrames(time,fps,true);

if(i>=t.length){i=t.length-1;}

num=t[i];

while (num=="") {i--;num=t[i];}

Number(num)/fps+offset;

 

 

とてもシンプル。なぜもっと早く作っておかなかったかな‥‥。

 

即席で作ったスクリプトなので、まだ穴があるかも知れません。

 

気になる「offset」に関しては最後に説明をば。

 

もし、上記のエクスプレッションで絵がズレるときは、offsetを0に戻せば解消されるかも知れません。

 

 

 

改行で区切られたテキストを「¥r」で分割して配列に変換するのは、よくやる手法です。

 

ただし、それだけでは、シートの流儀に合いません。何も文字がない状態は、""=null=0と判断されるからです。

 

文字がない行が全て空セルになってしまっては、使い物になりません。

 

なので、空白行だった場合は、以前のコマのセル番号を踏襲する仕組みを、while文で作っています。空白ではない行まで遡って番号を取得するわけですネ。

 

また、シートの末尾まで改行が続かなくても、最後のコマを踏襲するように、「if(i>=t.length)」で対処します。配列は0スタートなので、その辺も。

 

 

 

で、です。

 

After EffectsのCC2020ユーザを苦しめているタイムリマップのズレの問題。

 

今回エクスプレッションを作ってみてハッキリと解りました。

 

これです。

 

*After Effects CC2018のテキストレイヤーでtimeを表示。(timeは1秒を1として扱いますので、0フレ(1コマ目)は0/24、1フレ(2コマ目)は1/24の小数点で示します。)

 

*After Effects CC2020のテキストレイヤーでtimeを表示。

 

小数点の末尾の精度が変わっています。テキストレイヤーのテキストソースにエクスプレッションを適用し、「time」と4文字入れれば、各フレームの小数点が表示されます。

 

アニメ制作のコンポジットにおいて、After Effects CC2020のタイムリマップでセル番号が1つ後ろにズレるのは、この精度の変更によるもの‥‥ではないでしょうか。

 

なので、オフセット。この誤差を吸収するための小数点を最後に足せば解決できそうです。

 

私がちょっとだけテストしてみた感じだと、0.001を足せば、思った通りのセル番号と一致しました。

 

 

 

タイムリマップを適用する素材の時間軸精度が誤差によって少しだけ前後にズレることで、絵のタイミングもズレているようです。

 

なので、素材に遡って、0.001前倒しするか、タイムリマップ適用時に0.001後ろ倒しするか、スクリプトの書き方で変わってきましょう。

 

ちなみに、outPointをinPointに受け継ぐレイヤーシーケンスのスクリプトだと、後ろ側にズレて絵が出ないことを確認しております。‥‥微妙に、1/24の位置から後ろにズレてしまうようです。原撮のPSDファイルをレイヤーシーケンスで連番にする際に、注意したほうがよさげです。

 

 

 

 

たのむよ。アドビさん。

 

こんな重大な仕様変更をシレッと混ぜ込んで、何食わぬ顔でサブスクキメてないでよ。

 

極めて大きな問題なんよ。アニメ制作現場において、タイムリマップに関わる仕様変更はさ。

 

 

 

でもまあ、とりあえずは、これで凌ぎます。

 

しかし、もう随分前から、After Effectsには限界を感じているんだよね‥‥。20年以上付き合ってきたけど、近年のバージョンアップ内容は老化を隠せないですもん。

 

ただ、道具のいっぱい詰まった工具箱のように、たとえ動仕のないゼロからでも映像を作れるのは魅力。小数点の問題も、After Effectsの内部でとりあえずはユーザの工夫で回避できますしネ。

 

*こういうのはAfter Effectsだけですぐに作れます。2006年頃にお遊びで作ったクマです。After Effectsは既に2000年代中頃にはカットアウトスタンバイ!‥‥だったんですけど、日本はごく少数の人しか注目しないまま、今や2020年‥‥です。

 

 

 

CC2018にしがみついてても限界はすぐにやってきます。2020以降でトラブルを回避する方法を身につけましょう。

 

CC2020、2021‥‥と、まだ当分は付き合っていくことになりましょう。

 

 


スパゲティコンポジション

After Effectsでカットアウトをやると、動きが複雑になればなるほど、どんどんスパゲティのようにプリコンポーズやマスクや合成モードが絡み合って、まさに「スパゲティコード」ならぬ「スパゲティコンポジション」になっていきます。

 

 

 

最初から「こうすれば良い」という雛型や前例が無いところ=どのように組めば目的の表現を達成できるかを「作りながら考える」ので、試行錯誤しているうちに要素が絡み合うのです。

 

背景、Aセル、Bセル、BOOK‥‥を、定型の撮影用語で指定して、定型のフィルタ(ディフュージョンとかね)で処理する「作業の定型」「表現の雛型」があれば、1時間に何カットも量産して、作品全体では2〜3日で本撮テイク1‥‥なんていう芸当もできましょう。実際に、2000年代後半以降(テレビアニメにAfter Effectsが導入された以降)は既にそうした「量産」によって、おびただしい数のアニメ作品が世に溢れました。

 

しかし、カットアウトはそうはいきません。少なくとも今のところは。

 

 

 

内容の濃いカットアウトになると、我ながら、「自分で半年後にプロジェクトを開いたら、何やってるか、理解に苦しむ」コンポジションになるだろうな‥‥と思いながら作業してます。

 

しかし今は新しい技術の黎明期。

 

スパゲティやむなし。

 

まずは映像を完成することを目標とします。コンポのエレガントを求めるのは、もう少し先。

 

綺麗に整然とコンポが組めるのは、想定内に収まる内容だから‥‥ですよネ。

 

 

 

従来制作現場が、未来的に品質不足になると薄々感じながらも、それでも紙や撮影台代替技術やフィルム時代のタイムシートの運用を止めないのは、「旧世代の技術でも定型があるのは良い」と考えるからでしょう。

 

確かにそれはその通り。アニメ業界が長年蓄積してきたノウハウを、時代に合わなくなったからといって、あっさり捨てることはできないのは解ります。

 

でも、そのアニメ業界とて、最初の最初は、手探りだらけだったはずです。最初から洗練されているわけないです。

 

ある程度はアメリカンアニメーションから方法を「輸入」しても、日本の作品表現、人々の気風にあった制作技術を確立するのは、相当時間がかかったと思われます。

 

 

 

スパゲティな状態を放置せず、その後に「ノウハウ」として「技術継承」する取り組みは必要でしょう。

 

作った本人ですら、未来には理解困難な状態では、技術として広まるわけもなし。

 

現在はスパゲティでも、その後にどのように絡みを解いて整頓するかが、問われましょう。

 

特定個人の機転や融通や器用さに依存しているだけでは、産業には発展できませんもんネ。

 

 

 

従来の枠組み、原動仕美撮でなら、After Effectsでの作業において、全て通常モードで素材を書き出す自信はあるんですけどネ‥‥。

 

やれ、この素材はスクリーンだ、この素材は乗算だ、この素材は比較明だ‥‥とか、やたらと素材を書き出して次の工程に渡すのは、コンポジット初心段階にありがちな光景です。例えば、スクリーンじゃないと明るさをコントロールできないのは、RGBを扱えていない証拠みたいなものです。通常合成でも明るさ暗さを表現できるRGB制御能力を身につければ良いのです。

 

工程をまたぐ時は、基本的に、

 

通常モード一発で決めろ。‥‥そして、できるだけ素材の数は少なく

 

‥‥です。

 

‥‥しかし、カットアウトはまだまだ、そんな「見極めて見通せる」状態にはなく、これから未来の技術です。

 

誰か、共同で、日本でのカットアウト技術の体型作りをやってくれないかなあ‥‥。個人レベルではもう限界に近いス。

 

2020年代の夜明けまであと1ヶ月と数日。新しい時代に、また、アニメを再発明しましょうヨ。

 

 

 

今は‥‥そうですね、「スパゲティコンポジション」を「スパコン」とでも名付けておきましょうか。‥‥既にある略語ですが、かたやスーパー、こちらはスパゲティで、皮肉が効いててイイかも。‥‥まあ、スーパーは食えないけど、スパゲティは食えますしネ。

 

 

 

 



calendar

S M T W T F S
  12345
6789101112
13141516171819
20212223242526
27282930   
<< September 2020 >>

selected entries

categories

archives

profile

search this site.

others

mobile

qrcode

powered

無料ブログ作成サービス JUGEM