After Effectsのtimeは、エクスプレッションを評価しているコンポジションの時刻を秒で表す値です。回転にtime * 90と書けば、1秒あたり90度の速さで値が増えます。フレーム番号や、レイヤーが表示されてからの経過時間とは区別しましょう。
この記事では、キーフレームのない2Dレイヤーを使い、開始時刻0秒のコンポジションで確認する例を紹介します。回転に式を追加するときは、回転のストップウォッチをWindowsではAlt、MacではOptionを押しながらクリックします。
2026年10月19日に、After Effects 2026(26.5)の日本語版とWindows 11 Proで、この記事の式を自作の練習用コンポジション(960×540・30fps・6秒、平面の棒を置いたもの)に入れて確かめました。
式は、プロパティのストップウォッチをAltを押しながらクリックして開いた欄に、記事のとおり入力しています。
入力するとき、閉じかっこが自動で入る点に注意が要りました(最後の節の「入力したときに閉じかっこが余ったら」で説明します)。
timeに掛ける数字は、1秒あたりの変化量
回転プロパティに、次の式を入力します。
time * 90
0秒で0度、1秒で90度、2秒で180度、4秒で360度になります。正の値なら値が増える方向へ、負の値なら反対方向へ回転します。円だけだと回転が見えにくいため、長方形や針のような形で試してください。
| 回転の式 | 速さ | 1回転する時間 |
|---|---|---|
| time * 30 | 毎秒30度 | 12秒 |
| time * 90 | 毎秒90度 | 4秒 |
| time * 180 | 毎秒180度 | 2秒 |
| time * -90 | 毎秒マイナス90度 | 逆方向に4秒 |
練習用のコンポジションで、オレンジの棒の回転にtime * 90を入れると、回転の値は0秒で0x+0.0°、1秒で0x+90.0°、2秒で0x+180.0°になりました。
4秒では1x+0.0°と表示されます。
After Effectsの回転は「回転数x+角度」で表示されるため、360度は1回転として1xの側に繰り上がります。

画像の青い棒は、次の節のvalue + time * 90を入れたものです。
秒を基準にするため、30fpsのコンポジションでも60fpsのコンポジションでも、1秒あたりの回転量は同じです。表示されるフレーム数が増えることと、動きの速度が増えることは別です。timeの定義はAdobeのエクスプレッション言語リファレンスで確認できます。
60fpsのコンポジションでも、time * 90の値は1秒で90度、2秒で180度で、30fpsと同じでした(この確認だけはスクリプトで式を入れて値を読みました)。
元の角度を残すならvalueを加える
timeだけで値を作ると、手動で設定した角度を起点にしたつもりでも、その値が反映されないことがあります。元の回転値を残したい場合は、次のようにvalueを加えます。
value + time * 90
キーフレームがなく、元の回転が30度なら、0秒で30度、1秒で120度になります。キーフレームがある場合のvalueは、その時刻の元のアニメーション値なので、キーフレームの動きに回転が加算されます。最初の角度を固定して学ぶ場合は、キーフレームのない状態で試しましょう。
練習では、回転を30度にした青い棒にvalue + time * 90を入れました。
値は0秒で30度、1秒で120度、2秒で210度になり、元の30度に毎秒90度が足されました。
式でプロパティの値を作る考え方は、Adobeのエクスプレッションの基本でも説明されています。
レイヤーの表示開始から動かすならinPointを引く
レイヤーをコンポジションの途中から表示しても、time自体はそのレイヤーの先頭で0に戻りません。2秒から表示したレイヤーにtime * 90を入れると、表示開始時点ですでに180度になります。
レイヤーのイン点からの経過時間を使うには、timeからinPointを引きます。
value + (time - inPoint) * 90
イン点が2秒なら、2秒の時点で加算量0度、3秒で90度、4秒で180度になります。inPointはレイヤーのイン点を秒で返す値です。レイヤーの開始位置を変更しても、その表示開始を基準に同じ動きを作りやすくなります。
練習では、イン点を2秒にした棒を2本用意し、上のオレンジの棒にはtime * 90、下の青い棒にはvalue + (time - inPoint) * 90を入れました。
向きの違いが分かるよう、棒のアンカーポイントは左端にしてあります。
表示が始まる2秒の時点で、オレンジの棒は0x+180.0°で、すでに左を向いていました。
青い棒は0x+0.0°で、右を向いた状態から回り始めます。

3秒では、オレンジの棒が270度、青い棒が90度で、どちらも毎秒90度で回り続けました。
プリコンポーズ、時間の反転、タイムリマップなどを組み合わせる場合は、どのコンポジションとレイヤーの時刻を参照しているかが重要です。まず単純なレイヤーで式の意味を確かめてから、複雑な構成へ移します。
2秒間だけ回して止める
レイヤーのイン点から2秒だけ回転させ、その後は止めたい場合は、経過時間を0〜2秒に制限します。回転のキーフレームがない状態で使う例です。
var elapsed = Math.max(0, Math.min(time - inPoint, 2));
value + elapsed * 90;
開始時の角度から、1秒後に90度、2秒後に180度進み、その後は180度を加えた状態を保ちます。式の「2」が継続時間、「90」が毎秒の角度です。元のvalueにキーフレームがある場合は、追加回転が止まっても元のアニメーションは続きます。
練習では、イン点を1秒にした棒に、この2行の式を入れました。
回転の値は、イン点の1秒で0度、2秒で90度、3秒で180度になり、その後の5秒でも180度のままでした。

イン点より前の0秒の値も0度でした(Math.maxで0より小さくならないため)。
この式は急に動き始め、急に止まります。加速・減速を付けたい場合は、時間から角度を補間する考え方を使います。詳しくはlinearとeaseの使い方を参照してください。
位置に使う場合は、座標の配列を返す
回転は一つの数値ですが、2Dレイヤーの位置にはXとYの値があります。次は、親を設定していない2Dレイヤーの、次元を分割していない位置に入れ、元の位置から右へ毎秒100ピクセル移動する例です。親がある場合は親の座標系でXが増えるため、画面上の方向や移動量は親の回転・スケールなどの影響を受けます。位置のキーフレームは付けずに試します。
var elapsed = Math.max(0, time - inPoint);
[value[0] + elapsed * 100, value[1]];
value[0]がX、value[1]がYです。Yをそのまま返すので、横方向だけが変わります。3Dレイヤーの位置にはZも必要で、次元を分割したX位置には一つの数値を返すため、この例をそのまま流用しないでください。
練習では、位置を200, 270にした四角い平面にこの式を入れました。
Xは0秒で200、1秒で300、3秒で500と毎秒100ずつ増え、Yは270のままでした。
![四角い平面の位置に2行の式(var elapsed = Math.max(0, time - inPoint); [value[0] + elapsed * 100, value[1]];)を入れ、3秒の時点で位置が500.0, 270.0になっている画面](https://cg-method.com/after-effects/wp-content/uploads/2026/10/cgm-20261019-ae-time-position.jpg)
3Dレイヤーの位置に同じ式を入れた場合は、エラーにならずにZが0になりました(元のZを-100にしておいても0になります)。
次元を分割したX位置に入れた場合は、「結果を数値に変換できませんでした。」というエラーになりました。
この2つは、スクリプトで式を入れて確かめたものです。
速度の数字をアニメーションするときの注意
一定速度ならtimeに数値を掛けるだけで表せますが、その数値を途中で急に変えると、位置や角度が飛ぶことがあります。たとえば3秒の時点で係数を90から180へ変えると、単純な掛け算では270度から540度へ変わります。
timeに掛ける値を変えることは、それまでの移動量を積み上げて速度を変える処理と同じではありません。速度を滑らかに変化させたい場合は、まず角度や位置自体をキーフレームで作る方法も検討してください。
意図した式になっているか数値で確かめる
プレビューの見た目だけでなく、0秒・1秒・2秒のプロパティ値を確認します。開始位置がずれるならinPoint、元の値が消えるならvalue、エラーになるなら戻り値の次元を確認してください。
入力したときに閉じかっこが余ったら
26.5の式の欄では、「(」や「[」を打つと、対応する閉じかっこが自動で入りました。
そのまま記事の式を最後まで打つと、行の最後に「)」や「]」が余りました。
たとえばvalue + (time - inPoint) * 90は、最後に「)」が1つ余った状態で確定されました。

この状態では、コンポジションパネルの下に「このプロジェクトにはエクスプレッションエラーがあります」という帯が出て、式の横に警告のアイコンが付きました。
式をクリックし直すと、SyntaxError: Unexpected token ')'と表示されます。
余った閉じかっこを消して確定し直すと、エラーは消えて値が出ました。
貼り付けではなく手で打つときは、確定する前に行の最後を見てください。
この確認は、Windowsのキー入力として1文字ずつ送って行いました(式の欄に関わる環境設定は変えていません)。
すでに作ったキーフレームの繰り返しにはloopOut、別の時刻の値を参照する場合にはvalueAtTimeが役立ちます。一定速度で値を増やす用途から始めると、timeの役割を理解しやすくなります。
確かめた範囲と確かめていないこと
2026年10月19日の確認は、After Effects 2026(26.5)の日本語版、Windows 11 Pro、自作の練習用コンポジション(平面の棒と四角だけ、キーフレームなし)で行いました。
回転の4つの式と位置の式は画面から入力し、値はタイムラインの表示とスクリプトでの読み取りで確かめました。
60fpsのコンポジション、3Dレイヤー、次元を分割した位置は、スクリプトで式を入れて確かめています。
係数を途中で変えたときの飛び、キーフレームのあるプロパティへの加算、プリコンポーズ・時間の反転・タイムリマップとの組み合わせ、Mac版と英語版は確かめていません。
