UControlRig

Runs logic for mapping input data to transforms (the "Rig")

Choose your operating system:

Windows

macOS

Linux

Inheritance Hierarchy

References

Module

ControlRig

Header

/Engine/Plugins/Animation/ControlRig/Source/ControlRig/Public/ControlRig.h

Include

#include "ControlRig.h"

Syntax

UCLASS(Blueprintable, Abstract, EditInlineNew)
class UControlRig :
    public UObject,
    public INodeMappingProviderInterface,
    public IInterface_AssetUserData

Remarks

Runs logic for mapping input data to transforms (the "Rig")

Variables

Name Description

Protected variable UProperty Category, EditAnywhere, AdvancedDisplay instanced

TArray< TObject...

 

AssetUserData

Array of user data stored with the asset

Protected variable

bool

 

bCopyHierarchyBeforeSetup

Protected variable

bool

 

bManipulationEnabled

Protected variable

bool

 

bRequiresInitExecution

Protected variable

bool

 

bRequiresSetupEvent

Protected variable

bool

 

bResetInitialTransformsBeforeSetup

Protected variable

bool

 

bSetupModeEnabled

Public variable UProperty Transient

ERigExecutionTy...

 

ExecutionType

Protected variable

int32

 

InitBracket

Protected variable

int32

 

InteractionBracket

Protected variable

int32

 

InterRigSyncBracket

Protected variable

FControlModifie...

 

OnControlModified

Protected variable

FControlSelecte...

 

OnControlSelected

Protected variable

FFilterControlE...

 

OnFilterControl

Protected variable

TWeakObjectPtr<...

 

OuterSceneComponent

Protected variable

int32

 

PostForwardsSolveBracket

Protected variable

int32

 

PostSetupBracket

Protected variable

int32

 

PreForwardsSolveBracket

Protected variable

int32

 

PreSetupBracket

Protected variable

TArray< FRigEle...

 

QueuedModifiedControls

Protected variable

int32

 

UpdateBracket

Public variable UProperty

FRigVMRuntimeSe...

 

VMRuntimeSettings

Constructors

Name Description

Public function

UControlRig

(
    const FObjectInitializer& ObjectIn...
)

Functions

Name Description

Public function

void

 

AddBreakpoint

(
    int32 InstructionIndex,
    URigVMNode* InNode,
    uint16 InDepth
)

Adds a breakpoint in the VM at the InstructionIndex for the Node

Public function Static

void

 

AddReferencedObjects

(
    UObject* InThis,
    FReferenceCollector& Collector
)

Public function

void

 

ApplyTransformOverrideForUserCreatedBones()

Public function Virtual Const

TArray< FRig...

 

AvailableControls()

Public function

void

 

BroadCastEndLoadPackage()

These are needed so that sequencer can have a chance to update its ControlRig instances after the package is fully end-loaded

Public function Virtual Const UFunction BlueprintPure, Category

bool

 

CanExecute()

Is valid for execution

Public function Virtual UFunction BlueprintCallable, Category

bool

 

ClearControlSelection()

Public function

FFilterContr...

 

ControlFilter()

Returns a event that can be used to subscribe to filtering control data when needed

Public function

FControlModi...

 

ControlModified()

Returns a event that can be used to subscribe to change notifications coming from the manipulated subject.

Public function

FControlSele...

 

ControlSelected()

Returns a event that can be used to subscribe to selection changes coming from the manipulated subject.

Public function Virtual

void

 

CreateRigControlsForCurveContainer()

Public function Virtual Const UFunction BlueprintPure, Category

TArray< FNam...

 

CurrentControlSelection()

Public function Virtual

void

 

Evaluate_AnyThread()

Evaluate at Any Thread

Public function UFunction BlueprintCallable, Category

void

 

Execute

(
    const EControlRigState State,
    const FName& InEventName
)

Execute

Public function

bool

 

ExecuteBreakpointAction

(
    const ERigVMBreakpointAction Breakp...
)

If the VM is halted at a breakpoint, it sets a breakpoint action so that it is applied on the next VM execution

Public function Virtual

void

 

ExecuteUnits

(
    FRigUnitContext& InOutContext,
    const FName& InEventName
)

ExecuteUnits

Public function Virtual Const

FRigControlE...

 

FindControl

(
    const FName& InControlName
)

Public function Static UFunction BlueprintCallable, Category

TArray< UCon...

 

FindControlRigs

(
    UObject* Outer,
    TSubclassOf< UControlRig > Optional...
)

Public function Const UFunction BlueprintPure, Category

float

 

GetAbsoluteTime()

Gets the current absolute time

Public function Virtual Const

FText

 

GetCategory()

Get the category of this ControlRig (for display in menus)

Public function Const

const FRigCo...

 

GetControlCustomization

(
    const FRigElementKey& InControl
)

Public function Virtual Const

FTransform

 

GetControlGlobalTransform

(
    const FName& InControlName
)

Public function Virtual

FTransform

 

GetControlLocalTransform

(
    const FName& InControlName
)

Public function Virtual Const

void

 

GetControlsInOrder

(
    TArray< FRigControlElement* > ...
)

Public function

FRigControlV...

 

GetControlValue

(
    const FName& InControlName
)

Returns the value of a Control.

Public function Virtual

FRigControlV...

 

GetControlValueFromGlobalTransform

(
    const FName& InControlName,
    const FTransform& InGlobalTransfor...
)

Public function Const UFunction BlueprintPure, Category

float

 

GetCurrentFramesPerSecond()

Returns the current frames per second (this may change over time)

Public function

UAnimationDa...

 

GetDataSourceRegistry()

Data Source Registry Getter

Public function Const

float

 

GetDebugBoneRadiusMultiplier()

Public function

FRigVMDebugI...

 

GetDebugInfo()

Public function

FControlRigD...

 

GetDrawContainer()

Public function Const

const FContr...

 

GetDrawContainer()

Public function Const

const FContr...

 

GetDrawInterface()

Public function

FControlRigD...

 

GetDrawInterface()

Public function Const

const TArray...

 

GetEventQueue()

Returns the queue of events to run

Public function Const

TArray< FRig...

 

GetExternalVariables()

Returns the member properties as an external variable array

Public function UFunction BlueprintPure, Category

URigHierarch...

 

GetHierarchy()

Public function Const UFunction blueprintgetter

UControlRig ...

 

GetInteractionRig()

Public function Const UFunction blueprintgetter

TSubclassOf<...

 

GetInteractionRigClass()

Public function Virtual Const

FString

 

GetName()

Public function Const

TSharedPtr< ...

 

GetObjectBinding()

Public function Const

FRigVMExtern...

 

GetPublicVariableByName

(
    const FName& InVariableName
)

Returns a public variable given its name

Public function Const

TArray< FRig...

 

GetPublicVariables()

Returns the public member properties as an external variable array

Public function

T

 

GetPublicVariableValue

(
    const FName& InVariableName
)

Public function Const UFunction BlueprintPure, Category, Meta

TArray< FNam...

 

GetScriptAccessibleVariables()

Returns the names of variables accessible in scripting

Public function Virtual Const

const TArray...

 

GetShapeLibraries()

Public function

URigVM *

 

GetSnapshotVM

(
    bool bCreateIfNeeded
)

Creates the snapshot VM if required and returns it

Public function Const UFunction BlueprintPure, Category

TArray< FNam...

 

GetSupportedEvents()

Public function Virtual Const

FText

 

GetToolTipText()

Get the tooltip text to display for this node (displayed in graphs and from context menus)

Public function Const UFunction BlueprintPure, Category

FString

 

GetVariableAsString

(
    const FName& InVariableName
)

Returns the value of a given variable as a string

Public function Const UFunction BlueprintPure, Category

FName

 

GetVariableType

(
    const FName& InVariableName
)

Returns the type of a given variable

Public function UFunction BlueprintPure, Category

URigVM *

 

GetVM()

Public function Virtual Const

UWorld *

 

GetWorld()

UObject interface

Public function Virtual

void

 

Initialize

(
    bool bInitRigUnits
)

Initialize things for the ControlRig

Public function Virtual Const UFunction BlueprintPure, Category

bool

 

IsControlSelected

(
    const FName& InControlName
)

Public function Const

bool

 

IsCurveControl

(
    const FRigControlElement* InCo...
)

Protected function Const

bool

 

IsExecuting()

Public function Const

bool

 

IsInDebugMode()

Protected function Const

bool

 

IsInitializing()

Protected function Const

bool

 

IsInteracting()

Protected function Const

bool

 

IsRunningPostSetup()

Protected function Const

bool

 

IsRunningPreSetup()

Public function Virtual Const

bool

 

IsSetupModeEnabled()

Protected function Const

bool

 

IsSyncingWithOtherRig()

Public function Virtual Const

bool

 

ManipulationEnabled()

Returns true if this manipulatable subject is currently available for manipulation / is enabled.

Public function

FOnEndLoadPa...

 

OnEndLoadPackage()

Public function

FControlRigE...

 

OnExecuted_AnyThread()

Protected function

void

 

OnHierarchyTransformUndoRedo

(
    URigHierarchy* InHierarchy,
    const FRigElementKey& InKey,
    ERigTransformType::Type InTransform...,
    const FTransform& InTransform,
    bool bIsUndo
)

Protected function Static

void

 

OnHierarchyTransformUndoRedoWeak

(
    URigHierarchy* InHierarchy,
    const FRigElementKey& InKey,
    ERigTransformType::Type InTransform...,
    const FTransform& InTransform,
    bool bIsUndo,
    TWeakObjectPtr< UControlRig > WeakT...
)

Public function

FControlRigE...

 

OnInitialized_AnyThread()

Public function

FControlRigE...

 

OnPostForwardsSolve_AnyThread()

Public function

FControlRigE...

 

OnPostSetup_AnyThread()

Public function

FControlRigE...

 

OnPreForwardsSolve_AnyThread()

Public function

FControlRigE...

 

OnPreSetup_AnyThread()

Public function

FRigEventDel...

 

OnRigEvent_AnyThread()

Public function

void

 

PostInitInstanceIfRequired()

Public function

void

 

PostReinstanceCallback

(
    const UControlRig* Old
)

Called after post reinstance when compilng blueprint by Sequencer

Public function UFunction BlueprintCallable, Category

void

 

RequestInit()

Requests to perform an init during the next execution

Public function UFunction BlueprintCallable, Category

void

 

RequestSetup()

Requests to perform a setup during the next execution

Public function Virtual UFunction BlueprintCallable, Category

void

 

SelectControl

(
    const FName& InControlName,
    bool bSelect
)

Public function UFunction BlueprintCallable, Category

void

 

SetAbsoluteAndDeltaTime

(
    float InAbsoluteTime,
    float InDeltaTime
)

Set the current absolute and delta times

Public function UFunction BlueprintCallable, Category

void

 

SetAbsoluteTime

(
    float InAbsoluteTime,
    bool InSetDeltaTimeZero
)

Set the current absolute time

Public function Virtual

void

 

SetBoneInitialTransformsFromAnimInstance

(
    UAnimInstance* InAnimInstance
)

Setup the initial transform / ref pose of the bones based upon an anim instance This uses the current refpose instead of the RefSkeleton pose.

Public function Virtual

void

 

SetBoneInitialTransformsFromAnimInstanceProxy

(
    const FAnimInstanceProxy* InAn...
)

Setup the initial transform / ref pose of the bones based upon an anim instance proxy This uses the current refpose instead of the RefSkeleton pose.

Public function Virtual

void

 

SetBoneInitialTransformsFromRefSkeleton

(
    const FReferenceSkeleton& InRefere...
)

Setup the initial transforms / ref pose of the bones based on a reference skeleton This uses the RefSkeleton pose instead of the current refpose.

Public function Virtual

void

 

SetBoneInitialTransformsFromSkeletalMesh

(
    USkeletalMesh* InSkeletalMesh
)

Setup the initial transforms / ref pose of the bones based on a skeletal mesh This uses the RefSkeleton pose instead of the current refpose.

Public function Virtual

void

 

SetBoneInitialTransformsFromSkeletalMeshComponent

(
    USkeletalMeshComponent* InSkel...,
    bool bUseAnimInstance
)

Setup the initial transform / ref pose of the bones based upon skeletal mesh component (ref skeleton) This uses the RefSkeleton pose instead of the current refpose (or vice versae is bUseAnimInstance == true)

Public function

void

 

SetControlCustomization

(
    const FRigElementKey& InControl,
    const FRigControlElementCustomizati...
)

Public function

bool

 

SetControlGlobalTransform

(
    const FName& InControlName,
    const FTransform& InGlobalTransfor...,
    bool bNotify,
    const FRigControlModifiedContext& ...,
    bool bSetupUndo,
    bool bPrintPythonCommands
)

Public function Virtual

void

 

SetControlLocalTransform

(
    const FName& InControlName,
    const FTransform& InLocalTransform,
    bool bNotify,
    const FRigControlModifiedContext& ...,
    bool bSetupUndo
)

Public function

void

 

SetControlValue

(
    const FName& InControlName,
    T InValue,
    bool bNotify,
    const FRigControlModifiedContext& ...,
    bool bSetupUndo,
    bool bPrintPythonCommnds
)

Sets the relative value of a Control.

Public function Virtual

void

 

SetControlValueImpl

(
    const FName& InControlName,
    const FRigControlValue& InValue,
    bool bNotify,
    const FRigControlModifiedContext& ...,
    bool bSetupUndo,
    bool bPrintPythonCommnds
)

Sets the relative value of a Control.

Public function UFunction BlueprintCallable, Category

void

 

SetDeltaTime

(
    float InDeltaTime
)

Set the current delta time

Public function

void

 

SetEventQueue

(
    const TArray< FName >& InEventName...
)

Sets the queue of events to run

Public function UFunction BlueprintCallable, Category

void

 

SetFramesPerSecond

(
    float InFramesPerSecond
)

Set the current fps

Public function UFunction blueprintsetter

void

 

SetInteractionRig

(
    UControlRig* InInteractionRig
)

Public function UFunction blueprintsetter

void

 

SetInteractionRigClass

(
    TSubclassOf< UControlRig > InIntera...
)

Public function

void

 

SetIsInDebugMode

(
    const bool bValue
)

Public function Virtual

bool

 

SetManipulationEnabled

(
    bool Enabled
)

Sets the manipulatable subject to enabled or disabled.

Public function

void

 

SetObjectBinding

Setup bindings to a runtime object (or clear by passing in nullptr).

Public function

void

 

SetPublicVariableValue

(
    const FName& InVariableName,
    const T& InValue
)

Public function Virtual

FTransform

 

SetupControlFromGlobalTransform

(
    const FName& InControlName,
    const FTransform& InGlobalTransfor...
)

Public function UFunction BlueprintCallable, Category

bool

 

SetVariableFromString

(
    const FName& InVariableName,
    const FString& InValue
)

Returns the value of a given variable as a string

Public function Virtual Const

bool

 

ShouldApplyLimits()

Public function Const

bool

 

SupportsEvent()

Public function Const UFunction BlueprintPure, Category

bool

 

SupportsEvent

(
    const FName& InEventName
)

Public function

void

 

UpdateVMSettings()

Update the settings such as array bound and log facilities

Overridden from UObject

Name Description

Public function Virtual

void

 

BeginDestroy()

Called before destroying the object.

Public function Virtual

void

 

PostEditChangeProperty

(
    FPropertyChangedEvent& PropertyCha...
)

Called when a property on this object has been modified externally

Public function Virtual

void

 

PostEditUndo()

Called after applying a transaction to the object.

Public function Virtual

void

 

PostLoad()

Do any object-specific cleanup required immediately after loading an object.

Public function Virtual

void

 

PreEditChange

(
    FProperty* PropertyAboutToChan...
)

This is called when a property is about to be modified externally

Public function Virtual

void

 

Serialize

(
    FArchive& Ar
)

Handles reading, writing, and reference collecting using FArchive.

Overridden from INodeMappingProviderInterface

Name Description

Public function Virtual Const

void

 

GetMappableNodeData

(
    TArray< FName >& OutNames,
    TArray< FNodeItem >& OutNodeItems
)

INodeMappingInterface implementation

Overridden from IInterface_AssetUserData

Name Description

Public function Virtual

void

 

AddAssetUserData

(
    UAssetUserData* InUserData
)

Public function Virtual Const

const TArray...

 

GetAssetUserDataArray()

Public function Virtual

UAssetUserDa...

 

GetAssetUserDataOfClass

(
    TSubclassOf< UAssetUserData > InUse...
)

Public function Virtual

void

 

RemoveUserDataOfClass

(
    TSubclassOf< UAssetUserData > InUse...
)

Classes

Name

Description

Public class

FControlModifiedEvent

Bindable event for external objects to be notified of Control changes

Public class

FControlRigExecuteEvent

Public class

FControlSelectedEvent

Bindable event for external objects to be notified that a Control is Selected

Public class

FFilterControlEvent

Bindable event for external objects to contribute to / filter a control value

Public class

FOnEndLoadPackage

Bindable event for external objects to be notified that a control rig is fully end-loaded

Public class

FTransientControlPoseScope

Class used to temporarily cache current pose of transient controls restore them after a ResetPoseToInitial call, which allows user to move bones in setup mode

Constants

Name

Description

OwnerComponent