テキストレイヤーのソーステキストへtimeToCurrentFormat()を貼ると、現在の表示形式に従う時間表示を作れます。
固定の30をすべてのコンポへ流用せず、コンポのfpsと表示形式を先に確認します。
2026年10月14日、Windows 11 Pro(10.0.26200)、After Effects 26.5(Build 89)日本語版・JavaScriptエンジンで確認しました。
960×540のテキストレイヤーで、式の返り値とコンポジション上の表示を照合しました。
24fpsの秒境界・開始時刻・フレーム表示と、29.97fpsのドロップフレーム境界を確認しています。
ソーステキストへ1行の式を貼る
「コンポジション」→「新規コンポジション」で960×540、24fps、デュレーション4秒、開始タイムコード00:00:00:00にします。
「レイヤー」→「新規」→「テキスト」で文字を作ります。
検証ではConsolas・64pxを使いました。
文字が見える色とサイズを設定してください。
プロジェクト設定の「時間表示形式」を「タイムコード」にします。
テキストレイヤー左側の三角を開き、「テキスト」→「ソーステキスト」のストップウォッチをAltクリック(MacはOptionクリック)して、式の入力欄を開きます。
既存の式を選択して、下の1行へ置き換えてください。
入力欄の外側をクリックして確定します。
// テキストレイヤーの「ソーステキスト」へ貼付
timeToCurrentFormat();
0秒、1秒、1秒の1フレーム前へ再生ヘッドを移動し、表示が00:00:00:00、00:00:01:00、00:00:00:23となるか確認します。

画面は24fpsの23フレーム目で、表示は00:00:00:23です。
タイムライン左上の現在時刻をクリックして0:00:00:23を入力すると再現できます。
1フレーム進めると00:00:01:00になります。
プロジェクトの時間表示形式を「フレーム」にすると、同じ式でも0・23・24フレーム目は00000・00023・00024になりました。
タイムコードを焼き込むつもりで数字だけが出るときは、この設定を確認します。
既定ではコンポの開始時刻も時間へ加えます。
開始タイムコードを01:00:00:00にしたコンポでは、先頭表示にもその開始時刻を反映します。
コンポ先頭を0フレームとして数える
開始タイムコードを加えず、コンポの経過時間からフレーム番号を出したい場合は次の式へ置き換えます。
fpsはframeDurationから取得します。
AE本体で24fpsの1秒は24、30fpsの1秒は30を確認しました。
開始タイムコードを01:00:00:00にしても、この式では先頭が0、24fpsの1秒が24になります。
// コンポ先頭を0とするフレーム番号
timeToFrames(time, 1 / thisComp.frameDuration, false).toString();
| 入力 | フレーム番号 | 基準 |
|---|---|---|
| 24fps/time=1秒 | 24 | 開始タイムコードを加えない |
| 30fps/time=1秒 | 30 | 固定30ではなくコンポから取得 |
| レイヤーのIN点を1秒へ移動 | その時点はコンポの1秒 | この式はIN点からの経過ではない |
本文の1行の式とは別の例です。
25fpsのコンポで、タイムコード・fps・開始時刻・フレーム番号を、1つのテキストに並べた画面を撮影しました。
ソーステキストの式は、fpsを「1 / thisComp.frameDuration」で求めています。
タイムコードは「timeToCurrentFormat(time)」、開始時刻は「timeToCurrentFormat(thisComp.displayStartTime)」、フレーム番号は「timeToFrames(time)」で文字にしています。
1秒12フレームの時点で、表示は「TC 00:00:01:12 | FPS 25 | START 00:00:00:00 | FRAME 37」でした。

現在時刻を2秒12フレームへ進めると、表示は「TC 00:00:02:12 | FPS 25 | START 00:00:00:00 | FRAME 62」に更新されました。

開始時刻が00:00:00:00のため、フレーム番号は、先頭から数えた値になっています。
25fpsの1秒12フレームが37、2秒12フレームが62です。
本文の24fpsの検証とは別のコンポで撮影した例です。
24fps固定と29.97ドロップフレームを区別する
24fpsコンポで表示基数を24に固定し、先頭からのタイムコードを出したい場合は次の式を使います。
コンポ設定を30fpsへ変えたときも自動で基数30には変わらないため、この式は24fpsの練習用です。
// 24fpsコンポで、コンポ先頭を00:00:00:00にする
timeToTimecode(time, 24, false);
29.97fpsでは、コンポ設定のドロップフレーム表示とプロジェクトの時間表示形式を確認し、最初のtimeToCurrentFormat()で設定に従わせます。
ドロップフレームは番号の数え方で、映像フレームを削除する操作ではありません。
検証用コンポを29.97fps、開始00;00;00;00、デュレーション10分5秒以上にして、コンポジション設定でフレームレート欄の右にあるメニューから「ドロップフレーム」を選びました。
ソーステキストの式はtimeToCurrentFormat()のままです。
フレーム番号は先頭を0として数えています。
| 先頭からのフレーム番号 | AEの表示(実測) |
|---|---|
| 1799 | 00;00;59;29 |
| 1800 | 00;01;00;02 |
| 17981 | 00;09;59;29 |
| 17982 | 00;10;00;00 |
1分境界では末尾00・01の番号を飛ばして02へ進み、10分境界では00へ進みました。
これが映像の2フレームを削除するという意味ではありません。
境界を再現するときは、現在時刻に0;00;59;29を入力して1フレーム進め、次に0;09;59;29で同じ操作をします。

旧式のtimeToTimecode(…, 30, …)へ29.97を入れ替えるだけで、コンポ設定と同じドロップフレーム表示を再現したとは扱いません。
表示できない場合と戻し方
式エラーでは、位置や不透明度ではなくソーステキストへ貼ったかを確認します。
数字だけになる場合は、現在の時間表示形式がフレーム番号になっていないかを確認します。
表示の桁がずれる場合はコンポのfps、開始タイムコード、どの式を使っているかを確認します。
戻すときは式の有効スイッチをOFFにし、元のテキストと時間表示形式を復元します。
旧配布ページと参考動画
次のリンクは従来の配布ページと参考動画です。
配布物の現行内容や購入条件は今回変更していません。
上の1行の式は.jsxの実行やProgram Files配下への配置を必要としません。
参考動画:https://www.youtube.com/embed/xK0knqvi5xI
配布ページ:https://cg-method.booth.pm/items/1072862
仕様の参照:時間変換メソッド、Adobeのタイムコードと時間表示単位。
音声の曲名も表示するときはBGMレイヤー名の表示を参照します。
関連記事と旧配布資料
関連記事は目的に応じて使い分けます。
旧配布コードと、このページの改訂コードは同じものではありません。





よくある質問:After Effectsでタイムコードをテキストに表示するとき
現在のタイムコードを、テキストに表示するには?
テキストレイヤーのソーステキストへ、timeToCurrentFormat()を貼ります。
現在の表示形式に従う時間表示を作れます。
固定の30をすべてのコンポへ流用せず、コンポのfpsと表示形式を先に確認します。
式は、どう貼りますか?
960×540、24fps、開始タイムコード00:00:00:00の練習コンポを作り、テキストレイヤーを追加します。
時間の表示形式をタイムコードにしてから、テキスト→ソーステキストのストップウォッチをAltクリック(MacはOptionクリック)します。
0秒、1秒、1秒の1フレーム前へ再生ヘッドを移動し、表示が00:00:00:00、00:00:01:00、00:00:00:23となるか確認します。
上の1行の式は、.jsxの実行やProgram Files配下への配置を必要としません。
数字だけが表示されるのは、なぜですか?
現在の時間表示形式が、フレーム番号になっていないかを確認します。
表示形式をフレーム番号にすると、同じ式でも時間文字列の見え方が変わります。
コンポの先頭を0として、フレーム番号を出すには?
開始タイムコードを加えず、コンポの経過時間からフレーム番号を出したい場合は、記事の別の式へ置き換えます。
fpsはframeDurationから取得します。
記事の例では、24fpsで1秒は24、30fpsで1秒は30です。
この式は、レイヤーのIN点からの経過ではありません。
開始タイムコードが00:00:00:00ではないコンポでは?
既定では、コンポの開始時刻も時間へ加えます。
開始タイムコードを01:00:00:00にしたコンポでは、先頭表示にもその開始時刻を反映します。
24fps固定の式を、30fpsのコンポで使ってもよいですか?
式は動作しますが、表示の基数は24のままです。
30fpsコンポのフレーム番号と一致する表示が必要なら、timeToCurrentFormat()またはコンポのframeDurationを使う式へ切り替えます。
29.97fpsのドロップフレームは、どう扱いますか?
29.97fpsでは、コンポ設定のドロップフレーム表示とプロジェクトの時間表示形式を確認し、最初のtimeToCurrentFormat()で設定に従わせます。
ドロップフレームは番号の数え方で、映像フレームを削除する操作ではありません。
旧式のtimeToTimecode(…, 30, …)へ29.97を入れ替えるだけで、同じドロップフレーム表示を再現したとは扱いません。
AE 26.5で、1分境界は00;00;59;29から00;01;00;02、10分境界は00;09;59;29から00;10;00;00になることを確認しました。
この式は、実機で確認済みですか?
2026年10月14日にWindows 11 Pro、AE 26.5(Build 89)で確認しました。
24fpsの0・23・24フレーム、開始01:00:00:00、フレーム表示、29.97fpsドロップフレームの1分・10分境界を検証しています。
描画はConsolas・64pxで確認しました。
macOS、別バージョン、別フォント、動画ファイルへの書き出しは今回の検証範囲に含みません。
