自作ツール&スクリプト

【AfterEffects】行単位でテキストを参照するエクスプレッション

aftereffects-referencing-text-by-line

文字をいちいちテキストレイヤーに打ち込みたくない!と思ったのでエクスプレッションで参照してみました。

行単位でテキストを参照するエクスプレッション

  1. 表示したい文字(改行区切り)をすべて含めたテキストレイヤーを作成。名前はsource text

  1. souce textレイヤーの下に空のテキストレイヤーを作成。名前はtext_1

  1. text_1のソーステキストに下記のエクスプレッションを挿入(ストップウォッチをAlt+クリック)
var str = thisComp.layer(index).name.split("_")[1];
num = Number(str);
thisComp.layer("source text").text.sourceText.split(/\n\r|\n|\r/)[num-1];

これでsouce textの文字の1行目が参照されているか確認

  1. あとはText_1を選択してCtrl+Dで複製していけばtext2,test3…と自動生成されて、それぞれの行が参照されます。

※souce textのレイヤーは非表示にしておく

まとめ

このやり方は字幕などの作成には最適かもしれません。

ただし部分部分の文字を装飾できない弱点があります。

その場合はソーステキストのプロパティを選択して、アニメーション>キーフレーム補助>エクスプレッションをキーフレームに変換

をかけて、テキストをベイクしてあげましょう。

その後は各文字要素を編集できるようになります。

※ベイク後はキーは消してしまってOK