AI 디버깅과 성능 점검
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 · 시각 로그
#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 디버깅
' 키: Gameplay Debugger 열기
Numpad 1: 기본 AI 정보
Numpad 2: Behavior Tree와 Blackboard
show Navigation true
stat unit
stat game
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. 핵심 요약
AI 디버깅과 성능 점검 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.