1. 언리얼 엔진 5 State Tree 시스템 소개 [0]

thumbnail

언리얼 엔진 5의 State Tree 시스템은 AI뿐만 아니라 다양한 게임 오브젝트의 행동을 유연하게 제어하며, 기존 비헤이비어 트리보다 효율적으로 활용할 수 있는 방법을 소개한다.

1.1. State Tree 플러그인 활성화 및 생성 [0]

  1. State Tree 플러그인 활성화:
    • 플러그인 메뉴에서 'State Tree'를 검색하여 'Gameplay State Tree'를 활성화한다. [6]
    • 활성화 후 엔진 재시작이 필요하다. [17]
  2. State Tree 생성:
    • 콘텐츠 브라우저에서 'AI' > 'State Tree'로 이동하여 생성한다. [22]
    • State Tree Component: 일반 액터(문, 상자 등)에 사용된다. [24]
    • State Tree AI Component: AI 액터에 사용되며, AI 컨트롤러와 액터에 대한 접근을 보장한다. [26]
  3. State Tree 에디터 인터페이스:
    • Asset Details: 좌측에서 State Tree의 전반적인 정보를 설정한다. [33]
    • State Tree: 중앙에서 State Tree의 구조를 시각적으로 편집한다. [34]
    • Details Panel: 우측에서 선택된 항목에 대한 상세 설정을 변경한다. [35]

1.2. State Tree의 기본 구조와 작동 방식 [32]

  1. 계층적 구조:
    • 모든 State Tree는 루트 노드에서 시작한다. [38]
    • 새로운 상태는 'New State'를 통해 추가할 수 있으며, 계층적으로 구성된다. [39]
    • 상위 상태가 참(True)이어야 하위 상태가 평가되고 실행될 수 있다. [46]
  2. 리프 노드(Leaf Node):
    • 트리가 더 이상 분기되지 않는 마지막 노드이며, 실제 로직이 실행되는 부분이다. [47]
    • 리프 노드 실행 후 기본적으로 루트 노드로 전환되는 기본 전환 규칙이 있다. [50]
  3. 전환(Transitions):
    • 상태가 완료되거나 실패했을 때 다른 상태로 이동하는 규칙을 설정한다. [54]
    • 다양한 조건에 따라 여러 개의 전환 규칙을 설정할 수 있어 유연성이 높다. [56]

1.3. State Tree의 주요 구성 요소 [63]

  1. 파라미터(Parameters):
    • State Tree에 할당되는 변수로, 외부에서 값을 설정하거나 읽어올 수 있다. [64]
    • 전역 파라미터로 설정하면 State Tree 외부(액터 등)에서도 접근 가능하다. [69]
  2. 진입 조건(Enter Conditions):
    • 특정 상태에 진입하기 위한 조건을 설정한다. [72]
    • 불리언, 플로트, 정수 비교, 게임 태그 확인 등 다양한 내장 조건을 사용하거나 직접 생성할 수 있다. [73]
  3. 선택 유틸리티(Selection Utility):
    • 여러 리프 노드나 브랜치 중 어떤 것을 선택할지 결정하는 로직이다. [80]
    • 기본적으로 대기(Waiting) 시간이 적용되며, Enum 입력 등을 활용한 선택 로직 추가도 가능하다. [82]
  4. 태스크(Tasks):
    • State Tree의 핵심 로직이 실행되는 부분으로, 실제 코드 실행을 담당한다. [87]

1.4. State Tree를 액터에 적용하기 [95]

  1. NPC 캐릭터 생성 및 설정:
    • 새로운 캐릭터를 생성하고 메쉬와 애니메이션을 추가한다. [97]
    • 해당 캐릭터에 AI 컨트롤러를 할당한다. [101]
  2. AI 컨트롤러에 State Tree 적용:
    • AI 컨트롤러에 'State Tree AI' 컴포넌트를 추가한다. [107]
    • 컴포넌트 설정에서 적용할 State Tree를 선택한다. [109]
    • State Tree의 전역 파라미터는 액터 측에서 직접 연결하여 값을 전달할 수 있다. [111]
  3. 자동 실행 설정:
    • 'Start Logic Automatically' 옵션을 활성화하면 별도의 호출 없이 State Tree가 자동으로 실행된다. [116]
    • 이 옵션을 비활성화하면 수동으로 State Tree 실행을 시작할 수 있다. [120]
  4. 내비게이션 메쉬(Nav Mesh) 설정:
    • AI가 이동할 수 있는 영역을 정의하는 내비게이션 메쉬를 레벨에 배치해야 한다. [127]
    • 'P' 키를 눌러 내비게이션 메쉬의 적용 범위를 확인할 수 있다. [133]

2. State Tree 시스템의 장점 및 향후 계획 [135]

thumbnail

State Tree 시스템은 AI뿐만 아니라 다양한 게임 오브젝트의 행동을 제어하는 데 있어 유연성과 효율성을 제공하며, 향후 더 많은 기능이 추가될 예정이다.

2.1. State Tree와 비헤이비어 트리의 비교 [13]

  1. 범용성:
    • 비헤이비어 트리: 주로 AI 행동 제어에 국한된다. [13]
    • State Tree: AI뿐만 아니라 문, 상자, 타겟 등 다양한 게임 오브젝트의 행동 제어에 활용 가능하다. [14]
  2. 유연성:
    • State Tree는 비헤이비어 트리보다 훨씬 유연하게 로직을 설계하고 제어할 수 있다. [16]

2.2. 향후 영상 시리즈 계획 [136]

  1. 다음 영상 내용:
    • 다음 영상에서는 State Tree를 사용하여 AI 캐릭터가 무작위로 돌아다니도록 제어하는 방법을 다룰 예정이다. [138]
  2. 추가 콘텐츠 및 지원:
    • 더 많은 영상과 프로젝트 파일은 Patreon을 통해 후원하거나 시청할 수 있다. [139]