Behavior Tree

2024. 11. 24. 00:19·Unreal Engine 5/MMORPG 개발
반응형

컴포짓(Composities) : 상태들의 시작점, 상태가 복귀, 실행 플로우에서 어떻게 행동하는지 정의한다.

Selector, Sequence, Simple Parallel 세 종류가 있다.

 

Behavior Tree : AI 캐릭터를 만들기 매우 유명한 도구 중 하나다.

계층적 FSM, 스케쥴링, Planning, Action Execution 등 개념이 결합되어 있다.

 

BT의 메인 요소 Task

Task는 복잡한 액션을 표현하는 서브트리로 구성

Task들은 동일한 기본 구조를 가짐 -> 하나의 task가 가동된 후 결과는 성공과 실패의 형태(boolean)로 출력

Task의 종류 3가지 Condition, Action, Composite

 

Condition : 조건에 대한 검사를 의미

ex) 적이 unit 반경 내에 존재 유무, LOS(Line of Sight) 검사, 캐릭터 상태(무기 보유, 상태치) 등 현재 캐릭터가 원하는 질의를 표현.

 

Action : 게임의 상태를 변경

ex) 애니메이션에 대한 액션 변경, 캐릭터 움직임, 캐릭터 내부 상태의 변경(자체 스텟이 올라가는 등), Audio 샘플의 플레이, 특정 AI 코드의 실행 등 실제 캐릭터의 변화에 대한 수행을 의미

 

Composite : Condition이나 Action은 BT에서 단말노드에 존재. 그 외 다른 비단말 노드는 Composite Task로 구성.

Composite는 Condition, Action 그리고 다른 Composite를 자식노드로 결합하는 역할을 한다.

 

Composite Task Type 종류 : Selector, Sequence, Parallel Task

Selector와 Sequence는 모두 순차적으로 자식 노드를 방문, 자식 노드 수행 완료시 결과값을 반환

결과값을 보고 계속 진행할지 멈출지 결정


Selector는 자식노드가 성공하면 바로 그 결과 반환, 하나의 자식노드가 실패시 바로 다음 자식노드로 이동

모든 자식노드 실패할 경우를 제외하면 성공 시점에서 실행을 멈춤

 

Sequence : 자식 노드가 성공하면 계속 순차 방문, 자식 노드 실패시 실행 중지

 

데코레이더는 객체지향설계에서 자주 언급되는 디자인 패턴 중 하나인 Decorator Design pattern과 같은 의미의 단어다.

즉, 기존 존재하는 class를 수정하지 않고 기능을 변경하기 위하여 class를 감싸서 목적을 달성하는 패턴이다.

class 변경없이 부가적인 기능을 덧붙일 수 있는 장점을 지님

 

데코레이터의 종류

- 필터 : 자식이 수행을 할지 말지 결정하는 데코레이터

쉽게 말해서 if의 기능을 수행한다.

 

서비스는 연결된 컴포짓이 활성화되어 있는 동안 계속 구동된다.

-> 주로 AI 상태 변경에 사용(항상 호출되기에)

 

Blackboard의 필요성

BT에서 Task와 Data를 함께 저장하면 효율성이 너무 떨어진다.

Data를 보관, 관리하는 친구를 만든다. 이를 blackboard라고 부른다.

반응형
저작자표시 (새창열림)

'Unreal Engine 5 > MMORPG 개발' 카테고리의 다른 글

시간 흐름 제어  (2) 2024.11.24
Networking content  (0) 2024.11.24
언리얼 엔진 5 경로 관련 참고 사이트  (0) 2024.10.03
Damage Indicator Object Pooling  (0) 2024.08.18
ue5 DataTable 구조체 제작  (0) 2024.08.07
'Unreal Engine 5/MMORPG 개발' 카테고리의 다른 글
  • 시간 흐름 제어
  • Networking content
  • 언리얼 엔진 5 경로 관련 참고 사이트
  • Damage Indicator Object Pooling
숯불돼지왕갈비
숯불돼지왕갈비
  • 숯불돼지왕갈비
    게임 개발 공부기
    숯불돼지왕갈비
  • 전체
    오늘
    어제
    • 분류 전체보기 (302)
      • 학교수업 (165)
      • 취업강의 (6)
      • C++ (49)
        • 코딩 테스트 (4)
      • Unreal Engine 5 (25)
        • MMORPG 개발 (25)
      • Unreal Engine 4 (44)
        • Omak Project (3)
        • Unreal Engine 4 개발일지 (9)
        • Unreal Engine 4 (32)
      • Unity (1)
        • 개발 일지 (1)
      • 수학 (3)
        • 소프트웨어 공학용 수학 (3)
      • DirectX 11 (4)
      • 게임 디자인 패턴 (2)
      • 포트폴리오 (1)
      • 자격증 (1)
        • 정보처리기사 (0)
        • SQLD (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
숯불돼지왕갈비
Behavior Tree
상단으로

티스토리툴바