ControlRig.Sequencer.EnableAdditiveControlRigs

ControlRig.Sequencer.EnableAdditiveControlRigs

#Overview

name: ControlRig.Sequencer.EnableAdditiveControlRigs

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

It is referenced in 4 C++ source files.

#Summary

#Usage in the C++ source code

The purpose of ControlRig.Sequencer.EnableAdditiveControlRigs is to enable or disable the ability to add additive control rigs to skeletal mesh components within the Unreal Engine’s Sequencer system.

This setting variable is primarily used in the Control Rig plugin, specifically within the ControlRigEditor module. It affects the functionality related to control rig animation in the Sequencer.

The value of this variable is set as a console variable (CVar) with a default value of true. It can be modified at runtime through the console or configuration files.

The associated variable CVarEnableAdditiveControlRigs directly interacts with this setting. They share the same value and purpose.

Developers must be aware that this variable controls the availability of additive control rig features in the Sequencer. When set to true, it allows the addition of layered control rigs to skeletal mesh components, which can be useful for creating more complex animations.

Best practices when using this variable include:

  1. Consider the performance implications of enabling additive control rigs, especially in complex scenes.
  2. Use it in conjunction with other Control Rig features to create more sophisticated animation setups.
  3. Be aware that disabling this feature might affect existing projects that rely on additive control rigs.

Regarding the associated variable CVarEnableAdditiveControlRigs:

#References in C++ code

#Callsites

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

#Loc: <Workspace>/Engine/Plugins/Animation/ControlRig/Source/ControlRigEditor/Private/Sequencer/ControlRigParameterTrackEditor.cpp:113

Scope: file

Source code excerpt:

TAutoConsoleVariable<bool> CVarSelectedSectionSetsSectionToKey(TEXT("ControlRig.Sequencer.SelectedSectionSetsSectionToKey"), true, TEXT("When true when we select a channel in a section, if it's the only section selected we set it as the Section To Key, by default false."));

TAutoConsoleVariable<bool> CVarEnableAdditiveControlRigs(TEXT("ControlRig.Sequencer.EnableAdditiveControlRigs"), true, TEXT("When true it is possible to add an additive control rig to a skeletal mesh component."));

static USkeletalMeshComponent* AcquireSkeletalMeshFromObject(UObject* BoundObject, TSharedPtr<ISequencer> SequencerPtr)
{
	if (AActor* Actor = Cast<AActor>(BoundObject))
	{
		if (USkeletalMeshComponent* SkeletalMeshComponent = Cast<USkeletalMeshComponent>(Actor->GetRootComponent()))

#Associated Variable and Callsites

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

#Loc: <Workspace>/Engine/Plugins/Animation/ControlRig/Source/ControlRigEditor/Private/Sequencer/ControlRigParameterTrackEditor.cpp:113

Scope: file

Source code excerpt:

TAutoConsoleVariable<bool> CVarSelectedSectionSetsSectionToKey(TEXT("ControlRig.Sequencer.SelectedSectionSetsSectionToKey"), true, TEXT("When true when we select a channel in a section, if it's the only section selected we set it as the Section To Key, by default false."));

TAutoConsoleVariable<bool> CVarEnableAdditiveControlRigs(TEXT("ControlRig.Sequencer.EnableAdditiveControlRigs"), true, TEXT("When true it is possible to add an additive control rig to a skeletal mesh component."));

static USkeletalMeshComponent* AcquireSkeletalMeshFromObject(UObject* BoundObject, TSharedPtr<ISequencer> SequencerPtr)
{
	if (AActor* Actor = Cast<AActor>(BoundObject))
	{
		if (USkeletalMeshComponent* SkeletalMeshComponent = Cast<USkeletalMeshComponent>(Actor->GetRootComponent()))

#Loc: <Workspace>/Engine/Plugins/Animation/ControlRig/Source/ControlRigEditor/Private/Sequencer/ControlRigParameterTrackEditor.cpp:1314

Scope (from outer to inner):

file
function     void FControlRigParameterTrackEditor::HandleAddTrackSubMenu

Source code excerpt:

void FControlRigParameterTrackEditor::HandleAddTrackSubMenu(FMenuBuilder& MenuBuilder, TArray<FGuid> ObjectBindings, UMovieSceneTrack* Track)
{
	if (CVarEnableAdditiveControlRigs->GetBool())
	{
		MenuBuilder.AddMenuEntry(
		LOCTEXT("IsLayeredControlRig", "Layered"),
		LOCTEXT("IsLayeredControlRigTooltip", "When checked, a layered control rig will be added"),
		FSlateIcon(),
		FUIAction(

#Loc: <Workspace>/Engine/Plugins/Animation/ControlRig/Source/ControlRigEditor/Private/Sequencer/ControlRigParameterTrackEditor.cpp:4127

Scope (from outer to inner):

file
function     void FControlRigParameterTrackEditor::BuildTrackContextMenu

Source code excerpt:

			);

			if (CVarEnableAdditiveControlRigs->GetBool())
			{
				MenuBuilder.AddMenuEntry(
					   LOCTEXT("ConvertIsLayeredControlRig", "Convert To Layered"),
					   LOCTEXT("ConvertIsLayeredControlRigToolTip", "Converts the Control Rig from an Absolute rig to a Layered rig"),
					   FSlateIcon(),
					   FUIAction(