Navigation
API > API/Plugins > API/Plugins/ControlRig
Runs logic for mapping input data to transforms (the "Rig")
| Name | UControlRig |
| Type | class |
| Header File | /Engine/Plugins/Animation/ControlRig/Source/ControlRig/Public/ControlRig.h |
| Include Path | #include "ControlRig.h" |
Syntax
UCLASS (MinimalAPI, Blueprintable, Abstract, EditInlineNew)
class UControlRig :
public URigVMHost ,
public INodeMappingProviderInterface ,
public IRigHierarchyProvider ,
public IMeshDeformerProducer
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → URigVMHost → UControlRig
Implements Interfaces
Derived Classes
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
UControlRig
(
const FObjectInitializer& ObjectInitializer |
ControlRig.h |
Classes
| Name | Remarks |
|---|---|
| FAnimAttributeContainerPtrScope | |
| FControlModifiedEvent | Bindable event for external objects to be notified of Control changes |
| FControlRigBoundEvent | Bindable event to notify object binding change. |
| FControlRigExecuteEvent | |
| FControlSelectedEvent | Bindable event for external objects to be notified that a Control is Selected |
| FControlUndoBracketEvent | Bindable event to manage undo / redo brackets in the client |
| FFilterControlEvent | Bindable event for external objects to contribute to / filter a control value |
| FOnControlSelectedBP_MCSignature | To support Blueprints/scripting, we need a different delegate type (a 'Dynamic' delegate) which supports looser style UFunction binding (using names). |
| FPoseScope | Class used to temporarily cache current pose of the hierarchy restore it on destruction, similar to UControlRigBlueprint::FControlValueScope |
| FTransientControlPoseScope | Class used to temporarily cache current pose of transient controls restore them after a ResetPoseToInitial call, which allows user to move bones in construction mode |
| FTransientControlScope | Class used to temporarily cache current transient controls restore them after a CopyHierarchy call |
Structs
| Name | Remarks |
|---|---|
| FOnControlSelectedBP | |
| FOnControlSelectedBPInfoGetter | |
| FRigSetControlValueInfo | |
| FRigSwitchParentInfo |
Typedefs
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| FControlRigBeginDestroyEvent | FMeshDeformerBeginDestroyEvent | ControlRig.h | |
| FGetExternalAssetUserData | TBaseDelegate_NoParams< TArray< TObjectPtr< UAssetUserData > > > | ControlRig.h |
Constants
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| OwnerComponent | const FName | ControlRig.h |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| bIsClearingTransientControls | bool | ControlRig.h | ||
| bRecordSelectionPoseForConstructionMode | bool | ControlRig.h | ||
| ExecutionType | ERigExecutionType | ControlRig.h |
|
|
| HierarchySettings | FRigHierarchySettings | ControlRig.h | ||
| InputPoseOnDebuggedRig | FRigPose | ControlRig.h | ||
| SelectionPoseForConstructionMode | TMap< FRigElementKey, FTransform > | ControlRig.h |
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| bControlsVisible | bool | Whether controls are visible | ControlRig.h |
|
| BeginDestroyEvent | FMeshDeformerBeginDestroyEvent | Broadcasts a notification just before the controlrig is destroyed. | ControlRig.h | |
| bEnableAnimAttributeTrace | bool | ControlRig.h | ||
| bSuspendOverrideAssetChangedDelegate | bool | ControlRig.h | ||
| DataSourceRegistry | TObjectPtr< UAnimationDataSourceRegistry > | The registry to access data source | ControlRig.h |
|
| DebugBoneRadiusMultiplier | float | ControlRig.h | ||
| ExternalAnimAttributeContainer | UE::Anim::FMeshAttributeContainer * | ControlRig.h | ||
| InputAnimAttributeSnapshot | UE::Anim::FMeshAttributeContainer | ControlRig.h | ||
| OutputAnimAttributeSnapshot | UE::Anim::FMeshAttributeContainer | ControlRig.h | ||
| OverrideAssets | TArray< TObjectPtr< UControlRigOverrideAsset > > | ControlRig.h |
|
|
| PhysicsSimulations | TMap< FRigComponentKey, TSharedPtr< FRigPhysicsSimulationBase > > | Physics Simulations (i.e. the simulations instantiated based on the Physics Solver components) | ControlRig.h | |
| PostConstructionEvent | FControlRigExecuteEvent | Broadcasts a notification whenever the controlrig has been setup. | ControlRig.h | |
| PostForwardsSolveEvent | FControlRigExecuteEvent | Broadcasts a notification after a forward solve has been initiated | ControlRig.h | |
| PreAdditiveValuesApplicationEvent | FControlRigExecuteEvent | Broadcasts a notification before additive controls have been applied | ControlRig.h | |
| PreConstructionEvent | FControlRigExecuteEvent | Broadcasts a notification just before the controlrig is setup. | ControlRig.h | |
| PreConstructionForUIEvent | FControlRigExecuteEvent | Broadcasts a notification when launching the construction event | ControlRig.h | |
| PreForwardsSolveEvent | FControlRigExecuteEvent | Broadcasts a notification before a forward solve has been initiated | ControlRig.h | |
| PreviewInstance | UAnimPreviewInstance * | ControlRig.h | ||
| Replay | TObjectPtr< UControlRigReplay > | ControlRig.h | ||
| ReplayTimeIndex | int32 | ControlRig.h | ||
| RigModulePrefix | FString | ControlRig.h |
|
|
| RigModuleSettings | FRigModuleSettings | ControlRig.h | ||
| RigVMExtendedExecuteContext | FRigVMExtendedExecuteContext | ControlRig.h |
|
|
| TransformOverrideForUserCreatedBones | TMap< FName, FTransform > | This is needed because PreviewInstance->ModifyBone(...) cannot modify user created bones, | ControlRig.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
bool AllConnectorsAreResolved
(
FString* OutFailureReason, |
ControlRig.h | ||
void ApplySelectionPoseForConstructionMode
(
const FName& InEventName |
ControlRig.h | ||
void ApplyTransformOverrideForUserCreatedBones() |
ControlRig.h | ||
virtual TArray< FRigControlElement * > AvailableControls() |
ControlRig.h | ||
virtual bool ClearControlSelection
(
bool bSetupUndo |
ControlRig.h |
|
|
void ClearPoseBeforeBackwardsSolve () |
Resets the stored pose coming from the anim sequence. | ControlRig.h | |
bool ContainsSimulation() |
ControlRig.h | ||
FFilterControlEvent & ControlFilter() |
Returns a event that can be used to subscribe to filtering control data when needed | ControlRig.h | |
FControlModifiedEvent & ControlModified() |
Returns a event that can be used to subscribe to change notifications coming from the manipulated subject. | ControlRig.h | |
FControlRigBoundEvent & ControlRigBound() |
ControlRig.h | ||
FControlSelectedEvent & ControlSelected() |
Returns a event that can be used to subscribe to selection changes coming from the manipulated subject. | ControlRig.h | |
FControlUndoBracketEvent & ControlUndoBracket() |
Returns an event that can be used to subscribe to Undo Bracket requests such as Open and Close. | ControlRig.h | |
virtual void CreateRigControlsForCurveContainer() |
ControlRig.h | ||
UTransformableControlHandle * CreateTransformableControlHandle
(
const FName& ControlName |
Creates a transformable control handle for the specified control to be used by the constraints system. | ControlRig.h |
|
| ControlRig.h |
|
||
void DisableReplay() |
ControlRig.h | ||
bool EvaluateSkeletalMeshComponent
(
double InDeltaTime |
Ticks animation of the skeletal mesh component bound to this control rig | ControlRig.h | |
virtual FRigControlElement * FindControl
(
const FName& InControlName |
ControlRig.h | ||
virtual FText GetCategory() |
Get the category of this ControlRig (for display in menus) | ControlRig.h | |
const FRigControlElementCustomization * GetControlCustomization
(
const FRigElementKey& InControl |
ControlRig.h | ||
virtual FTransform GetControlGlobalTransform
(
const FName& InControlName |
ControlRig.h | ||
virtual FTransform GetControlLocalTransform
(
const FName& InControlName |
ControlRig.h | ||
virtual void GetControlsInOrder
(
TArray< FRigControlElement* >& SortedControls |
ControlRig.h | ||
FVector GetControlSpecifiedEulerAngle
(
const FRigControlElement* InControlElement, |
ControlRig.h | ||
bool GetControlsVisible() |
ControlRig.h | ||
FRigControlValue GetControlValue
(
FRigControlElement* InControl, |
ControlRig.h | ||
FRigControlValue GetControlValue
(
const FName& InControlName |
Returns the value of a Control. | ControlRig.h | |
virtual FRigControlValue GetControlValueFromGlobalTransform
(
const FName& InControlName, |
ControlRig.h | ||
UAnimationDataSourceRegistry * GetDataSourceRegistry() |
Data Source Registry Getter | ControlRig.h | |
float GetDebugBoneRadiusMultiplier() |
ControlRig.h | ||
virtual FRigElementKeyRedirector GetElementKeyRedirector () |
ControlRig.h | ||
virtual FRigElementKeyRedirector & GetElementKeyRedirector () |
Returns the redirector from key to key for this rig. | ControlRig.h | |
| ControlRig.h |
|
||
AActor * GetHostingActor() |
Find the actor the rig is bound to, if any | ControlRig.h |
|
FTransform GetInitialLocalTransform
(
const FRigElementKey& InKey |
ControlRig.h | ||
UControlRig * GetInteractionRig() |
ControlRig.h | ||
TSubclassOf< UControlRig > GetInteractionRigClass() |
ControlRig.h |
|
|
const UControlRigOverrideAsset * GetLastOverrideAsset () |
The active override asset is the last one linked to this control rig, which can be used to record changes. | ControlRig.h | |
| ControlRig.h | |||
| INodeMappingInterface implementation | ControlRig.h | ||
TSharedPtr< IControlRigObjectBinding > GetObjectBinding() |
ControlRig.h | ||
const UControlRigOverrideAsset * GetOverrideAsset
(
int32 InIndex |
ControlRig.h | ||
UControlRigOverrideAsset * GetOverrideAsset
(
int32 InIndex |
ControlRig.h | ||
UControlRig * GetParentRig() |
Returns the parent rig hosting this module instance. | ControlRig.h | |
FRigPhysicsSimulationBase * GetPhysicsSimulation
(
const FRigComponentKey& InComponentKey |
Returns the physics simulation given the key of the component used to create it | ControlRig.h | |
const FRigPhysicsSimulationBase * GetPhysicsSimulation
(
const FRigComponentKey& InComponentKey |
Returns the physics simulation given the key of the component used to create it | ControlRig.h | |
int32 GetReplayTimeIndex() |
ControlRig.h | ||
TGuardValue< bool > GetResetCurrentTransformsAfterConstructionGuard
(
bool bNewValue |
ControlRig.h | ||
const FString & GetRigModuleNameSpace() |
Returns the namespace of this module (for example ArmModule::) | ControlRig.h | |
const FString & GetRigModulePrefix() |
Returns the module prefix of this module (for example Arm/ ) | ControlRig.h | |
const FRigModuleSettings & GetRigModuleSettings() |
Returns the settings of the module this instance belongs to. | ControlRig.h | |
virtual const TArray< TSoftObjectPtr< UControlRigShapeLibrary > > & GetShapeLibraries() |
ControlRig.h | ||
uint32 GetShapeLibraryHash() |
ControlRig.h | ||
const TMap< FString, FString > & GetShapeLibraryNameMap() |
ControlRig.h | ||
virtual FText GetToolTipText() |
Get the tooltip text to display for this node (displayed in graphs and from context menus) | ControlRig.h | |
virtual bool InitializeVMs
(
const FName& InEventName |
ControlRig.h | ||
virtual void InitializeVMs
(
bool bInitRigUnits |
ControlRig.h | ||
TArray< FRigControlElement * > InvertInputPose
(
const TArray< FRigElementKey >& InElements, |
For additive rigs, will set control values by inverting the pose found after the backwards solve Returns the array of control elements that were modified | ControlRig.h | |
virtual bool IsAdditive() |
ControlRig.h | ||
virtual bool IsConstructionModeEnabled() |
ControlRig.h | ||
bool IsConstructionRequired() |
ControlRig.h | ||
virtual bool IsControlSelected
(
const FName& InControlName |
ControlRig.h |
|
|
bool IsCurveControl
(
const FRigControlElement* InControlElement |
ControlRig.h | ||
bool IsLinkedToOverrideAsset
(
const UControlRigOverrideAsset* InOverrideAsset |
ControlRig.h | ||
bool IsModularRig() |
Returns true if this rig is a modular rig (of class UModularRig) | ControlRig.h | |
bool IsNativeRig() |
Returns true if this is a native rig (implemented in C++) | ControlRig.h | |
bool IsReplayEnabled() |
ControlRig.h | ||
bool IsRigModule() |
Returns true if the rig is defined as a rig module. | ControlRig.h | |
bool IsRigModuleInstance () |
Returns true if this rig is an instance module. | ControlRig.h | |
bool IsStandaloneRig() |
Returns true if this is a standalone rig (of class UControlRig and not modular) | ControlRig.h | |
int32 LinkOverrideAsset
(
UControlRigOverrideAsset* InOverrideAsset |
ControlRig.h | ||
virtual bool ManipulationEnabled() |
Returns true if this manipulatable subject is currently available for manipulation / is enabled. | ControlRig.h | |
int32 NumOverrideAssets() |
ControlRig.h | ||
FControlRigOverrideAssetsChanged & OnOverrideAssetsChanged() |
ControlRig.h | ||
FControlRigExecuteEvent & OnPostConstruction_AnyThread() |
ControlRig.h | ||
FControlRigExecuteEvent & OnPostForwardsSolve_AnyThread() |
ControlRig.h | ||
FControlRigExecuteEvent & OnPreAdditiveValuesApplication_AnyThread() |
ControlRig.h | ||
FControlRigExecuteEvent & OnPreConstruction_AnyThread() |
ControlRig.h | ||
FControlRigExecuteEvent & OnPreConstructionForUI_AnyThread() |
ControlRig.h | ||
FControlRigExecuteEvent & OnPreForwardsSolve_AnyThread() |
ControlRig.h | ||
FRigEventDelegate & OnRigEvent_AnyThread() |
ControlRig.h | ||
void PostReinstanceCallback
(
const UControlRig* Old |
Called after post reinstance when compilng blueprint by Sequencer | ControlRig.h | |
bool RegisterPhysicsSimulation
(
TSharedPtr< FRigPhysicsSimulationBase > PhysicsSimulation, |
Registers and stores (taking ownership) of a physics simulation. | ControlRig.h | |
void RequestConstruction() |
Requests to perform construction during the next execution | ControlRig.h |
|
virtual void RequestInitVMs() |
ControlRig.h | ||
void ResetControlValues() |
Removes any stored additive control values | ControlRig.h | |
void ResetRecordedTransforms
(
const FName& InEventName |
Resets the recorded transform changes | ControlRig.h | |
virtual void SelectControl
(
const FName& InControlName, |
Selects or deselects an element in the hierarchy | ControlRig.h |
|
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. | ControlRig.h | |
virtual void SetBoneInitialTransformsFromAnimInstanceProxy
(
const FAnimInstanceProxy* InAnimInstanceProxy |
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. | ControlRig.h | |
virtual void SetBoneInitialTransformsFromRefSkeleton
(
const FReferenceSkeleton& InReferenceSkeleton |
Setup the initial transforms / ref pose of the bones based on a reference skeleton This uses the RefSkeleton pose instead of the current refpose. | ControlRig.h | |
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. | ControlRig.h | |
virtual void SetBoneInitialTransformsFromSkeletalMeshComponent
(
USkeletalMeshComponent* InSkelMeshComp, |
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) | ControlRig.h | |
void SetControlCustomization
(
const FRigElementKey& InControl, |
ControlRig.h | ||
bool SetControlGlobalTransform
(
const FName& InControlName, |
ControlRig.h | ||
virtual void SetControlLocalTransform
(
const FName& InControlName, |
ControlRig.h | ||
void SetControlsVisible
(
const bool bIsVisible |
ControlRig.h | ||
void SetControlValue
(
const FName& InControlName, |
Sets the relative value of a Control. | ControlRig.h | |
virtual void SetControlValueImpl
(
const FName& InControlName, |
Sets the relative value of a Control. | ControlRig.h | |
void SetDynamicHierarchy
(
TObjectPtr< URigHierarchy > InHierarchy |
ControlRig.h | ||
virtual void SetElementKeyRedirector
(
const FRigElementKeyRedirector InElementRedirector |
Returns the redirector from key to key for this rig. | ControlRig.h | |
void SetInteractionRig
(
UControlRig* InInteractionRig |
ControlRig.h |
|
|
void SetInteractionRigClass
(
TSubclassOf< UControlRig > InInteractionRigClass |
ControlRig.h |
|
|
void SetIsAdditive
(
const bool bInIsAdditive |
ControlRig.h | ||
virtual bool SetManipulationEnabled
(
bool Enabled |
Sets the manipulatable subject to enabled or disabled. | ControlRig.h | |
void SetObjectBinding
(
TSharedPtr< IControlRigObjectBinding > InObjectBinding |
Setup bindings to a runtime object (or clear by passing in nullptr). | ControlRig.h | |
void SetReplay
(
UControlRigReplay* InReplay |
ControlRig.h | ||
void SetReplayTimeIndex
(
int32 InReplayTimeIndex |
ControlRig.h | ||
void SetSuspendOverrideAssetChangedDelegate
(
bool bSuspended |
ControlRig.h | ||
virtual FTransform SetupControlFromGlobalTransform
(
const FName& InControlName, |
ControlRig.h | ||
virtual bool ShouldApplyLimits() |
ControlRig.h | ||
bool SupportsBackwardsSolve() |
Contains a backwards solve event | ControlRig.h |
|
bool SupportsEvent () |
ControlRig.h | ||
void SwitchToParent
(
const FRigElementKey& InElementKey, |
ControlRig.h | ||
void ToggleControlsVisible() |
ControlRig.h | ||
bool UnlinkAllOverrideAssets() |
ControlRig.h | ||
bool UnlinkOverrideAsset
(
UControlRigOverrideAsset* InContainer |
ControlRig.h |
Overridden from URigVMHost
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
| ControlRig.h | |||
virtual void Evaluate_AnyThread() |
Evaluates the ControlRig | ControlRig.h | |
virtual bool Execute
(
const FName& InEventName |
ControlRig.h | ||
virtual bool Execute_Internal
(
const FName& InEventName |
ControlRig.h | ||
virtual const TArray< UAssetUserData * > * GetAssetUserDataArray() |
ControlRig.h | ||
virtual USceneComponent * GetOwningSceneComponent() |
ControlRig.h | ||
virtual UScriptStruct * GetPublicContextStruct() |
ControlRig.h | ||
| ControlRig.h | |||
virtual UWorld * GetWorld() |
ControlRig.h | ||
virtual void Initialize
(
bool bInitRigUnits |
Initialize things for the ControlRig | ControlRig.h | |
virtual bool InitializeVM
(
const FName& InEventName |
Initialize the VM | ControlRig.h | |
virtual void PostInitInstanceIfRequired() |
ControlRig.h | ||
virtual void RequestInit() |
ControlRig.h | ||
virtual bool SupportsEvent
(
const FName& InEventName |
ControlRig.h |
Overridden from UObject
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void BeginDestroy() |
ControlRig.h | ||
virtual void PostEditChangeProperty
(
FPropertyChangedEvent& PropertyChangedEvent |
ControlRig.h | ||
virtual void PostLoad() |
ControlRig.h | ||
virtual void PreEditChange
(
FProperty* PropertyAboutToChange |
ControlRig.h | ||
virtual void Serialize
(
FArchive& Ar |
ControlRig.h |
Overridden from IRigHierarchyProvider
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual URigHierarchy * GetHierarchy () |
ControlRig.h |
Overridden from IMeshDeformerProducer
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual FMeshDeformerBeginDestroyEvent & OnBeginDestroy() |
ControlRig.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void EmitPostConstructionEventFinished() |
ControlRig.h | ||
const FRigInfluenceMap * FindInfluenceMap
(
const FName& InEventName |
ControlRig.h | ||
uint8 GetInteractionType() |
ControlRig.h | ||
void HandleHierarchyEvent
(
URigHierarchy* InHierarchy, |
ControlRig.h | ||
virtual void InitializeVMsFromCDO() |
ControlRig.h | ||
bool IsInteracting() |
ControlRig.h | ||
bool IsRunningPostConstruction() |
ControlRig.h | ||
bool IsRunningPreConstruction() |
ControlRig.h | ||
bool IsSyncingWithOtherRig() |
ControlRig.h | ||
void OnAddShapeLibrary
(
const FControlRigExecuteContext* InContext, |
ControlRig.h | ||
void OnHierarchyTransformUndoRedo
(
URigHierarchy* InHierarchy, |
ControlRig.h | ||
bool OnShapeExists
(
const FName& InShapeName |
ControlRig.h | ||
void RestoreShapeLibrariesFromCDO() |
ControlRig.h |
Overridden from URigVMHost
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void InitializeFromCDO() |
ControlRig.h | ||
virtual void PostInitInstance
(
URigVMHost* InCDO |
ControlRig.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static void DeclareConstructClasses
(
TArray< FTopLevelAssetPath >& OutConstructClasses, |
ControlRig.h | ||
static TArray< UControlRig * > FindControlRigs
(
UObject* Outer, |
ControlRig.h |
|
|
static FRigElementKey GetElementKeyFromTransientControl
(
const FRigElementKey& InKey |
ControlRig.h | ||
static FName GetNameForTransientControl
(
const FRigElementKey& InElement |
ControlRig.h | ||
static FString GetNodeNameFromTransientControl
(
const FRigElementKey& InKey |
ControlRig.h | ||
static FRigUnit * GetRigUnitInstanceFromScope
(
TSharedPtr< FStructOnScope > InScope |
ControlRig.h | ||
static FString GetTargetFromTransientControl
(
const FRigElementKey& InKey |
ControlRig.h | ||
static void OnHierarchyTransformUndoRedoWeak
(
URigHierarchy* InHierarchy, |
ControlRig.h |
Deprecated Variables
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| GizmoLibrary_DEPRECATED | TSoftObjectPtr< UControlRigShapeLibrary > | ControlRig.h | ||
| InputProperties_DEPRECATED | TMap< FName, FCachedPropertyPath > | You either go Input or Output, currently if you put it in both place, Output will override | ControlRig.h | |
| OutputProperties_DEPRECATED | TMap< FName, FCachedPropertyPath > | ControlRig.h |