IT用語集 › プログラミング › Lerp(線形補間)

Lerp(線形補間)

プログラミング Svenska → 更新: 2026-10-26

二つの値を結ぶ直線上の点を選ぶ関数a + (b − a) · t。ゲーム開発で最も多く呼ばれるコード行と言ってもおそらく過言ではない。

t = 0ならa、t = 1ならbになり、その間は直線的に滑らかに移る。位置、色、音量、カメラのズームなど、ある状態から別の状態へ滑らかに動かしたいものは全てlerpを通り、tにイージング曲線をかけることも多い。HLSLではlerp、GLSLではmixと呼ばれ、C++にstd::lerpが入ったのは2020年だ。回転には別の手法、slerpが必要になる。

典型的な落とし穴が、毎フレームx = lerp(x, target, 0.1)と書くことだ。スムージングに見えて、実はフレームレートに依存する。144 Hzでは60 Hzの2倍以上の速さでカメラが追いつく。正しくはデルタタイムを使ってt = 1 − exp(−k · dt)とする。もう一つ、a·(1−t) + b·tという形も覚えておく価値がある。浮動小数点の丸めがあっても、t = 1でちょうどbになるからだ。

← 用語集に戻る