Unreal5 공부/TIL
2026/5/6 TIL
anna59
2026. 5. 6. 22:58
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 반환