エクスプレッションが返す数値を確認したいときは、確認用テキストレイヤーに表示できます。複数のコンポジションで文字や色を共通管理する場合は、JSONファイルをフッテージとして読み込み、sourceDataから値を参照する方法があります。
このページでは、現行のJavaScriptエクスプレッションエンジン向けの方法と、旧記事のレガシー手順を分けています。2026年10月3日にAdobeの公式資料を確認しました。以下の掲載例(5つの式とJSONデータ例)は、2026年10月2〜3日のWindows実機での確認結果を追記しています。旧記事のESTK手順や、この記事にない式の再現は未確認です。
2026年10月15日には、JSONを使うプロジェクトを「ファイルを収集」で集めたときの違いを、Windows 11 Pro (10.0.26200)のAfter Effects 26.5.0(Build 89、日本語表示)で確かめました(「表示が変わらない・エラーになるとき」の最後の節)。
最初に確認する適用先とエンジン
エクスプレッションはプロパティのストップウォッチをAltクリック(MacはOptionクリック)して入力します。.jsxを「スクリプトファイルを実行」から動かす操作とは別です。「プロジェクト設定」の「エクスプレッション」で使用するエンジンを確認してください。
旧記事の$.evalFile()は、JavaScriptエクスプレッションエンジンで未対応です。エラーを避ける目的で既存プロジェクトのエンジンを無条件に切り替えると、ほかの式にも影響します。旧手順を再現する場合は、複製したプロジェクトで対象条件を確認します。
このページの JSON を参照する例は、2026年10月2日と3日に Windows の After Effects 26.5×89 (日本語UI) で実際にレンダリングして結果を確認したものです。
確認結果は、このページに載せている5つの式とJSONデータ例を使った条件に限られ、旧記事の手順やほかのページの式は対象に含みません。
以降の各節に、そのときの確認結果を書き添えています。
位置や時刻を確認用テキストに表示する
確認したいレイヤーを「対象」と命名し、別にテキストレイヤーを作ります。確認用テキストの「ソーステキスト」に次の式を貼ります。位置そのものを変更する式ではありません。
var pos = thisComp.layer("対象").transform.position;
"時刻: " + time.toFixed(2) + " s\n" +
"X: " + pos[0].toFixed(1) + " / Y: " + pos[1].toFixed(1);タイムラインの時刻を動かし、対象レイヤーの位置と表示値を照合します。2D位置のX・Yだけを表示する例です。3D位置のZも調べるときはpos[2]を追加します。確認が終わったら確認用テキストを削除するか、式を無効にします。
この式を適用した確認用テキストには、時刻 1.00 秒の時点で「時刻: 1.00 s」と「X: 128.0 / Y: 64.0」の 2 行が表示されました。
表示された値は対象レイヤーの位置とコンポジションの時刻に対応しており、エクスプレッションのエラーは出ませんでした。
これは検証用のコンポジションでの値なので、実際の数値は対象レイヤーの位置によって変わります。
JSONから文字を参照する
次の内容をUTF-8のlabels.jsonとして保存し、After Effectsの「ファイル」→「読み込み」→「ファイル」から読み込みます。JSONにはコメントや末尾の余分なカンマを入れません。配列の番号は0から始まります。
[
{
"text": "おはよう",
"color": [
1,
0,
0,
1
]
},
{
"text": "こんにちは",
"color": [
0,
1,
0,
1
]
},
{
"text": "おやすみ",
"color": [
0,
0,
1,
1
]
}
]テキストレイヤーの「ソーステキスト」に次の式を貼ります。プロジェクトパネルでのフッテージ名がlabels.jsonであることを確認してください。
var data = footage("labels.json").sourceData;
String(data[0].text);この例で参照する文字は「おはよう」です。2番目ならdata[1].text、3番目ならdata[2].textとします。ファイルパスを式に直接埋め込まず、読み込んだフッテージを名前で参照します。素材を移動した場合はJSONのリンクも確認します。
3 つの項目を持つ JSON を読み込んで先頭の文字を参照したところ、レンダリング結果には「おはよう」が表示されました。
このときエクスプレッションのエラーは出ていません。

スライダーで文字を切り替える
ヌルレイヤーを作って名前を「制御」にし、スライダー制御を追加します。エフェクト名を「番号」に変更して、値を1・2・3で切り替えます。テキストレイヤーの「ソーステキスト」に次の式を貼ってください。
var data = footage("labels.json").sourceData;
var n = Math.round(thisComp.layer("制御").effect("番号")(1));
var index = Math.max(0, Math.min(data.length - 1, n - 1));
String(data[index].text);小数は四捨五入し、配列の範囲外にならないよう端の項目へ収めます。今回のJSONは空でない配列で、各項目にtextがあることを前提にしています。データ構造を変える場合は式も合わせて修正します。
番号を 2 にしたときのレンダリング結果は「こんにちは」でした。
番号を 1 より小さい値にしたときは先頭の「おはよう」、3 より大きい値にしたときは末尾の「おやすみ」になり、上下限をそろえる処理が働くことを確認しました。
3 つの番号でそれぞれ別の文字がレンダリングされることも確認しています。


コンポジション名や色へ応用する
末尾が_1・_2・_3のコンポジション名から文字を切り替える場合は、ソーステキストに次の式を使います。途中にもアンダーバーがあってよいよう、最後の要素だけを参照します。末尾が数値でなければ最初の文字を返します。
var data = footage("labels.json").sourceData;
var parts = thisComp.name.split("_");
var n = Number(parts[parts.length - 1]);
var index = isNaN(n) ? 0 : Math.max(0, Math.min(data.length - 1, Math.round(n) - 1));
String(data[index].text);色は0〜1のRGBA配列としてJSONに入れています。シェイプの塗りの「カラー」など、RGBAを受け取るプロパティに次の式を貼ります。ソーステキストにこの色配列を貼る例ではありません。
var data = footage("labels.json").sourceData;
data[0].color;コンポジション名の末尾が 2 のとき、レンダリング結果は「こんにちは」でした。
末尾が数値として読めない名前のときは先頭の「おはよう」になり、数値でない場合に先頭の項目へ切り替わる処理が働くことを確認しました。
色の例では、JSON の先頭項目の色が RGBA で 1 / 0 / 0 / 1 として読み取られました。
あなたはどっち?目的別の使い分けフロー
このページの方法は、やりたいことに合わせて次のように選びます。
- 式が返す数値を確認したい:確認用テキストレイヤーに位置や時刻を表示します。
- 複数のコンポジションで文字や色を共通管理したい:JSONファイルをフッテージとして読み込み、sourceDataから値を参照します。
- スライダーで表示する文字を切り替えたい:「制御」レイヤーの「番号」エフェクトの値で、JSONの配列番号を切り替えます。
- 旧記事のESTKや外部ファイル参照の手順を使いたい:現行環境では再現が未確認です。複製したプロジェクトで、エンジンと元ファイルの内容を確定してから判断します。
どの方法でも、先に「プロジェクト設定」の「エクスプレッション」で使用するエンジンを確認してください。
表示が変わらない・エラーになるとき
- フッテージが見つからない:プロジェクトパネルの名前とlabels.jsonの記述を照合する。
- undefinedが表示される:配列番号とtext・colorのキー名を確認する。
- JSONを読み込めない:引用符、カンマ、配列・オブジェクトの括弧を確認する。
- 文字の切り替えが動かない:「制御」レイヤーと「番号」エフェクトの名前、入力先がソーステキストであることを確認する。
- ファイルの変更が反映されない:変更を保存したうえで、JSONフッテージの再読み込み・置き換えと参照先を確認する。
Adobe Media EncoderやPremiereとの受け渡し、ファイルの収集を行うときは、Adobeの案内に従ってデータソースをコンポジションのタイムラインにも追加します。参照だけがあるJSONを納品から漏らさないよう確認してください。
JSON の文字を書き換えて読み直すと、レンダリング結果の画素が書き換え前と変わることを確認しました。
書き換えた JSON を元の内容へ戻して読み直すと、レンダリング結果は書き換え前の画像と完全に一致しました。
表示が変わらないときは、ファイルの保存とフッテージの再読み込みの両方ができているかを確認してください。

JSONを式で参照するだけのときの「ファイルを収集」(2026年10月15日)
上のAdobeの案内が、実際の収集結果にどう表れるかを、2026年10月15日にWindows 11 Pro (10.0.26200)のAfter Effects 26.5.0(Build 89、日本語表示)で確かめました。
エクスプレッションのエンジンはJavaScriptです。
960×540・30fps・3秒のコンポジションにテキストレイヤーを1つ置き、このページと同じ3項目のlabels.jsonと、先頭の文字を参照する式で「おはよう」と表示させました。
同じ内容のプロジェクトを2つ用意し、違いは、JSONをタイムラインにもレイヤーとして置いたかどうかだけにしました。
プロジェクトと式の準備はスクリプトで行ったため、式を手で入力する操作は、この確認に含めていません。

収集は、プロジェクトパネルでコンポジションを選び、「ファイル」→「依存関係」→「ファイルを収集」から行いました。
「ソースファイルを収集」は「選択されたコンポジション用」にし、「レポートのみを作成」「プロキシ設定に従う」「プロジェクトの整理」はオフのまま、2つのプロジェクトをそれぞれ別のフォルダーへ収集しました。
JSONを式で参照するだけのプロジェクトでは、ダイアログに収集されるファイルの数が表示されませんでした。

JSONをタイムラインにも置いたプロジェクトでは、同じ設定で「1個のファイル(130 バイト)が収集されます。」と表示されました。

収集した結果は次のとおりです。
式で参照するだけのプロジェクトは、JSONがコピーされず、収集レポートの「収集されたファイルの数」は0でした。
収集先のプロジェクトは、元の場所にあるlabels.jsonを参照したままでした。
タイムラインにも置いたプロジェクトは、labels.json(130バイト)が収集先の「(フッテージ)」フォルダーにコピーされました。
次に、元のlabels.jsonの名前を一時的に変えて、元の場所からは読めない状態にしました。
タイムラインにも置いた側の収集フォルダーを丸ごと別の場所へコピーして開くと、コピー先のlabels.jsonを参照して「おはよう」と表示され、式のエラーは出ませんでした。
式で参照するだけの側の収集先を開くと、「1個のファイルが見つかりません」という警告と、式のエラーが出ました。

エラーの内容はTypeError: Cannot read properties of null (reading '0')で、文字は表示されませんでした。
元のlabels.jsonの名前を戻すと、どちらのプロジェクトも式のエラーなしで「おはよう」に戻りました。
元のJSONが残っている自分のPCでは、どちらの収集先も問題なく開けます。
そのため、収集先を開いて表示できただけでは、JSONが収集フォルダーに入っている証拠になりません。
受け渡しの前に、JSONをタイムラインにも置き、収集先の「(フッテージ)」フォルダーにJSONがあるかを確かめてください。
なお、「ソースファイルを収集」を「すべて」にした最初の画面では、1個のファイルが対象と表示されました。
この設定では収集していないので、どの収集設定でもJSONが漏れるとは言えません。
確かめたのは、JSONの文字を参照する1つの条件だけです。
ほかのデータ形式(MGJSONなど)、別のPCやMacで開く操作、Media EncoderやPremiereへの受け渡しは確認していません。
旧記事のESTK・外部ファイル参照について
旧記事はExtendScript Toolkit(ESTK)や隠し環境設定の編集、$.writeln()・$.evalFile()を使う方法を紹介していました。現行環境での再現は未確認です。旧環境の設定ファイルに書かれた行番号を、現在の設定ファイルの編集位置として使わないでください。
旧記事の外部ファイル参照は、文字データの読み込みに加えて外部コードの実行を含みます。このページのJSON例とは処理が異なります。以前の式を保守する必要がある場合は、エンジンと元ファイルの内容を確定してから、データの参照へ置き換えられるか判断します。



旧記事の参考出典:エクスプレッションの外部ファイル化。
上に書いた確認は、このページの JSON を参照する例に限ったものです。
ESTK や $.evalFile() を使う旧記事の方法は、現行環境での再現を確認していません。
wiggle を使う式や .jsx のスクリプトについても、今回はあらためて実行していません。
確認に使ったプロジェクトは 2026年10月3日時点の検証用のコピーで、別の場所へ移したときの素材リンクや、すべてのコンポジションを開き直せるかまでは確認していません。
別の場所へ移したときのJSONのリンクは、2026年10月15日に別に用意したプロジェクトで確かめました(「表示が変わらない・エラーになるとき」の最後の節)。
よくある質問:エクスプレッション作成で迷ったときのチェックリスト
式を入力する場所と、スクリプトファイルを実行する操作は同じですか?
別の操作です。エクスプレッションはプロパティのストップウォッチをAltクリック(MacはOptionクリック)して入力します。.jsxを「スクリプトファイルを実行」から動かす操作とは区別してください。
JSONの文字を書き換えても表示が変わらないのはなぜですか?
ファイルの保存と、JSONフッテージの再読み込み(または置き換え)の両方が必要です。どちらか片方だけだと、表示が更新されないことがあります。
undefinedと表示されるときは?
配列番号と、text・colorのキー名がJSONの記述と一致しているかを確認します。
JSONを読み込めないときは?
引用符、カンマ、配列・オブジェクトの括弧に誤りがないかを確認します。
文字の切り替えが動かないときは?
「制御」レイヤーと「番号」エフェクトの名前、入力先がソーステキストになっているかを確認します。
Media EncoderやPremiereに渡すときの注意点はありますか?
Adobeの案内に従って、データソースをコンポジションのタイムラインにも追加します。参照だけがあるJSONを納品から漏らさないよう確認してください。
2026年10月15日の確認では、JSONを式で参照するだけのプロジェクトを「選択されたコンポジション用」で収集すると、JSONはコピーされませんでした。
タイムラインにも置いたプロジェクトでは、収集先にJSONがコピーされました。
Media EncoderやPremiereへの受け渡しそのものは確認していません。
参考資料と関連する操作
Adobe:エンジンごとの構文差と未対応API、Adobe:データ駆動型アニメーション、Adobe:エクスプレッション言語リファレンス。
エクスプレッションエラーの直し方、チェックボックスで表示を切り替える方法、コンポジション名の数字を参照する方法、使い方まとめから関連する操作も確認できます。
