AI BehaviorTree 만들기
Root
└── Selector
├── Sequence [1순위 - 서포트]
│ ├── Decorator: 서포트 조건 충족?
│ └── Task: 서포트 실행
├── Sequence [2순위 - 전투]
│ ├── Decorator: TargetActor 있음?
│ ├── Task: 타겟으로 이동
│ └── Task: 공격
└── Task [3순위 - 대기/탐색]
서포트 조건 충족 여부 확인
Sequence
├── Decorator: 플레이어 체력 30% 이하? ← 이게 BTDecorator
│ → false면 이 Sequence 통째로 스킵
└── Task: 서포트 실행
Decorator를 C++로 작성해야함.
*코드 팁
#pragma region
코드를 접고펼 수 있게 구역을 나누는 것.
BTTask에서 실제 행동을 실행하는 함수는 ExecuteTask
cpp
virtual EBTNodeResult::Type ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) override;
- EBTNodeResult::Succeeded → 태스크 성공
- EBTNodeResult::Failed → 태스크 실패
- EBTNodeResult::InProgress → 태스크 진행 중
1. OwnerComp에서 AIController 가져오기
2. AIController에서 Pawn 가져오기
3. Pawn에서 HealthComponent 가져오기
4. 힐 실행
5. EBTNodeResult::Succeeded 반환
Todo: TargetActor -> EnemyActor 이름 바꾸기
Task: Attack
히트스캔 공격 흐름
1. Blackboard에서 TargetActor 가져오기
2. AI 위치에서 TargetActor 방향으로 라인 트레이싱
3. Hit 판정 → TargetActor의 HealthComponent에 데미지 적용
4. EBTNodeResult::Succeeded 반환'Unreal5 공부 > TIL' 카테고리의 다른 글
| 2026/05/08 TIL (0) | 2026.05.08 |
|---|---|
| 2026/05/07 TIL (0) | 2026.05.07 |
| 2026/5/4 TIL (0) | 2026.05.04 |
| 2026/05/01 TIL (0) | 2026.05.01 |
| 2026/04/29 TIL (1) | 2026.04.29 |