Navigation
API > API/Plugins > API/Plugins/ControlRig > API/Plugins/ControlRig/Units > API/Plugins/ControlRig/Units/Highlevel > API/Plugins/ControlRig/Units/Highlevel/Hierarchy
Inheritance Hierarchy
- FRigVMStruct
- FRigUnit
- FRigUnitMutable
- FRigUnit_HighlevelBaseMutable
- FRigUnit_SpringIK
References
| Module | ControlRig |
| Header | /Engine/Plugins/Animation/ControlRig/Source/ControlRig/Public/Units/Highlevel/Hierarchy/RigUnit_SpringIK.h |
| Include | #include "Units/Highlevel/Hierarchy/RigUnit_SpringIK.h" |
Syntax
USTRUCT (Meta=(DisplayName="Spring IK", Category="Hierarchy", Keywords="IK", NodeColor="0 1 1"))
struct FRigUnit_SpringIK : public FRigUnit_HighlevelBaseMutable
Remarks
The Spring IK solver uses a verlet integrator to perform an IK solve. It support custom constraints including distance, length etc. Note: This node operates in world space!
Variables
| Type | Name | Description | |
|---|---|---|---|
| bool | bFlipPolePlane | If set to true the pole plane will be flipped | |
| bool | bLimitLocalPosition | If set to true bones are placed within the original distance of the previous local transform. | |
| bool | bLiveSimulation | If set to true simulation will continue for all intermediate bones over time. | |
| bool | bPropagateToChildren | If set to true all of the global transforms of the children of this bone will be recalculated based on their local transforms. | |
| float | Damping | The higher the value to more quickly the simulation calms down. | |
| FRigUnit_SpringIK_DebugSettings | DebugSettings | The debug setting for the node | |
| float | EffectorRatio | Defines the equilibrium of the effector springs. | |
| float | EffectorStrength | Sets the coefficient of the springs towards the effector. Values between 1 and 2048 are common. | |
| FName | EndBone | The name of the second bone to solve | |
| float | HierarchyStrength | Sets the coefficient of the springs along the hierarchy. Values between 1 and 2048 are common. | |
| int32 | Iterations | Drives how precise the solver operates. | |
| FVector | PoleVector | The polevector to use for the IK solver This can be a location or direction. | |
| EControlRigVectorKind | PoleVectorKind | The kind of pole vector this is representing - can be a direction or a location | |
| FName | PoleVectorSpace | The space in which the pole vector is expressed | |
| FVector | PrimaryAxis | The major axis being aligned - along the bone | |
| float | RootRatio | Defines the equilibrium of the root springs. | |
| float | RootStrength | Sets the coefficient of the springs towards the root. Values between 1 and 2048 are common. | |
| FVector | SecondaryAxis | The minor axis being aligned - towards the pole vector | |
| FName | StartBone | The name of the first bone to solve | |
| FRigUnit_SpringIK_WorkData | WorkData |
Constructors
| Type | Name | Description | |
|---|---|---|---|
Overridden from FRigUnit
| Type | Name | Description | |
|---|---|---|---|
| bool | UpdateDirectManipulationFromHierarchy
(
const URigVMUnitNode* InNode, |
Sets the values on this node based on a viewport pose | |
| bool | UpdateHierarchyForDirectManipulation
(
const URigVMUnitNode* InNode, |
Sets a control's pose to represent this viewport pose target |
Overridden from FRigVMStruct
| Type | Name | Description | |
|---|---|---|---|
| void | Execute () |
Execute logic for this struct |