본문으로 건너뛰기
게임 수학 · 게임 AI 기초집LESSON 18

순찰 AI

난이도초급
예상 시간50분
선수지식17강의 상태 머신

18강. 순찰 AI

1. 이번 강의에서 해결할 문제​

현재 위치를 중심으로 계속 랜덤 순찰해 적이 원래 구역에서 멀리 떠납니다. HomeLocation을 기준으로 목적지를 선택하고 도착 후 잠시 대기합니다.

2. 학습 목표​

3. 핵심 개념​

순찰은 목표 위치 선택, 이동, 도착, 대기의 반복입니다. 위치 선택과 이동 성공 여부를 분리하면 NavMesh 실패를 다룰 수 있습니다.

현재 위치를 기준으로 랜덤 지점을 계속 고르면 Random Walk가 되어 장기적으로 멀어질 수 있습니다. 스폰 또는 배치 위치인 HomeLocation을 중심으로 반경을 제한합니다.

4. 단계별 실습​

Blackboard 작업

BB_EnemyCombat에 HomeLocation Vector Key를 추가합니다.

C++ · 파일 경로: Source/TopDownSurvival/AI/MathAIController.cpp · OnPossess 추가

MathAIController.cpp · Home 저장
void AMathAIController::OnPossess(APawn* InPawn)
{
Super::OnPossess(InPawn);
if (!BehaviorTreeAsset || !RunBehaviorTree(BehaviorTreeAsset))
{
return;
}

if (UBlackboardComponent* Blackboard = GetBlackboardComponent())
{
Blackboard->SetValueAsVector(
TEXT("HomeLocation"), InPawn->GetActorLocation());
Blackboard->SetValueAsEnum(
TEXT("AIState"), static_cast<uint8>(EEnemyAIState::Patrol));
}
}

C++ · 파일 경로: Source/TopDownSurvival/AI/Tasks/BTTask_FindPatrolLocation.cpp · 기준 변경

BTTask_FindPatrolLocation.cpp · Home 기준
UBlackboardComponent* Blackboard = OwnerComp.GetBlackboardComponent();
const FVector Home = Blackboard->GetValueAsVector(TEXT("HomeLocation"));

FNavLocation Location;
if (!Navigation->GetRandomReachablePointInRadius(
Home, PatrolRadius, Location))
{
return EBTNodeResult::Failed;
}

Blackboard->SetValueAsVector(
PatrolLocationKey.SelectedKeyName, Location.Location);
return EBTNodeResult::Succeeded;

Behavior Tree 작업

Patrol Sequence를 다음 순서로 구성합니다.

  1. Decorator: AIState == Patrol
  2. Find Reachable Patrol Location
  3. Move To: PatrolLocation, Acceptable Radius 60
  4. Wait: 1.0~2.5초 Random Deviation

Decorator의 Observer Aborts를 Self로 설정하면 상태가 Chase로 바뀔 때 순찰 Branch를 중단할 수 있습니다. 세부 옵션 이름은 UE 버전에 따라 다를 수 있습니다.

5. 코드와 수학·AI가 동작하는 이유​

Home을 고정 중심으로 사용하면 각 목적지가 같은 순찰 구역 안에 남습니다. Navigation이 반환한 도달 가능 위치만 Blackboard에 기록하고 MoveTo가 비동기로 경로를 수행합니다. Wait는 이동 완료 뒤 즉시 다음 경로를 요청하는 부자연스러움을 줄입니다.

6. 자주 하는 실수와 해결법​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

MINI QUIZ

순찰 AI 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1다음 중 “순찰 AI”의 핵심 요약을 실제 상황에 맞게 적용한 것은 무엇인가요?
  2. 문제 2‘MoveTo를 매 Tick 호출’ 상태에 관한 “순찰 AI” 본문의 설명으로 가장 알맞은 것은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

18강. 순찰 AI 미완료 상태