小野マトペの業務日誌(アニメ制作してない篇)

はてなダイアリーの閉鎖をうけ、旧ブログ http://d.hatena.ne.jp/ono_matope/ から移行しました。続きは→ http://matope.hatenablog.com/

After Effectsで動画を出力する際気をつける事(自分メモ)

久々に[仕事]タグ。この2週間は親父の劇団で仕事してました。去年作った芝居の素材ムービーを、まるまる一本分リマスター(解像度を上げて再出力)と、新作カット少々。大した仕事じゃなかったけど、久しぶりでパラメータを忘れてたのと、数が多くてトラブル頻発したので、後世の戦士(俺)のためにメモ。

AE7.0(Mac)の『フラクタルノイズ』に、『乱気流のオフセット』の値がフル画質レンダリング時のみ一定の値以下にならないバグが。

新作カットが、背景美術に『風』の効果を追加するもので、いつもの通りフラクタルノイズを『乱気流のオフセット』の値を[time*(-100),0]みたいにエクスプレッションを充てて流していたのだけど、出力されたムービーを確認したら、30秒を過ぎた辺りで突然風が止まってしまっていた。しかし慌ててRAMプレビュー(1/4画質)で確認してみると停止は起きない。怖ええええ!
↓証拠ムービー。YouTube便利。(仲介サーバー落ちてる?再生できないかも。)
http://www.youtube.com/watch?v=qjALhS77eu0
http://youtubech.com/test/read.cgi%3Fdl%3DqjALhS77eu0%26ext%3D.flv
色々試した結果、Mac版でフル画質でレンダリングした時*1のみこの症状が発生するらしい事が分かった(Win版では発生しない)。…何このオペレーターへの手の込んだ嫌がらせ。しかも、言いにくいんだけどその停止する値というのが、-32750付近なんだよね…。Adobeィィィィ!!


ちなみにエクスプレッションを[time*(-100)+23750,0]に書き換えて事なきを得ました。最近はYahoo!ウィジェットエンジンとかPHPのモジュールとか、バグを発見したら開発者に報告するクセがついてるんだけど、Adobeのサイトのどこから報告していいか判らなかったので、まあ気が向いたときにでもメールするか。

QuickTime Player(Pro)のMac版とWin版の差異。もしくは遠まわしなThink different.

QuickTimeプレーヤーの話。何故かMacとWinで、同じムービーを再生してるのに再生ビットレートの表示が違う。Macだと2000kbpsとかが、Winだと700kbpsになったりする。経験的に言えば、嘘をついているのはWin。
あと、Windows版でビットレートを下げて書き出しすると、たまに動画にゴミが混じる。暗いムービーに黄色のゴミが入ったりするので、たとえ1フレーム、10ドット程度のキズでも再出力しなくちゃならなかった。
結論。QuickTime Player ProはMacで使え。

レンダリングと圧縮は別工程で。

ウチは舞台の裏にiBookを仕込んで、keynoteムービーを制御するので、ムービーの画質と解像度と再生フレームレートのトレードオフはデリケートな問題(重い動画をkeynoteに載せると簡単にフレームレートが低下する)。試行錯誤の末、600*400程度の解像度なら、H.264コーデックの2000kbps制限が最もバランスの取れた設定という事になったんだけど、After Effectsレンダリング時の設定でこれをやってはいけない。
After Effectsの出力設定でビットレートを制限すると、見る見る画質が劣化し、目も当てられない状態になってしまう。もうガビガビ。
逆にQuickTime Player Pro上で『書き出し』時にビットレートを落とせば、『これホントにビットレート変わってんの?』ってくらいキレイに圧縮できます。手順が掛かって修羅場には厳しいけど、ビットレート制限はQuickTime Player Proで掛けましょう。

AppleScriptは日ごろから勉強したほうがいいっぽい。

と思った今回。アプリのコマンドを制御できるスクリプト言語はやっぱり必要ですね。今回で言えば、全カットをフル解像度の2/3で出力するというタスクで、手作業だったら全統合コンポに対して出力用のコンポを掛けたりとしんどいので(しかもカット数は30以上あって、スクリーンの関係上解像度はマチマチなので、一つ一つ設定しないといけない)、そこら辺で集めたAppleScriptを改造して『現在開いている全てのムービーのサイズを66.7%にする』QuickTime Player用スクリプトを組んだ。おかげで

  1. フル解像度のまま全部出力しちゃって、
  2. QuickTime Playerで全部開いて
  3. 『現在開いている全てのムービーのサイズを66.7%にする』スクリプトを実行して
  4. 開いているムービーを『現在のサイズ』『2000kbps制限』で『書き出し』して閉じて(一回設定してしまえば、あとはCntl+E→Enter→Cntl+W連打でフロー終了)
  5. 書き出し終了まで俺はお茶でも飲んでればおk

という感じにエレガントな作業ができた。本当はAutomatorで出力も自動化したかったのだけど良く分からなかった。のだけど、初めてAppleScriptの威力を体感できた。今回はタスクが決まってから急いでAppleScriptを勉強したのだけど、そもそも自動化スクリプトなんてのは作業時間を短縮するためにあるので、日ごろから勉強して、いざという時に指針だけでもすぐに立てられるように勉強し説くべきかね、と。

*1:フル画質でのRAMプレビュー含む