트랜지션 룰

스테이트 머신 트랜지션을 관장하는 규칙에 대한 안내입니다.

Windows
MacOS
Linux

트랜지션 룰 생성

Transition Rules (트랜지션 룰)은 State Machine (스테이트 머신) 안에서의 흐름을 제어하는 메서드로, 스테이트컨듀잇 을 연결하는 와이어와 함께 자동 생성됩니다. 이 트랜지션 룰은 변수 값에 대한 검사와 테스트를 통해 True 또는 False 값을 출력하기 위한 용도로 사용 가능합니다. 그런 다음 애니메이션이 그 트랜지션을 따라 이행시킬지 말지를 결정합니다.

스테이트 또는 컨듀잇 연결은 한 스테이트( 또는 컨듀잇)을 좌클릭 으로 끌어 다른 것에 놓으면 됩니다.

ConnectStates.png

연결 이후 트랜지션 룰은 선 연결 내 작은 원형 방향 아이콘으로 표시됩니다.

TransitionRule.png

아이콘 위에 마우스 커서를 올리면, 룰이 어떠한지에 대한 시각적인 표식이 나타납니다:

TransitionRuleMouseOver.png

이 예제에서 JumpLoopJumpEnd 로 트랜지션하기 위해서는, IsInAir? 변수가 True 여서는 안됩니다.

룰을 설정하여 양방향 트랜지션 흐름을 결정하는 것도 가능합니다:

RulesBothWays.png

즉 한 상태를 빠져나가 다른 상태로 이동하는 데도, 해당 상태로 다시 트랜지션 하는 데도 룰 적용이 가능하다는 뜻입니다.

트랜지션 룰 편집

트랜지션 룰 에 더블클릭하면 열리는 창을 통해 변수를 정의하고 이 변수가 만족되면 트랜지션이 일어나도록 할 수 있습니다.

EditRule.png

블루프린트 와 비슷하게, 내 블루프린트 창에서 변수를 지정한 뒤 그래프에 끌어놓을 수 있습니다. 변수를 다양한 조건에 연결한 뒤 다시 결과 노드에 연결하는 것으로, 어떤 것이 true (또는 false) 가 되면 트랜지션이 일어나도록 할 것인가 정의할 수 있습니다.

블루프린트 시작 관련 정보는 블루프린트 소개 문서를 참고하세요.

Transition Rules Details

트랜지션 룰 을 클릭하면 디테일 패널이 업데이트되어 추가 옵션을 확인할 수 있습니다.

TransitionDetails.png

프로퍼티

설명

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 노드를 사용하여 항상 소스 상태에서 가중치가 가장 높은 것을 선택할 수 있습니다 (아래 그림).

GetRelevantNodes.png

번호

노드

설명

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 그래프 안에 노출된 정보를 통해 일회성 커스텀 트랜지션 애니메이션 이상의 작업이 가능합니다.

CustomBlendNodes.png

번호

노드

설명

1

State Weight

스테이트 가중치 - 지정된 스테이트의 블렌딩 가중치를 구합니다.

2

Get Transition Time Elapsed

트랜지션 경과 시간 구하기 - 지정된 트랜지션의 경과 시간을 초 단위로 구합니다.

3

Get Transition Time Elapsed (ratio)

트랜지션 경과 시간 구하기 (비율) - 경과 시간을 지정된 트랜지션의 크로스 페이드 경과시간의 백분율 소수로 구합니다.

4

Get Transition Crossfade Duration

트랜지션 크로스페이드 경과시간 구하기 - 지정된 트랜지션의 크로스페이드 경과시간을 구합니다.

트랜지션 룰과 같은 애셋 플레이어를 참조하는 Get 메서드를 사용할 수도 있습니다.

언리얼의 애니메이션 프로그래밍에 대한 이해가 있는 분들은, 네이티브 Getter 를 사용하여 퍼포먼스를 향상시킬 수도 있습니다.

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback