a.AnimNode.OrientationWarping.Verbose

a.AnimNode.OrientationWarping.Verbose

#Overview

name: a.AnimNode.OrientationWarping.Verbose

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 a.AnimNode.OrientationWarping.Verbose is to enable verbose graph debugging for the Orientation Warping feature in Unreal Engine’s animation system. This setting variable is specifically designed for the Animation Warping plugin, which is part of the animation subsystem in Unreal Engine 5.

The Unreal Engine subsystem that relies on this setting variable is the Animation Warping plugin, specifically the Orientation Warping feature. This can be seen from the file path where the variable is defined: Engine/Plugins/Animation/AnimationWarping/Source/Runtime/Private/BoneControllers/AnimNode_OrientationWarping.cpp.

The value of this variable is set as a console variable (CVar) with an initial value of 0, meaning it’s disabled by default. It can be changed at runtime through the console or programmatically.

This variable interacts closely with two other variables:

  1. CVarAnimNodeOrientationWarpingDebug - for turning on visualization debugging
  2. CVarAnimNodeOrientationWarpingEnable - for toggling Orientation Warping on/off

Developers must be aware that this variable is only active when ENABLE_ANIM_DEBUG is defined, which is typically only in non-shipping builds. It’s primarily used for debugging purposes and should not be relied upon for gameplay features.

Best practices when using this variable include:

  1. Only enable it when needed for debugging, as it may impact performance.
  2. Use it in conjunction with other debugging tools to get a comprehensive view of the animation system’s behavior.
  3. Remember to disable it before shipping the game or when performance testing.

Regarding the associated variable CVarAnimNodeOrientationWarpingVerbose:

The purpose of CVarAnimNodeOrientationWarpingVerbose is identical to a.AnimNode.OrientationWarping.Verbose, as they are the same variable. It’s the C++ representation of the console variable.

This variable is used within the FAnimNode_OrientationWarping::GatherDebugData function to conditionally add detailed debugging information when the verbose mode is enabled (set to 1).

When using CVarAnimNodeOrientationWarpingVerbose, developers should:

  1. Access its value using GetValueOnAnyThread() method for thread-safe operations.
  2. Be aware that it affects the amount of debug information gathered, which could impact performance if left enabled.
  3. Use it in development and testing environments, but ensure it’s disabled in production builds.

The best practice is to use this variable judiciously during development and debugging phases, and to have a system in place to easily enable/disable it across different build configurations.

#References in C++ code

#Callsites

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

#Loc: <Workspace>/Engine/Plugins/Animation/AnimationWarping/Source/Runtime/Private/BoneControllers/AnimNode_OrientationWarping.cpp:17

Scope: file

Source code excerpt:

#if ENABLE_ANIM_DEBUG
static TAutoConsoleVariable<int32> CVarAnimNodeOrientationWarpingDebug(TEXT("a.AnimNode.OrientationWarping.Debug"), 0, TEXT("Turn on visualization debugging for Orientation Warping."));
static TAutoConsoleVariable<int32> CVarAnimNodeOrientationWarpingVerbose(TEXT("a.AnimNode.OrientationWarping.Verbose"), 0, TEXT("Turn on verbose graph debugging for Orientation Warping"));
static TAutoConsoleVariable<int32> CVarAnimNodeOrientationWarpingEnable(TEXT("a.AnimNode.OrientationWarping.Enable"), 1, TEXT("Toggle Orientation Warping"));
#endif

namespace UE::Anim
{
	static inline FVector GetAxisVector(const EAxis::Type& InAxis)

#Associated Variable and Callsites

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

#Loc: <Workspace>/Engine/Plugins/Animation/AnimationWarping/Source/Runtime/Private/BoneControllers/AnimNode_OrientationWarping.cpp:17

Scope: file

Source code excerpt:

#if ENABLE_ANIM_DEBUG
static TAutoConsoleVariable<int32> CVarAnimNodeOrientationWarpingDebug(TEXT("a.AnimNode.OrientationWarping.Debug"), 0, TEXT("Turn on visualization debugging for Orientation Warping."));
static TAutoConsoleVariable<int32> CVarAnimNodeOrientationWarpingVerbose(TEXT("a.AnimNode.OrientationWarping.Verbose"), 0, TEXT("Turn on verbose graph debugging for Orientation Warping"));
static TAutoConsoleVariable<int32> CVarAnimNodeOrientationWarpingEnable(TEXT("a.AnimNode.OrientationWarping.Enable"), 1, TEXT("Toggle Orientation Warping"));
#endif

namespace UE::Anim
{
	static inline FVector GetAxisVector(const EAxis::Type& InAxis)

#Loc: <Workspace>/Engine/Plugins/Animation/AnimationWarping/Source/Runtime/Private/BoneControllers/AnimNode_OrientationWarping.cpp:56

Scope (from outer to inner):

file
function     void FAnimNode_OrientationWarping::GatherDebugData

Source code excerpt:

	FString DebugLine = DebugData.GetNodeName(this);
#if ENABLE_ANIM_DEBUG
	if (CVarAnimNodeOrientationWarpingVerbose.GetValueOnAnyThread() == 1)
	{
		if (Mode == EWarpingEvaluationMode::Manual)
		{
			DebugLine += TEXT("\n - Evaluation Mode: (Manual)");
			DebugLine += FString::Printf(TEXT("\n - Orientation Angle: (%.3fd)"), FMath::RadiansToDegrees(ActualOrientationAngleRad));
		}