본문 바로가기

Engine/Unreal 그때그때 끄적끄적

[Unreal] BehaviorTree

BehaviorTree 는 언리얼에서 인공지능을 좀더 효율적으로 다루기 위해 여러 간선으로 이루어진 AI시스템입니다 애니매이션을 다룰때 사용했던 상태머신과 비슷한 개념으로 이해하시고 글을 읽으면 도움이 되실거라 생각됩니다

 

ㅈㅇㅁㄴㅇ
좌 애니메이션 상태머신 우 비헤이비어트리

BehaviorTree는 데이터를 저장하는 BlackBoard와 저장된 BlackBoard 의 값을 이용, 수정하며 AI에 명령을 내리는 BehaviorTree  이렇게 두가지를 활용합니다

BehaviorTree노드 종류

Root(루트)
BehaviorTree의 시작점입니다 아래로 향하는 노드는 하나만 연결 할 수 있으며 데코레이트나 서비스 노드를 부착할 수 없습니다
셀렉터(Selector)
왼쪽 자손노드에서 오른쪽 자손노드 순서로 실행되며, 자손노드중 하나가 성공한다면 나머지 자손노드는 실행하지않고 수행이 노드의 작동이 성공되어집니다
모든 자손노드의 실행이 실패한다면 작동이 실패되어집니다
시퀀스(Sequence)
왼쪽 자손노드에서 오른쪽 자손노드순서로 실행되며, 자손노드 하나가 실패하면이후의 자손노드의 실행을 멈춥니다

심플 페러렐(SimpleParallel)
트리와 동시에 하나의 테스크를 실행할 수 있습니다 이동하면서 사격하는 행동을 수행할 수 있게 해줍니다
서비스(Service)
주로 Selector 노드와 함께 사용되어지는 Service 노드는 TickNode를 통해 지속적으로 BlackBoard에 정보를 업데이트해주고 해당 정보를 바탕으로 다른노드에서 역할 수행을 돕는 노드입니다
데코레이터(Decorator)
조건절이라고 불리우는 데코레이터는
특정 키값을 통해 True False값을 체크하여 해당 노드의 실행 여부를 결정합니다
테스크(Task)
Task노드는 트리의 가장 하단에 위치하는 노드로 AI의 행동에 결정적인 부분을 수행하는 노드입니다 블랙보드의 값을 이용하여 이동과 공격들과같은 기능을 수행하게됩니다

'Engine > Unreal 그때그때 끄적끄적' 카테고리의 다른 글

[Unreal] UFUNCTION  (0) 2021.10.06
[Unreal] UPROPERTY  (0) 2021.10.05
[Unreal]언리얼 함수 메모장  (0) 2021.10.05
[Unreal]C++클래스 삭제  (0) 2021.10.05
[Unreal] c++ 클래스 생성 오류  (0) 2021.09.19