core.bones
Generic FK controller chain module
Overview
The core.bones
module generates a controller rig for each joint in a template chain. Each controller is built from a hierarchy of nodes that support both deformation and animation layers. By default, the structure includes:
- A
root
node - A controller (
ctrl
) - A
skin
node (deformation output)
Options
do_pose
(bool, default:off
): Adds apose
node between the root and controller (for driven key control).add_nodes
(str | list[str], default:null
): Adds custom nodes to the hierarchy.- Example:
inf
inserts a nodeinf_{name}
above the controller. - Example:
[inf, pose]
inserts both nodesinf_{name}
andpose_{name}
in order. - Example:
[c, dyn]
addsdyn_{name}
between the controller and the skin joint.
- Example:
Transform Behavior
parent_scale
(bool, default:off
): Enables scale propagation between controllers (affects segment scale compensation).rotate_order
(enum, default:xyz
): Sets the rotation order on the controller hierarchy.
Orientation
flip_orient
(bool, default:off
): Flips root orientation to produce symmetrical translation behavior.orient
(enum, default:copy
): Sets the orientation strategy for the controller rig.copy
: Copies orientation from the template joint.auto
: Automatically orients joints using the options below.world
: Aligns orientation to the world axes.parent
: Aligns to the parent rig joint.
Auto Orientation Controls
aim_axis
(str, default:y
): Main axis pointing toward the next joint in the chain.up_axis
(str, default:z
): Secondary axis used for local up vector.up_dir
(enum, default:auto
): Mode for computing the up vector.auto
: Based on geometry of the joint chain.+x
,-x
,+y
,-y
,+z
,-z
: Fixed world-space directions.
up_auto
(enum, default:average
): Strategy forauto
up vector calculation.average
: Averages all segment triangles.each
: Computes individual up vectors per joint.first
: Uses first segment’s up vector for all.last
: Uses last segment’s up vector for all.