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
rootnode - A controller (
ctrl) - A
skinnode (deformation output)
Options
do_pose(bool, default:off): Adds aposenode between the root and controller (for driven key control).add_nodes(str | list[str], default:null): Adds custom nodes to the hierarchy.- Example:
infinserts 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 forautoup 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.