
3.6 상태 머신 생성
Tutorial
Beginner
+10XP
30 mins
(7)
Unity Technologies

이 튜토리얼에서는 상태 머신에 대해 알아보고 상태 머신을 생성하는 방법을 배워 보겠습니다. 상태 머신은 Animator 컨트롤러의 핵심 구조 중 하나입니다.
1. 개요
이 튜토리얼에서는 상태 머신에 대해 알아보고 상태 머신을 생성하는 방법을 배워 보겠습니다. 상태 머신은 Animator 컨트롤러의 핵심 구조 중 하나입니다.
2. 시작하기 전에
이 튜토리얼을 완료하기 위해 '3D 애니메이션 시스템 소개'의 Unity 프로젝트를 사용하지 않아도 됩니다.
3. 상태 머신 소개
각 Animator 컨트롤러에는 하나 이상의 애니메이터 레이어(또는 레이어)가 있고, 각 애니메이터 레이어에는 상태 머신 하나가 있습니다. 그러나 상태 머신 안에는 추가 상태 머신이 중첩되어 있을 수 있습니다.
이러한 중첩 기능이 있다는 것은 상태 머신이 연관된 여러 상태를 함께 관리하는 데 탁월한 정리 툴이라는 뜻입니다.
4. 상태 머신 생성
대부분의 애니메이션 기능과 달리 상태 머신은 정리만을 위한 툴입니다. 상태 머신을 사용하면 누가 만든 Animator 컨트롤러나 쉽게 이해할 수 있게 상태와 전환을 하나로 그룹화할 수 있습니다.
정리할 상태가 아주 많은 것이 아니라면 상태 머신을 생성하지 않는 편이 더 효율적일 수 있습니다. 주어진 프로젝트와 상황에 따라 상태 머신의 생성 여부가 달라질 수 있습니다. 이 교육 과정 전반에 걸쳐 제시되는 애니메이션 예제는 상대적으로 단순하기 때문에 상태 머신이 포함되지 않습니다.
상태 머신을 생성해 보려면 다음 단계를 따르세요.
1. Animator 컨트롤러의 배경을 오른쪽 클릭하고 Create Sub-State Machine을 선택합니다.
하위 상태 머신인 이유는 각 레이어에 기본적으로 상태 머신이 포함되어 있기 때문입니다. 작업자가 생성하는 모든 상태 머신이 이미 레이어의 기본 상태 머신 안에 중첩되어 있습니다.
2. 새로 생성된 하위 상태 머신을 더블 클릭해 엽니다.
3. (Up) 노드를 더블 클릭해 부모 상태 머신으로 돌아갑니다.
상태 머신에 상태를 추가하는 방법 중 두 가지는 다음과 같습니다.
- 상태 머신을 더블 클릭해 열고 일반적인 방법과 마찬가지로 상태를 생성합니다.
- 이미 생성한 상태를 클릭하고 상태 머신의 노드 위로 드래그해 상태 머신에 추가합니다.
5. 상태 머신 전환 살펴보기
상태 머신에 대해 이야기할 때 반드시 이해해야 하는 좀 더 복잡한 개념을 하나 꼽으라면 바로 전환입니다. 상태 머신은 물론 그 안에 중첩된 어떤 것으로든 전환을 수행할 수 있습니다. 따라서 전환이 매우 다양해지지만, 그 범위를 좁히는 것도 가능합니다.
상태 머신을 통한 전환을 대략적으로 알아보겠습니다. 상태 머신이란 중첩된 상태를 감싼 하나의 상자라고 간주해 보겠습니다.
상태 머신에서 외부로 전환
상자 안에서 상자 밖으로 전환하려 한다면 다음 두 가지 옵션 중에서 하나를 선택할 수 있습니다.
1. 상자 내부에서 외부로 직접 전환할 수 있습니다.
2. 아니면 상자 안에서 상자 자체로 전환한 후 상자에서 상자 바깥으로 전환할 수 있습니다.
상태 머신 외부에서 전환
마찬가지로 상자 외부에서 내부로 전환하려 한다면 다음 두 가지 옵션 중에서 하나를 선택할 수 있습니다.
1. 상자 외부에서 내부로 직접 전환할 수 있습니다.
2. 아니면 상자 밖에서 상자 자체로 전환한 후 상자에서 상자 안으로 전환할 수 있습니다.
6. 상태 머신 노드 살펴보기
상태 머신을 구성할 때 Up, Entry, Exit 등의 노드를 다음과 같이 활용할 수 있습니다.
- [스탠드얼론] 상태 또는 상태 머신 사이에서 전환
- 다른 상태 머신 안에 중첩된 상태 또는 상태 머신 사이에서 전환
Up 노드는 내부 노드와 외부 노드 사이의 직접 전환을 나타냅니다.
Entry 및 Exit 노드는 상태 머신 자체에서 나가거나 들어오는 전환에 사용됩니다. 그런 다음 상태 머신에서 나가거나 들어오는 하나 이상의 전환과 결합해야 합니다.
Entry 및 Exit 노드를 사용해 전환
애니메이션 블렌딩은 현재 상태에서 다음 상태로 전환한 결과입니다. 이 튜토리얼에서 설명했듯이 상태 머신은 그러한 과정을 훨씬 더 복잡하게 만들 수 있으나, 복잡한 작업을 수행하는 데 도움이 되기도 합니다.
전환은 다음 요소의 조합입니다.
- 전환이 언제 발생하는지 결정하는 로직
- 현재 상태와 다음 상태가 블렌딩되는 방식을 결정하는 블렌딩
상태가 아니라 상태 머신을 사용하여 전환할 때 로직과 블렌딩이 여러 개의 전환으로 분할됩니다. 전환의 일부는 순전히 로직만 담당하고, 일부는 로직과 블렌딩을 모두 처리합니다.
블렌딩 정보는 상태에서 출발하는 전환에 포함되어 있습니다.
7. 요약
이 튜토리얼에서는 Unity에서 상태 머신을 언제, 어떻게 사용하는지 살펴보았습니다. 아래와 같은 내용을 배웠습니다.
- 상태 머신은 순수한 정리 툴입니다.
- 상태 머신은 상태가 다양한 복잡한 애니메이션을 다룰 때 유용합니다.
- 비교적 단순한 애니메이션을 다룰 때 상태 머신을 활용하면 오히려 작업이 복잡해질 수도 있습니다.
이어지는 다음 튜토리얼에서는 애니메이션 레이어의 역할을 살펴보겠습니다. 애니메이션 레이어를 생성하는 방법을 배우고, 설정을 살펴보고, 이를 이용해 블렌딩하려는 애니메이션을 어떻게 제어할지 고민해 보겠습니다.