보간법 ( Interpolation )
두 개 이상의 값 사이의 중간값을 계산하거나 부드럽게 이어주는 과정을 말한다
게임이나 그래픽 , 물리 시뮬레이션 등에서 자연스러운 움직임 , 색 변화 , 회전 , 위치 이동 등을 만들때 자주 사용한다.
Interpolation 은 기존 데이터나 상태 사이의 연속적인 변화 ( transition ) 를 만들기 위한 수학적 계산 방법이다.
- A 위치에서 B 위치로 캐릭터가 순간이동하지 않고
- 시간에 따라 점점 이동하는 부드러운 움직임을 만드는 게 보간의 대표적인 사례이다
종류
| 종류 | 설명 | 예시 |
| Linear Interpolation ( Lerp ) | 두 값 사이를 직선 비율로 계산 | Mathf.Lerp(0, 10, 0.5) → 5 |
| Spherical Interpolation ( Slerp ) | 회전(Quaternion)처럼 곡면 위를 따라 부드럽게 이동 | Quaternion.Slerp(rotA, rotB, 0.5) |
| SmoothStep / LerpUnclamped | 가속·감속이 포함된 더 자연스러운 이동 | 시작과 끝에서 천천히, 중간에 빠르게 |
| Cubic / Bezier / Hermite | 곡선 형태의 보간으로 매우 부드러운 궤적 | 애니메이션 커브, 카메라 트래킹 등 |
Unity 에서의 예시 코드
transform.position = Vector3.Lerp(startPos, endPos, Time.deltaTime * speed);
- StartPos → 시작 위치
- endPos → 목표 위치
- t ( 여기선 Time.deltaTime * speed ) → 0 ~ 1 사이의 비율 값
t = 0 이면 시작점 , t = 1 이면 끝점
그 사이의 값이면 중간 위치
활용
- 캐릭터 이동, 회전
- 카메라 전환 / 줌 효과
- 색상 전환 ( Color.Lerp )
- UI 애니메이션
- 물리 기반 시뮬레이션 보정 ( 프레임 간 보간 )
주의할 점
- t 값이 0 ~ 1 을 넘어가면 결과가 비정상적이거나 extrapolation ( 외삽 ) 이 된다.
- Time.deltaTime 을 직접 사용하기보다 누적 시간 ( Time elapsed ) 으로 제어하는 게 더 자연스럽다.
- 회전에는 반드시 Quaternion.Slerp 를 사용해야 한다 ( Euler 보간은 궤적이 틀어질 수 있음 )
정리
Interpolation은 두 값 사이를 부드럽게 이어주는 계산으로 자연스러운 움직임과 전환을 만드는 핵심 원리
'🧊Unity Basic > 수학&보정함수' 카테고리의 다른 글
| Lerp & MoveTowards (0) | 2025.10.19 |
|---|---|
| Clamp (0) | 2025.10.19 |