프리미티브 디버거(Primitive Debugger) 는 드로 콜, LOD 정보 등 게임 클라이언트에서 렌더링되는 프리미티브 관련 정보를 확인하기 위해 사용되는 런타임 전용 툴입니다.
프리미티브 디버거 사용하기
프리미티브 디버거를 실행하려면 다음 단계를 따릅니다.
- 개발(Development) 또는 테스트(Test) 클라이언트를 실행합니다.
- 백틱 키를 눌러 콘솔을 열고
PrimitiveDebugger.Open
명령을 입력합니다. - 프리미티브 디버거 창이 표시되고, 창이 열린 시점에 렌더링되고 있던 프리미티브 목록으로 채워집니다.
- 표시된 프리미티브 목록을 새로 고치려면 새로고침(Refresh) 버튼을 누릅니다.
게임플레이 동안 소멸되는 프리미티브는 목록에서 자동으로 제거됩니다.
프리미티브 디버거 기능
목록 및 디테일 보기
프리미티브 디버거 내에서 상단의 검색창을 사용하여 표시되는 프리미티브 목록을 필터링할 수 있습니다. 검색창에서 다음과 같은 프로퍼티를 이름별로 필터링할 수 있습니다.
- 프리미티브 이름
- 액터 이름
- 컴포넌트 이름
- 액터 클래스
- 컴포넌트 클래스
- 머티리얼 이름
- 텍스처 이름
나열된 각 프리미티브의 비저빌리티를 토글하거나 빠른 액세스를 위해 목록 상단에 고정할 수 있습니다. 목록을 스크롤하면 각 프리미티브의 액터 이름이 표시됩니다. 테이블 행을 선택하면 선택된 프리미티브의 추가 프로퍼티가 있는 '디테일(Details)' 패널이 열립니다.
추가 프로퍼티는 다음과 같습니다.
- 트라이앵글 수(비나나이트 메시)
- 월드 스페이스에서의 위치
- 현재 LOD(비나나이트 메시)
- 사용 가능한 총 LOD(비나나이트 메시)
- 나나이트 지원 및 사용
- 머티리얼
- 사용된 텍스처
- 드로 콜
- 컴포넌트 및 액터 타입
- 컴포넌트 및 액터 이름
- 스켈레탈 메시 본 수

디테일 패널
컨트롤 디버깅 및 시각화
'디테일' 패널은 현재 빌드의 환경설정에 따라 기본적인 디버깅 툴을 제공합니다. 모든 비나나이트 메시에 대해 슬라이더를 사용하여 프리미티브에 특정 레벨 오브 디테일(Level of Detail, LOD)를 강제하고 게임에 표시되는 모델을 업데이트할 수 있습니다.
나나이트 메시에는 나나이트 렌더링 비활성화를 강제하여 게임이 일반 스태틱 메시를 제자리에서 렌더링하게 하는 옵션이 있습니다. 이 옵션은 나나이트와 비나나이트 머티리얼 베리에이션 간의 차이를 확인하거나 다른 비주얼 불일치 및 퍼포먼스 영향을 확인하는 데 유용합니다.
개발 빌드에서 스켈레탈 메시는 에디터에서 볼 수 있는 것과 유사하게 실시간으로 업데이트되는 스켈레톤 내 본의 디버그 시각화를 표시할 수 있습니다. 이는 애니메이션 및 리깅 오류를 찾아내는 데 유용합니다. 또한 개발 빌드는 레벨 내 프리미티브 주변에 디버그 바운딩 박스를 표시하며, 이 또한 실시간으로 업데이트됩니다. 이러한 바운드는 콜라이더와 다르며, 3D 스페이스에서 프리미티브의 최대 규모를 나타냅니다.
스켈레톤의 디버그 시각화. | 바운드 디버그 시각화 |
이미지를 클릭하면 전체 크기로 표시됩니다.
디버그 시각화 및 툴을 모두 사용한 후에는 창을 닫아서 변경사항을 자동으로 실행 취소할 수 있습니다.
스냅샷 저장하기
각 프리미티브 디테일을 포함한 프리미티브 목록의 콘텐츠는 창 오른쪽 상단의 CSV로 저장(Save to CSV) 옵션을 사용하여 이후에 참고하기 위해 디스크에 저장할 수 있습니다. 이렇게 하면 검색 필터에 의해 숨겨진 항목을 포함하여 현재 스냅샷에 기록된 모든 프리미티브가 csv 파일에 저장되며, 프로젝트의 Saved/Profiling/Primitives/ 폴더에서 타임스탬프가 적용된 PrimitivesDetailed.csv 파일을 찾을 수 있습니다. 또는 이 동작은 게임 내 명령줄에서 DumpDetailedPrimitives 명령을 사용하여 수행할 수도 있습니다.
제한 및 예정된 변경사항
현재 알려져 있는 프리미티브 디버거의 제한은 다음과 같습니다.
- 디버그 시각화는 개발 환경설정에서만 사용할 수 있습니다.
- 에디터에서는 이 툴이 지원되지 않으며, 빌드된 클라이언트 바이너리에서만 사용하도록 디자인되었습니다.
- 나이아가라 이미터 등 메시가 아닌 프리미티브는 현재 지원이 제한됩니다.
- 표시된 드로 콜 정보는 인스턴스드 메시 전체를 보여주지 않을 수도 있습니다. 현재 드로 콜은 메시가 배치 없이 그 자체로 존재하는 것처럼 계산됩니다.