Version: Unity 6.0 (6000.0)
언어 : 한국어
상태 머신 전환
애니메이션 블렌드 트리

애니메이션 전환

상태 머신의 애니메이션 전환을 사용하여 한 애니메이션 상태에서 다른 애니메이션 상태로 전환하거나 블렌드할 수 있습니다. 전환에는 상태 간의 블렌드 기간과 전환이 발생할 때의 조건을 정의합니다. 이러한 조건을 설정하려면 Animator 컨트롤러에서 파라미터 값을 지정합니다.

예를 들어 캐릭터가 ‘정찰’ 상태와 ‘수면’ 상태를 지니고 있을 수 있습니다. 이때 ‘Alertness’ 파라미터 값이 특정 수준 미만일 때만 정찰과 수면 간 전환이 발생하도록 설정할 수 있습니다.

인스펙터에 표시되는 전환의 예시
인스펙터에 표시되는 전환의 예시

전환의 이름을 지정하려면 다음 필드에 해당 이름을 입력합니다.

인스펙터 창에 해당 상태가 사용하는 전환이 표시됩니다.

특정 시간에 하나의 전환만 활성화할 수 있습니다. 하지만 현재 활성화된 전환을 다른 전환으로 중단하도록 설정을 지정할 수 있습니다. 자세한 내용은 전환 중단을 참조하십시오.

전환 프로퍼티

전환의 프로퍼티를 보려면 Animator 창에서 두 상태를 연결하는 전환 라인을 선택합니다. 그러면 인스펙터 창에 프로퍼티가 표시됩니다.

다음 프로퍼티를 사용하여 전환과 현재, 다음 상태를 어떻게 블렌딩할지 조절해야 합니다.

프로퍼티 기능
Has Exit Time Exit Time은 파라미터에 의존하지 않는 특별한 전환입니다. 대신 상태의 정규화된 시간에 의존합니다. 전환이 Exit Time에 지정된 특정 시간에 수행되도록 하려면 선택합니다.
Settings 자세한 전환 설정 항목이 있는 폴드 아웃 메뉴입니다. 각 전환 설정은 아래에 설명되어 있습니다.
Exit Time Has Exit Time을 선택한 경우 이 값은 전환이 적용될 수 있는 정확한 시간을 나타냅니다. 이것은 정규화된 시간으로 표시됩니다(예를 들어 종료 시간이 0.75이면 애니메이션이 75% 재생된 첫 번째 프레임에서 Exit Time 조건이 true임). 다음 프레임에서는 조건이 false입니다.

루프 애니메이션의 경우 종료 시간이 1보다 작은 전환은 매 루프마다 평가되므로 이를 사용하여 매 루프마다 애니메이션에서 적절한 타이밍으로 전환 시간을 조정할 수 있습니다.

Exit Time이 1보다 큰 전환은 한 번만 평가되므로 고정된 루프 후 특정 시간에 종료할 수 있습니다. 예를 들어 종료 시간이 3.5인 전환은 세 번 반의 루프 후에 한 번 평가됩니다.
Fixed Duration Fixed Duration 체크박스를 선택하면 전환 시간이 초 단위로 해석됩니다. Fixed Duration 체크박스를 선택하지 않을 경우 전환 시간이 소스 상태의 정규화된 시간의 일부분으로 해석됩니다.
Transition Duration Fixed Duration 모드에 따라 현재 상태의 지속 시간을 기준으로 한 전환 시간(정규화된 시간 또는 초)입니다. 이는 전환 그래프에서 두 파란색 마커 사이의 부분으로 시각화됩니다.
Transition Offset 전환되는 대상 상태에서 재생을 시작하는 시간의 오프셋입니다. 예를 들어 값이 0.5이면 타겟 상태가 타겟 타임라인의 50%에서 재생을 시작합니다.
Interruption Source 이 전환이 중단될 수 있는 상황을 제어하려면 이 설정을 사용합니다. 자세한 내용은 전환 중단을 참조하십시오.
Ordered Interruption 현재 전환이 순서와 관계없이 다른 전환에 의해 중단될 수 있는지 결정합니다(아래의 전환 중단 참조).
Conditions 전환에는 조건이 하나만 있거나, 조건이 여러 개 있거나, 조건이 하나도 없을 수 있습니다. 전환에 조건이 없는 경우 Unity 에디터는 Exit Time만 고려하며, 종료 시간에 도달하면 전환이 발생합니다. 전환에 조건이 하나 이상 있는 경우 전환을 트리거하기 전에 모든 조건이 충족되어야 합니다.

조건은 다음과 같이 구성됩니다.

- 이벤트 파라미터(조건에서 고려되는 값)
- 조건부 술어(필요할 경우, 예: 플로트의 경우 ‘보다 작은’ 또는 ‘보다 큰’)
- 파라미터 값(필요할 경우)

전환에 Has Exit Time을 선택하고 하나 이상의 조건이 있는 경우, Unity 에디터는 조건이 Exit Time 이후에 true인지 고려합니다. 이를 통해 애니메이션의 특정 부분에서 전환이 발생하는지 확인할 수 있습니다.

전환 중단

Interruption SourceOrdered Interruption 프로퍼티를 사용하여 전환이 어떻게 중단될지 조정해야 합니다.

중단 순서는 개념적으로 전환이 대기열인 것처럼 작동하고 삽입된 첫 번째 전환에서 마지막 전환까지 유효한 전환을 위해 파싱됩니다.

Interruption Source 프로퍼티

AnyState의 전환은 언제나 대기열에 가장 먼저 추가되고, 이후 다른 전환은 Interruption Source 값에 따라 대기열에 추가됩니다.

기능
None 더 이상 전환을 추가하지 말아야 합니다.
Current State 현재 상태의 전환을 대기열에 추가해야 합니다.
Next State 다음 상태의 전환을 대기열에 추가해야 합니다.
Current State then Next State 현재 상태의 전환을 대기열에 추가하고 다음 상태의 전환을 대기열에 추가해야 합니다.
Next State then Current State 다음 상태의 전환을 대기열에 추가하고 현재 상태의 전환을 대기열에 추가해야 합니다.

Ordered Interruption 프로퍼티

Ordered Interruption 프로퍼티는 대기열이 파싱되는 방식을 변경합니다.

이 값에 따라서 대기열 파싱은 아래 리스트와 같이 다른 시간에 끝납니다.

끝나는 시간
체크됨 유효한 전환 또는 현재 전환을 발견했습니다.
체크되어 있지 않음 유효한 전환을 발견했습니다.

AnyState 전환만 스스로 중단될 수 있습니다. 전환 중단에 대한 자세한 내용은 상태 머신 전환 중단을 참조하십시오.

전환 그래프

전환 그래프를 사용하여 전환 설정을 시각적으로 조정할 수 있습니다.

인스펙터에 표시된 전환 그래프
인스펙터에 표시된 전환 그래프

전환 그래프의 흰색 선은 각 상태의 IK 발 접촉을 나타냅니다. 그래프 상단은 왼발을 나타내고 하단은 오른발을 나타냅니다. 흰색 선이 그래프 상단에 있으면 왼발이 바닥 평면에 접촉하는 것입니다. 흰색 선이 하단에 있으면 오른발이 바닥 평면에 접촉하는 것입니다.

상태 간에 원활하게 전환될 때까지 전환 설정을 조정합니다. 흰색 선이 부드럽게 전환되면 발이 미끄러지거나 애니메이션에서 점프하지 않으며, 모션의 역동성을 유지합니다.

다음과 같이 조작하여 전환 설정을 조정합니다.

  • Duration “out” 마커를 드래그하여 전환의 Duration을 변경합니다.
  • Duration “in” 마커를 드래그하여 전환의 지속 시간과 Exit Time을 변경합니다.
  • 타겟 상태를 드래그하여 Transition Offset을 조정합니다.
  • 미리 보기 재생 마커를 드래그하여 인스펙터 하단 미리 보기 창에서 애니메이션 블렌드를 살펴볼 수 있습니다.

블렌드 트리 상태 전환

이 전환에 속한 현재 또는 다음 상태가 Blend Tree 상태이면 Blend Tree 파라미터가 인스펙터 창에 표시됩니다. 이 값을 조정하면 Blend Tree 값이 다르게 설정된 전환이 어떻게 보이는지 미리 볼 수 있습니다. 블렌드 트리에 길이가 다른 클립이 포함된 경우, 짧은 클립과 긴 클립을 모두 표시할 때 전환이 어떻게 보이는지 테스트해야 합니다. 이러한 값을 조정해도 런타임 시 전환이 동작하는 방식에는 영향을 미치지 않습니다. 단지 전환이 다른 상황에서 어떻게 보일지 미리 볼 수 있도록 지원합니다.

Blend Tree 파라미터 미리 보기 컨트롤, 현재 또는 다음 상태가 Blend Tree 상태일 때 표시됨
Blend Tree 파라미터 미리 보기 컨트롤, 현재 또는 다음 상태가 Blend Tree 상태일 때 표시됨

조건

전환에는 조건이 하나만 있거나, 조건이 여러 개 있거나, 조건이 없을 수 있습니다. 전환에 조건이 없는 경우 Unity 에디터는 Exit Time만 고려하며, 종료 시간에 도달하면 전환이 발생합니다. 전환에 조건이 하나 이상 있는 경우 전환을 트리거하기 전에 모든 조건이 충족되어야 합니다.

조건은 다음과 같이 구성됩니다.

  • 조건에서 고려되는 값인 이벤트 파라미터
  • 필요할 경우 조건부 술어(예를 들어 플로트(float)에서 ‘보다 작은’ 또는 ‘보다 큰’)
  • 필요할 경우 파라미터 값

전환에 Has Exit Time을 활성화하고 조건이 하나 이상 있는 경우 Unity는 상태의 종료 시간 이후에만 이러한 조건을 확인합니다. 그러면 애니메이션의 특정 부분에서만 전환이 발생합니다.

전환

상태 머신 전환
애니메이션 블렌드 트리