unreal.IKRigFBIKSolver

class unreal.IKRigFBIKSolver(outer: Object | None = None, name: Name | str = 'None')

Bases: IKRigSolver

IKRig FBIKSolver

C++ Source:

  • Plugin: IKRig

  • Module: IKRig

  • File: IKRig_FBIKSolver.h

Editor Properties: (see get_editor_property/set_editor_property)

  • allow_stretch (bool): [Read-Write] If true, joints will translate to reach the effectors; causing bones to lengthen if necessary. Good for cartoon effects. Default is false.

  • iterations (int32): [Read-Write] High iteration counts can help solve complex joint configurations with competing constraints, but will increase runtime cost. Default is 20.

  • mass_multiplier (float): [Read-Write] A global mass multiplier; higher values will make the joints more stiff, but require more iterations. Typical range is 0.0 to 10.0.

  • max_angle (float): [Read-Write] Maximum angle that a joint can be rotated per constraint iteration. Lower this value if the solve is diverging. Range is 0.0 to 180.0. Default is 30.

  • over_relaxation (float): [Read-Write] Pushes constraints beyond their normal amount to speed up convergence. Increasing this may speed up convergence, but at the cost of stability. Range is 1.0 - 2.0. Default is 1.3.

  • pre_pull_root_settings (RootPrePullSettings): [Read-Write] Settings only applicable when Root Behavior is set to “PrePull”. Use these values to adjust the gross movement and orientation of the entire skeleton.

  • pull_chain_alpha (float): [Read-Write] A global multiplier for all Pull Chain Alpha values on all effectors. Range is 0.0 to 1.0. Default is 1.0.

  • root_behavior (PBIKRootBehavior): [Read-Write] (Default is PrePull) Set the behavior of the solver root. Pre Pull: translates and rotates the root (and all children) by the average motion of the stretched effectors to help achieve faster convergence when reaching far. Pin to Input: locks the translation and rotation of the root bone to the input pose. Overrides any bone settings applied to the root. Good for partial-body solves. Free: treats the root bone like any other and allows it to move freely or according to any bone settings applied to it.

  • root_bone (Name): [Read-Only] All bones above this bone in the hierarchy will be completely ignored by the solver. Typically this is set to the top-most skinned bone in the Skeletal Mesh (ie Pelvis, Hips etc), NOT the actual root of the entire skeleton.

    If you want to use the solver on a single chain of bones, and NOT translate the chain, ensure that “PinRoot” is checked on to disable the root from translating to reach the effector goals.

  • sub_iterations (int32): [Read-Write] Iterations used for sub-chains defined by the Chain Depth of the effectors. These are solved BEFORE the main iteration pass. Default is 0.

property allow_stretch: bool

[Read-Write] If true, joints will translate to reach the effectors; causing bones to lengthen if necessary. Good for cartoon effects. Default is false.

Type:

(bool)

property iterations: int

[Read-Write] High iteration counts can help solve complex joint configurations with competing constraints, but will increase runtime cost. Default is 20.

Type:

(int32)

property mass_multiplier: float

[Read-Write] A global mass multiplier; higher values will make the joints more stiff, but require more iterations. Typical range is 0.0 to 10.0.

Type:

(float)

property max_angle: float

[Read-Write] Maximum angle that a joint can be rotated per constraint iteration. Lower this value if the solve is diverging. Range is 0.0 to 180.0. Default is 30.

Type:

(float)

property over_relaxation: float

[Read-Write] Pushes constraints beyond their normal amount to speed up convergence. Increasing this may speed up convergence, but at the cost of stability. Range is 1.0 - 2.0. Default is 1.3.

Type:

(float)

property pre_pull_root_settings: RootPrePullSettings

[Read-Write] Settings only applicable when Root Behavior is set to “PrePull”. Use these values to adjust the gross movement and orientation of the entire skeleton.

Type:

(RootPrePullSettings)

property pull_chain_alpha: float

[Read-Write] A global multiplier for all Pull Chain Alpha values on all effectors. Range is 0.0 to 1.0. Default is 1.0.

Type:

(float)

property root_behavior: PBIKRootBehavior

[Read-Write] (Default is PrePull) Set the behavior of the solver root. Pre Pull: translates and rotates the root (and all children) by the average motion of the stretched effectors to help achieve faster convergence when reaching far. Pin to Input: locks the translation and rotation of the root bone to the input pose. Overrides any bone settings applied to the root. Good for partial-body solves. Free: treats the root bone like any other and allows it to move freely or according to any bone settings applied to it.

Type:

(PBIKRootBehavior)

property root_bone: Name

[Read-Only] All bones above this bone in the hierarchy will be completely ignored by the solver. Typically this is set to the top-most skinned bone in the Skeletal Mesh (ie Pelvis, Hips etc), NOT the actual root of the entire skeleton.

If you want to use the solver on a single chain of bones, and NOT translate the chain, ensure that “PinRoot” is checked on to disable the root from translating to reach the effector goals.

Type:

(Name)

property sub_iterations: int

[Read-Write] Iterations used for sub-chains defined by the Chain Depth of the effectors. These are solved BEFORE the main iteration pass. Default is 0.

Type:

(int32)