애니메이션 제어기 상태

상태는 캐릭터가 하고 있는 무언가에 해당합니다. 상태는 걷기, 달리기, 점프하기, 쉬기 같은 것일 수 있습니다. 각 상태는 캐릭터가 해당 상태일 때 재생되는 특정 애니메이션, 또는 애니메이션의 조합과 연관되어 있습니다. 캐릭터는 한 시점(레이어별)에 틀림없이 한 상태에 놓입니다.

상태 그래프에서 상태는 상태 간에 가능한 전환을 나타내는 상자와 화살표로 표현됩니다. 전환은 애니메이션 이벤트로 트리거되고, 특정 전환을 트리거하는 애니메이션 이벤트의 이름은 전환 화살표 옆에 표시됩니다.

Anim Controller Editor에서 상태 관련 작업을 하는 방법:

목표 수행 작업
상태 선택 및 이동 클릭하고 드래그합니다.
여러 상태를 선택해 복사 및 붙여넣기 Shift-클릭합니다.
여러 상태를 선택하여 하나의 그룹 상태로 이동 그래프 또는 트리 뷰에서 여러 상태를 선택하여 한 그룹 상태로 끌어다 놓습니다.
새 상태 생성 그래프 또는 트리 뷰를 마우스 오른쪽 버튼으로 클릭하고 팝업 메뉴에서 선택합니다.
두 상태 간에 전환 생성 전환 시작 상태의 작은 상자에서 전환 상태로 드래그합니다.

엔진은 다양한 효과를 나타내는 아주 다양한 애니메이션 상태 유형을 지원합니다. 상태 유형은 아래 설명되어 있습니다.

클립 상태

이 상태가 가장 일반적인 상태로 단지 단일 애니메이션을 재생하는 상태입니다. 이 상태에 대한 다양한 설정은 클립 상태 특성에서 설명합니다. (대부분의 설정을 다른 상태 유형에서도 사용할 수 있습니다.)

빈 상태

빈 상태는 애니메이션을 전혀 재생하지 않는 상태입니다. 이 상태는 기본 레이어가 빛나게 하고 싶을 때 상위 레이어에서 유용하게 사용할 수 있습니다.

애디티브 클립 상태

클립 상태와 동일하지만 애디티브 클립 애니메이션을 재생합니다. 애디티브 클립 애니메이션은 모든 비-애디티브 애니메이션을 해석하고 나면 캐릭터에 적용됩니다. 일반적으로 이 상태는 상위 레이어에 설정해 총 반동 또는 명중 반응 같은 특수 효과를 적용합니다.

혼합 상태

혼합은 3가지 유형이 있습니다.

1D 및 2D 혼합 공간 상태는 가장 단순하고 직관적이며, 대개 이 상태로 시작하는 것이 가장 좋습니다. 이 상태를 이용하면 애니메이션을 포함하고, 변수를 주어 구동시킬 수 있습니다. 상태를 혼합할 지점의 번호를 입력합니다.

사용자 정의 혼합 상태는 좀 더 복잡합니다. 사용자 정의 혼합 상태는 다수의 애니메이션과 다양한 가중치를 혼합합니다.

시간 상태

시간 상태를 이용해 변수를 기준으로 상태의 플레이헤드를 구동할 수 있습니다. (게임 엔진이 업데이트될 때마다 변수를 사용해 어느 프레임을 해석할지 지정해주어야 합니다.)

클립의 시간이 자체 재생을 통해 구동되도록 하는 대신 시간 상태를 이용하여 값을 통해 시간을 구동할 수 있습니다. 이는 Maya 또는 Maya LT의 Set Driven Key와 비슷하게 작동합니다. 즉, 매개변수 하나가 있고, 다른 매개변수로 이를 구동시키는 방식입니다. 이 경우에는 시간이 매개변수로 구동됩니다.

이 엔진은 입력 변수를 수락해, 이를 사용하여 표시되는 프레임의 시간을 제어합니다. 스크립트가 시간 변수를 바꾸지 않는 한 시간 상태는 동일한 프레임에 그대로 고정됩니다.

시간 상태를 사용할 법한 예로는 여러 각도로 발사하도록 구성할 수 있는 곡사포를 들 수 있습니다. 각 각도에서의 곡사포 구성을 포함한 애니메이션을 만든 다음 시간 변수를 사용하여 각도를 설정할 수 있습니다.

포가 정면을 똑바로 조준하다가 위쪽을 조준하도록 움직이는 예를 들어보겠습니다. 이 경우 0 – 1 float 변수(0은 정면, 1은 위쪽) 같은 변수를 사용하여 포를 직접 구동할 수 있습니다.

봉제 인형 상태

봉제 인형 상태는 특정 봉제 인형을 활성화합니다. 봉제 인형을 설정하는 방법에 관한 정보는 아래의 봉제 인형 설명을 참조하십시오.

그룹 상태

복잡한 캐릭터에 대한 애니메이션 상태 머신에는 수백 개의 상태가 포함될 수 있습니다. 이 정도 되면 상태 그래프가 너무 어수선해서 읽기 어려워집니다.

그룹 상태는 이런 복잡함을 해결하는 방법입니다. 이 상태를 통해 관련 상태 집합을 정리할 수 있습니다. 예를 들어, 클라이밍과 관련된 모든 상태(클라이밍 업, 클라이밍 다운, 클라이밍 점프)를 하나의 클라이밍 상태로 그룹화할 수 있습니다.

다른 상태에서처럼 그룹 상태에서 끝나는 전환 및 그룹 상태에서 시작하는 전환을 만들 수 있습니다. 기본적으로 그룹 상태에서 시작하는 전환은 전환을 시작하려는 중첩 상태를 명시적으로 설정하지 않는 한 그룹 상태의 모든 상태에 적용됩니다.

이 그룹 내에서 특정 중첩 상태에 특정 전환을 설정하고 싶은 경우 해당 그룹에서 시작하는 추가 전환을 만들고, 이 전환의 From State를 전환을 시작하려는 중첩 상태로 명시적으로 설정함으로써 모든 상태에서 시작하는 전환을 오버라이드할 수 있습니다.

그룹 상태에서 끝나는 전환의 경우, To State 드롭다운 메뉴에서 전환이 끝나는 중첩 상태를 선택합니다. (이 작업은 전환 섹션에서 보다 자세히 설명합니다.)

목표 수행 작업
그룹
탐색(그룹 상태 내 상태 표시)
그룹 상태를 두 번 클릭합니다.
그룹 상태 외부로 돌아가기 배경을 두 번 클릭합니다.
그룹 상태 생성 Ctrl+G
그룹 상태 그룹화 해제 Ctrl+Shift+G
상태를 그룹으로 이동 Anim Controller 창 그래프 또는 트리 뷰에서 상태를 그룹으로 드래그

그룹 상태의 중첩 수준은 여러 개일 수 있습니다.

그룹 상태에 제약 조건 및 음소거 레이어를 추가할 수 있고, 그러면 모든 하위요소가 이를 상속합니다. (하위요소는 일부 다른 상태에 있을 수 있는 항목은 상속하지 않습니다.)

지름길 상태

상태가 그룹에 중첩되어 있는지 여부에 관계없이 상태 그래프에서 상태 간에 전환을 만들 수 있습니다.

지름길 상태의 목적은 상태 머신 그래프에서 가까이 위치하고 있지 않은 상태에서 끝나고, 시작하는 전환을 쉽게 만드는 데 있습니다.

지름길 상태는 레이어의 다른 위치에 있는 상태에 대한 참조일 뿐입니다(다른 레이어의 상태는 서로 다른 상태 머신에 있기 때문에 그 상태 간에는 전환을 만들 수 없습니다).

Target > 지름길 상태가 "가리키는" 상태입니다. 기본적으로 타겟은 이 그룹입니다. (지름길이 포함된 그룹).

이 지름길에서 시작하는 전환은 해당 그룹에서 시작하는 전환으로 취급됩니다. 지름길에서 시작하여 그룹 내 다른 상태에서 끝나는 전환을 만들면, 그룹 내 기타 모든 상태에서 시작하여 금방 연결한 상태에서 끝나는 전환을 만드는 것입니다.

경고: 전환이 트리거될 때마다 모든 프레임에 적용되며, 이는 혼합 중에도 마찬가지입니다. 그룹에서 시작하는 지름길을 사용하는 경우, 계속해서 다시 자신에게 전환/혼합되지 않도록 이벤트를 모든 프레임에 전송하지 않도록 해야 합니다.

TransitionSwitch

런타임 시 전환의 대상 상태가 될 항목을 선택할 수 있는 전환 노드입니다. 이 선택은 표현식의 런타임 평가에 따라 정해집니다.

TransitionSwitch 노드에는 조건부 전환을 트리거하는 애니메이션 이벤트가 포함된 TransitionSwitchEntries라는 진입 전환과 다양한 혼합 설정 및 애니메이션 상태 대상이 포함된 TransitionSwitchExits라는 여러 출구 전환이 있습니다. 각 출구 전환에 대해 설정된 값들의 간격도 나열되어 있습니다. TransitionSwtich 노드는 런타임 시 표현식을 평가하고, 평가된 표현식을 기준으로 순서대로 테스트한 값들의 간격에 따라 출구 전환으로 전환합니다.

TransitionSwitch 노드 표현식에는 현재 애니메이션 제어기의 기존 변수 이름이 있을 수 있으며, sin, cos, abs, match, match_2d, match_range, 및 match_range_2d 등의 연산자가 포함될 수 있습니다. 표현식에는 레이어의 시드로부터 난수를 생성하기 위한 rand 연산자도 포함될 수 있습니다. C 또는 LUA에서 각 레이어에 대한 난수 생성기의 시드를 설정할 수 있습니다.

진입 및 출구 전환의 이름과 특성을 편집하고, 출구 전환의 간격 범위 최소/최대 값을 변경하고, 아래/위 화살표를 사용하여 각 출구 전환의 간격 범위 순서를 다시 지정할 수 있습니다.