게임 애니메이션에서는 두 가지 이상의 모션을 블렌드하는 작업을 자주 합니다. 가장 흔한 예로 캐릭터의 속도에 따른 걷기와 달리기 애니메이션 블렌딩을 들 수 있습니다. 또 다른 예로는 캐릭터가 달리다가 꺾을 때 좌우로 몸을 기울이는 것과 같은 경우가 있습니다.
트랜지션과 블렌드 트리를 구별하는 것이 중요합니다. 둘 다 자연스러운 애니메이션을 만들기 위해 사용되나, 각각 다른 종류의 상황에 사용된다는 차이가 있습니다.
Transitions 는 일정 시간 안에 어떤 애니메이션 스테이트에서 다른 애니메이션 스테이트로 매끄럽게 전환하는 데 사용됩니다. 트랜지션은 애니메이션 상태 머신의 일부로서 지정됩니다. 어떤 모션에서 전혀 다른 모션으로 트랜지션되는 경우도 트랜지션이 빠르게 일어난다면 보통 문제가 없습니다.
Blend Trees 는 여러 개의 애니메이션을 블렌드하고, 각 애니메이션의 일부가 각각 다른 비중으로 합쳐져 매끄럽게 블렌딩되도록 하기 위해 사용합니다. 각각의 모션이 최종 효과에 어느 정도 영향을 주도록 할 것인지는 블렌딩 파라미터 를 사용하여 제어하는데, 이 파라미터는 애니메이터 컨트롤러에 관련된 수치인 애니메이션 파라미터 중에서 하나입니다. 모션을 자연스럽게 블렌드하기 위해서는 성질과 타이밍이 유사한 모션끼리 블렌드되어야 합니다. 블렌드 트리는 애니메이션 상태 머신의 특별한 스테이트 타입입니다.
유사한 모션의 예로 다양한 걷기와 달리기 애니메이션이 있습니다. 제대로 블렌드하기 위해, 클립에서의 움직임이 정규화된 시간 기준으로 같은 시점에 일어나야 합니다. 예를 들어, 걷기와 달리기 애니메이션에서 발이 땅에 착지하는 동작이 정규화된 시간 기준 같은 순간에 일어나도록 일치시킬 수 있습니다(왼발이 0.0에 착지, 오른발이 0.5에 착지 등). 정규화된 시간이 사용되기 때문에, 클립의 길이가 달라도 무방합니다.
새로운 블렌드 트리에서 작업하기 위해 다음 단계를 수행합니다.
이제 애니메이터 창에 전체 블렌드 트리의 그래프가 나타나며, 인스펙터는 현재 선택된 노드와 그 직계 자식 노드를 보여줍니다.
애니메이션 클립을 블렌드 트리에 추가하기 위해서는 블렌드 트리를 선택하고 인스펙터의 모션 필드에 있는 + 아이콘을 클릭하면 됩니다.
또는 블렌드 트리에서 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 선택하는 방식으로 애니메이션 클립이나 자식 블렌드 노드를 추가할 수도 있습니다.
블렌드 트리에 애니메이션 클립과 입력 파라미터를 설정하면, 파라미터 값이 변할 때 애니메이션이 어떻게 합쳐지는지를 인스펙터 창에서 그래픽 시각화를 통해 보여줍니다. 슬라이더를 드래그하면 트리의 루트에서 나오는 화살표의 셰이딩이 변화하면서 현재 어떤 애니메이션 클립이 우세한지 보여줍니다.
블렌드 트리 그래프의 어떤 노드든지 선택하여 인스펙터에서 확인할 수 있습니다. 선택한 노드가 애니메이션 클립일 경우 해당 애니메이션 클립의 인스펙터가 나타납니다. 애니메이션을 모델에서 임포트한 경우, 읽기 전용으로 설정됩니다. 블렌드 노드를 선택했다면 블렌드 노드의 인스펙터가 나타납니다.
블렌드 타입 메뉴에서 1D 또는 2D 블렌딩을 선택할 수 있습니다. 두 타입의 차이는 이 섹션의 해당 페이지에서 설명합니다.
애니메이션 간의 블렌딩은 선형 보간을 사용하여 이루어집니다(즉, 각 애니메이션의 양은 블렌딩 파라미터에 의해 가중된 개별 애니메이션의 평균치입니다). 그러나 루트 모션은 이와 같은 방식으로 보간되지 않는다는 점을 명심해야 합니다. 캐릭터에 미칠 수 있는 영향에 대한 자세한 내용은 루트 모션 페이지를 참조하십시오.
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.