트랜지션 룰

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

Choose your operating system:

Windows

macOS

Linux

트랜지션 룰 생성

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

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

ConnectStates.png

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

TransitionRule.png

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

TransitionRuleMouseOver.png

이 예제에서 JumpLoop JumpEnd 로 트랜지션하기 위해서는, 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 를 사용하여 퍼포먼스를 향상시킬 수도 있습니다.

언리얼 엔진 문서의 미래를 함께 만들어주세요! 더 나은 서비스를 제공할 수 있도록 문서 사용에 대한 피드백을 주세요.
설문조사에 참여해 주세요
건너뛰기