BL_ArmatureChannel
Base class: EXP_PyObjectPlus
Proxy to armature pose channel. Allows to read and set armature pose. The attributes are identical to RNA attributes, but mostly in read-only mode.
channel name (=bone name), read-only.
Type: string
return the bone object corresponding to this pose channel, read-only.
Type: BL_ArmatureBone
parent
Section titled “parent”return the parent channel object, None if root channel, read-only.
Type: BL_ArmatureChannel
has_ik
Section titled “has_ik”true if the bone is part of an active IK chain, read-only. This flag is not set when an IK constraint is defined but not enabled (miss target information for example).
Type: boolean
ik_dof_x
Section titled “ik_dof_x”true if the bone is free to rotation in the X axis, read-only.
Type: boolean
ik_dof_y
Section titled “ik_dof_y”true if the bone is free to rotation in the Y axis, read-only.
Type: boolean
ik_dof_z
Section titled “ik_dof_z”true if the bone is free to rotation in the Z axis, read-only.
Type: boolean
ik_limit_x
Section titled “ik_limit_x”true if a limit is imposed on X rotation, read-only.
Type: boolean
ik_limit_y
Section titled “ik_limit_y”true if a limit is imposed on Y rotation, read-only.
Type: boolean
ik_limit_z
Section titled “ik_limit_z”true if a limit is imposed on Z rotation, read-only.
Type: boolean
ik_rot_control
Section titled “ik_rot_control”true if channel rotation should applied as IK constraint, read-only.
Type: boolean
ik_lin_control
Section titled “ik_lin_control”true if channel size should applied as IK constraint, read-only.
Type: boolean
location
Section titled “location”displacement of the bone head in armature local space, read-write.
Type: vector [X, Y, Z].
scale of the bone relative to its parent, read-write.
Type: vector [sizeX, sizeY, sizeZ].
rotation_quaternion
Section titled “rotation_quaternion”rotation of the bone relative to its parent expressed as a quaternion, read-write.
Type: vector [qr, qi, qj, qk].
rotation_euler
Section titled “rotation_euler”rotation of the bone relative to its parent expressed as a set of euler angles, read-write.
Type: vector [X, Y, Z].
rotation_mode
Section titled “rotation_mode”Method of updating the bone rotation, read-write.
Type: integer (one of these constants)
channel_matrix
Section titled “channel_matrix”pose matrix in bone space (deformation of the bone due to action, constraint, etc), Read-only. This field is updated after the graphic render, it represents the current pose.
Type: matrix [4][4]
pose_matrix
Section titled “pose_matrix”pose matrix in armature space, read-only, This field is updated after the graphic render, it represents the current pose.
Type: matrix [4][4]
pose_head
Section titled “pose_head”position of bone head in armature space, read-only.
Type: vector [x, y, z]
pose_tail
Section titled “pose_tail”position of bone tail in armature space, read-only.
Type: vector [x, y, z]
ik_min_x
Section titled “ik_min_x”minimum value of X rotation in degree (<= 0) when X rotation is limited (see ik_limit_x), read-only.
Type: float
ik_max_x
Section titled “ik_max_x”maximum value of X rotation in degree (>= 0) when X rotation is limited (see ik_limit_x), read-only.
Type: float
ik_min_y
Section titled “ik_min_y”minimum value of Y rotation in degree (<= 0) when Y rotation is limited (see ik_limit_y), read-only.
Type: float
ik_max_y
Section titled “ik_max_y”maximum value of Y rotation in degree (>= 0) when Y rotation is limited (see ik_limit_y), read-only.
Type: float
ik_min_z
Section titled “ik_min_z”minimum value of Z rotation in degree (<= 0) when Z rotation is limited (see ik_limit_z), read-only.
Type: float
ik_max_z
Section titled “ik_max_z”maximum value of Z rotation in degree (>= 0) when Z rotation is limited (see ik_limit_z), read-only.
Type: float
ik_stiffness_x
Section titled “ik_stiffness_x”bone rotation stiffness in X axis, read-only.
Type: float between 0 and 1
ik_stiffness_y
Section titled “ik_stiffness_y”bone rotation stiffness in Y axis, read-only.
Type: float between 0 and 1
ik_stiffness_z
Section titled “ik_stiffness_z”bone rotation stiffness in Z axis, read-only.
Type: float between 0 and 1
ik_stretch
Section titled “ik_stretch”ratio of scale change that is allowed, 0=bone can’t change size, read-only.
Type: float
ik_rot_weight
Section titled “ik_rot_weight”weight of rotation constraint when ik_rot_control is set, read-write.
Type: float between 0 and 1
ik_lin_weight
Section titled “ik_lin_weight”weight of size constraint when ik_lin_control is set, read-write.
Type: float between 0 and 1
joint_rotation
Section titled “joint_rotation”Control bone rotation in term of joint angle (for robotic applications), read-write.
When writing to this attribute, you pass a [x, y, z] vector and an appropriate set of euler angles or quaternion is calculated according to the rotation_mode.
When you read this attribute, the current pose matrix is converted into a [x, y, z] vector representing the joint angles.
The value and the meaning of the x, y, z depends on the ik_dof_x/ik_dof_y/ik_dof_z attributes:
- 1DoF joint X, Y or Z: the corresponding x, y, or z value is used an a joint angle in radiant
- 2DoF joint X+Y or Z+Y: treated as 2 successive 1DoF joints: first X or Z, then Y. The x or z value is used as a joint angle in radiant along the X or Z axis, followed by a rotation along the new Y axis of y radiants.
- 2DoF joint X+Z: treated as a 2DoF joint with rotation axis on the X/Z plane. The x and z values are used as the coordinates of the rotation vector in the X/Z plane.
- 3DoF joint X+Y+Z: treated as a revolute joint. The [x, y, z] vector represents the equivalent rotation vector to bring the joint from the rest pose to the new pose.
Type: vector [x, y, z]
