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 |