[Unreal Engine] State

이매·2026년 1월 20일

Unreal State Tree

목록 보기
2/2
post-thumbnail

State

Unreal Engine의 State Tree는 스테이트를 계층 구조(Hierarchy) 로 구성하여 조건 판단, 행동 실행, 전환 흐름을 명확하게 설계할 수 있는 시스템이다.

이때 스테이트는 크게 형제(Sibling) 스테이트와 자손(Child) 스테이트 관계로 나뉜다.

State 추가하기

State Tree 에디터에서 스테이트는 Root 또는 기존 State를 기준으로 추가할 수 있다.

우클릭 → 상태 추가

  • 형제 스테이트 추가
    → 같은 부모를 가지는 새로운 상태 생성

  • 자손 상태 추가
    → 선택한 State 내부에 하위 상태 생성

형제 스테이트 (Sibling State)

같은 부모 스테이트를 공유하는 스테이트들로 평소에는 서로 동시에 활성화될 수 없음

조건(Evaluator / Transition)에 따라 서로 전환된다.

위 구조에서 Idle, Attack, Dead는 모두 형제 스테이트

자손 스테이트 (Child State)

특정 스테이트 내부에 종속된 하위 스테이트이다.

부모 스테이트가 활성화되면 → 그 안에서 자손 스테이트가 선택·실행된다.

MeleeAttack, RangeAttack, BasicAttack는 Attack의 자손 스테이트이다.



State Tree Details

Name

스테이트의 식별 이름이다.

Tag

스테이트에 부여하는 게임플레이 태그이다.

Color

State Tree 에디터 상에서 표시되는 시각적 색상으로 기능적 영향은 없다.

Custom Tick Rate

해당 스테이트의 Tick 주기를 개별적으로 설정한다.
활성화 시 기본 틱 속도 대신 지정 값 사용한다.

성능 최적화 또는 느린 판단 로직에 유용하다.

Type

State의 역할과 구조적 성격을 정의한다.

State

  • 기본적인 실행 스테이트
  • Task, Evaluator, Transition을 포함 가능
  • 가장 일반적으로 사용되는 타입

Group

  • 실행 로직 없이 구조 정리용 리디렉션 타입
  • 자손 스테이트를 묶기 위한 컨테이너
  • 가독성과 설계 정리에 유용

Subtree

  • Linked Type State에 연결할 수 있도록 만들어주는 타입
  • 복잡한 하위 구조를 분리시킬 수 있다.

Linked

  • 다른 State Tree의 특정 State를 참조
  • 동일한 로직을 여러 트리에서 재사용 가능
  • 원본 State 변경 시 참조된 모든 곳에 반영됨

Linked Asset

  • 외부 State Tree 에셋을 통째로 링크
  • 공통 AI 로직, 보스 패턴 모듈화에 적합

Selection Behavior

부모 State가 선택되었을 때 어떤 자손 State를 선택할지 결정하는 규칙

선택 비헤이비어설명
진입 시도 (Try Enter)자손이 있더라도 현재 State 자체를 선택
순서에서 첫 번째 자손 선택 시도
(Try Select Children in Order)
자손 목록 순서대로 조건을 검사해 첫 번째로 진입 가능한 State 선택
랜덤으로 자손 선택 시도
(Try Select Children at Random)
자손 순서를 섞은 뒤 조건을 만족하는 첫 State 선택
유틸리티가 가장 높은 자손 선택 시도
(Try Select Children with Highest Utility)
Utility 점수가 가장 높은 자손 State 선택
유틸리티 가중 랜덤 선택 시도
(Try Select Children at Random Weighted by Utility)
Utility 값을 확률로 사용해 랜덤 선택
트랜지션 따라가기 시도
(Try Follow Transitions)
State 대신 연결된 Transition을 우선 트리거
profile
언리얼 엔진 주니어(신입) 개발자 | 소설 쓰는 취준 개발자

0개의 댓글