)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 : [링크]
Unity Animation State : [링크]
Unity Animation Transition : [링크]
★☆☆☆☆
'개발 > Unity' 카테고리의 다른 글
Unity)문재해결) Fatal Error Logs/AssetImportWorker0.prev.log: 다른 프로세스가 파일을 사용중이기 때문에 프로세스가 엑세스 할 수 없습니다. (0) | 2021.09.29 |
---|---|
문제해결)Unity)The option 'android.enableR8' is deprecated and should not be used anymore. (2) | 2021.09.17 |
Unity) Unity Certified (유니티 인증 시험) (2) | 2021.08.18 |
Unity) 다중 씬 편집 (Multi-Scene Editor) (0) | 2021.07.14 |
Unity) Profiler Custom / Profiler Analyzer(프로파일러 / 프로파일링) (0) | 2021.07.08 |
댓글