[Unity] 블랜드 트리(Blend Tree)

Learning 

When: 1학년 8월 16일

 

How:

학교 수업 시간에 블랜드 트리에 대해 배웠는데, 최근에 배운 스프라이트 라이브러리와 같이
애니메이션과 연관된 유니티의 기능 중 하나이지만, 스프라이트 라이브러리가 반복 작업을 줄여주는
기능이라면, 블랜드 트리는 파라미터를 이용한 애니메이션 작업을
좀 더 깔끔하고 편하게 해주는 기능입니다.

 

Understanding:

    • 기능 : 원래 파라미터가 1 이상이면 애니메이션을 바꾸는 방식으로 애니메이션 작업을 했는데,
      만약 8방향 애니메이션이 있는 2D 캐릭터 작업을 한다고 했을 때, 위에서 오른쪽 아래로
      , 왼쪽에서 오른쪽 위로 애니메이션을 바꾸는 것이 가능하려면 8개를 모두 이어주어야 합니다.
      이것을 모두 하는 것은 상당한 노가다가 필요하기 때문에 그렇게 하는 대신 x방향의 속도가 1에
      가까우면 오른쪽 애니메이션 실행, -1에 가까우면 왼쪽 애니메이션 실행 이런 식으로
      조정할 수 있게 해주는 것이 블랜드 트리입니다.
    • 사용 방법 : 쉬운 예시로 상 하 좌 우 애니메이션을 실행하는 방법으로 블랜드 트리를 설명해 보겠습니다.
      1. 애니메이션 클립과 애니메이터를 만들어줍니다.
      2. 우클릭으로 'Create State - From new Blend Tree'를 눌러 블랜드 트리를 만들고,
        만들어진 버튼을 더블클릭하면 블랜드 트리를 손볼 수 있습니다. 다시 애니메이터로 
        가기 위해선 상단의 'Base Layer'를 클릭하면 됩니다. 그리고 상하좌우를 구별할 때
        필요한 X, Y의 속도를 각각 파라미터로 만들어줍니다.
      3. 블랜드 트리를 클릭한 후, 인스펙터 창에서 작업을 하면 되는데, 지금은 상, 하, 좌, 우 애니메이션을
        실행시키는 것이 목적이기 때문에 Blend Type을 2D Simple Directional로 설정해 주고, 
        Parameters를 x, y축 속도에 해당하는 파라미터 2개로 채워줍니다. 그리고 모션에서 + 버튼을 
        누르고 'Add Motion Field'를 눌러 현재 변수가 특정 값 근처로 왔을 때 실행할 애니메이션을 
        설정해 줍니다. 여기서 주의할 점은 저기 있는 모션이 위에 있을수록 우선순위가 높아 만약 
        XVelocity가 1이고 YVelocity도 1이면 Right 애니메이션과 Up 애니메이션 중 위에 있는 
        Right 애니메이션을 실행합니다. 둘 다 0이면 가장 우선순위가 높은 Down 애니메이션이 
        실행되고, X가 1, Y가 0이면 가장 가까운 Right 애니메이션이 실행될 것입니다.
        아래의 화면에서 빨간색 점이 현재 상태이고, 파란색 점이 하나의 필드인데, 가까울수록
        파란색을 감싸고 있는 원이 커집니다. 마우스로 빨간 점을 움직여보세요.

 

Result: 이렇게 하고 애니메이션 컴포넌트를 오브젝트에 붙이면 끝입니다. animator.Set~() 메서드를 이용해 파라미터를 조정하면 동작합니다.

'UnityEngine' 카테고리의 다른 글

[Unity] Unity 이벤트 메서드  (5) 2025.08.18
[Unity] Y-Sorting  (1) 2025.08.17
[Unity] DOTween  (1) 2025.08.14
[Unity] ~캐스트(~cast)  (0) 2025.07.21
[Unity] SceneManager  (0) 2025.07.21