After Effectsのwiggleは、位置や回転などの数値に不規則な揺れを加えるエクスプレッションです。
まずは2Dレイヤーの位置へ短い式を入力し、揺れの頻度と幅を変えてみます。
途中で止めるときは、元の位置へ戻す、その場で止める、揺れ幅を徐々に小さくする、という仕上がりに合わせて式を選びます。
2026年10月3日にAdobe公式資料を確認し、After Effects 26.5(26.5×89)の日本語版で位置の式と停止条件を15項目検証しました。
位置にキーを設定しない2D平面の練習例で、元の位置へ戻す・振幅を小さくする・その場で止める3種類を実際に書き出し、4秒以降の停止結果を確認しました。
wiggleの2つの数値と適用先
wiggle(2, 24);最初の2は揺れの頻度、24は揺れの振幅を指定します。
位置に使う振幅の単位はピクセル、回転に使う単位は度なので、同じ24でも見た目は変わります。
この例は、決まった場所へ1秒に2回到着する動きや、24ピクセルごとに移動する動きを指定するものではありません。
細かいノイズを重ねる引数もありますが、最初は既定値のままにして、頻度と振幅を1つずつ変えます。
引数と戻り値の根拠はAdobeのエクスプレッション言語リファレンスで確認できます。
位置へ式を入力する
新しい練習用コンポジションを1280×720、30fps、6秒で作り、100×100の長方形の2D平面レイヤーを1枚置きます。
レイヤーの親を設定せず、位置の次元分割と位置のキーフレームを使わない状態で始めます。
- 平面レイヤーを選び、Pキーでレイヤーの「位置」を表示します。
- 「位置」の項目名を選び、「アニメーション」→「エクスプレッションを追加」を実行します。
- 式欄にある文字を選択し、上のwiggle(2, 24);だけに置き換えます。
- 式欄の外をクリックし、現在時刻を変えて位置の数値と長方形の動きを確認します。
入力先はレイヤーの「トランスフォーム」にある位置で、シェイプ内部のグループの位置やソーステキストではありません。
式を.jsxとして保存して実行する操作も、このエクスプレッションの入力とは異なります。
追加・編集の操作はAdobeのエクスプレッション編集の説明に基づきます。

横方向だけ・縦方向だけを揺らす
次元分割していない2Dの位置は、XとYの2つの値を返す配列です。
横方向だけを揺らす場合は、wiggleのXと、式を適用する前のYを組み合わせます。
var w = wiggle(2, 24);
[w[0], value[1]];縦方向だけを揺らす場合は、Xを元の値のままにして、Yへwiggleの結果を使います。
var w = wiggle(2, 24);
[value[0], w[1]];各式は前の式へ追記せず、位置の式欄全体を置き換えて試します。
この2要素の式は3Dの位置へ貼らず、次元分割を使う場合もX位置・Y位置に合う式を別に用意します。
3種類の止め方を選ぶ
| 止めた後の状態 | 方法 | 境界で確認すること |
|---|---|---|
| 元の位置へ戻す | 指定時刻からvalueを返す | 位置が急に戻る場合がある |
| 徐々に元へ戻す | 振幅のスライダーを0へ下げる | 揺れ幅と戻り方を再生で確認する |
| その場で止める | 静止した位置で揺れの評価時刻を固定 | 停止時刻とその後の位置を比較する |
以下の4秒はコンポジションの時刻で、レイヤーの表示開始から4秒後という意味ではありません。
レイヤーの表示開始を基準にする場合は停止時刻をinPoint + 4へ変更しますが、まずは開始が0秒の練習で比べます。
4秒から元の位置へ戻す
4秒より前は揺らし、4秒以降は式を適用する前の位置を返します。
var stopSec = 4;
if (time < stopSec) {
wiggle(2, 24);
} else {
value;
}元の位置が静止していれば停止後はその位置へ戻りますが、位置のキーフレームがあれば元のアニメーションが続きます。
4秒直前の揺れた位置からvalueへ切り替えるため、境界で位置が跳ぶ場合があります。
この切り替えは「4秒の揺れた位置を保存する」処理ではありません。
指定時刻でvalueへ切り替える考え方はAdobeの開始・停止の例を参考にし、ここでは4秒ちょうどから戻す条件にしています。


スライダーで揺れを徐々に弱める
振幅を24から0へ下げると、基準の位置へ近づきながら揺れの幅を小さくできます。
- 揺らすレイヤーへ「エフェクト」→「エクスプレッション制御」→「スライダー制御」を追加します。
- 追加したエフェクトの名前を「揺れ幅」へ変更します。
- スライダーの値へ、0秒に24、3秒に24、4秒に0のキーフレームを置きます。
- 位置の式を次のコードへ置き換え、3秒から4秒と、4秒以降を再生します。
var amp = effect("揺れ幅")(1);
wiggle(2, amp);effect(“揺れ幅”)(1)は同じレイヤー上にある「揺れ幅」エフェクトの最初のプロパティを参照する、このスライダー制御専用の記述です。
参照先を式のピックウイップで生成する場合は、実際の言語とエフェクト名に合った参照を使い、wiggleの第2引数へ入れます。
位置にキーフレームがある場合は、振幅を0にしても元の移動が残ります。
元の移動も止めたい場合は、位置のキーフレームの終わり方を別に設計します。
振幅をスライダーへ結ぶ根拠はAdobeのスライダーでwiggleを制御する例です。
スライダーを第1引数へ結ぶと頻度の制御になるため、この振幅を0へ下げる手順と取り違えないようにします。





4秒の揺れた位置で止める
元の位置にキーフレームがなく、親も設定していない静止した2Dレイヤーで試す例です。
var stopSec = 4;
var t = Math.min(time, stopSec);
wiggle(2, 24, 1, 0.5, t);4秒より前は現在時刻でwiggleを評価し、4秒以降は第5引数へ4秒を渡し続ける設計です。
停止した位置の具体的な数値はAEのノイズ評価によるので、固定した640・360などの位置になるとは指定していません。
4秒、4秒と1フレーム、5秒の値と表示を比較し、同じ位置に止まることを実機で確認してから使います。
位置にキーがある構成、親が動く構成、エフェクトやほかの式で見た目が動く構成は、この静止条件の確認に含めません。
最初からランダムな値を固定したい場合は、random・seedRandomとwiggleの固定値の記事へ進んでください。


動かない・止まらないときの確認
| 症状 | 最初に確認すること |
|---|---|
| 式のエラーが出る | 入力先、半角の括弧と引用符、スライダーのエフェクト名を確認 |
| スライダーが効かない | 「揺れ幅」が揺らすレイヤーと同じレイヤーにあるか確認 |
| 4秒前から揺れない | 式が有効か、振幅のキーが24になっているか確認 |
| 揺れ幅0でも移動する | 位置のキーや親、別のトランスフォームが動いていないか確認 |
| 止めた瞬間に位置が跳ぶ | valueへ戻す方法か、その場で止める方法か確認 |
| ループの境界がつながらない | 通常のwiggleだけで周期を指定したと考えていないか確認 |
エラーメッセージを残してから、エクスプレッションエラーの確認手順に沿って入力先と参照先を調べます。
式を止める・元の状態へ戻す
試行中は式の有効/無効ボタン(=)で切り替えると、入力した式を残したまま元の値と比較できます。
スライダーも追加した場合は、式を無効にしてから今回追加した「揺れ幅」だけを選び、不要なら削除します。
式を取り除く場合は対象の位置を選び、「アニメーション」→「エクスプレッションを削除」を使います。
元のキーや別の式を変更する前には練習コピーを保存し、取り消しだけで戻らない場合はそのコピーを開き直します。
ループや固定値との使い分け
揺れを周期的に繰り返す場合は、wiggleのループで評価する時刻と境界のつなぎ方を確認します。
元のキーフレームを繰り返す場合は、loopOutで扱う区間を確認します。
このページでは揺れを作る操作と止め方を扱い、固定乱数やループの詳しい実装はそれぞれの専門記事へ分けています。
練習用AEPと実際の書き出し
自作の練習用AEP・説明書・3種類の書き出しをダウンロード(ZIP)できます。
AEPはAE26.5で保存し、外部素材を使わない7つのコンポジションとして開き直しを確認しました。
同梱するMP4の0秒はコンポジションの3秒に対応し、4秒から5秒2フレームまでの停止結果を実出力で確認しています。
位置キーや親を使わない2D平面が基本の条件で、移動キーがある場合の反例は別のコンポジションに分けています。
ほかのAEバージョン、macOS、3D位置、次元分割、親が動く構成は今回の実機検証に含めていません。
実案件はコピー保存してから試し、位置の数値と見た目、書き出し結果を確認してください。