The camera debug visualization layer emits data-driven debug primitives for camera systems. Runtime drawing code can bind these primitives to Unreal debug draw calls without making the validation path depend on editor-only rendering.
Runtime Surface#
FV2CameraDebugVisualizationConfigconfigures draw toggles, frustum depth, aspect ratio, primitive duration, line thickness, and debug colors.FV2CameraDebugVisualizationStatecarries the camera mode and spring arm endpoints.FV2CameraDebugCollisionTracecarries trace start, end, optional impact point, and hit marker radius.FV2CameraDebugLookAtTargetcarries target id, location, radius, and selected state.FV2CameraDebugPrimitiverepresents frustum, line, or sphere draw commands.FV2CameraDebugVisualizationEvaluationreturns emitted primitives and validation issues.
Debug Rules#
- Invalid config, state, traces, or targets are blocking.
- Frustum output emits one
Frustumprimitive carrying camera pose, FOV, aspect ratio, and depth. - Spring arm output emits a line from origin to target.
- Collision traces emit trace lines and hit spheres when a trace hit is present.
- Look-at targets emit target spheres and camera-to-target lines.
- Selected look-at targets use doubled line thickness.
- Draw toggles suppress their corresponding primitive groups.
Validation Commands#
Run these targeted checks when touching camera debug visualization:
bash
python3 V2/ue/Tools/check-v2-camera-debug-visualization.py
python3 V2/ue/Tools/check-v2-camera-manager.py
python3 V2/ue/Tools/check-v2-ci-workflow.py
python3 -m json.tool V2/ue/Content/V2/Gameplay/Camera/CameraDebugVisualization_V2_Contract.json
python3 -m py_compile V2/ue/Tools/check-v2-camera-debug-visualization.py