UIKRig_LimbSolver

Choose your operating system:

Windows

macOS

Linux

Inheritance Hierarchy

References

Module

IKRig

Header

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

Include

#include "Solvers/IKRig_LimbSolver.h"

Syntax

UCLASS(EditInlineNew)
class UIKRig_LimbSolver : public UIKRigSolver

Variables

Name Description

Public variable UProperty Category, EditAnywhere

bool

 

bAveragePull

Pull averaging only has a visual impact when we have more than 2 bones (3 links).

Public variable UProperty Category, EditAnywhere

bool

 

bEnableLimit

Enable/Disable rotational limits

Public variable UProperty Category, EditAnywhere

bool

 

bEnableTwistCorrection

Enable Knee Twist correction, by comparing Foot FK with Foot IK orientation.

Public variable UProperty Category, EditAnywhere, Meta

TEnumAsByte< EA...

 

EndBoneForwardAxis

Forward Axis for Foot bone.

Public variable UProperty Category, EditAnywhere

TEnumAsByte< EA...

 

HingeRotationAxis

Hinge Bones Rotation Axis. This is essentially the plane normal for (hip - knee - foot).

Public variable UProperty Category, EditAnywhere, Meta

int32

 

MaxIterations

Number of Max Iterations to reach the target

Public variable UProperty Category, EditAnywhere, Meta

float

 

MinRotationAngle

Only used if bEnableRotationLimit is enabled.

Public variable UProperty Category, EditAnywhere, Meta

float

 

PullDistribution

Re-position limb to distribute pull: 0 = foot, 0.5 = balanced, 1.f = hip

Public variable UProperty Category, EditAnywhere, Meta

float

 

ReachPrecision

Precision (distance to the target)

Public variable UProperty Category, EditAnywhere, Meta

float

 

ReachStepAlpha

Move end effector towards target. If we are compressing the chain, limit displacement.

Public variable UProperty Category visibleanywhere

FName

 

RootName

Constructors

Name Description

Public function

UIKRig_LimbSolver()

Overridden from UIKRigSolver

Name Description

Public function Virtual

void

 

AddGoal

(
    const UIKRigEffectorGoal& NewGoal
)

Goals

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

bool

 

GetWarningMessage

(
    FText& OutWarningMessage
)

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

Public function Virtual

void

 

Initialize

(
    const FIKRigSkeleton& IKRigSkeleto...
)

UIKRigSolver interface

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

 

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.