기본적으로 캐릭터는 항상 특정 종류의 액션을 취하고 있다 봅니다. 취할 수 있는 액션은 게임플레이의 타입에 따라 다르지만 일반적으로 대기, 걷기, 달리기, 점프 등이 있습니다. 이 액션들을 states 라고 하는데 캐릭터가 걷거나 대기하는 등의 “상태”에 있다는 의미에서 유래되었습니다. 일반적으로 캐릭터가 어떤 상태에서 다른 어떤 상태로든 즉시 전환될 수 있는 것이 아니기에 다음에 전환할 수 있는 상태에 제약이 있습니다. 예를 들어, 달리면서 점프하는 액션은 캐릭터가 이미 달리고 있는 상태에서만 취할 수 있으며 가만히 서 있는 상태에서는 취할 수 없습니다. 따라서 대기 상태에서 달리며 점프라는 상태로 곧바로 전환해서는 안 됩니다. 현재 상태에서 캐릭터가 넘어갈 수 있는 다음 상태에 대한 옵션을 state transitions 이라고 합니다. 종합해 보면, 상태의 집합, 전환의 집합, 현재 상태를 기억하기 위한 변수가 합쳐 state machine 을 이룹니다.
상태 머신의 상태와 전환은 다이어그램으로 나타낼 수 있습니다. 노드는 상태를 나타내며 노드 사이의 화살표가 전환을 나타냅니다. 현재 상태는 노드 중 하나에 위치한 마커 또는 하이라이트를 통해 알 수 있으며 다른 노드로 넘어갈 때에는 화살표들 중에 하나를 따라서만 갈 수 있습니다.
애니메이션에서 상태 머신이 중요한 이유는 상대적으로 적은 코딩만으로도 상당히 쉽게 설계 및 업데이트할 수 있기 때문입니다. 각 상태에는 연계된 모션이 있어서 상태 컴퓨터가 해당 상태에 있을 때마다 재생됩니다. 이를 통해 애니메이터나 디자이너는 코드가 어떻게 동작할지를 고려하지 않고도 캐릭터 액션 및 애니메이션의 가능한 시퀀스를 정의할 수 있게 됩니다.
Unity의 애니메이션 상태 머신은 특정 캐릭터에 관련된 애니메이션 클립 전부를 파악하는 방법과 게임에서 다른 애니메이션을 트리거하기 위한 다양한 이벤트(예: 사용자 입력)를 사용할 수 있는 방법을 제공합니다.
애니메이션 상태 머신은 애니메이터 컨트롤러 창에서 설정할 수 있으며 다음과 같습니다.
상태 머신은 States, Transitions, Events 로 구성되며 더 작은 서브 상태 머신은 더 큰 머신의 컴포넌트로 사용될 수 있습니다. 자세한 내용은 애니메이션 상태 및 애니메이션 전환 레퍼런스 페이지를 참조하십시오.
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.