ニコメドの動画の曲名入れ作業をAfterEffects+CSVでらくらくにしてみる
ニコメドの動画の作業って大変ですよね、数十数百の曲の情報を探して、動画や画像素材を入れて、さらに曲名や出典などの情報も入れるとか…
メドレー音源は簡単に作れる人も動画作業のあまりの大変さと退屈さに負けてWMPや背景のみで投稿することも多いかと思います。
しかし、AfterEffectsの最新バージョンを使っているのであれば、こんな大変な作業を少しでも減らすことができる方法があります。それは、マスタープロパティとExcelの組み合わせで、曲情報を管理させることです。
今までのやり方
曲名と出典の書かれたオブジェクトを作り、演出などを予め設定しておく。そして、それをそのままコピべして中身のテキストだけ変える。
というやり方がまず思い浮かべるでしょう。実際に自分も数ヶ月前まではこのやり方で作業してました。
このやり方の問題点としては、曲名や出典ミスに気づかれない、さらに修正しようとするものの、そのレイヤーを探して修正する必要がある、要するに手間がかかってしまいます。
Aviutlなら幸いにもレイヤーに複数のオブジェクトが置けるので、レイヤー管理さえできれば比較的に容易です。
しかし、AfterEffectの場合、レイヤーには一つのオブジェクトしか置けない仕様なため、無数のレイヤーから曲名情報を探る必要があります。下の画像のようにですね!
例えば、曲名+出典+曲番号の3つの情報が書かれていたとすると、100曲の場合だと、300個のレイヤーを探す必要があります。これはレイヤーパネルを最大化しても探しづらいでしょう。
曲情報をExcelで管理して、マスタープロパティでAEのプロジェクトと連動させる
そこで、曲情報をExcelなどの他のテキストファイルで管理させて、マスタープロパティで連動させる方法で、Excelの中身を更新するだけで勝手に修正が終わるという、爆速ではないですがよりスマートな方法を説明していきたいと思います。
(Excelのファイルはテキストファイルではありませんが、ここではグラフなどの要素が一切ないので、テキストファイルと呼びます。)
※このやり方はマスタープロパティを使用しますが、AfterEffectsのCCの最新バージョン(2019〜)のみ、この機能が使えます。旧バージョンでは使えませんのでご注意ください。
① 曲情報リストを用意しよう
まず、Excel側から曲情報リストをご用意しましょう。その際に、1行目には必ず「曲名」や「出典」などの列名を書いてください。
その後、適切な名前をつけて'csv'で保存してください。xlsxなどは読み込めません。またこの際に、数式などは値そのままとして保存されますのでご注意ください。
保存先はプロジェクトファイルと一緒のフォルダだと管理しやすくなるのでおすすめです。
② プロジェクトでcsvを読み込ませる
次はAfterEffectsを開きましょう。すでに作業中である場合はそのプロジェクトを、そうでない場合は新規のプロジェクトを開いてください。
その後に、csvをプロジェクトパネルにドラッグするか、[ファイル]-[読み込み]-[ファイル]→ファイル指定でcsvが読み込んでください。
こうすることで、csvをAfterEffectsのプロジェクト内に入れることができます。
③ 曲情報を表示させるレイヤーたちをプリコンポジションにまとめる
AfterEffectsはコンポジションという単位の概念があります。説明上では、レイヤーのような重なりのある素材と書かれており、最終的に書き出せる単位が、このコンポジションとなるわけです。
また、コンポジションは素材の一部でもあるため、コンポジションのレイヤーたちをまとめて一つのコンポジションにすることもできます。これを「プリコンポジション」といいます。(aviutlに例えると「シーン」のような機能です。グループとは若干仕様が異なります。)
今回は、「nico astruminox」で使用された曲名表記の素材を利用して進めたいと思います。0~1秒でフェードインして6~7秒で右へスライドして消えるタイプです。(ニコニコ・アパッショナータとかも同じタイプです)
曲名表記の素材と、曲名、出典などのテキストレイヤーをまとめて、プリコンポジションにしてください。作り方は、該当レイヤーをすべて選択して、Ctrl+Shift+Cです。そしてそのプリコンポジションのレイヤーをダブルクリックして開いてください。
曲名表記の演出などはこのプリコンポジション内で予め設定してください。設定が終わりましたら次へ進んでください。
※今回は曲名表記がメインですので、曲名表記のみでも大丈夫です。
④ マスタープロパティを設定しよう
さて、いよいよマスタープロパティを設定する作業となります。(プログラミングでいうと、いわゆるgetter/setterのようなものを作る作業となります)
マスタープロパティを指定するためには、エッセンシャルグラフィックスというパネルが必要となります。初期設定では表示されてないため、[ウィンドウ]-[エッセンシャルグラフィックス]で開きましょう。
するとこんなパネルが表示されますが、まず、マスターには現在作業中の曲名表記の素材が入っているプリコンポジションを指定してください。
次に、サポートするプロパティをクリックすると、下のレイヤーパネルのレイヤーたちのプロパティが一気に開くはずです。
その中で、曲名・出典のテキストレイヤーにある「ソーステキスト」というプロパティをそのままエッセンシャルグラフィックスの方へドラッグしてください。
ドラッグしますと、左側に該当のプロパティ名が、中央側に現在そのレイヤーの値が表示されてますが、プロパティ名を外側でもわかるように変更しましょう。中央側の値は、データが割り当てられてない時の値を設定するところなんですが、ここでは一応空欄にします。
これで指定は完了です。こうすることで、このプリコンポジションがおいてあるレイヤーで該当のプロパティを使えます。
⑤ マスタープロパティとExcelのデータを連動させる
さて、メインのコンポジションへ戻ると、先程にはなかったプリコンポジションのレイヤーにエッセンシャルプロパティというものが表示されていることに気づくはずです。
次にcsvレイヤーをコンポジションに入れてみると、データというプロパティが見えるはずです。そのプロパティを開くと、先程Excelで指定したセルの一つ一つがプロパティになってることがわかります。
エッセンシャルプロパティにある曲名を、@のようなアイコンからドラッグしてcsvの曲名へ移動しましょう。すると一旦データ連動は終わります!
ところでここまで進んでみたら、ふとcsvの長い曲名の数を目にすることになるでしょう。当然「ドラッグして設定するってそれじゃ今までのほうが楽では??」と思うはずです。
なので、2曲目以降はドラッグは使いません。というか、1曲目さえドラッグする必要はありません。ドラッグしたあとの「エッセンシャルプロパティ」を確認してください。
thisComp.layer("テスト曲名.csv")("データ")("Outline")("曲名")("曲名 0")
何かプログラミング言語的なコードが出てきました。そうです、これはjavascriptという言語をAfterEffectに合わせて改造した独自の言語です。その言語自体の名称は明言されてませんが、その機能自体をAfterEffectsはエクスプレッションという名前で呼んでます。
そして、構造はひと目で分かるかと思いますが、"テスト曲名.csv"がcsvレイヤーの名前で、"データ"、"曲名"、"曲名0"はそれらのプロパティになってます。
つまり、2曲目以降はこれをコピペしながら進んでいけばいいという話です。このコードを知っていれば1曲目もドラッグする必要はありません。
しかし、ドラッグしていない状態では、上のようにどうにも書き込めそうに見えません。それじゃどこに書けばいいのでしょうか?
答えは、プロパティに時計のようなアイコンをalt+クリックすること。するとレイヤーのどころに、エクスプレッションが書き込める入力欄が出てきますが、ここにコピペしたら問題ありません。
2曲目以降は、該当のレイヤーをコピペし、中身を1,2,3,...のように変えるだけでおkです。
表示タイミングを伸ばしたい場合は?
さてここまでの流れだと、表示タイミングが固定されていて、コピペするだけですべてが終わる話となりますが、ニコニコメドレーの動画では一般的に「その曲が流れている間はずっとその曲の情報が流され続ける」ことになってます。
困ったのはコンポジションのプロパティには長さという項目はなく、マスタープロパティにもないため、自動で調整できることにはならないんですね。すごく残念なんですが…
なので、そのあたりは手作業という形とはなりますが、タイムリマップを利用して、イン・アウトのタイミングは同速にして、その間を伸ばすという作業が必要となります。比較的簡単ではあるものの、やっぱり面倒くさいですようね。もし他に解決策などあれば教えて下さい。
向いていないときもある
いかがでしたか?地獄のような曲情報表記作業が少しでも楽になる方法で、作業時間はたしかに減るはずです。特にあとから曲情報を直す際にはきっとこういう事前作業をすることでもっと楽になれたはずです。
ただ、こういう大規模(?)な作業には必ずしもイレギュラーが存在するもの。このやり方が通用できない、いくつかのレアなケースもあります。
① 曲名がそもそもロゴ
ニコニコ動画十曲譚の場合、曲名表記がロゴになっていて、画像ファイルという扱いになります。
マスタープロパティには対応できるプロパティがいくつかありまして、画像や図形などのレイヤーは対応できません。この場合だとあのやり方は難しいですね。
ただ画像に関しては次のバージョン(現行の2021の次のバージョンだと思われます)で対応になるそうです。β版ですでに実装されているらしいですが、試してはいませんので…
② 一部の文字のフォントが変わる
匿名合作2のProject Dパートでは、Dの文字がすべて中世風のフォントに変わるという特殊仕様になっています。本来であればAfterEffectsもAviutlもこの仕様には十分対応できるはずですが、このやり方で進むとそれができなくなります。
理由としては、テキストレイヤーにテキストが入るのではなく、エクスプレッションで紐付けをしてるだけなので、コンポジション側では、その文字が定まれていないため、フォントの指定ができないのです。
また、使ってるフォントにある記号が対応しなくて空文字や文字化けになる場合も同じくできません。
なので、この場合だとテキストレイヤーを外部で別途作り、コンポジションとうまく溶け込むように調整する作業が必要です。いやぁ面倒くさそうだ…
(ちなみに、AfterEffectsでは一般的にテキストの一部をドラッグしてフォントを変えるだけで反映されます。Photoshopとかでも同じ仕様ですね。そして、Aviutlの方は匿名兄曰く特殊なタグで対応しているらしいです。)
③ 1曲1曲が短ったりなどの理由で、イン・アウト演出を複数の曲にまとめて使いたいとき
Nico Clockの曲名表記では、イン・アウトの演出がスライドになってるわけですが、1曲単体ではなく、細かいブロック単位でイン・アウト演出を入れています。
例えば、06~17では、曲が変わるたびにイン・アウト演出されているわけではなく、06になる際にイン、17が終わる際にアウト演出になるわけですが、その途中でも、色が変わったり、位置が変わったりするような演出が入っています。
この場合はこのやり方は絶対通用しません。まずテキストの変更なんですが、先程の過程での「時計アイコン」は本来、時間の流れに沿ってプロパティの値を変えられる機能です。もちろんソーステキストにも対応しているわけですが、エクスプレッションを使ってしまうとそれができません。
理由としては、エクスプレッション自体も時間の流れに沿ってプロパティの値が変わる機能があるためと思われます。例えば動画のループや素材を震わせるwiggleなどの機能もエクスプレッションの関数で実装できます。
このやり方では絶対にそうにはならないのですが、その影響もあって、テキストの変更ができなくなります・・
あとがき
このやり方は、adobe公式の「マスタープロパティの紹介」と「CSVファイルでバージョン作成」を元にしています。元々はコンポジションのレイヤー名で、一つのコンポジション素材を使い回す方法を探っていたのですが、普通にこのやり方がもっと早く済みそうで、こちらのやり方をやり始めました。
ここで紹介したやり方では、nico astruminoxの素材を元にしていますが、実際のニコアスの制作は普通にこのやり方で行われてはいません。というのもこのやり方自体を1ヶ月前ぐらいに知ったものですから…
ただ、現在進行中の某企画をこのやり方でやってみたどころ、1週間もしないうちに大体の曲名入れ作業が終わりました。修正もエクセルを直すだけで済みそうで何よりです。
ということで、AfterEffectsをお使いのメドレー動画師は、このやり方を一旦試してみて、感想とかより良い策などありましたら、どんどん共有してみてほしいです。
では、ぷるでした。
この記事が気に入ったらサポートをしてみませんか?