Navigation
API > API/Plugins > API/Plugins/IKRig > API/Plugins/IKRig/Rig > API/Plugins/IKRig/Rig/Solvers
Inheritance Hierarchy
- UObjectBase
- UObjectBaseUtility
- UObject
- UIKRigSolver
- UIKRigFBIKSolver
References
| Module | IKRig |
| Header | /Engine/Plugins/Animation/IKRig/Source/IKRig/Public/Rig/Solvers/IKRig_FBIKSolver.h |
| Include | #include "Rig/Solvers/IKRig_FBIKSolver.h" |
Syntax
UCLASS&40;BlueprintType, EditInlineNew, Config&61;Engine, HideCategories&61;UObject&41;
class UIKRigFBIKSolver : public UIKRigSolver
Variables
| Type | Name | Description | |
|---|---|---|---|
| bool | bAllowStretch | If true, joints will translate to reach the effectors; causing bones to lengthen if necessary. | |
| TArray< TObjectPtr< UIKRig_FBIKBoneSettings > > | BoneSettings | ||
| TArray< TObjectPtr< UIKRig_FBIKEffector > > | Effectors | ||
| int32 | Iterations | High iteration counts can help solve complex joint configurations with competing constraints, but will increase runtime cost. | |
| float | MassMultiplier | A global mass multiplier; higher values will make the joints more stiff, but require more iterations. | |
| float | MaxAngle | Maximum angle that a joint can be rotated per constraint iteration. | |
| float | OverRelaxation | Pushes constraints beyond their normal amount to speed up convergence. | |
| FRootPrePullSettings | PrePullRootSettings | Settings only applicable when Root Behavior is set to "PrePull". | |
| float | PullChainAlpha | A global multiplier for all Pull Chain Alpha values on all effectors. | |
| EPBIKRootBehavior | RootBehavior | (Default is PrePull) Set the behavior of the solver root. | |
| FName | RootBone | All bones above this bone in the hierarchy will be completely ignored by the solver. |
Overridden from UIKRigSolver
| Type | Name | Description | |
|---|---|---|---|
| void | AddBoneSetting
(
const FName& BoneName |
Bone settings | |
| void | AddGoal
(
const UIKRigEffectorGoal& NewGoal |
Goals | |
| void | DrawBoneSettings
(
const FName& BoneName, |
Todo override to draw custom per-bone settings in the editor viewport | |
| UObject * | GetBoneSetting
(
const FName& BoneName |
Override to support supplying per-bone settings to outside systems for editing/UI NOTE: This must be overriden on solvers that use bone settings. | |
| void | GetBonesWithSettings
(
TSet< FName >& OutBonesWithSettings |
Override to support telling outside systems which bones this solver has setting for. | |
| 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 |
Runtime | |
| 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 | RemoveBoneSetting
(
const FName& BoneName |
Override to support ADDING PER-BONE settings for this solver | |
| 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. | |
| bool | Override to tell systems if this solver supports per-bone settings |
Overridden from UObject
| Type | Name | Description | |
|---|---|---|---|
| void | PostLoad () |
END UIKRigSolver interface |
Deprecated Variables
| Type | Name | Description | |
|---|---|---|---|
| bool | bStartSolveFromInputPose_DEPRECATED | DEPRECATED: When true, the solver is reset each tick to start from the current input pose. |