Amazonで商品を見るセール会場へ

After Effects│loopOutの使い方|cycle・pingpong・offset・continueの違い

loopOut は、キーフレームで作った動きを、最後のキーフレームのあとも繰り返すエクスプレッションです。

回り続ける歯車や、点滅し続けるアイコンなど、同じ動きをずっと続けたいときに使います。

  • 基本:プロパティのエクスプレッションに loopOut() と書く
  • 繰り返し方は4種類:cycle・pingpong・offset・continue
  • 最後と1つ前のキーの間を繰り返す:loopOut("cycle", 1)
  • cycle・pingpong・offsetの練習は2キー以上で時間区間を作る

この記事は、Adobe公式の「Expression language reference」の説明(2026年10月3日に公式資料を確認)にもとづいています。

表の数値は、説明のとおりに計算したもので、After Effectsの画面での再現は含みません。

目次

loopOutの書き方

  1. 繰り返したいプロパティ(回転・位置など)にキーフレームを2つ以上打つ
  2. プロパティ名の左のストップウォッチを Alt(Macは Option)を押しながらクリックする
  3. 表示された入力欄に次の1行を書く
loopOut()

何も指定しないと、loopOut("cycle") と同じ意味になり、すべてのキーフレームの動きを最初から繰り返します。

繰り返しは、レイヤーの終わり(アウトポイント)まで続きます。

4つの型の違い

// 比較用。4行のうち1行だけを貼る。
loopOut("cycle")
loopOut("pingpong")
loopOut("offset")
loopOut("continue")
型動き方
cycle(初期値)同じ動きを最初から繰り返す
pingpong前向きと後ろ向きを交互に繰り返す
offset繰り返すたびに、最初と最後の差を上乗せしていく
continue繰り返さず、最後のキーフレームの速さのまま動き続ける
Adobe公式「Expression language reference」をもとに作成

同じ動きで比べる

回転に、0秒で0°、1秒で90°の2つのキーフレームを打ち、直線で動かした場合です。

時間cyclepingpongoffsetcontinue
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°)。

そのあと cycle は0°に戻って同じ動きをくり返し、pingpong は90°から0°へ向かって戻ります。

offset と continue は、回り続けるので同じ値になっています。

continueは終端の速度を延長します。終端速度が0の動きなら延長しても値は変わりません。offsetは区間の値差を積み重ねるため、終端の速度が0でも動きを繰り返します。

どれを使うか

  • 点滅や揺れなど、同じ動きをそのまま繰り返す:cycle
  • 行ったり来たりする振り子やまばたき:pingpong
  • 歯車の回転や、階段状に上がる動き:offset
  • 最後の勢いのまま流れていく動き:continue

繰り返す範囲を指定する

2つ目の数字で、最後から何区間を繰り返すかを決められます。

loopOut("cycle", 1)

1なら、最後のキーフレームとその1つ前の間だけを繰り返します。

0(初期値)なら、すべてのキーフレームを繰り返します。

登場の動きのあとに、一部だけを繰り返したいときに使います。

continue には、この2つ目の数字を付けられません。

秒数で指定するloopOutDuration

loopOutDuration("cycle", 1)

こちらは、最後のキーフレームから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個のときも元の値を保ちます。

loopOutが効かないとき

  • cycleなどの区間を繰り返したいのにキーが1つしかない。練習では2つ以上を用意する
  • ソーステキスト、シェイプのパス、レベル補正のヒストグラムなど、数値で表せないプロパティに書いている
  • 型の名前のつづりが違う(”pingPong” ではなく “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は秒数なので、キー間の長さが違う場合は同じ範囲になりません。

数値または数値配列のプロパティが対象です。

ソーステキストやパスへこの式をそのまま貼りません。

AE本体での実行は未検証で、表は区間の計算例です。

元に戻すときは式を無効にするか、保存した式を戻します。

練習のキー・レイヤーの終了時刻も保存した状態に戻します。

まとめ

  • loopOut() だけで、最後のキーフレームのあとも動きが続く
  • cycle は繰り返し、pingpong は往復、offset は積み上げ、continue は勢いのまま
  • 2つ目の数字で、最後から何区間を繰り返すかを決める
  • cycle・pingpong・offsetの練習は2キー以上で時間区間を作る

参考:Adobe「Expression language reference」(2026年10月3日に公式資料を確認)。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

After Effectsのおすすめ書籍

必要なPCスペック

周辺機器の優先度

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次