linear と ease は、ある範囲の値を、別の範囲の値に置き換えるエクスプレッションです。
「回転が増えたら大きくする」「音が大きいほど明るくする」のように、2つのプロパティを連動させるときの基本になります。
- 書き方:linear(元の値, 元の最小, 元の最大, 変換後の開始値, 変換後の終了値)
- 範囲の外は、端の値で止まる
- ease は、始めと終わりがゆっくりになる
- 時間で動かすときは、元の値に time を入れる
この記事は、Adobe公式の「Expression language reference」の説明(2026年10月3日に公式資料を確認)にもとづいています。
表の値は、同じ計算を Node.js で確かめ、2026年10月13日に After Effects の画面でも、linear と ease の値の違いを確認しました。
2026年10月15日には、Windows 11 Pro上の After Effects 26.5.0(Build 89、日本語表示)で、音の大きさに合わせる手順と、回転と時間で動かす式の値を確かめました。
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] と配列にして返しています。
2026年10月15日に、After Effects 26.5.0 で回転を-90°、0°、90°、180°、360°、400°にしたときの値を読み出すと、拡大・縮小は80%、80%、90%、100%、120%、120%で、上の表と同じでした。
-90°のように0°より小さい回転では、下限の80%で止まります。
3Dレイヤーでは、Z回転を参照して3つの値を返す次の式で、同じ回転に対して縦・横・奥行きがそろって同じ値になりました。
var r = transform.zRotation;
var s = linear(r, 0, 360, 80, 120);
[s, s, s];どちらの式もエラーは出ませんでした。
式の入力と値の読み出しはスクリプトで行ったため、画面で式を手入力する操作は確認に含めていません。
画面の左右の位置で透明度を変える
1920×1080のコンポジションで、親を設定していない2Dレイヤーの不透明度に書く例です。位置のX値200〜1720を0〜100%へ対応させます。親がある場合のpositionは親の座標系になるため、この数値をそのまま画面上の左右位置とは扱えません。
linear(transform.position[0], 200, 1720, 0, 100);位置の横の値([0])が200で0%、960で50%、1720で100%になります。
音の大きさに合わせる
音声レイヤーを選んで「アニメーション」→「キーフレーム補助」→「オーディオをキーフレームに変換」を実行すると、音の大きさがスライダーの値になったレイヤーができます。
Adobe公式の説明では、選択した1レイヤーだけではなく、コンポジション内のすべての音声ソースを対象に、ワークエリアの範囲で振幅のキーフレームを作ります。
2026年10月15日に、After Effects 26.5.0 の日本語表示で、この操作を画面から行いました。
試したのは、1920×1080・30fps・4秒のコンポジションに、自作のテスト音(48kHz・16ビット・モノラル、1kHzの音)を1つだけ入れた条件です。
テスト音は、0.5秒までと3.5秒からは無音にし、その間は1秒ごとに、ピークの振幅を0.05、0.5、0.95と大きくしました。

変換すると「オーディオ振幅」というレイヤーができ、「左チャンネル」「右チャンネル」「両方のチャンネル」の3つのエフェクトの「スライダー」に、それぞれ121個のキーフレーム(0秒から4秒まで1フレームごと)が入りました。
モノラルの音なので、3つのスライダーの値は同じでした。
var a = thisComp.layer("Audio Amplitude").effect("Both Channels")("Slider");
linear(a, 0, 20, 50, 100);振幅が0なら50、20以上なら100になります。
振幅の大きさは音声によって違うので、tMax の20は、実際のスライダーの値を見て合わせます。
上の1行目は英語版の名前です。
日本語版では名前が変わるので、1行目は入力欄のピックウィップ(渦巻きのアイコン)をスライダーまでドラッグして作ると確実です。
日本語表示の After Effects 26.5.0 で、不透明度の式のピックウィップを「両方のチャンネル」の「スライダー」までドラッグすると、日本語の名前の参照が入りました。
その参照を変数 a に入れて、上と同じ linear を付けた式です。
var a = thisComp.layer("オーディオ振幅").effect("両方のチャンネル")("スライダー");
linear(a, 0, 20, 50, 100);ピックウィップでの参照の作成は画面で行いましたが、それを変数 a に入れて linear を付ける書き換えはスクリプトで行ったため、手で入力する操作は確認に含めていません。
テスト音の1秒の時点では、「両方のチャンネル」のスライダーは約3.53で、不透明度は約58.82%(画面の表示は59%)でした。

2秒の時点ではスライダーが約35.28、3秒の時点では約67.03になり、どちらも上限の20を超えているため、不透明度は100%で止まりました。

0秒と4秒は振幅が0で、不透明度は50%でした。
0秒から4秒までの全121フレームで、式の結果は linear の計算と一致しました。
このテスト音では、中くらいの音でもスライダーが20を超えたので、20のままだと中と大の音の差が不透明度に出ません。
上限は、変換したあとのスライダーの値を見て決めてください。
ステレオの音、複数の音声レイヤー、音声にエフェクトをかけた場合、変換したあとに音を差し替えた場合は、試していません。
音を再生して聞く確認と、書き出した動画での確認もしていません。
linearとeaseを並べた画面(2026年10月13日)
2つの式を並べた画面です。
上の「Ease」は「ease(time,0,2,300,980)」、下の「Linear」は「linear(time,0,2,300,980)」で、0秒10フレームの時点では、位置のX値がeaseは370.7、linearは436.0でした。これらは25fpsの0.4秒での計算に対応します。

1秒15フレームでは、easeは909.3、linearは844.0でした。25fpsでは1.6秒に対応します。

timeを入力にしたこの例では、linearは区間内を一定速度で進み、easeは始めと終わりがゆっくりになります。音量などを入力にした場合は入力自体の変化に応じて結果も変わるため、時間に対して常に一定速度になるわけではありません。
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 | 上限より後 |
2026年10月15日に、After Effects 26.5.0 でlinear(time, 0, 6, 20, 80)を不透明度に書いた値を読み出すと、-1秒・0秒・3秒・6秒・7秒で、20・20・50・80・80でした。
-1秒や7秒のように練習用コンポジションの範囲の外の時刻を含むため、値はスクリプトで式の結果を読み出して確かめました。
入力範囲は tMin < tMax にします。
等しい値を使ってゼロ幅の範囲を作らず、表示したい端の値を直接返してください。
逆向きに動かす場合は入力範囲を逆転させず、出力のvalue1とvalue2を入れ替えます。
音への連動は生成された両チャンネルのスライダーをピックウィップで参照し、実際の値を見て上限を決めます。
練習の終了後は式を無効にし、元のプロパティ値とキーを戻します。
音声の変換でできた練習レイヤーは、本番のレイヤーと区別して残すか練習プロジェクトを閉じます。
READMEの貼付先を確認し、1つずつ練習用プロパティに使います。
ダウンロードできる6本のファイルそのものを、After Effects で読み込んで試す確認はしていません。
まとめ
- linear(元の値, 元の最小, 元の最大, 変換後の開始値, 変換後の終了値) で値を置き換える
- 範囲の外は端の値で止まる
- ease・easeIn・easeOut は同じ引数で、速さの変わり方だけが違う
- 値が2つあるプロパティには配列で返す
参考:Adobe「Expression language reference」(2026年10月3日に公式資料を確認)。
よくある質問:After Effectsのlinear・easeで値を連動させるとき
linearは、何をするエクスプレッションですか?
ある範囲の値を、別の範囲の値に置き換えます。書き方は、linear(元の値, 元の最小, 元の最大, 変換後の開始値, 変換後の終了値)です。「回転が増えたら大きくする」「音が大きいほど明るくする」のように、2つのプロパティを連動させるときの基本になります。
範囲の外の値は、どうなりますか?
tMinより小さい側ではvalue1、tMaxより大きい側ではvalue2を返します。value1とvalue2は出力の両端であり、大小の順番は固定ではありません。100から0へ減らす場合も指定できます。
linearとeaseは、何が違いますか?
easeは、始めと終わりがゆっくりになります。ease・easeIn・easeOutは同じ引数で、速さの変わり方だけが違います。
時間で動かすには?
元の値にtimeを入れます。記事の公式の例では、不透明度に書くと、0秒から6秒の間に20%から80%へ変わります。
値が動かないときは?
tMinとtMaxの範囲に、元の値が入っているかを見ます。入力範囲はtMin < tMaxにし、等しい値を使ってゼロ幅の範囲を作らないでください。
エラーになるときは?
位置や拡大・縮小のように値が2つ以上あるプロパティには、配列で返しているかを見ます。値を配列で返す位置・拡大縮小の例を、不透明度にそのまま貼らないでください。3Dレイヤーの拡大・縮小では、返す配列を[s, s, s]にし、参照する回転の軸も決めます。
動きの向きが逆になるときは?
value1とvalue2を入れ替えます。逆向きに動かす場合は、入力範囲を逆転させず、出力のvalue1とvalue2を入れ替えてください。
音の大きさに連動させるときの注意点は?
音への連動は、生成された「両方のチャンネル」のスライダーをピックウィップで参照し、実際の値を見て上限を決めます。2026年10月15日に After Effects 26.5.0 の日本語表示で試したところ、ピックウィップで日本語の名前の参照が入り、自作のテスト音では中くらいの音でスライダーが約35になって、上限20の式では不透明度が100%で止まりました。ステレオの音や複数の音声レイヤーでは試していません。
