[UE 5] 3D 게임 개발 14 - Behavior Tree

0시0분·2025년 4월 22일
0

UE 5

목록 보기
52/52

BlackBoard

Behavior Tree와 세트.
AI 관련해서 필요한 정보들을 기록해두는 곳.
Animation에 필요한 것들을 Animation Blueprint에서 전담해서 사용했던 것과 비슷한 개념?

블랙보드에 키값을 추가하면,

Behavior Tree에서도 사용할 수 있게 자동으로 추가됨.


Behavior Tree

root 에는 하나의 자식노드만 연결 가능.

오른쪽 위에 써있는 숫자가 실행하는 순서. 항상 왼쪽부터 실행.

Selector

자식들을 하나라도 성공할 때까지 순차적으로 실행함. (if-else 와 비슷)

Sequence

순차적으로 실행하되, 하나의 자식이라도 실패하면 정지. (while과 비슷?)

Task

실행될 자식 노드들. 기본적으로 여러개가 존재함.

New Task 로 직접 생성도 가능.

기본 구조. 성공 여부를 반드시 반환해줘야 함!

Task 끼리 변수 공유

Blackboard Key Selector 변수를 선언하고, 꼭 눈알을 켜준다.

그럼 저렇게 BlackBoard 에 선언된 변수로 받을수 있게 된다.

저장은 Set Blackboard Value as ~로 해주면 됨.

이동 가능한 랜덤 위치를 찾는 Task

Service

주기적으로 해야 하는 작업. ex) 주변에 타겟을 찾는 일
Task 와 동일한 방식으로 생성 가능.

노드에 추가해서 사용함.

일정 거리 내에 있는 플레이어를 찾는 Service

Decorator

추가적인 조건을 설정해주는 것.

👉 Target EnemySet 되지 않았으면 (Is Not Set) 계속 실행

마찬가지로 커스텀 Decorator도 생성 가능.

일정 거리 내에 Target이 들어왔는지 체크하는 Decorator


결과물

Target을 못찾았으면 오른쪽 Sequence를 반복하며 랜덤 위치로 이동.
찾았고, Range 이내이면 대기. 그게 아니면 Target을 향해 계속 이동.

0개의 댓글