コンポ名の末尾に_1・_2・_3を付け、対応する文章や連番画像を選びます。
「背景_コンポ_3」のように途中にアンダースコアがあっても、末尾番号だけを参照します。
最終調査日:2026年10月3日。
仮の入力値と構文をローカルで確認しています。
今回AE本体での表示・レンダリング確認は行っていません。
ソーステキストを名前の番号で切り替える
練習コンポ名を「コンポ_1」にし、テキストの「ソーステキスト」に次の式を貼ります。
最後の文字列を返す式で、sourceTextプロパティへ代入しません。
var choices = ["おはよう", "こんにちは", "おやすみ"];
var match = thisComp.name.match(/_([1-9][0-9]*)$/);
var number = match ? Number(match[1]) : 0;
(number >= 1 && number <= choices.length) ? choices[number - 1] : "";
| 入力・条件 | 期待する結果 | 確認点 |
|---|---|---|
| コンポ_1 | おはよう | 配列の1番目 |
| 背景_コンポ_3 | おやすみ | 末尾だけ参照 |
| コンポ_4・コンポ・コンポ_0 | 空文字 | 範囲外と形式違い |
choicesへ文章を追加すると、その配列の数まで番号を使えます。
複製したコンポの名前は確認し、必要な末尾番号へ手動で変更します。
旧式のevalは、存在しないtext4などを実行しようとしてエラーになります。
修正版は配列の範囲を確認して取り出します。
1から数えた連番画像を選ぶ
番号1・2・3と読める練習画像を3枚用意し、連番として読み込みます。
素材の解釈は24fps、練習コンポは30fpsにします。
連番レイヤーのタイムリマップを有効にし、タイムリマップへ次の式を貼ります。
動画や連番の読み込みが前提で、通常の静止画レイヤーには使いません。
var match = thisComp.name.match(/_([1-9][0-9]*)$/);
var number = match ? Number(match[1]) : 0;
var step = thisLayer.source.frameDuration;
var frames = Math.floor(thisLayer.source.duration / step + 0.000001);
var result = value;
if (number >= 1 && isFinite(step) && step > 0 && frames >= 1) {
result = (Math.min(number, frames) - 1) * step;
}
result;
番号1は素材時刻0、番号3は素材時刻2/24秒です。
fpsを省略したframesToTimeはコンポ基準になるため、この式は素材自身のframeDurationを使います。
| 入力・条件 | 期待する結果 | 確認点 |
|---|---|---|
| コンポ_1/素材24fps | 素材時刻0 | 1枚目 |
| コンポ_3/素材24fps | 素材時刻0.083333…秒 | 3枚目 |
| コンポ_99/3枚の素材 | 素材時刻0.083333…秒 | 最後の有効フレームへ制限 |
| 番号なし | 式を入れる前の値 | valueを返す |
エラー・戻し方
文字が空なら末尾番号と配列の件数を確認します。
画像が違う場合は素材を開き、解釈したfps・枚数・読み込み順を確認します。
変更前にコンポと素材設定を保管します。
戻すときは式をオフにし、元のソーステキストやタイムリマップのキーを使います。
素材の解釈を変更した場合は元の設定へ戻します。
既存GitHubの参考コードは旧式の場合があります。
今回の修正版はこの本文の式を使います。
参照資料
Adobeの時間変換・素材参照資料を参照しています。
関連記事・既存の参考資料
同じ区画の関連記事です。
各記事の貼付先と確認範囲を確認して使います。





