Amazonプライム感謝祭開催中!セール会場へ

After Effectsでテキストを行ごとに参照する|改行・範囲外に対応

「source text」に入力した文章を「text_1」「text_2」へ1行ずつ取り出します。

空行も1行として数え、名前や番号が範囲外なら空文字を返します。

最終調査日:2026年10月3日。

仮の入力値と構文をローカルで確認しています。

今回AE本体での表示・レンダリング確認は行っていません。

目次

参照元と表示用レイヤーの準備

練習コンポにテキストレイヤーを作り、名前を「source text」にします。

1行目「おはよう」、2行目「こんにちは」、3行目「おやすみ」と入力します。

別のテキストレイヤーを作り、名前を「text_1」にします。

「ソーステキスト」のストップウォッチをAlt(MacはOption)を押しながらクリックして式を開きます。

ソーステキストへ貼る式

var source = String(thisComp.layer("source text").text.sourceText.value);
var lines = source.split(/\r\n|\r|\n/);
var match = thisLayer.name.match(/^text_([1-9][0-9]*)$/);
var row = match ? Number(match[1]) : 0;
(row >= 1 && row <= lines.length) ? lines[row - 1] : "";

表示用を複製し、名前を手動で「text_2」「text_3」に変更します。

複製時の自動命名に依存せず、末尾番号を確認します。

参照元を画面に出さない場合はsource textのビデオスイッチをオフにします。

改行・名前の確認例

入力・条件期待する結果確認点
3行の入力/text_2こんにちは完全一致の名前
A・空行・B/text_3B空行を飛ばさない
2行入力/text_4空文字undefinedを返さない
text_0・text_01・字幕_1空文字正の整数の形式だけ対応

旧式はCRLFを2つの改行として扱い、2行目が空になる入力がありました。

修正版はCRLFを先に処理し、CR単独とLF単独も分割します。

撮影した練習例です。

左のテキストは「FIRST」「SECOND」「THIRD」の3行で、2行目の「SECOND」を別のレイヤーへ取り出した画面です。

右側のオレンジ色の文字が、取り出した「SECOND」でした。

この画面の式は、本文の式とは違います。

参照元のレイヤー名は「SourceLines17781」、表示用は「ReferencedLine17781」で、本文の「source text」「text_1」ではありません。

行の番号も、名前からではなく、式の中の「var index = 1;」で指定していました。

この番号は0から数えるので、1は2行目です。

After Effectsで3行テキストの2行目SECONDをエクスプレッションで参照した画面
2026-10-13撮影。Adobe After Effects 26.5.0 (Build 89)、Windows 11 Pro (10.0.26200)。実機画面、原寸保存。

次は、同じ式の「index」を5に変えた画面です。

3行しかないので、範囲外の番号です。

コンポジションパネルには左の3行だけが表示され、取り出した文字は何も表示されませんでした。

式の最後には「: ”;」があり、範囲外のときは空文字を返す形でした。

After Effectsで範囲外の行番号index5を指定し、参照テキストが空になった画面
2026-10-13撮影。Adobe After Effects 26.5.0 (Build 89)、Windows 11 Pro (10.0.26200)。実機画面、原寸保存。

このように、範囲外の番号でも、エラーにならず空になります。

本文の式も、範囲外は空文字を返します。

表示されないとき・戻し方

空文字なら表示用の名前と行番号を確認します。

エラーならsource textが同じコンポに1つ存在し、名前の前後に空白がないか確認します。

変更前にコンポと文章を複製して保管します。

戻すときは式をオフにし、表示用へ保管した文章を再入力します。

一部分だけ文字を装飾する場合は、必要な行を新しい通常のテキストレイヤーへコピーして装飾します。

式をキーフレームへ変換してキーを削除する方法を、文字列保持の手順には使いません。

旧版の参考画像

次の画像は既存記事の参考画像で、今回の修正版をAE実機で撮影したものではありません。

参照元として改行区切りの文字列を入力したテキストレイヤーを作成した状態。
参照元レイヤーの下に表示用として作成した空のテキストレイヤー。
表示用テキストレイヤーを複製し、連番で生成された各レイヤーに行ごとのテキストが参照されている状態。
参照元のテキストレイヤーを非表示にし、複製した各テキストレイヤーに行単位で文字列が表示される動作の様子。

参照資料

Adobeのエクスプレッション言語資料を参照しています。

関連記事・既存の参考資料

同じ区画の関連記事です。

各記事の貼付先と確認範囲を確認して使います。

よくある質問:After Effectsでテキストを1行ずつ別レイヤーに取り出すとき

この式は、何をしますか?

「source text」に入力した文章を、「text_1」「text_2」へ1行ずつ取り出します。空行も1行として数え、名前や番号が範囲外なら空文字を返します。

練習の準備として、何を用意しますか?

練習コンポにテキストレイヤーを作り、名前を「source text」にして、1行目「おはよう」、2行目「こんにちは」、3行目「おやすみ」と入力します。別のテキストレイヤーを作って名前を「text_1」にし、「ソーステキスト」のストップウォッチをAlt(MacはOption)を押しながらクリックして式を開きます。

2行目以降は、どうしますか?

表示用を複製し、名前を手動で「text_2」「text_3」に変更します。複製時の自動命名に依存せず、末尾番号を確認します。参照元を画面に出さない場合は、source textのビデオスイッチをオフにします。

空行があるときは、どうなりますか?

空行も1行として数え、飛ばしません。記事の例では、A・空行・Bと入力した場合、text_3はBになります。

行数より大きい番号や、おかしな名前のときは?

範囲外の番号は空文字を返し、undefinedは返しません。記事の例では、2行入力でtext_4は空文字です。text_0・text_01・字幕_1も空文字で、正の整数の形式だけ対応します。

改行コードの違いで、行がずれることはありますか?

旧式はCRLFを2つの改行として扱い、2行目が空になる入力がありました。修正版はCRLFを先に処理し、CR単独とLF単独も分割します。

何も表示されないときや、エラーになるときは?

空文字なら、表示用の名前と行番号を確認します。エラーなら、source textが同じコンポに1つ存在し、名前の前後に空白がないか確認します。名前は完全一致が必要です。

元に戻すには、また、一部の文字だけ装飾したいときは?

変更前にコンポと文章を複製して保管します。戻すときは式をオフにし、表示用へ保管した文章を再入力します。一部分だけ文字を装飾する場合は、必要な行を新しい通常のテキストレイヤーへコピーして装飾します。式をキーフレームへ変換してキーを削除する方法は、文字列保持の手順には使いません。この式は、仮の入力値と構文をローカルで確認したもので、AE本体での表示・レンダリング確認は行っていません(2026年10月3日調査)。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

After Effectsのおすすめ書籍

必要なPCスペック

周辺機器の優先度

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次