AI 런타임 루프

행동 트리 재평가

AIController가 감지한 세계 상태는 Blackboard에 모이고, Decorator와 Service가 실행 흐름을 바꾸며, Task는 이동과 전투를 실제 액션으로 옮깁니다.

1. Perception

자극을 수집한다

AIPerceptionComponent가 플레이어 위치, 소리, 피해 발생을 AIController에 전달합니다.

2. Blackboard

판단 데이터 갱신

목표 액터, 목표 위치, 경계 상태, 재사용 대기시간을 키 타입에 맞게 저장합니다.

3. Decorator

중단 범위 결정

Observer Aborts 설정으로 현재 행동을 유지할지, 우선순위가 높은 브랜치로 갈아탈지 정합니다.

4. Task

행동을 실행한다

Move To, Run EQS, 공격 Task, 애니메이션 재생이 성공과 실패를 반환해 트리 흐름을 닫습니다.

5. Debug

이유 확인

현재 노드, 블랙보드 값, 이동 경로를 함께 보아 AI가 왜 멈췄는지 좁힙니다.

반응성

자주 바뀌는 값은 Service로 관리한다

플레이어 거리나 시야 여부처럼 계속 변하는 조건은 Tick Interval을 두고 갱신해 트리 순회 비용을 제어합니다.

재사용성

커스텀 Task는 입출력 고정

블랙보드 키, 성공 조건, 실패 조건을 명확히 하면 C++ Task와 블루프린트 Task를 같은 트리에서 안전하게 섞을 수 있습니다.