본문 바로가기
개발/Unity

Unity)Animation State Machine(메카님 사용방법 정리)

by 테샤르 2021. 9. 13.

)Animation State Machine(메카님 사용방법 정리)

유니티에서 애니메이션을 컨트롤하는 상태를 변경이 가능하다.

관련돼서 많은 작업을 했지만 정리가 좀 필요해서 포스팅하게 되었다.

 

 

애니메이터(Animator)를 생성 후에 필요한 애니메이션들을 드래그 앤 드롭을 진행한다.

여기서 마우스 오른쪽으로 Default Animator를 설정할수 있다.(주황색. Grounded)

Empty 노드도 생성 가능하다.

반응형

Animation들의 Flow는 특정 Animation을 클릭 후 Transition을 생성해서 연결시키면 된다.

화살표 방향이 이동방향으로 생각하면되고 해당 Condtion은 Animator의 Parameters에서 추가가 가능하다.(Float, int , Trigger, Bool) 등등

 

조건에 대한 비교값은 다음과 같다.

Greater 초과
Less 미만
Equals 같은
NotEqual 같지 않은

 

Animator State에서는 각종 스피드와 전환에 대한 항목을 확인 가능하다.

반응형

 

Animator State에 대한 속성 값은 다음과 같다.

Speed 애니메이션의 기본 속도
Motion 상태에 할당된 애니메이션 클립
Foot IK Foot IK를 사용 여부
Write Defaults AnimatorStates가 해당 Motion에 의해 애니메이션되지 않는 속성의 기본값을 다시 쓸지 여부입니다.
Mirror 상태를 미러링 여부 이것은 휴머노이드 애니메이션에만 적용됩니다.
Transitions 상태의 전환 대상 스테이트 목록

Transition 속성값

Has Exit Time 트랜지션 조건이 언제든지 효력을 발할 수 있게 할 것인지, 스테이트의 exit 시간 사이에만 효력을 발할 수 있게 할 것인지를 설정합니다.
Settings 트랜지션에 대한 자세한 설정이 포함된 Foldout 메뉴 :
Exit Time “Has Exit Time”이 활성화되어 있는 경우, 이 값은 조건이 효력을 발할 수 있게 될 때까지의 시간을 나타냅니다. 이것은 정규화된 시간(normalised time)으로 표시됩니다. 예를 들어 exit 타임이 0.75이면 현재 상태의 재생이 75%보다 더 완료된 것이며, 그리고 해당 트랜지션 조건을 만나게 됩니다.
Fixed Duration 고정 기간 상자를 선택하면 전환 시간이 초 단위로 해석됩니다. 고정 기간 상자를 선택하지 않으면 전환 시간이 소스 상태의 정규화된 시간의 일부로 해석됩니다.
Transition Duration (현재 스테이트의 지속 시간에 대해 상대적인) 트랜지션의 지속 시간입니다. 정규화된 시간(normalised time)으로 표시됩니다. 해당 트랜지션 그래프에서는 두 파란 마커에 끼워진 부분으로 표시됩니다.
Transition Offset 트랜지션되는 목적지 스테이트의 재생이 시작되는 시점의 오프셋. 예를 들어, 0.5로 하면 목적지 스테이트는 해당 타임 라인의 50% 시점에서 재생되기 시작합니다.
Interrupt Source 트랜지션을 중단할 수 있는 조건을 지정할 수 있습니다.
  None 이 트랜지션은 중단시킬 수 없습니다.
  Current State 현재 스테이트에서라면 트랜지션에 의해 중단할 수 있지만, 목적지 스테이트에서는 중단할 수 없습니다.
  Next State 목적지(다음) 스테이트에서 정의된 트랜지션에 의해 중단될 수 있지만, 현재 스테이트에서는 중단할 수 없습니다.
  Current State then Next State 현재 스테이트 또는 다음 스테이트의 트랜지션에 의해 중단할 수 있습니다. 그러나 전이가 현재 스테이트와 다음 스테이트에서 동시에 TRUE가 되었을 경우, 현재 스테이트가 우선됩니다.
  Next State then Current State 현재 상태 또는 다음 상태의 전이에 의해 중단될 수 있습니다. 그러나 전이가 현재 상태와 다음 상태 모두에서 동시에 TRUE가 되면, 다음 상태가 우선됩니다.
  Ordered Interruption 현재의 트랜지션이 다른 트랜지션에 의해, 그들의 순서(order)에 관계없이 중단할 수 있는지 여부를 설정합니다.

애니메이터로 겹치는 현상이 발생하면 애니메이션A -> 애니메이션B로 가는 Transition의 속성을 변경해야한다.

애니메이션이 두개가 겹치지 않은 형태로 처리가 되도록 하면 간섭이 없다.

 

중간에 스무스하게 변경하려면 Exit Time 과 Transition Duration, Transition Offset 값이 변경이 되어야 한다.

Transition에 대해서는 Solo와 Mute라는 기능이 존재한다.

Solo 솔로가 선택되면 나머지는 뮤트가 된다.
Mute 전환이 비활성화 되는 것을 의미한다.

 

특정 순간에서 바로 State를 변경하기 위해서는 Any State를 사용해야 한다.

상태를 전환 하기 위해서는 Transitions을 사용해서 State를 연결해준다.

 

상태를 변경하는데 조건을 추가해서 처리도 가능하다.

Transition의 Inspector - Conditions 을 추가하면 된다.

 

 

Unity State Machine : [링크] 

 

유니티 - 매뉴얼: 스테이트 머신 기초

애니메이션 스테이트 머신 애니메이션 파라미터 스테이트 머신 기초 기본 발상은, 캐릭터가 임의의 시점에서 특정 종류의 액션이 관여한다는 것입니다. 여기서 사용할 수 있는 액션은 게임 플

docs.unity3d.com

Unity Animation State : [링크]

 

유니티 - 매뉴얼: 에니메이션 스테이트

AnimatorController 만들기 애니메이션 트랜지션 에니메이션 스테이트 Animation State는 Animation State Machine의 기본 구성 요소입니다. 각 상태(State)는 개별 애니메이션 시퀀스(또는 블렌드 트리)가 포함되

docs.unity3d.com

Unity Animation Transition : [링크]

 

유니티 - 매뉴얼: 애니메이션 트랜지션

에니메이션 스테이트 애니메이션 트랜지션 개요 Animation Transition 은 어떤 Animation State에서 다른 것으로 전환할 때 무슨 일이 일어나는가를 정의한다. 트랜지션은 얼마의 시간동안 blend되는지 뿐

docs.unity3d.com

 

★☆☆☆☆

 

반응형

댓글