트랜지션 룰 생성
Transition Rules (트랜지션 룰)은 State Machine (스테이트 머신) 안에서의 흐름을 제어하는 메서드로, 스테이트 와 컨듀잇 을 연결하는 와이어와 함께 자동 생성됩니다. 이 트랜지션 룰은 변수 값에 대한 검사와 테스트를 통해 True 또는 False 값을 출력하기 위한 용도로 사용 가능합니다. 그런 다음 애니메이션이 그 트랜지션을 따라 이행시킬지 말지를 결정합니다.
스테이트 또는 컨듀잇 연결은 한 스테이트( 또는 컨듀잇)을 좌클릭 으로 끌어 다른 것에 놓으면 됩니다.
(w:540)
연결 이후 트랜지션 룰은 선 연결 내 작은 원형 방향 아이콘으로 표시됩니다.
(w:540)
아이콘 위에 마우스 커서를 올리면, 룰이 어떠한지에 대한 시각적인 표식이 나타납니다:
(w:540)
이 예제에서 JumpLoop 가 JumpEnd 로 트랜지션하기 위해서는, IsInAir? 변수가 True 여서는 안됩니다.
룰을 설정하여 양방향 트랜지션 흐름을 결정하는 것도 가능합니다:
(w:540)
즉 한 상태를 빠져나가 다른 상태로 이동하는 데도, 해당 상태로 다시 트랜지션 하는 데도 룰 적용이 가능하다는 뜻입니다.
트랜지션 룰 편집
트랜지션 룰 에 더블클릭하면 열리는 창을 통해 변수를 정의하고 이 변수가 만족되면 트랜지션이 일어나도록 할 수 있습니다.
(w:840)
블루프린트 와 비슷하게, 내 블루프린트 창에서 변수를 지정한 뒤 그래프에 끌어놓을 수 있습니다. 변수를 다양한 조건에 연결한 뒤 다시 결과 노드에 연결하는 것으로, 어떤 것이 true (또는 false) 가 되면 트랜지션이 일어나도록 할 것인가 정의할 수 있습니다.
블루프린트 시작 관련 정보는 블루프린트 소개 문서를 참고하세요.
Transition Rules Details
트랜지션 룰 을 클릭하면 디테일 패널이 업데이트되어 추가 옵션을 확인할 수 있습니다.
부가 고려사항
자손 애니메이션 블루프린트 작업시 스테이트 머신의 애니메이션을 덮어쓸 때, 트랜지션 룰에 참조된 애니메이션은 모든 자손 애니메이션 블루프린트와 길이가 같을 필요가 없습니다. (애니메이션에 남은 시간을 알아내고 트랜지션 룰의 일부로 사용할 수 있는) Time Remaining 같은 노드 사용시, 이러한 유형의 노드는 자손 애니메이션 블루프린트에서 애니메이션을 덮어쓸 때 애니메이션 길이 변화에 제대로 반응합니다.
또한, 변하거나 덮어쓸 수 있는 트랜지션 룰의 윌부로 특정 애니메이션을 타기팅하는 대신, 여러 클래스 기반 Get 노드를 사용하여 항상 소스 상태에서 가중치가 가장 높은 것을 선택할 수 있습니다 (아래 그림).
| 번호 | 노드 | 설명 |
|---|---|---|
| 1 | Get Relevant Anim Length (Movement) | 연관 애님 길이 구하기 (무브먼트) - 소스 스테이트에서 가장 연관성이 높은 애니메이션의 초 단위 길이를 구합니다. |
| 2 | Get Relevant Anim Time (Movement) | 연관 애님 시간 구하기 (무브먼트) - 소스 스테이트에서 가장 연관성이 높은 애니메이션의 현재 초 단위 누적 시간입니다. |
| 3 | Get Relevant Anim Time Fraction (Movement) | 연관 애님 시간 소수 구하기 (무브먼트) - 소스 스태이트에서 가장 연관성이 높은 애니메이션의 현재 누적 시간을 총 시간의 백분율 소수로 구합니다. |
| 4 | Get Relevant Anim Time Remaining (Movement) | 연관 애님 시간 나머지 구하기 (무브먼트) - 소스 스테이트에서 연관성이 가장 높은 애니메이션의 나머지 시간을 초 단위로 구합니다. |
| 5 | Get Relevant Anim Time Remaining Fraction (Movement) | 연관 애님 시간 나머지 소수 구하기 (무브먼트) - 소스 스테이트에서 연관성이 가장 높은 애니메이션의 나머지 시간을 총 시간의 백분율 소수로 구합니다. |
Custom Blend 노드
위에 언급한 노드에 추가로 Custom Blend 그래프 안에 노출된 정보를 통해 일회성 커스텀 트랜지션 애니메이션 이상의 작업이 가능합니다.
| 번호 | 노드 | 설명 |
|---|---|---|
| 1 | State Weight | 스테이트 가중치 - 지정된 스테이트의 블렌딩 가중치를 구합니다. |
| 2 | Get Transition Time Elapsed | 트랜지션 경과 시간 구하기 - 지정된 트랜지션의 경과 시간을 초 단위로 구합니다. |
| 3 | Get Transition Time Elapsed (ratio) | 트랜지션 경과 시간 구하기 (비율) - 경과 시간을 지정된 트랜지션의 크로스 페이드 경과시간의 백분율 소수로 구합니다. |
| 4 | Get Transition Crossfade Duration | 트랜지션 크로스페이드 경과시간 구하기 - 지정된 트랜지션의 크로스페이드 경과시간을 구합니다. |
트랜지션 룰과 같은 애셋 플레이어를 참조하는 Get 메서드를 사용할 수도 있습니다.
언리얼의 애니메이션 프로그래밍에 대한 이해가 있는 분들은, 네이티브 Getter 를 사용하여 퍼포먼스를 향상시킬 수도 있습니다.