再生位置にあるBGMレイヤーの名前をテキストへ出します。
対象は表示テキストより下にあり、名前がBGM_で始まるレイヤーです。
最終調査日:2026年10月3日。
数値・参照範囲・構文をローカルで確認しています。
今回AE本体のカメラ描画、色収差合成、音声再生、Undoは確認していません。
練習用のレイヤーを用意する
テキストを一番上へ置き、ソーステキストの式を開きます。
その下に音声レイヤーを2枚置き、名前をBGM_A・BGM_Bにします。
BGM_AのIN/OUTを0秒/1秒、BGM_Bを0.5秒/2秒にします。
両方の音声スイッチをONにして、次の式を表示テキストのソーステキストへ貼ります。
対象名を文字列として返す式
var prefix = "BGM_";
var audioOnly = true; // falseならIN/OUTだけで判定
var result = "";
for (var i = thisLayer.index + 1; i <= thisComp.numLayers; i++) {
var layer = thisComp.layer(i);
if (layer.name.indexOf(prefix) == 0 && layer.inPoint <= time && time < layer.outPoint &&
(!audioOnly || layer.audioActive)) {
result = layer.name;
break;
}
}
result;
| 入力・条件 | 期待する結果 | 確認点 |
|---|---|---|
| 0秒・0.5秒 | BGM_A | 重なりでは上側が先 |
| 1秒 | BGM_B | AのOUT点は含めない |
| 2秒以降 | 空文字 | 対象なし |
| 0.7秒/Aの音声スイッチOFF | BGM_B | audioOnly=trueの判定 |
| テキストが一番下 | 空文字 | 下側の対象だけを走査 |
audioOnly=trueでは、IN/OUTに加えてaudioActiveを確認します。
audioActiveは音声スイッチと現在時刻の範囲を表すもので、波形に音があるか・音量0か・実際の出力音まで判定する式ではありません。
映像なども時間範囲だけで選びたい場合はaudioOnlyをfalseにし、prefixを対象の接頭辞へ変えます。
ビデオスイッチ、マスク、不透明度、他レイヤーに隠れているかは判定しません。
旧式はテキストより下のすべてのレイヤーを時間だけで調べていました。
今回の式は対象名と音声条件を明示し、対象0枚でも最後に空文字を返します。
複数の曲が重なる・表示されない場合
同時刻に複数あれば、テキストの直下から調べて最初に条件を満たした名前を出します。
ミックス音声から主な曲を解析したり、複数の名前を同時表示したりはしません。
空文字なら接頭辞、テキストより下の配置、IN/OUT、音声スイッチを確認します。
タイムラインの表示名を変更した場合は、BGM_の接頭辞を残します。
戻し方
変更前にコンポと表示テキストの文章を保管し、対象名とIN/OUTを控えます。
戻すときは式を無効にし、元のテキスト・レイヤー名・音声スイッチ・IN/OUTへ戻します。
旧版の参考画像
次の画像は既存記事の参考資料です。
今回の式と同じ数値や操作をAE実機で撮影したものではありません。

関連する操作
| やりたいこと | 最初に読む記事 |
|---|---|
| カメラとの距離で変える | 距離とカメラ制御 |
| 画像を規則的に並べる | 中心間隔と端の間隔 |
| RGBをずらして合成する | 色収差の基本設定 |
| 横長・縦長を切り替える | 画面サイズと表示切替 |
参照資料
Adobeのエクスプレッション言語資料を参照しています。
旧版の参考コード・関連記事
旧版の参考コードは本文の練習と対象・設定が異なる場合があります。
今回の操作は本文のコードを使います。





