loopOut は、キーフレームで作った動きを、最後のキーフレームのあとも繰り返すエクスプレッションです。
回り続ける歯車や、点滅し続けるアイコンなど、同じ動きをずっと続けたいときに使います。
- 基本:プロパティのエクスプレッションに loopOut() と書く
- 繰り返し方は4種類:cycle・pingpong・offset・continue
- 最後と1つ前のキーの間を繰り返す:
loopOut("cycle", 1) - cycle・pingpong・offsetの練習は2キー以上で時間区間を作る
仕様はAdobe公式:エクスプレッション言語リファレンス(2026年10月14日確認)を参照しています。
2026年10月14日、Windows 11 Pro(10.0.26200)、After Effects 26.5(Build 89)日本語版・JavaScriptエンジンで検証しました。回転のキーフレームに4種類の式を適用し、回転値とコンポジションの描画を確認しました。
loopOutの書き方
練習用に960×540・24fps・4秒のコンポジションを作り、横長の平面(例:140×20)を中央へ置きます。レイヤーを選んでRキーで回転を表示し、0秒で0°、1秒で90°のキーを作ります。2つのキーを選択し、右クリックの「キーフレーム補間法」で時間補間をリニアにします。制作中のレイヤーを使う場合は、先にコンポを複製してください。
- 繰り返したいプロパティ(回転・位置など)にキーフレームを2つ以上打つ
- プロパティ名の左のストップウォッチを Alt(Macは Option)を押しながらクリックする
- 表示された入力欄の文字を次の1行に置き換え、欄の外側をクリックして確定する
loopOut()何も指定しないと、loopOut("cycle") と同じ意味になり、すべてのキーフレームの動きを最初から繰り返します。
繰り返しは、レイヤーの終わり(アウトポイント)まで続きます。
4つの型の違い
// 比較用。4行のうち1行だけを貼る。
loopOut("cycle")
loopOut("pingpong")
loopOut("offset")
loopOut("continue")| 型 | 動き方 |
|---|---|
| cycle(初期値) | 同じ動きを最初から繰り返す |
| pingpong | 前向きと後ろ向きを交互に繰り返す |
| offset | 繰り返すたびに、最初と最後の差を上乗せしていく |
| continue | 繰り返さず、最後のキーフレームの速さのまま動き続ける |
同じ動きで比べる
回転に、0秒で0°、1秒で90°の2つのキーフレームを打ち、直線で動かした場合です。
| 時間 | cycle | pingpong | offset | continue |
|---|---|---|---|---|
| 0.5秒 | 45° | 45° | 45° | 45° |
| 1.25秒 | 22.5° | 67.5° | 112.5° | 112.5° |
| 1.5秒 | 45° | 45° | 135° | 135° |
| 1.75秒 | 67.5° | 22.5° | 157.5° | 157.5° |
| 2.25秒 | 22.5° | 22.5° | 202.5° | 202.5° |
1秒までは、どの型もキーフレームのとおりに動きます(1秒で90°)。

画面は1秒6フレーム(1.25秒)です。左からcycle 22.5°、pingpong 67.5°、offset 112.5°、continue 112.5°。文字の数値は各平面の回転プロパティを参照しています。練習では1枚のレイヤーで式を貼り替えても確認できます。現在時刻へ0:00:01:06を入力し、表の1.25秒の行と照合してください。
そのあと cycle は0°に戻って同じ動きをくり返し、pingpong は90°から0°へ向かって戻ります。
このリニア補間の例では、offsetとcontinueは同じ値になります。補間を変えると同じ結果になるとは限りません。
continueは終端の速度を延長し、offsetは区間の値差を積み重ねます。違いを確かめるため、2キーをベジェ補間、入出速度0°/秒・影響33.333%にしたところ、1.5秒のoffsetは135°、continueは約90.269°でした。continueは90°に完全固定されず、2.25秒では約90.672°となりました。イーズをかければ完全に停止するとは扱わず、終端後の回転値も確認してください。最後で確実に止めたい場合はloopOutを無効にして、元のキーフレームの動きへ戻します。
どれを使うか
- 点滅や揺れなど、同じ動きをそのまま繰り返す:cycle
- 行ったり来たりする振り子やまばたき:pingpong
- 歯車の回転や、階段状に上がる動き:offset
- 最後の勢いのまま流れていく動き:continue
繰り返す範囲を指定する
2つ目の数字で、最後から何区間を繰り返すかを決められます。
loopOut("cycle", 1)1なら、最後のキーフレームとその1つ前の間だけを繰り返します。
0(初期値)なら、すべてのキーフレームを繰り返します。
登場の動きのあとに、一部だけを繰り返したいときに使います。
continue には、この2つ目の数字を付けられません。
秒数で指定するloopOutDuration
loopOutDuration("cycle", 1)こちらは、最後のキーフレームから1秒さかのぼった範囲を繰り返します。AE 26.5で回転に0秒0°・1秒90°・3秒180°のリニアキーを作り、3.5秒を比較しました。loopOut(“cycle”, 1)は最後の1区間(1〜3秒)を使うため112.5°、loopOutDuration(“cycle”, 1)は最後の1秒(2〜3秒)を使うため157.5°でした。数字の1が区間数か秒数かで結果が変わります。
loopInで最初より前も繰り返す
loopIn は、最初のキーフレームより前の時間を繰り返すエクスプレッションです。
レイヤーの始まり(インポイント)から繰り返しが始まります。
キーフレームの前後どちらも繰り返したいときは、2つをつなげて書きます。
var result = value;
if (numKeys >= 2) {
if (time < key(1).time) result = loopIn("cycle");
else if (time > key(numKeys).time) result = loopOut("cycle");
}
result;value は、この式を適用する前のプロパティ値です。
この例は時刻で分岐し、キーより前はloopIn、後はloopOut、キー間は元の値を返します。値の次元を変えず、キーが0個・1個のときも元の値を保ちます。AE 26.5の回転で、キーなしの基礎値30°、1秒に30°の1キーでは、0.5秒と3秒のどちらも30°でした。1秒30°・2秒90°のリニア2キーにすると、0.5秒・1.5秒・2.5秒はいずれも60°になりました。
動きに合わせて型を選ぶ
4つの型で迷ったときは、作りたい動きから逆引きします。
- 同じ動きをそのまま繰り返したい(点滅や揺れなど):cycle を選びます。
- 行ったり来たりさせたい(振り子やまばたきなど):pingpong を選びます。
- 繰り返すたびに値を積み上げたい(歯車の回転や階段状に上がる動きなど):offset を選びます。
- 最後の勢いのまま流れ続けたい:continue を選びます。
- 最初のキーより前も繰り返したい:loopIn を使います。
- 繰り返す範囲を秒数で指定したい:loopOutDuration を使います。
動かないときは、次の「loopOutが効かないとき」の項目を上から確認してください。
loopOutが効かないとき
- cycleなどの区間を繰り返したいのにキーが1つしかない。練習では2つ以上を用意する
- ソーステキスト、シェイプのパス、レベル補正のヒストグラムなど、数値で表せないプロパティに書いている
- 型名の引用符・つづり、式エラーの内容を確認する。この記事では公式表記の”pingpong”を使う
- レイヤーの終わり(アウトポイント)が、最後のキーフレームのすぐ後ろで切れている
数値が大きすぎる区間の指定は、使える最大の範囲に切り詰められます。
ウィグルをループさせたいときは loopOut では足りないので、After Effectsのウィグルをループさせるエクスプレッションで紹介している方法を使います。
コンポジション全体を繰り返したいときは、After Effectsのコンポジションをループさせる方法で紹介しています。
キー間とキー以降を分けて確かめる練習
保存した練習レイヤーの回転に、0秒0°・1秒90°の直線キーを打ちます。
レイヤーのアウトポイントを3秒以降に伸ばし、4種類は1つずつ貼り替えます。
0.5秒は45°、1秒は90°で元の区間を確認し、1.5秒ではcycle45°・pingpong45°・offset135°・continue135°になる計算を比較します。
cycleは最後の値から最初の値へ切り替わるため、端の値が違えば境界で飛びます。
切れ目をなくしたい場合は最初と最後の値を揃えるか、用途に応じてpingpong・offsetを選びます。
第2引数の1は「1キーの値」ではなく、最後の2キーに挟まれた1区間です。
Durationの1は秒数なので、キー間の長さが違う場合は同じ範囲になりません。
数値または数値配列のプロパティが対象です。
ソーステキストやパスへこの式をそのまま貼りません。
2026年10月14日にAE 26.5で、4型の回転値、リニアとベジェの違い、区間数と秒数の指定、loopInとの分岐、0〜1キー時のガードを確認しました。macOS、旧版、数値配列の全種類、リアルタイム再生速度、動画書き出しは今回の検証範囲外です。
元に戻すときは式を無効にするか、保存した式を戻します。
練習のキー・レイヤーの終了時刻も保存した状態に戻します。
よくある質問:loopOutで迷ったときのチェックリスト
loopOutを書く場所はどこですか?
繰り返したいプロパティ(回転・位置など)のストップウォッチを、Alt(MacはOption)を押しながらクリックし、表示された入力欄に書きます。事前に、そのプロパティにキーフレームを打っておきます。
キーフレームは何個必要ですか?
cycle・pingpong・offsetの練習では、時間の区間を作るために2キー以上が必要です。キーが1つしかないと、繰り返す区間がないため動きません。
pingpongと書いても効かないのはなぜですか?
まず回転などの数値プロパティへ貼ったか、2つ以上のキーがあるか、最後のキーより後を表示しているかを確認します。公式表記は”pingpong”です。ただしAE 26.5では”pingPong”もエラーなしで動作したため、大文字Pだけを不具合の原因とは断定できません。
数値以外のプロパティにも使えますか?
ソーステキスト、シェイプのパス、レベル補正のヒストグラムなど、数値で表せないプロパティに書いても効きません。
最後のキーフレームのあとで動きが止まって見えるときは?
レイヤーの終わり(アウトポイント)が、最後のキーフレームのすぐ後ろで切れていないかを確認してください。
ウィグルやコンポジション全体をループさせたいときは?
ウィグルをループさせたい場合は loopOut では足りないので、本文中で紹介している、ウィグルをループさせるエクスプレッションの方法を使います。コンポジション全体を繰り返したいときも、別の方法を使います。
まとめ
- loopOut() だけで、最後のキーフレームのあとも動きが続く
- cycle は繰り返し、pingpong は往復、offset は積み上げ、continue は勢いのまま
- 2つ目の数字で、最後から何区間を繰り返すかを決める
- cycle・pingpong・offsetの練習は2キー以上で時間区間を作る
参考:Adobe公式:エクスプレッション言語リファレンス(2026年10月14日確認)。
