ShowFlag.VisualizeSenses

ShowFlag.VisualizeSenses

#Overview

name: ShowFlag.VisualizeSenses

This variable is created as a Console Variable (cvar).

It is referenced in 3 C++ source files.

#Summary

#Usage in the C++ source code

The purpose of ShowFlag.VisualizeSenses is to enable the visualization of the senses configuration for AI’s PawnSensingComponent in Unreal Engine 5. This setting is primarily used for debugging and development purposes, allowing developers to visually inspect how AI characters perceive their environment.

This setting variable is mainly utilized by the AI and visualization systems within Unreal Engine. Based on the callsites, it’s clear that the ComponentVisualizers module relies on this flag to render the visual representation of the PawnSensingComponent.

The value of this variable is set in the ShowFlagsValues.inl file, which is part of the Engine’s core. It’s defined using the SHOWFLAG_FIXED_IN_SHIPPING macro, indicating that it’s not available in shipping builds of the game.

The associated variable VisualizeSenses interacts directly with ShowFlag.VisualizeSenses. They share the same value and purpose, with VisualizeSenses being used in the actual implementation of the visualization logic.

Developers must be aware that this visualization flag is only available in non-shipping builds. It’s intended for development and debugging purposes, not for use in final, released versions of the game.

Best practices when using this variable include:

  1. Use it during AI behavior debugging sessions to understand how AI characters perceive their environment.
  2. Remember to disable it before building the final version of the game.
  3. Combine it with other debugging tools and visualizations for a comprehensive understanding of AI behavior.
  4. Be cautious about performance impact when enabled, especially in complex scenes with many AI characters.

Regarding the associated variable VisualizeSenses:

#References in C++ code

#Callsites

This variable is referenced in the following C++ source code:

#Loc: <Workspace>/Engine/Source/Runtime/Engine/Public/ShowFlagsValues.inl:355

Scope: file

Source code excerpt:

SHOWFLAG_FIXED_IN_SHIPPING(0, VisualizeShadingModels, SFG_Visualize, NSLOCTEXT("UnrealEd", "VisualizeShadingModels", "Shading Models"))
/** Visualize the senses configuration of AIs' PawnSensingComponent */
SHOWFLAG_FIXED_IN_SHIPPING(0, VisualizeSenses, SFG_Advanced, NSLOCTEXT("UnrealEd", "VisualizeSenses", "Senses"))
/** Visualize LOD Coloration */
SHOWFLAG_FIXED_IN_SHIPPING(0, LODColoration, SFG_Hidden, NSLOCTEXT("UnrealEd", "VisualizeLODColoration", "Visualize LOD Coloration"))
/** Visualize HLOD Coloration */
SHOWFLAG_FIXED_IN_SHIPPING(0, HLODColoration, SFG_Hidden, NSLOCTEXT("UnrealEd", "VisualizeHLODColoration", "Visualize HLOD Coloration"))
/** Visualize screen quads */
SHOWFLAG_FIXED_IN_SHIPPING(0, QuadOverdraw, SFG_Hidden, NSLOCTEXT("UnrealEd", "QuadOverdrawSF", "Quad Overdraw"))

#Associated Variable and Callsites

This variable is associated with another variable named VisualizeSenses. They share the same value. See the following C++ source code.

#Loc: <Workspace>/Engine/Source/Editor/ComponentVisualizers/Private/SensingComponentVisualizer.cpp:18

Scope (from outer to inner):

file
function     void FSensingComponentVisualizer::DrawVisualization

Source code excerpt:

void FSensingComponentVisualizer::DrawVisualization(const UActorComponent* Component, const FSceneView* View, FPrimitiveDrawInterface* PDI)
{
	if (View->Family->EngineShowFlags.VisualizeSenses)
	{
		const UPawnSensingComponent* Senses = Cast<const UPawnSensingComponent>(Component);
		if (Senses != NULL)
		{
			const FTransform Transform = FTransform(Senses->GetSensorRotation(), Senses->GetSensorLocation());

#Loc: <Workspace>/Engine/Source/Runtime/Engine/Public/ShowFlagsValues.inl:355

Scope: file

Source code excerpt:

SHOWFLAG_FIXED_IN_SHIPPING(0, VisualizeShadingModels, SFG_Visualize, NSLOCTEXT("UnrealEd", "VisualizeShadingModels", "Shading Models"))
/** Visualize the senses configuration of AIs' PawnSensingComponent */
SHOWFLAG_FIXED_IN_SHIPPING(0, VisualizeSenses, SFG_Advanced, NSLOCTEXT("UnrealEd", "VisualizeSenses", "Senses"))
/** Visualize LOD Coloration */
SHOWFLAG_FIXED_IN_SHIPPING(0, LODColoration, SFG_Hidden, NSLOCTEXT("UnrealEd", "VisualizeLODColoration", "Visualize LOD Coloration"))
/** Visualize HLOD Coloration */
SHOWFLAG_FIXED_IN_SHIPPING(0, HLODColoration, SFG_Hidden, NSLOCTEXT("UnrealEd", "VisualizeHLODColoration", "Visualize HLOD Coloration"))
/** Visualize screen quads */
SHOWFLAG_FIXED_IN_SHIPPING(0, QuadOverdraw, SFG_Hidden, NSLOCTEXT("UnrealEd", "QuadOverdrawSF", "Quad Overdraw"))