카오스 비주얼 디버거(Chaos Visual Debugger, CVD)는 비정상적인 피직스 행동을 식별하는 데 도움이 되도록 디버그 드로 툴을 제공하여 런타임에서는 일반적으로 볼 수 없는 애플리케이션의 측면을 시각화합니다.
데이터 플래그를 토글하여 뷰포트에 시각화할 디버그 드로 툴을 제어할 수 있습니다. 데이터 플래그는 다음과 같은 카테고리로 구성됩니다.
질량 중심과 같은 특정 플래그는 CVD에서 퍼포먼스에 영향을 미칠 수 있습니다. 디버그 드로 제한에 도달하면 뷰포트에 다음과 같은 경고가 표시됩니다.
최대 디버그 드로 라인 제한에 도달했습니다! 더 적은 디버그 드로 카테고리를 선택하거나 더 좁은 영역에 카메라 초점을 맞추세요.
콜리전 데이터
시각화된 콜리전 데이터는 콜리전이 예기치 않게 발생하는 영역을 식별하는 데 도움이 됩니다. 예를 들어, 두 오브젝트가 예상대로 충돌하지 않고 서로 교차하는 경우를 예로 들 수 있습니다.
콜리전 데이터를 활성화하려면 다음 단계를 따릅니다.
뷰포트 툴바에서 표시(Show) > 콜리전 데이터 플래그(Collision Data Flags) > Enable Draw를 클릭합니다. 이 옵션은 데이터 플래그 목록을 엽니다.
데이터 플래그 목록에서 토글하여 켜거나 끕니다.
콜리전 데이터 시각화 세팅(Collision Data Visualization Settings)을 클릭하여 뷰포트에서 데이터가 그려지는 방식을 커스터마이징합니다.
시각화 세팅에는 다음과 같은 옵션이 있습니다.
디버그 텍스트 표시(Show Debug Text): 뷰포트 디버그 텍스트(있는 경우)를 켜고 끕니다.
뎁스 우선순위(Depth Priority): 월드 스페이스 또는 전경에 데이터를 드로합니다(항상 다른 씬 컴포넌트 위에 위치).
스케일 및 반경 옵션: 디버그 드로 엘리먼트의 크기를 제어하여 뷰포트에서 더 쉽게 확인할 수 있습니다.
대부분의 데이터 플래그에는 토글 가능한 유사한 기능이 포함된 시각화 세팅이 포함되어 있습니다.
씬 쿼리
시각화된 씬 쿼리(라인 트레이스, 스윕, 오버랩)는 런타임 중에 쿼리를 수행했지만 쿼리가 예상한 오브젝트를 찾지 못한 경우를 디버깅하는 데 도움이 될 수 있습니다.
씬 쿼리 데이터를 활성화하려면 다음 단계를 따릅니다.
뷰포트 툴바에서 표시(Show) > 씬 쿼리 데이터 플래그(Scene Query Data Flags) > Enable Draw를 클릭합니다. 이 옵션은 데이터 플래그 목록을 엽니다.
데이터 플래그 목록에서 토글하여 켜거나 끕니다.
씬 쿼리 시각화 세팅(Scene Query Visualization Settings)을 클릭하여 뷰포트에서 데이터가 그려지는 방식을 커스터마이징합니다.
파티클 데이터
시각화된 파티클 데이터는 힘을 적용한 후 예상보다 빠르게 움직이는 파티클과 같은 불규칙한 파티클 행동을 식별하는 데 도움이 될 수 있습니다.
파티클 데이터를 활성화하려면 다음 단계를 따르세요.
뷰포트 툴바에서 표시(Show) > 파티클 데이터 플래그(Particle Data Flags) > Enable Draw를 클릭합니다. 이 옵션은 데이터 플래그 목록을 엽니다.
데이터 플래그 목록에서 토글하여 켜거나 끕니다.
파티클 데이터 시각화 세팅(Particle Data Visualization Settings)을 클릭하여 뷰포트에서 데이터가 그려지는 방식을 커스터마이징합니다.
CVD는 피직스 스레드 파티클 데이터만 기록하고 시각화하며, 게임 스레드 파티클 데이터는 기록하지 않습니다. 게임 스레드 파티클 데이터는 시각화되지 않습니다.
지오메트리
대부분의 파티클은 단순 콜리전 지오메트리와 복합 콜리전 지오메트리를 모두 갖추고 있지만, 콜리전 탐지에는 하나만 사용됩니다.
단순 지오메트리와 복합 지오메트리 및 기타 지오메트리 시각화 플래그를 토글하는 옵션은 뷰포트 툴바의 표시(Show) > 지오메트리 플래그(Geometry Flags) 메뉴에 있습니다.
쿼리 전용 지오메트리는 반투명 머티리얼로 시각화됩니다. T를 눌러 반투명 머티리얼을 클릭하거나 햄버거 메뉴에서 반투명 선택 허용(Allow Translucent Selection)을 클릭하여 반투명 선택을 활성화하거나 비활성화할 수 있습니다.
파티클 채색
드로우 비저빌리티를 높이기 위해 다음 모드를 사용하여 파티클을 채색할 수 있습니다.
없음(None): 파티클을 디폴트 회색으로 그립니다.
스테이트(State): 시뮬레이션에서 피직스 바디의 스테이트(다이내믹, 슬리핑, 키네마틱 또는 스태틱)를 기반으로 컬러화합니다.
셰이프 타입(Shape Type): 콜리전 지오메트리 타입(단순 셰이프, 컨벡스, 하이트필드 또는 트리메시)을 기반으로 색상을 적용합니다.
클라이언트 서버(Client Server): 클라이언트 또는 서버에서 스폰된 파티클을 기반으로 컬러화합니다.
스테이트 및 디폴트 그레이
모드를 변경하고 색상을 커스터마이징하려면 다음 단계를 따릅니다.
뷰포트 툴바에서 표시(Show) > 파티클 채색(Particle Colorization)을 클릭합니다.
컬러 모드(Colors Mode) 드롭다운에서 파티클 컬러 모드(Particle Color Mode) 드롭다운을 클릭하고 사용할 모드를 선택합니다.
상태 기준 컬러(Colors by State) 드롭다운 메뉴를 클릭하여 컬러를 커스터마이징합니다. 그런 다음, 색 타일을 클릭하여 컨텍스트별 색 선택 툴을 엽니다.
아래 표는 컨텍스트별 색 선택 툴 유저 인터페이스(UI)를 설명합니다.
| 번호 | 설명 |
|---|---|
1 | 컬러 휠(또는 토글된 경우 컬러 스펙트럼)입니다. |
2 | 현재 및 이전에 선택한 컬러를 디스플레이합니다. |
3 | sRGB 프리뷰를 토글합니다. |
4 | 컬러 휠과 컬러 스펙트럼 간에 토글합니다. |
5 | 컬러 스키마의 비저빌리티를 토글합니다. |
6 | 스포이드 툴입니다. |
7 | RBG/HSV 슬라이더입니다. |
8 | 알파 슬라이더입니다. |
9 | 현재 컬러의 16진 코드를 표시합니다. |
10 | 컬러 스키마(Color Schemes): Adobe Photoshop 및 기타 디자인 프로그램의 스와치와 유사하게 함수합니다. |
조인트 컨스트레인트
시각화된 조인트 컨스트레인트는 조인트 비틀림과 같은 원치 않는 래그돌 행동을 디버깅하는 데 도움이 됩니다. CVD는 조인트 컨스트레인트 데이터를 프레임마다 개별 데이터 조각으로 기록합니다. 이로 인해 현재는 게임플레이 프레임 전체에서 선택을 유지하는 것이 불가능합니다.
조인트 컨스트레인트 데이터를 활성화하려면 다음 단계를 따릅니다.
뷰포트 툴바에서 표시(Show) > 조인트 컨스트레인트 데이터 플래그(Joint Constraint Data Flags) > Enable Draw를 클릭합니다. 이 옵션은 데이터 플래그 목록을 엽니다.
데이터 플래그 목록에서 토글하여 켜거나 끕니다.
조인트 컨스트레인트 시각화 세팅(Joint Constraint Visualization Settings)을 클릭하여 뷰포트에서 데이터가 그려지는 방식을 커스터마이징합니다.
캐릭터 그라운드 컨스트레인트
CVD는 언리얼 엔진의 캐릭터 무브먼트 시스템인 Mover 2.0에서 사용하는 캐릭터 지면 컨스트레인트의 상태를 기록할 수 있습니다. 이 플래그를 사용하면 캐릭터가 지면 위에 떠 있거나 지면을 통과하는 클리핑과 같은 비정상적인 행동을 식별하고 디버깅할 수 있습니다.
캐릭터 지면 컨스트레인트 데이터를 활성화하려면 다음 단계를 따릅니다.
뷰포트 툴바에서 표시(Show) > 캐릭터 그라운드 컨스트레인트 데이터 플래그(Character Ground Constraints Data Flags) > Enable Draw를 클릭합니다. 이 옵션은 데이터 플래그 목록을 엽니다.
데이터 플래그 목록에서 토글하여 켜거나 끕니다.
캐릭터 그라운드 컨스트레인트 시각화 세팅(Character Ground Constraints Visualization Settings)을 클릭하여 뷰포트에서 데이터가 그려지는 방식을 커스터마이징합니다.
일반 디버그 드로 데이터
다음 C++ 매크로 및 블루프린트 노드는 CVD에서 디버그 드로 셰이프를 직접 기록합니다. 디버그 드로 셰이프는 피직스 계산을 디버깅할 때 컨텍스트를 제공할 수 있습니다.
예를 들어, 공간에서 두 점을 사용하여 피직스 바디에 적용된 힘을 계산하는 경우, CVD는 힘이 적용되기 전과 후의 바디만 표시합니다. 문제가 있는 경우 일반 디버그 드로 매크로(또는 블루프린트 노드)를 사용하여 두 점과 힘을 프레임별로 시각화할 수 있습니다. 이 워크플로는 포스가 계산된 방식에 대한 컨텍스트를 제공하고 이를 수정하는 데 도움이 될 수 있습니다.
C++ 매크로
그려야 하는 셰이프에 따라 각 매크로에는 자체 파라미터 세트가 있습니다.
| 매크로 | 파라미터 | 설명 |
|---|---|---|
TraceDebugDrawBox | InBox | 녹화할 셰이프입니다. |
모든 매크로 | Tag | CVD 뷰포트에서 텍스트 태그로 필터링, 검색 및 디버그 드로를 위한 태그로 사용되는 FName입니다. |
모든 매크로 | Color | CVD에서 디버그 드로잉 시 이 셰이프에 적용할 색입니다. |
모든 매크로 | SolverID | 이 셰이프가 연결되어야 하는 솔버의 ID입니다. ID가 제공되지 않으면 이 셰이프는 데이터 버킷에서 현재 게임의 일부로 추가됩니다. |
TraceDebugDrawLine, TraceDebugDrawVector | InStartLocation | 선의 시작점입니다. |
TraceDebugDrawLine | InEndLocation | 선의 끝점입니다. |
TraceDebugDrawVector | InVector | 기록할 벡터입니다. |
TraceDebugDrawSphere | Center | 스피어의 원점입니다. |
TraceDebugDrawSphere | Radius | 스피어의 반경입니다. |
모든 매크로 | Owner | 이 디버그 드로 셰이프와 관련된 모든 UObject입니다. 이는 셰이프가 서버 솔버에서 기록되는지 클라이언트 솔버에서 기록되는지 확인하기 위해 내부적으로 사용됩니다. |
블루프린트 노드
다음과 같은 일반 디버그 드로 매크로도 블루프린트의 이벤트 그래프에서 함수 노드로 구현할 수 있습니다.
CVD Record Debug Draw Sphere
CVD Record Debug Draw Box
CVD Record Debug Draw Line
각 노드에 대한 자세한 내용은 언리얼 엔진 블루프린트 API 레퍼런스의 카오스 비주얼 디버거 섹션을 참고하세요.
일반 디버그 드로 데이터 활성화
일반 디버그 드로 활성화 데이터를 활성화하려면 다음 단계를 따릅니다.
뷰포트 툴바에서 표시(Show) > 일반 디버그 드로 데이터 플래그(Generic Debug Draw Data Flags) > Enable Draw를 클릭합니다. 이 옵션은 데이터 플래그 목록을 엽니다.
데이터 플래그 목록에서 토글하여 켜거나 끕니다.
일반 디버그 드로 데이터 시각화 세팅(Generic Debug Draw Data Visualization Settings)을 클릭하여 뷰포트에서 데이터가 드로되는 방식을 커스터마이징합니다.
가속화 구조체
CVD는 현재 AABB(Axis-Aligned Bounding Box, 축 정렬 바운딩 박스) 트리인 씬 쿼리 시스템에서 사용하는 가속화 구조체를 기록하고 시각화할 수 있습니다. AABB 트리는 오브젝트 간의 잠재적인 오버랩을 결정하는 데 사용할 수 있는 바운딩 볼륨 계층구조입니다.
CVD에서는 AABB 트리 시각화를 사용하여 트리에 추가된 각 오브젝트의 경계 및 트리의 구성을 확인할 수 있습니다.
이 시각화는 씬 쿼리가 히트해야 하는 오브젝트가 히트되지 않았거나 피직스 엔진에 의해 평가되지 않은 경우 유용합니다. CVD에서 AABB 트리 시각화를 사용하면 오브젝트의 바운드를 검사하고 오류가, 예시로, 바운드가 오브젝트를 시각적으로 포함하지 못하거나 트리 내에서 잘못된 바운드로 인해 발생했는지 여부를 확인할 수 있습니다.
어떤 가속화 구조 데이터 플래그를 커스터마이징하려면 다음 단계를 따릅니다.
뷰포트에서 표시(Show) > 가속화 구조 데이터 플래그(Acceleration Structure Data Flags)를 클릭하고 원하는 데이터 플래그를 선택합니다.
가속화 구조 시각화 세팅(Acceleration Structure Visualization Settings)을 클릭하여 뷰포트에서 데이터가 그려지는 방식을 커스터마이징합니다.
일반 표시 플래그
일반 표시 플래그(Common Show Flags) 메뉴에는 CVD의 비저빌리티를 지원할 수 있는 엔진 자체에서 파생된 플래그가 포함되어 있습니다.
활성화할 플래그를 커스터마이징하려면 뷰포트 툴바에서 표시(Show) > 일반 표시 플래그(Common Show Flags)를 클릭합니다.
다음 순서
데이터 인스펙터
카오스 비주얼 디버거의 데이터 인스펙터를 살펴봅니다.
카오스 비주얼 디버거로 데이터 캡처하기
카오스 비주얼 디버거로 녹화를 캡처하고 재생합니다.