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.

  • start_solve_from_input_pose (bool): [Read-Write] When true, the solver is reset each tick to start from the current input pose. Default is true. If false, incoming animated poses are ignored and the solver starts from the results of the previous solve. In very limited circumstances, it can be beneficial to use the pose from the previous frame.

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 start_solve_from_input_pose: bool

[Read-Write] When true, the solver is reset each tick to start from the current input pose. Default is true. If false, incoming animated poses are ignored and the solver starts from the results of the previous solve. In very limited circumstances, it can be beneficial to use the pose from the previous frame.

Type:

(bool)