Navigation
API > API/Plugins > API/Plugins/IKRig > API/Plugins/IKRig/Rig > API/Plugins/IKRig/Rig/Solvers
Inheritance Hierarchy
- UObjectBase
- UObjectBaseUtility
- UObject
- UIKRigSolver
- UIKRig_LimbSolver
References
| Module | IKRig |
| Header | /Engine/Plugins/Animation/IKRig/Source/IKRig/Public/Rig/Solvers/IKRig_LimbSolver.h |
| Include | #include "Rig/Solvers/IKRig_LimbSolver.h" |
Syntax
UCLASS&40;BlueprintType, EditInlineNew&41;
class UIKRig_LimbSolver : public UIKRigSolver
Variables
| Type | Name | Description | |
|---|---|---|---|
| bool | bAveragePull | Pull averaging only has a visual impact when we have more than 2 bones (3 links). | |
| bool | bEnableLimit | Enable/Disable rotational limits | |
| bool | bEnableTwistCorrection | Enable Knee Twist correction, by comparing Foot FK with Foot IK orientation. | |
| TEnumAsByte< EAxis::Type > | EndBoneForwardAxis | Forward Axis for Foot bone. | |
| TEnumAsByte< EAxis::Type > | HingeRotationAxis | Hinge Bones Rotation Axis. This is essentially the plane normal for (hip - knee - foot). | |
| int32 | MaxIterations | Number of Max Iterations to reach the target | |
| float | MinRotationAngle | Only used if bEnableRotationLimit is enabled. | |
| float | PullDistribution | Re-position limb to distribute pull: 0 = foot, 0.5 = balanced, 1.f = hip | |
| float | ReachPrecision | Precision (distance to the target) | |
| float | ReachStepAlpha | Move end effector towards target. If we are compressing the chain, limit displacement. | |
| FName | RootName |
Constructors
| Type | Name | Description | |
|---|---|---|---|
Overridden from UIKRigSolver
| Type | Name | Description | |
|---|---|---|---|
| void | AddGoal
(
const UIKRigEffectorGoal& NewGoal |
Goals | |
| UObject * | GetGoalSettings
(
const FName& GoalName |
Override to support supplying goals settings specific to this solver to outside systems for editing/UI | |
| FText | GetNiceName () |
Override to give your solver a nice name to display in the UI | |
| FName | GetRootBone () |
If solver requires a root bone, then override this to return it. | |
| bool | GetWarningMessage
(
FText& OutWarningMessage |
Override to provide warning to user during setup of any missing components. | |
| void | Initialize
(
const FIKRigSkeleton& IKRigSkeleton |
UIKRigSolver interface | |
| bool | IsBoneAffectedBySolver
(
const FName& BoneName, |
Return true if the supplied Bone is affected by this solver - this provides UI feedback for user | |
| bool | IsGoalConnected
(
const FName& GoalName |
Override to support QUERY for a connected goal | |
| void | RemoveGoal
(
const FName& GoalName |
Override to support REMOVING a goal from custom solver | |
| void | RenameGoal
(
const FName& OldName, |
Override to support RENAMING an existing goal | |
| bool | Root bone can be set on this solver | ||
| void | SetGoalBone
(
const FName& GoalName, |
Override to support CHANGING BONE for an existing goal | |
| void | SetRootBone
(
const FName& RootBoneName |
Override to support SETTING ROOT BONE for the solver | |
| void | Solve
(
FIKRigSkeleton& IKRigSkeleton, |
Override Solve() to evaluate new output pose (InOutGlobalTransform) | |
| void | UpdateSolverSettings
(
UIKRigSolver* InSettings |
Override to support RECEIVING modified solver settings from outside systems for editing/UI. |