내일배움캠프

내일배움캠프 Unity - TIL : 25.03.06

달시_Dalsi 2025. 3. 6. 23:36
728x90

오늘 학습한 내용

1) InputSystem 보간을 통한 Blend Tree 애니메이션 적용

 

  • 새로운 InputSystem은 기존의 Input.GetAxis와 달리 최종 값만 반환하기 때문에 바로 Blend Tree에 적용하면 애니메이션 전환이 자연스럽지 않고 끊기는 현상이 발생함을 확인했습니다.
  • 이를 해결하기 위해 Update() 내에서 현재 값(smoothDir)과 최종 입력 값(targetDir) 사이를 보간하기 위해 Vector2.Lerp() 함수를 사용하였습니다.
  • 구체적으로 아래와 같이 작성하여 자연스러운 애니메이션 전환을 구현하였습니다:

 

smoothDir = Vector2.Lerp(smoothDir, targetDir, smoothTime);

여기서 targetDir은 InputSystem을 통해 받은 최종 값이며, smoothDir은 현재 사용 중인 값입니다.

 


문제 및 해결 과정

문제

InputSystem의 최종 값만 반환하는 특성 때문에 Blend Tree의 자연스러운 애니메이션 연결이 제대로 이루어지지 않아 애니메이션이 뚝뚝 끊겨 보이는 문제가 발생하였습니다.

 

시도한 해결 방법

Update() 함수에서 Vector2.Lerp()를 사용하여 현재 값과 목표 값 사이를 부드럽게 보간하고 이를 Blend Tree에 전달함으로써 자연스러운 애니메이션 전환을 구현하였습니다.

 

결과

보간을 적용한 후 Blend Tree에 적절한 값이 전달되어 애니메이션 전환이 부드럽게 이루어짐을 확인하였습니다.


새롭게 알게 된 점

보간 기법의 중요성

InputSystem의 최종 값만으로는 자연스러운 애니메이션 전환을 할 수 없음을 깨달았으며 현재 값과 목표 값 사이를 보간하는 기법(Vector2.Lerp)을 통해 Unity의 Blend Tree 기능을 사용할 수 있다는 점을 배웠습니다.

728x90