유니티 애니메이션 블렌드[Blend Tree]
Intro
이번 포스팅에서는 캐릭터의 애니메이션을 설정할 때 사용되는 블렌드 트리에대해서 정리해봤습니다.
블렌드 트리
게임 애니메이션에서는 두 가지 이상의 모션을 블렌드하는 작업을 자주하게되는데, 가장 흔한 예로는 캐릭터의 속도에 따른 걷기, 달리기등의 블렌딩이 있습니다. 또 캐릭터가 달리다가 꺾을 때 좌우로 몸을 기울이는 등의 경우가 있습니다.
트랜지션(Transition)과 블렌드 트리는 모두 자연스러운 애니메이션을 만들기위해 사용되지만 다음과 같은 차이점이 있습니다.
- Transition는 일정 시간 안에 어떤 애니메이션 스테이트에서 다른 애니메이션 스테이로 매끄럽게 전환하는 데 사용됩니다. 트랜지션은 애니메이션 State Machine의 일부로 지정됩니다.
- Blend Tree는 여러 개의 애니메션을 블렌드하고, 각 애니메이션의 일부가 각각 다른 비중으로 합쳐져 매끄럽게 블렌딩되도록 하기위해 사용됩니다. 각 모션이 최종 효과에 어느정도 영향을 줄것인지는 블렌딩 파라미터를 통해 제어하는데 이 파라미터는 컨트롤러에 관련된 수치인 애니메이션 파라미중 하나입니다. 따라서 모션을 자연스럽게 블렌드하기 위해서는 성질과 타이밍이 유사한 모션끼리 블렌드해야 합니다.
블렌드 트리 만들어 사용하기
블렌드 트리를 만드는 방법은 간단합니다.
-
애니메이터창에서 마우스 우클릭을 하여 Create State - From New Blend Tree 를 선택하면됩니다.
-
블렌드 트리와함께 Blend라는 이름의 Float형식 파라미터가 생기게됩니다.
-
블렌드 트리를 더블클릭하여 트리를 구성할 수 있습니다.
블렌드 트리를 마우스 우클릭하면 Add Motion을 선택하여 필요한 모션을 추가할 수 있습니다. 또는 인스펙터창에서 + 기호를 눌러 추가할수도 있습니다.
저는 캐릭터가 가만히있는, 걷는, 뛰는 모션을 추가해보았습니다.
Threshold는 한계점이라는 말로, 위의 사진에서는
- Speed가 0 ~ 0.1 일때 Idle과 Walk 애니메이션을,
- Speed가 0.1 ~ 1 일때 Walk와 Run 애니메이션을 블렌드한다는 의미입니다.
Threshold는 기본적으로 변경이 불가하도록되어있는데, 아래 Automate Thresholds 옵션을 체크해제하면 원하는값으로 설정할 수 있습니다.
Threshold를 위와같이 설정한 이유는 캐릭터가 조금이라도 움직이는순간에 Walk애니메이션이 실행되어야하고, Speed값이 일정수준 커지면 Run 애니메이션으로 전환시키기 위함입니다.
아래는 블렌드된 애니메이션을 Speed를 키워가며 테스트해본 결과입니다.
뭔가 어색한것이 느껴지시나요? 블렌드 트리를 만들 때 주의해야 할 점이 바로 모션간의 유사성입니다. 블렌드는 모션에서 모션으로 자연스럽게 이어주는것이므로 블렌드할 모션들이 비슷하지않다면 이상한 동작이 연출될 수 있습니다.
댓글남기기