BMS, Movie, Illustrations, Programming

続けて FFF 全 12 曲のオーディオビジュアライザー動画を公開しました【After Effects 解説】

SMC に続けて FFF 全 12 曲のオーディオビジュアライザー動画を公開しました。「収録楽曲は、今後 YouTube 等で無料公開される可能性があります」と書いておきながらかなり期間が空いてしまったので、やっと公開できて一安心しています。

以下技術的な話。

すべての動画を一度にレンダリングできるようにした

今まではアルバム内のひとつのトラックに対して aep をひとつ用意していたため、全曲の動画を作成するのに三年間掛かってしまった。

これらの反省点を活かして、編集データを一元管理できるようにした。これにより、編集 → 一括レンダリングのイテレーションを高速に繰り返せるようにした。


パラメータを一箇所に集約させた

トラック番号のパラメータを track_number というひとつのスライダーのみに集約させ、動画出力のデュレーションと出力音声(※後述)の 2 つ以外はすべて一元管理できるようにした。

これらの 2 レイヤーのみ配置したコンポジションをトラックの数だけ作成して、一度にレンダリングできるようにした。

モーションが BPM に依存してしまうちびキャラは、自動化の障害になると考えて廃止した。(特に、テンポが一定ではない曲があったので)
Houdini? 知らない子ですね……


Blender への依存を解消した

両対数の高品質なオーディオスペクトラムを作成するために、今回新たに PixelsWorld を導入した。これにより、 Blender および Animation Nodes への依存が解消され、レンダリング時の手間を減らすことができるようになった。

誰か、使いやすいオーディオスペクトラムプラグインご存じの方は居ませんか……?


オーディオはエッセンシャルプロパティに対応していない

現時点の After Effects 2025 ではエッセンシャルプロパティがオーディオ出力に対応していなかったため、オーディオのみ手作業で配置した

Allow audio to be controlled via Essential Graphics | Community


オーディオウェーブフォームは不透明度で制御した

また、それに関連してオーディオウェーブフォームについては、オーディオファイルとエフェクトを同じコンポジションに配置し、映像出力のみをエッセンシャルプロパティで制御することで、制限を回避した。

// 不透明度のエクスプレッション
const trackNumber = thisComp.layer("_ctrl").effect("track_number")("スライダー");
(trackNumber - 1) == (index - 2) ? 100 : 0

なるべく全て自動化できるようにしたかったが、オーディオソースレイヤーを指定する作業だけは手作業が入ってしまった。本格的に自動化したいならスクリプトを書くのが良いかもしれない。


オーディオスペクトラムも不透明度で制御した

PixelsWorld は 10 個までレイヤーが指定できる仕様だったので、 1 つのエフェクトに 6 個のレイヤーを指定した上で、同じレイヤーを 2 個用意して 12 トラック分制御できるようにした。

// Sample layer のエクスプレッション
const trackNumber = thisComp.layer("_ctrl").effect("track_number")("スライダー");
(trackNumber - 1 + 3)

1 が Current Layer で、 3~12が Layer Parameter に対応しているみたいです。

// 不透明度のエクスプレッション
const trackNumber = thisComp.layer("_ctrl").effect("track_number")("スライダー");
trackNumber <= 6 ? 100 : 0