Unity/트러블 슈팅

[Unity] Animator 반복 재생 프레임 끊김

turbulence93 2025. 5. 13. 20:30

1. 문제 발생

Idle 애니메이션을 제작하던 중, 루프 재생 시 프레임이 끊기는 듯한 현상이 발생했다.
오브젝트의 Y값을 조절하여 위 아래로 살랑 살랑 흔들리는 12프레임 애니메이션을 만들었는데,
시작(0프레임) 프레임과 끝(12프레임) 프레임의 y축이 같아서 루프 재생 시 1프레임이 멈춰있는 것처럼 보였다.

0프레임 y=0  
3프레임 y=1  
6프레임 y=0  
9프레임 y=-1  
12프레임 y=0 ← 다시 0프레임으로 이어질 때 정지된 듯한 느낌 발생
프레임 끊김

2. 다양한 시도

  • 애니메이션을 11프레임으로 만들기
    • 마지막 프레임이 0프레임과 이어지지 않게 하려는 의도였지만, 여전히 같은 위치이기 떄문에 동일한 문제 발생
  • 마지막 프레임 값을 원점과 다르게 조정
    • 마지막 프레임을 0이 아닌 -0.7 정도로 맞춰서 원점으로 넘어갈때 프레임이 멈추지 않게 시도
    • 그러나 0.3정도의 거리를 툭 건너 뛰어 버리기 때문에 처음부터 더욱 부자연스러운 애니메이션이 되어버림
  • 마지막 프레임을 그대로두고 애니메이션 프레임 확장하기
    • 오히려 원점에 더 오래 머무르는 효과가 생겨 루프가 더 어색해짐

3. 문제 해결 

Animation 창의 Curves 탭을 이용하여 문제를 해결헀다.

 

curves 옵션

Curves는 애니메이션을 그래프로 확인하고 조절할 수 있는데 몇가지 추가 기능이 있다.

 

조절하고 싶은 옵션, 즉 Position의 y값의 그래프를 우클릭하면 옵션을 선택할 수 있는데,

Curves 우클릭

Clamped Auto -> Auto로 변경해 주면 해결 가능하다.


Auto로 변경하면 마지막 프레임과 시작 프레임 사이의 연결을 부드럽게 해주어 루프 시 끊김 없이 자연스럽게 이어진다.

 

해결 완료!

4. 기타 궁금증

그럼 Clamped Auto 옵션은 어떨때 사용할까?

 

  • 애니메이션의 처음과 끝이 연결되지 않아도 되는 경우
    예: 걷기, 점프 등의 비루프 동작
  • 곡선이 튀거나 지나치게 부드러워지는 것이 문제가 되는 경우
    예: 물리적으로 안정적인 움직임이 필요할 때

찾아보니 위 상황처럼 애니메이션이 루프하지 않을때 안정적인 관리에 더 유리하다고 한다.

말 그대로 애니메이션이 급격하게 변하거나 할 때 오버슈팅 되지 않게 Clamp 해 주는 옵션이다.

점프나 충돌 같은 물리 기반 애니메이션에는 Clamped Auto를 사용하여 애니메이션을 관리해보자.