Navigation
API > API/Plugins > API/Plugins/ControlRig
Inheritance Hierarchy
- UObject
- IInterface_AssetUserData
- URigVMHost
- UControlRig
- UAdditiveControlRig
- UFKControlRig
- UModularRig
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 URigVMHost ,
public INodeMappingProviderInterface,
public IRigHierarchyProvider
Remarks
Runs logic for mapping input data to transforms (the "Rig")
Variables
| Type | Name | Description | |
|---|---|---|---|
| bool | bCopyHierarchyBeforeConstruction | ||
| bool | bInteractionJustBegan | ||
| bool | bIsAdditive | An additive control rig runs a backwards solve before applying additive control values and running the forward solve | |
| bool | bIsClearingTransientControls | ||
| bool | bIsRunningInPIE | ||
| bool | bManipulationEnabled | ||
| bool | bRecordSelectionPoseForConstructionMode | ||
| bool | bResetCurrentTransformsAfterConstruction | ||
| bool | bResetInitialTransformsBeforeConstruction | ||
| TArray< TObjectPtr< UAssetUserData > > | CombinedAssetUserData | ||
| TMap< FRigElementKey, FRigControlElementCustomization > | ControlCustomizations | ||
| FRigPose | ControlsAfterBackwardsSolve | ||
| int32 | ControlUndoBracketIndex | ||
| TMap< FRigElementKey, FRigSetControlValueInfo > | ControlValues | ||
| TObjectPtr< URigHierarchy > | DynamicHierarchy | ||
| FRigElementKeyRedirector | ElementKeyRedirector | ||
| TArray< FRigElementKey > | ElementsBeingInteracted | ||
| ERigExecutionType | ExecutionType | ||
| TMap< FName, TObjectPtr< UDataAssetLink > > | ExternalVariableDataAssetLinks | ||
| FGetExternalAssetUserData | GetExternalAssetUserDataDelegate | ||
| FRigHierarchySettings | HierarchySettings | ||
| FRigInfluenceMapPerEvent | Influences | ||
| FRigPose | InputPoseOnDebuggedRig | ||
| int32 | InteractionBracket | ||
| uint8 | InteractionType | ||
| int32 | InterRigSyncBracket | ||
| TSharedPtr< IControlRigObjectBinding > | ObjectBinding | Runtime object binding | |
| FControlModifiedEvent | OnControlModified | ||
| FControlRigBoundEvent | OnControlRigBound | ||
| FControlSelectedEvent | OnControlSelected | ||
| FOnControlSelectedBP | OnControlSelected_BP | ||
| FControlUndoBracketEvent | OnControlUndoBracket | ||
| FFilterControlEvent | OnFilterControl | ||
| TWeakObjectPtr< USceneComponent > | OuterSceneComponent | ||
| FRigPose | PoseBeforeBackwardsSolve | ||
| int32 | PostConstructionBracket | ||
| int32 | PostForwardsSolveBracket | ||
| int32 | PreAdditiveValuesApplicationBracket | ||
| int32 | PreConstructionBracket | ||
| int32 | PreForwardsSolveBracket | ||
| TArray< FRigElementKey > | QueuedModifiedControls | ||
| FRigEventDelegate | RigEventDelegate | ||
| TArray< TSharedPtr< FRigDirectManipulationInfo > > | RigUnitManipulationInfos | ||
| TMap< FRigElementKey, FTransform > | SelectionPoseForConstructionMode | ||
| TArray< TSoftObjectPtr< UControlRigShapeLibrary > > | ShapeLibraries | ||
| TMap< FString, FString > | ShapeLibraryNameMap | ||
| TMap< FRigElementKey, FRigSwitchParentInfo > | SwitchParentValues |
Constructors
| Type | Name | Description | |
|---|---|---|---|
UControlRig
(
const FObjectInitializer& ObjectInitializer |
Functions
| Type | Name | Description | |
|---|---|---|---|
| FRigPhysicsSolverID | AddPhysicsSolver
(
FName InName, |
Adds a physics solver to the hierarchy | |
| bool | AllConnectorsAreResolved
(
FString* OutFailureReason, |
||
| void | ApplySelectionPoseForConstructionMode
(
const FName& InEventName |
||
| void | |||
| TArray< FRigControlElement * > | |||
| bool | |||
| void | Resets the stored pose coming from the anim sequence. | ||
| FFilterControlEvent & | Returns a event that can be used to subscribe to filtering control data when needed | ||
| FControlModifiedEvent & | Returns a event that can be used to subscribe to change notifications coming from the manipulated subject. | ||
| FControlRigBoundEvent & | |||
| FControlSelectedEvent & | Returns a event that can be used to subscribe to selection changes coming from the manipulated subject. | ||
| FControlUndoBracketEvent & | Returns an event that can be used to subscribe to Undo Bracket requests such as Open and Close. | ||
| void | |||
| UTransformableControlHandle * | CreateTransformableControlHandle
(
const FName& ControlName |
Creates a transformable control handle for the specified control to be used by the constraints system. | |
| TArray< FName > | |||
| void | DeclareConstructClasses
(
TArray< FTopLevelAssetPath >& OutConstructClasses, |
||
| bool | EvaluateSkeletalMeshComponent
(
double InDeltaTime |
Ticks animation of the skeletal mesh component bound to this control rig | |
| FRigControlElement * | FindControl
(
const FName& InControlName |
||
| TArray< UControlRig * > | FindControlRigs
(
UObject* Outer, |
||
| const FRigInfluenceMap * | FindInfluenceMap
(
const FName& InEventName |
||
| const FRigPhysicsSolverDescription * | FindPhysicsSolver
(
const FRigPhysicsSolverID& InID |
Finds a new physics solver given its guid | |
| const FRigPhysicsSolverDescription * | FindPhysicsSolverByName
(
const FName& InName |
Finds a new physics solver given its name | |
| FText | GetCategory () |
Get the category of this ControlRig (for display in menus) | |
| const FRigControlElementCustomization * | GetControlCustomization
(
const FRigElementKey& InControl |
||
| FTransform | GetControlGlobalTransform
(
const FName& InControlName |
||
| FTransform | GetControlLocalTransform
(
const FName& InControlName |
||
| void | GetControlsInOrder
(
TArray< FRigControlElement* >& SortedControls |
||
| FVector | GetControlSpecifiedEulerAngle
(
const FRigControlElement* InControlElement, |
||
| bool | |||
| FRigControlValue | GetControlValue
(
FRigControlElement* InControl, |
||
| FRigControlValue | GetControlValue
(
const FName& InControlName |
Returns the value of a Control. | |
| FRigControlValue | GetControlValueFromGlobalTransform
(
const FName& InControlName, |
||
| UAnimationDataSourceRegistry * | Data Source Registry Getter | ||
| float | |||
| FRigElementKeyRedirector & | Returns the redirector from key to key for this rig. | ||
| FRigElementKeyRedirector | |||
| URigHierarchy * | GetHierarchy () |
||
| AActor * | Find the actor the rig is bound to, if any | ||
| FTransform | GetInitialLocalTransform
(
const FRigElementKey& InKey |
||
| UControlRig * | |||
| TSubclassOf< UControlRig > | |||
| uint8 | |||
| void | GetMappableNodeData
(
TArray< FName >& OutNames, |
INodeMappingInterface implementation | |
| TSharedPtr< IControlRigObjectBinding > | |||
| UControlRig * | GetParentRig () |
Returns the parent rig hosting this module instance. | |
| const FRigPhysicsSolverDescription * | GetPhysicsSolver
(
int32 InIndex |
Returns a physics solver by index (or nullptr) | |
| const FString & | Returns the namespace of this module (for example ArmModule::) | ||
| const FRigModuleSettings & | Returns the settings of the module this instance belongs to. | ||
| FRigUnit * | GetRigUnitInstanceFromScope
(
TSharedPtr< FStructOnScope > InScope |
||
| const TArray< TSoftObjectPtr< UControlRigShapeLibrary > > & | |||
| uint32 | |||
| FText | Get the tooltip text to display for this node (displayed in graphs and from context menus) | ||
| void | HandleHierarchyEvent
(
URigHierarchy* InHierarchy, |
||
| bool | InitializeVMs
(
const FName& InEventName |
||
| void | InitializeVMs
(
bool bInitRigUnits |
||
| void | |||
| 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 | |
| bool | IsAdditive () |
||
| bool | |||
| bool | |||
| bool | IsControlSelected
(
const FName& InControlName |
||
| bool | IsCurveControl
(
const FRigControlElement* InControlElement |
||
| bool | |||
| bool | IsModularRig () |
Returns true if this rig is a modular rig (of class UModularRig) | |
| bool | IsNativeRig () |
Returns true if this is a native rig (implemented in C++) | |
| bool | IsRigModule () |
Returns true if the rig is defined as a rig module. | |
| bool | Returns true if this rig is an instance module. | ||
| bool | |||
| bool | |||
| bool | Returns true if this is a standalone rig (of class UControlRig and not modular) | ||
| bool | |||
| bool | Returns true if this manipulatable subject is currently available for manipulation / is enabled. | ||
| int32 | Returns the number of physics solvers | ||
| void | OnAddShapeLibrary
(
const FControlRigExecuteContext* InContext, |
||
| FControlRigBeginDestroyEvent & | |||
| void | OnHierarchyTransformUndoRedo
(
URigHierarchy* InHierarchy, |
||
| void | OnHierarchyTransformUndoRedoWeak
(
URigHierarchy* InHierarchy, |
||
| FControlRigExecuteEvent & | |||
| FControlRigExecuteEvent & | |||
| FControlRigExecuteEvent & | |||
| FControlRigExecuteEvent & | |||
| FControlRigExecuteEvent & | |||
| FControlRigExecuteEvent & | |||
| FRigEventDelegate & | |||
| bool | OnShapeExists
(
const FName& InShapeName |
||
| void | PostEditChangeProperty
(
FPropertyChangedEvent& PropertyChangedEvent |
||
| void | PostReinstanceCallback
(
const UControlRig* Old |
Called after post reinstance when compilng blueprint by Sequencer | |
| void | PreEditChange
(
FProperty* PropertyAboutToChange |
||
| void | Requests to perform construction during the next execution | ||
| void | |||
| void | Removes any stored additive control values | ||
| void | ResetRecordedTransforms
(
const FName& InEventName |
Resets the recorded transform changes | |
| void | |||
| void | |||
| void | SelectControl
(
const FName& InControlName, |
||
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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) | |
| void | SetControlCustomization
(
const FRigElementKey& InControl, |
||
| bool | SetControlGlobalTransform
(
const FName& InControlName, |
||
| void | SetControlLocalTransform
(
const FName& InControlName, |
||
| void | SetControlsVisible
(
const bool bIsVisible |
||
| void | SetControlValue
(
const FName& InControlName, |
Sets the relative value of a Control. | |
| void | SetControlValueImpl
(
const FName& InControlName, |
Sets the relative value of a Control. | |
| void | SetDynamicHierarchy
(
TObjectPtr< URigHierarchy > InHierarchy |
||
| void | SetElementKeyRedirector
(
const FRigElementKeyRedirector InElementRedirector |
Returns the redirector from key to key for this rig. | |
| void | SetInteractionRig
(
UControlRig* InInteractionRig |
||
| void | SetInteractionRigClass
(
TSubclassOf< UControlRig > InInteractionRigClass |
||
| void | SetIsAdditive
(
const bool bInIsAdditive |
||
| bool | SetManipulationEnabled
(
bool Enabled |
Sets the manipulatable subject to enabled or disabled. | |
| void | SetObjectBinding
(
TSharedPtr< IControlRigObjectBinding > InObjectBinding |
Setup bindings to a runtime object (or clear by passing in nullptr). | |
| FTransform | SetupControlFromGlobalTransform
(
const FName& InControlName, |
||
| bool | |||
| bool | Contains a backwards solve event | ||
| bool | |||
| void | SwitchToParent
(
const FRigElementKey& InElementKey, |
||
| void |
Overridden from URigVMHost
| Type | Name | Description | |
|---|---|---|---|
| void | AdaptEventQueueForEvaluate
(
TArray< FName >& InOutEventQueueToRun |
Provides the chance to a subclass to modify the event queue as needed | |
| void | BeginDestroy () |
||
| void | Evaluates the ControlRig | ||
| bool | Execute | ||
| bool | Execute_Internal
(
const FName& InEventName |
ExecuteUnits | |
| const TArray< UAssetUserData * > * | |||
| USceneComponent * | |||
| UScriptStruct * | Returns the public context script struct to use for this owner | ||
| const TArray< FName > & | |||
| UWorld * | GetWorld () |
UObject interface | |
| void | Initialize
(
bool bInitRigUnits |
Initialize things for the ControlRig | |
| void | |||
| bool | InitializeVM
(
const FName& InEventName |
Initialize the VM | |
| void | PostInitInstance
(
URigVMHost* InCDO |
||
| void | |||
| void | PostLoad () |
||
| void | RequestInit () |
Requests to perform an init during the next execution | |
| void | |||
| bool | SupportsEvent
(
const FName& InEventName |
Overridden from IRigHierarchyProvider
| Type | Name | Description | |
|---|---|---|---|
| URigHierarchy * | GetHierarchy () |
Classes
| Type | Name | Description | |
|---|---|---|---|
| FAnimAttributeContainerPtrScope | |||
| FControlModifiedEvent | Bindable event for external objects to be notified of Control changes | ||
| FControlRigBeginDestroyEvent | |||
| 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 | |||
| FOnControlSelectedBP_MCSignature | To support Blueprints/scripting, we need a different delegate type (a 'Dynamic' delegate) which supports looser style UFunction binding (using names). | ||
| FOnControlSelectedBPInfoGetter | |||
| FRigSetControlValueInfo | |||
| FRigSwitchParentInfo | |||
| 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 |
Typedefs
| Name | Description |
|---|---|
| FGetExternalAssetUserData |
Constants
| Name | Description |
|---|---|
| OwnerComponent |
Deprecated Variables
| Type | Name | Description | |
|---|---|---|---|
| TSoftObjectPtr< UControlRigShapeLibrary > | GizmoLibrary_DEPRECATED | ||
| TMap< FName, FCachedPropertyPath > | InputProperties_DEPRECATED | You either go Input or Output, currently if you put it in both place, Output will override | |
| TMap< FName, FCachedPropertyPath > | OutputProperties_DEPRECATED |