UIKRigPBIKSolver

Choose your operating system:

Windows

macOS

Linux

Inheritance Hierarchy

References

Module

IKRig

Header

/Engine/Plugins/Animation/IKRig/Source/IKRig/Public/Solvers/IKRig_PBIKSolver.h

Include

#include "Solvers/IKRig_PBIKSolver.h"

Syntax

UCLASS(EditInlineNew, Config=Engine, HideCategories=UObject)
class UIKRigPBIKSolver : public UIKRigSolver

Variables

Name Description

Public variable UProperty Category, EditAnywhere

bool

 

bAllowStretch

If true, joints will translate to reach the effectors; causing bones to lengthen if necessary.

Public variable UProperty

TArray< TObject...

 

BoneSettings

Public variable UProperty Category, EditAnywhere

bool

 

bStartSolveFromInputPose

When true, the solver is reset each tick to start from the current input pose.

Public variable UProperty

TArray< TObject...

 

Effectors

Public variable UProperty Category, EditAnywhere, Meta

int32

 

Iterations

High iteration counts can help solve complex joint configurations with competing constraints, but will increase runtime cost.

Public variable UProperty Category, EditAnywhere, Meta

float

 

MassMultiplier

A global mass multiplier; higher values will make the joints more stiff, but require more iterations.

Public variable UProperty Category, EditAnywhere, Meta

float

 

MinMassMultiplier

Set this as low as possible while keeping the solve stable.

Public variable UProperty Category, EditAnywhere

EPBIKRootBehavi...

 

RootBehavior

(Default is PrePull) Set the behavior for the translation of the root.

Public variable UProperty Category visibleanywhere

FName

 

RootBone

All bones above this bone in the hierarchy will be completely ignored by the solver.

Overridden from UIKRigSolver

Name Description

Public function Virtual

void

 

AddBoneSetting

(
    const FName& BoneName
)

Bone settings

Public function Virtual

void

 

AddGoal

(
    const UIKRigEffectorGoal& NewGoal
)

Goals

Public function Virtual Const

void

 

DrawBoneSettings

(
    const FName& BoneName,
    const FIKRigSkeleton& IKRigSkeleto...,
    FPrimitiveDrawInterface* PDI
)

Todo override to draw custom per-bone settings in the editor viewport

Public function Virtual Const

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.

Public function Virtual Const

void

 

GetBonesWithSettings

(
    TSet< FName >& OutBonesWithSetting...
)

Override to support telling outside systems which bones this solver has setting for.

Public function Virtual Const

UObject *...

 

GetGoalSettings

(
    const FName& GoalName
)

Override to support supplying goals settings specific to this solver to outside systems for editing/UI

Public function Virtual Const

FText

 

GetNiceName()

Override to give your solver a nice name to display in the UI

Public function Virtual Const

FName

 

GetRootBone()

If solver requires a root bone, then override this to return it.

Public function Virtual Const

bool

 

GetWarningMessage

(
    FText& OutWarningMessage
)

Override to provide warning to user during setup of any missing components.

Public function Virtual

void

 

Initialize

(
    const FIKRigSkeleton& IKRigSkeleto...
)

Runtime

Public function Virtual Const

bool

 

IsBoneAffectedBySolver

(
    const FName& BoneName,
    const FIKRigSkeleton& IKRigSkeleto...
)

Return true if the supplied Bone is affected by this solver - this provides UI feedback for user

Public function Virtual Const

bool

 

IsGoalConnected

(
    const FName& GoalName
)

Override to support QUERY for a connected goal

Public function Virtual

void

 

RemoveBoneSetting

(
    const FName& BoneName
)

Override to support ADDING PER-BONE settings for this solver

Public function Virtual

void

 

RemoveGoal

(
    const FName& GoalName
)

Override to support REMOVING a goal from custom solver

Public function Virtual

void

 

RenameGoal

(
    const FName& OldName,
    const FName& NewName
)

Override to support RENAMING an existing goal

Public function Virtual Const

bool

 

RequiresRootBone()

Root bone can be set on this solver

Public function Virtual

void

 

SetGoalBone

(
    const FName& GoalName,
    const FName& NewBoneName
)

Override to support CHANGING BONE for an existing goal

Public function Virtual

void

 

SetRootBone

(
    const FName& RootBoneName
)

Override to support SETTING ROOT BONE for the solver

Public function Virtual

void

 

Solve

(
    FIKRigSkeleton& IKRigSkeleton,
    const FIKRigGoalContainer& Goals
)

Override Solve() to evaluate new output pose (InOutGlobalTransform)

Public function Virtual

void

 

UpdateSolverSettings

(
    UIKRigSolver* InSettings
)

Override to support RECEIVING modified solver settings from outside systems for editing/UI.

Public function Virtual Const

bool

 

UsesBoneSettings()

Override to tell systems if this solver supports per-bone settings

Overridden from UObject

Name Description

Public function Virtual

void

 

PostLoad()

END UIKRigSolver interface