info8995 님의 블로그

AIController와 BehaviorTree 연동 및 순찰 로직 구현 본문

TIL(Today I Learned)/Unreal Engine

AIController와 BehaviorTree 연동 및 순찰 로직 구현

info8995 2025. 5. 8. 19:56

 오늘 배운 것

언리얼 엔진에서 AI가 TargetPoint를 따라 순찰하도록 하기 위해 AIController, Blackboard, BehaviorTree, TargetPoint, Character 간의 관계를 설정하고, 코드로 연동하여 순찰 기능을 구현하는 방법을 익혔다.


 핵심 정리

1️⃣ Blackboard Key 정의

  • FName 타입으로 상수 정의 후 .h와 .cpp에 각각 선언 및 정의 필요.

2️⃣ AIController 구현

  • OnPossess()에서 블랙보드를 초기화하고 Behavior Tree 실행.
  • TargetPoint들을 찾아서 Blackboard에 첫 위치 저장.

3️⃣ AI 캐릭터 로직

  • Tick()에서 목표 위치까지의 거리 계산 후, 도달하면 다음 순찰 지점으로 이동.
  • 블랙보드와 패트롤 지점은 AIController로부터 받아옴.

4️⃣ Behavior Tree 구성

  • 블랙보드 키: PatrolLocation(Vector), PatrolIndex(Int)
  • 구성: Root → Sequence → MoveTo(PatrolLocation) → Wait(1.5s)

✅ 테스트 체크

  • 블랙보드 키가 정확히 매칭되는지 확인
  • TargetPoint를 순서대로 순찰하는지 확인
  • NavMeshBoundsVolume 세팅 확인
  • AIController가 정상적으로 작동하는지 로그로 확인

💭 오늘 느낀 점

AI 시스템은 단순한 노드 구성보다 각 요소 간 데이터 흐름을 유기적으로 연결하는 것이 훨씬 더 중요하다는 것을 알게 되었다. 특히 블랙보드와 컨트롤러 간 연동이 핵심 포인트였다.


🔜 내일 할 일

AI의 상태 전이를 구현해 순찰 외에도 Suspicious 또는 Chasing 상태로 동작을 전환하는 기능을 추가할 예정이다.