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

AI 디버깅과 성능 점검

난이도초급
예상 시간50분
선수지식22강의 AI DataAsset

23강. AI 디버깅과 성능 점검

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

적이 갑자기 추적을 멈추지만 거리, 시야, Blackboard, NavMesh 중 무엇이 원인인지 보이지 않습니다. 판단 값과 경로를 시간 순서로 관찰합니다.

2. 학습 목표

3. 핵심 개념

AI 디버깅은 결과 화면만 보는 작업이 아닙니다. 목표, 거리, 내적, 시야 Trace, 상태, 현재 BT Task와 경로를 같은 시간축에서 확인해야 합니다.

공식 AI Debugging 문서는 Gameplay Debugger에서 AI, Behavior Tree, Blackboard와 NavMesh 정보를 보는 방법을 설명하고, Visual Logger 문서는 기록된 Actor 상태를 되돌려 보는 방법을 안내합니다. 단축키와 메뉴는 UE 버전·키보드 설정에 따라 다를 수 있습니다.

4. 단계별 실습

C++ · 파일 경로: Source/TopDownSurvival/AI/MathAIController.cpp · 시각 로그

MathAIController.cpp · 판단 기록
#include "VisualLogger/VisualLogger.h"

void AMathAIController::LogDecision(
AActor* Target, float Distance, bool bVisible) const
{
UE_VLOG(this, LogTemp, Verbose,
TEXT("State=%d Target=%s Distance=%.1f Visible=%s"),
static_cast<int32>(CurrentState),
*GetNameSafe(Target),
Distance,
bVisible ? TEXT("true") : TEXT("false"));

if (GetPawn() && Target)
{
UE_VLOG_SEGMENT(
this,
LogTemp,
Verbose,
GetPawn()->GetActorLocation(),
Target->GetActorLocation(),
bVisible ? FColor::Green : FColor::Red,
TEXT("Sight"));
}
}

Visual Logger를 사용하는 빌드 구성과 매크로 지원은 프로젝트 엔진 버전에서 확인합니다.

PIE 디버깅

Console / Gameplay Debugger
' 키: Gameplay Debugger 열기
Numpad 1: 기본 AI 정보
Numpad 2: Behavior Tree와 Blackboard
show Navigation true
stat unit
stat game

PowerShell · 실행 위치: 프로젝트 루트

PowerShell · 로그 확인
$LogFile = ".\Saved\Logs\TopDownSurvival.log"
Get-Content $LogFile -Tail 100 -Wait

성능 시나리오

동일 맵에서 적 10, 30, 60개를 각각 60초 실행합니다. DecisionInterval 0.1, 0.25, 0.5초를 바꾸며 Game Thread, Trace 호출 수, 반응 지연을 기록합니다.

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

선과 색은 시야 결과를 공간에서 보여 주고 로그는 상태 전환 시점과 값을 남깁니다. Gameplay Debugger는 현재 BT Branch와 Blackboard를, Visual Logger는 지나간 순간을 다시 확인하게 합니다. 고정된 적 수·맵·시간이 있어야 주기 변경 전후를 비교할 수 있습니다.

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

7. 직접 실습

8. 이해 점검 질문 3개

9. 핵심 요약

MINI QUIZ

AI 디버깅과 성능 점검 미니 퀴즈

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

0 / 2
  1. 문제 1“AI 디버깅과 성능 점검” 내용을 실제 작업에 적용한 설명으로 가장 알맞은 것은 무엇인가요?
  2. 문제 2“AI 디버깅과 성능 점검” 실습 중 ‘다른 PC의 숫자를 절대 기준으로 사용’ 상황을 발견했습니다. 본문과 일치하는 설명은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

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

23강. AI 디버깅과 성능 점검 미완료 상태