Choose your operating system:
Windows
macOS
Linux
트랜지션 룰 생성
Transition Rules (트랜지션 룰)은 State Machine (스테이트 머신) 안에서의 흐름을 제어하는 메서드로, 스테이트 와 컨듀잇 을 연결하는 와이어와 함께 자동 생성됩니다. 이 트랜지션 룰은 변수 값에 대한 검사와 테스트를 통해 True 또는 False 값을 출력하기 위한 용도로 사용 가능합니다. 그런 다음 애니메이션이 그 트랜지션을 따라 이행시킬지 말지를 결정합니다.
스테이트 또는 컨듀잇 연결은 한 스테이트( 또는 컨듀잇)을 좌클릭 으로 끌어 다른 것에 놓으면 됩니다.
연결 이후 트랜지션 룰은 선 연결 내 작은 원형 방향 아이콘으로 표시됩니다.
아이콘 위에 마우스 커서를 올리면, 룰이 어떠한지에 대한 시각적인 표식이 나타납니다:
이 예제에서 JumpLoop 가 JumpEnd 로 트랜지션하기 위해서는, IsInAir? 변수가 True 여서는 안됩니다 .
룰을 설정하여 양방향 트랜지션 흐름을 결정하는 것도 가능합니다:
즉 한 상태를 빠져나가 다른 상태로 이동하는 데도, 해당 상태로 다시 트랜지션 하는 데도 룰 적용이 가능하다는 뜻입니다.
트랜지션 룰 편집
트랜지션 룰 에 더블클릭하면 열리는 창을 통해 변수를 정의하고 이 변수가 만족되면 트랜지션이 일어나도록 할 수 있습니다.
블루프린트 와 비슷하게, 내 블루프린트 창에서 변수를 지정한 뒤 그래프에 끌어놓을 수 있습니다. 변수를 다양한 조건에 연결한 뒤 다시 결과 노드에 연결하는 것으로, 어떤 것이 true (또는 false ) 가 되면 트랜지션이 일어나도록 할 것인가 정의할 수 있습니다.
블루프린트 시작 관련 정보는 블루프린트 소개 문서를 참고하세요.
Transition Rules Details
트랜지션 룰 을 클릭하면 디테일 패널이 업데이트되어 추가 옵션을 확인할 수 있습니다.
프로퍼티 |
설명 |
---|---|
Transition Priority Order |
트랜지션 우선권 순서 - 트랜지션 우선권 순서입니다. 한 스테이트에서 나가는 트랜지션 다수가 동시에 True 인 경우, 우선권 순서 번호가 가장 작은 것이 우선합니다. |
Bidirectional |
양방향 - 양방향이 가능한 트랜지션인지를 나타냅니다. |
Blend Logic |
블렌드 로직 - 사용할 트랜지션 로직을 Standard Blend (표준 블렌드) 또는 Custom Blend (커스텀 블렌드) 중에서 선택합니다. 커스텀을 선택하면 블렌드 그래프를 입력하여 커스텀 블렌드 트랜지션 설정이 가능합니다. |
Transition Rule Sharing |
트랜지션 룰 공유 - 다른 트랜지션에서 룰을 공유 또는 사용할 수 있도록 설정할 수 있는 옵션입니다. |
Automatic Rule Based on Sequence Player in State |
스테이트의 시퀀스 플레이어에 따른 자동 룰 - 내부 시간을 무시하고, 트랜지션의 Crossfade Duration 과 관련성이 가장 높은 플레이어 노드에 남은 시간에 따라 룰을 자동 설정 시도합니다. |
Transition Interrupt |
트랜지션 중단 - Trigger Weight Threshold (트리거 웨이트 한계치)를 설정하고 Notify State Class (노티파이 스테이트 클래스)를 지정합니다. |
Transition Crossfade Sharing |
트랜지션 크로스페이드 공유 - 기존 Transition Crossfade Blend (트랜지션 크로스페이드 블렌드)를 사용하거나 기존 Transition Crossfade (트랜지션 크로스페이드)를 공유 상태로 승격시킵니다. |
Duration |
기간 - 크로스페이드에 적용되는 기간입니다. |
Mode |
모드 - 크로스페이드에 적용되는 블렌딩 유형입니다. 자세한 정보는 애니메이션 블렌드 모드 문서를 참고하세요. |
Custom Blend Curve |
커스텀 블렌드 커브 - 사용자 정의 블렌드 커브를 받아 블렌드 도중 적용합니다. |
Blend Profile |
블렌드 프로파일 - 본 별로 이 트랜지션을 평가하는 데 사용되는 블렌드 프로파일입니다. |
Start Transition Event / Custom Blueprint Event |
트랜지션 시작 이벤트 / 커스텀 블루프린트 이벤트 - 트랜지션 시작시 통지받은 블루프린트 내부에서 이벤트 를 호출 및 실행합니다. |
End Transition Event / Custom Blueprint Event |
트랜지션 종료 이벤트 / 커스텀 블루프린트 이벤트 - 트랜지션 종료시 통지받은 블루프린트 내부에서 이벤트 를 호출 및 실행합니다. |
Interrupt Transition Event / Custom Blueprint Event |
트랜지션 중단 이벤트 / 커스텀 블루프린트 이벤트 - 트랜지션이 중단되면 통지받은 블루프린트 내부에서 이벤트 를 호출 및 실행합니다. |
부가 고려사항
자손 애니메이션 블루프린트 작업시 스테이트 머신의 애니메이션을 덮어쓸 때, 트랜지션 룰에 참조된 애니메이션은 모든 자손 애니메이션 블루프린트와 길이가 같을 필요가 없습니다. (애니메이션에 남은 시간을 알아내고 트랜지션 룰의 일부로 사용할 수 있는) 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 를 사용하여 퍼포먼스를 향상시킬 수도 있습니다.