ShowFlag.VisualizeSenses
ShowFlag.VisualizeSenses
#Overview
name: ShowFlag.VisualizeSenses
This variable is created as a Console Variable (cvar).
- type:
Var
- help:
Allows to override a specific showflag (works in editor and game, \
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:
- Use it during AI behavior debugging sessions to understand how AI characters perceive their environment.
- Remember to disable it before building the final version of the game.
- Combine it with other debugging tools and visualizations for a comprehensive understanding of AI behavior.
- Be cautious about performance impact when enabled, especially in complex scenes with many AI characters.
Regarding the associated variable VisualizeSenses:
- Its purpose is identical to ShowFlag.VisualizeSenses, used to control the visualization of AI senses.
- It’s used directly in the FSensingComponentVisualizer class to determine whether to draw the visualization for the PawnSensingComponent.
- The value is checked in the DrawVisualization function of the FSensingComponentVisualizer class.
- Developers should treat it the same as ShowFlag.VisualizeSenses, using it for debugging and development purposes only.
- Best practices include using it in conjunction with other AI debugging tools and ensuring it’s disabled in final builds.
#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"))