linear と ease は、ある範囲の値を、別の範囲の値に置き換えるエクスプレッションです。
「回転が増えたら大きくする」「音が大きいほど明るくする」のように、2つのプロパティを連動させるときの基本になります。
- 書き方:linear(元の値, 元の最小, 元の最大, 変換後の最小, 変換後の最大)
- 範囲の外は、端の値で止まる
- ease は、始めと終わりがゆっくりになる
- 時間で動かすときは、元の値に time を入れる
この記事は、Adobe公式の「Expression language reference」の説明(2026年10月3日に公式資料を確認)にもとづいています。
表の値は、同じ計算を Node.js で確かめたもので、After Effectsの画面での再現は含みません。
linearの書き方
linear(t, tMin, tMax, value1, value2)| 引数 | 意味 |
|---|---|
| t | 元にする値(時間や、ほかのプロパティの値) |
| tMin・tMax | 元の値の範囲 |
| value1・value2 | 変換したあとの範囲 |
t が tMin 以下なら value1、tMax 以上なら value2 を返し、その間は一定の割合で変わります。
範囲の外で値が止まるので、行き過ぎを気にしなくてよいのが便利なところです。
時間で動かす
linear(time, 0, 6, 20, 80)不透明度に書くと、0秒から6秒の間に20%から80%へ変わります。
これは公式の説明にある例です。
ほかのプロパティに連動させる
回転に合わせて大きくする
2Dレイヤーの拡大・縮小に書きます。3Dレイヤーの拡大・縮小では返す配列を [s, s, s] にし、参照する回転の軸も決めます。
var r = transform.rotation;
var s = linear(r, 0, 360, 80, 120);
[s, s];| 回転 | 拡大・縮小 |
|---|---|
| 0° | 80% |
| 90° | 90% |
| 180° | 100% |
| 360° | 120% |
| 400° | 120%(範囲の外なので止まる) |
拡大・縮小は縦と横の2つの値を持つので、最後に [s, s] と配列にして返しています。
画面の左右の位置で透明度を変える
1920×1080のコンポジションで、左端の少し内側から右端の少し内側まで動く間に、見えてくるようにする例です。
linear(transform.position[0], 200, 1720, 0, 100);位置の横の値([0])が200で0%、960で50%、1720で100%になります。
音の大きさに合わせる
音声レイヤーを選んで「アニメーション」→「キーフレーム補助」→「オーディオをキーフレームに変換」を実行すると、音の大きさがスライダーの値になったレイヤーができます。
var a = thisComp.layer("Audio Amplitude").effect("Both Channels")("Slider");
linear(a, 0, 20, 50, 100);振幅が0なら50、20以上なら100になります。
振幅の大きさは音声によって違うので、tMax の20は、実際のスライダーの値を見て合わせます。
上の1行目は英語版の名前です。
日本語版では名前が変わるので、1行目は入力欄のピックウィップ(渦巻きのアイコン)をスライダーまでドラッグして作ると確実です。
easeとの違い
ease(time, 0, 2, 0, 100)
easeIn(time, 0, 2, 0, 100)
easeOut(time, 0, 2, 0, 100)| 関数 | 動き方 |
|---|---|
| linear | 最初から最後まで同じ速さ |
| ease | 始めと終わりがゆっくり(両端で速さが0) |
| easeIn | 始め(tMin の側)だけゆっくり |
| easeOut | 終わり(tMax の側)だけゆっくり |
引数の並びはどれも linear と同じなので、関数の名前を変えるだけで動きの感じを変えられます。上の3行は比較用の候補です。練習では1行だけを選んで貼り付けます。3行とも貼ると最後の行の値が結果になります。
引数を3つにする書き方
linear(t, value1, value2)範囲を書かないと、t が0から1に進む間に value1 から value2 へ変わります。
0から1の割合をすでに計算してあるときに使います。
うまくいかないとき
- 値が動かない:tMin と tMax の範囲に、元の値が入っているかを見る
- エラーになる:位置や拡大・縮小のように値が2つ以上あるプロパティには、配列で返しているかを見る
- 向きが逆:value1 と value2 を入れ替える
数字を増やす演出に使う例は、After Effectsで数字をカウントアップさせるエクスプレッションで紹介しています。
入力範囲と貼付先を確かめる練習
練習用レイヤーの不透明度へ時間の式を1行だけ貼ります。
0秒で20、3秒で50、6秒で80になる範囲です。
範囲外の時刻では端の値を保ちます。
値を配列で返す位置・拡大縮小の例を、不透明度にそのまま貼らないでください。
| 入力時刻 | 計算値 | 条件 |
|---|---|---|
| -1秒 | 20 | 下限より前 |
| 3秒 | 50 | 範囲の中央 |
| 7秒 | 80 | 上限より後 |
入力範囲は tMin < tMax にします。
等しい値を使ってゼロ幅の範囲を作らず、表示したい端の値を直接返してください。
逆向きに動かす場合は入力範囲を逆転させず、出力のvalue1とvalue2を入れ替えます。
音への連動は生成された両チャンネルのスライダーをピックウィップで参照し、実際の値を見て上限を決めます。
練習の終了後は式を無効にし、元のプロパティ値とキーを戻します。
音声の変換でできた練習レイヤーは、本番のレイヤーと区別して残すか練習プロジェクトを閉じます。
READMEの貼付先を確認し、1つずつ練習用プロパティに使います。
AE本体での動作確認は含みません。
まとめ
- linear(元の値, 元の最小, 元の最大, 変換後の最小, 変換後の最大) で値を置き換える
- 範囲の外は端の値で止まる
- ease・easeIn・easeOut は同じ引数で、速さの変わり方だけが違う
- 値が2つあるプロパティには配列で返す
参考:Adobe「Expression language reference」(2026年10月3日に公式資料を確認)。
