AI 디버깅

AI 디버깅 툴로 AI를 디버그하는 여러 방법을 설명합니다.

Choose your operating system:

Windows

macOS

Linux

AI 엔티티를 생성하면 AI 디버깅 툴(AI Debugging Tools)을 사용하여 문제를 진단하거나 AI가 특정 시간에 무엇을 하고 있는지 볼 수 있습니다. 활성화되고 나면 비헤이비어 트리(Behavior Tree) 보기, 인바이런먼트 쿼리 시스템(Environment Query System, EQS), AI 퍼셉션(AI Perception) 시스템을 모두 동일한 중앙화된 위치 내에서 전환할 수 있습니다.

AI 디버깅 툴을 최대한 활용하려면 레벨 내에 AI 컨트롤러(AI Controller) 가 있는 폰(Pawn) 이 필요하며, 이 폰은 비헤이비어 트리를 실행 중이거나 AI 퍼셉션 컴포넌트를 가지고 있어야 합니다. AI가 EQS를 실행 중이라면, 실행될 때 AI 디버깅 툴 내에 반영됩니다.

AI 디버깅 활성화

AI 디버깅을 활성화하려면 게임이 실행 중일 때 '(아포스트로피) 를 누릅니다.

아포스트로피 키 누르기

AI 디버깅 툴이 활성화되면 다음 옵션을 사용할 수 있습니다.

명령

옵션

'(아포스트로피)

AI 디버깅 툴을 닫습니다.

숫자패드 키(0~4)

표시되는 AI 정보를 토글합니다.

숫자패드 키

디버그 정보

숫자패드 0

현재 사용 가능한 내비메시 데이터 디스플레이를 토글합니다.

숫자패드 1

일반 AI 디버그 정보 디스플레이를 토글합니다.

숫자패드 2

비헤이비어 트리 디버그 정보 디스플레이를 토글합니다.

숫자패드 3

EQS 디버그 정보 디스플레이를 토글합니다.

숫자패드 4

AI 퍼셉션 디버그 정보 디스플레이를 토글합니다.

Ctrl + `(물결표)

사용 중인 HUD 클래스의 표시를 토글합니다(해당되는 경우).

Ctrl + Tab

디버그 메시지 디스플레이를 토글합니다.

위 숫자패드 키와 관련 디버그 정보는 디버그 툴의 디폴트 설정입니다. 키는 프로젝트에서의 필요에 따라 0~9 사이에서 동적으로 조정 가능합니다.

내비메시

AI 디버깅 툴이 활성화되었을 때 숫자패드 0을 누르면 내비메시 바운드(Nav Mesh Bounds) 볼륨(레벨에 배치되어 있는 경우)을 활용하여 AI가 현재 위치에서 이동 가능한 위치를 표시합니다.

숫자패드 0을 누르면 내비메시 바운드 볼륨을 활용하여 AI가 현재 위치에서 이동 가능한 위치를 표시합니다

또한 게임플레이 도중 콘솔 명령 show Navigation true (내비메시 표시) 또는 show Navigation false (내비메시 숨김) 를 사용하여 내비메시 표시를 토글할 수 있습니다.

AI

AI 디버깅 툴이 활성화된 상태로 숫자패드 1을 누르면 일반 AI 디버그 정보를 표시합니다.

숫자패드 1을 누르면 일반 AI 디버그 정보를 표시합니다

AI 디버깅 툴 내의 AI 카테고리는 다음과 같은 AI 관련 일반 정보를 표시합니다.

옵션

설명

컨트롤러 이름

할당된 AI 컨트롤러 클래스를 표시합니다.

폰 이름

할당된 폰 클래스를 표시합니다.

무브먼트 모드(베이스)

현재 무브먼트 모드(그리고 현재 이동의 기반이 되는 메시)를 표시합니다.

내비 데이터(따르는 경로)

내비게이션 클래스(그리고 AI가 이동 중인지 여부)를 표시합니다.

비헤이비어(트리)

비헤이비어 트리가 실행 중인지 여부(그리고 실행 중인 비헤이비어 트리 클래스)를 표시합니다.

활성 태스크

할당된 비헤이비어 트리에서 현재 틱 중인 태스크를 표시합니다.

게임플레이 태스크

큐 등록된 태스크 수를 표시합니다. 게임플레이 태스크의 예시로는 GameplayAbilitySystem 태스크가 있습니다.

몽타주

현재 활성화된 애님 몽타주를 표시합니다.

위 옵션 외에도 레벨의 폰 위에서 할당된 AI 컨트롤러 클래스 및 폰 클래스(뷰포트 오른쪽 상단 구석에도 표시됨)를 볼 수 있습니다.

비헤이비어 트리

AI 디버깅 툴이 활성화되었을 때 숫자패드 2를 누르면 비헤이비어 트리 정보 표시가 토글됩니다. -t 숫자패드 2를 누르면 비헤이비어 트리 정보 표시가 토글됩니다

비헤이비어 트리 디버그 정보는 비헤이비어 트리 정보(왼쪽)와 블랙보드 정보(오른쪽)의 두 가지 카테고리로 나뉩니다. 비헤이비어 트리 정보는 사용 중인 비헤이비어 트리 클래스와 현재 실행 중인 트리 브랜치를 해당 브랜치 내의 노드와 함께 표시합니다. 블랙보드 디버그 정보는 사용되고 있는 블랙보드 에셋과 모든 블랙보드 키 및 현재 값을 표시합니다. 키 값을 바탕으로 AI가 왜 특정 액션을 수행하거나 수행하지 않는지 판단할 데 유용합니다.

일반적인 블루프린트와 마찬가지로 비헤이비어 트리 에셋 내에서 중단점(Breakpoint) 을 사용하여 특정 노드에 도달했을 때 스크립트 실행을 일시정지할 수 있습니다. 이는 비헤이비어 내에서 특정 순간에 무슨 일이 일어나는지 진단하는 데 도움이 됩니다.

EQS

AI 디버깅 툴이 활성화되어 있을 때 숫자패드 3을 눌러서 활성화된 인바이런먼트 쿼리(Environment Query)에 대한 정보를 표시할 수 있습니다.

AI 디버깅 툴이 활성화되어 있을 때 숫자패드 3을 눌러서 활성화된 인바이런먼트 쿼리(Environment Query)에 대한 정보를 표시할 수 있습니다

비주얼 로깅 툴(Visual Logger) 은 참조할 수 있는 EQS 데이터를 기록합니다. 자세한 정보는 링크된 페이지를 참조하세요.

EQS 디버그 정보는 사용된 생성기(Generator)와 함께 실행되고 있는 현재 인바이런먼트 쿼리를 표시합니다. 위 예시에서는 단순 그리드를 사용하여 가장 가까운 적 AI 캐릭터가 플레이어를 시야에 넣기에 가장 좋은 위치를 판정하고 있습니다. 이 예시에서 그리드는 포인트(구체로 표현됨)로 표시됩니다.

녹색 구체는 테스트를 통과한 위치(플레이어에 대한 시야 있음)이며, 파란색 구체는 테스트를 통과하지 못한 위치(플레이어에 대한 시야 없음)입니다. 각 구체에는 숫자로 가중치가 적용되며, 가중치가 가장 높은 위치가 '승리'하고, AI는 승리한 스피어를 선택하여 이동합니다.

/(나누기)를 누르면 테스트 결과를 자세히 보여주는 표가 표시됩니다.

나누기를 누르면 테스트 결과를 자세히 보여주는 표가 표시됩니다

위 예시 이미지에서 가장 오른쪽의 회색 float 숫자는 거리(cm), 녹색 숫자는 테스트에서 지정된 정규화된 값입니다.

EQS는 AI 디버깅 툴을 사용하는 것 외에도 게임을 실행하지 않을 때 특수 폰 타입을 사용하여 쿼리를 디버그하는 방법을 제공합니다. 보다 자세한 정보는 EQS 테스팅 폰(EQS Testing Pawn)을 참조하세요.

퍼셉션

AI 디버깅 툴이 활성화된 런타임에 숫자 패드 4를 누르면 퍼셉션 시스템 정보가 표시됩니다.

숫자 패드 4를 누르면 퍼셉션 시스템 정보가 표시됩니다

위 이미지는 시각이 구성된 AI 캐릭터입니다. 캐릭터의 머리에서 나오는 녹색 디버그 선이 시각을 나타냅니다. 아래 이미지에서 AI 캐릭터가 플레이어(시각 자극의 소스)를 볼 때, 그 위치는 마지막 알려진 위치(Last Known Location) 라는 녹색 구체로 표현됩니다.

위치는 마지막 알려진 위치라는 녹색 구체로 표현됩니다

감지 환경설정(Senses Config)AI 퍼셉션 컴포넌트에 정의된 모든 감각은 디버그 창에 표시됩니다.

감지 환경설정의 AI 퍼셉션 컴포넌트에 정의된 모든 감각은 디버그 창에 표시됩니다

위 이미지에서는 시각(녹색)과 청각(노란색)을 디버깅하고 있습니다.

감각별 디버그 색은 AI 퍼셉션 컴포넌트에서 디버그 컬러(Debug Color) 프로퍼티를 사용하여 변경할 수 있습니다.