alias_api.AlIKHandle

class alias_api.AlIKHandle

Bases: AlObject

Interface to Inverse Kinematics Handles.

A skeleton is just a collection of joint dag nodes that have no particular special behaviour until IK handles are applied to them. In order to use inverse kinematics in Alias, you have to create IK handles that define paths along skeletons to be constrained by IK.

An IK handle is defined by two joints. The end effector is the point on the skeleton that is free to move, and the root is the anchor point on the skeleton. When the end effector is moved, the rotations on all joints leading up to the root are constrained to provide an appropriate IK solution.

The IK handle also specifies the solver that will be used. There are two kinds of IK solvers in Alias. The single-chain solver is analytic and always produces a unique solution. The multi-chain solver is iterative, and the solution depends on the starting state.

Furthermore, single-chain handles are never allowed to overlap other IK handles, except for the root of one handle meeting the end effector of another. Multi-chain handles, on the other hand, are allowed to interfere with one another, the result being a best-possible IK solution.

Single-chain IK handles are always position handles - the rotations of the joints above the end-effector, and below or at the root, are transformed to meet the position of the end-effector.

Multi-solver IK handles can be position or orientation goals or both. An orientation goal will try to match the orientation of the bone immediately above the end-effector to the orientation of the IK handle.

Also, multi-solver IK handles have weights. When several multi-solver IK handles overlap, the weights on these handles are used to determine the relative effect each solution has on the overall rotation of the joints in the affected skeleton.

copy_wrapper(self: alias_api.AlIKHandle) alias_api.AlObject

Return an exact duplicate of this AlIKHandle wrapper.

type(self: alias_api.AlIKHandle) alias_api.AlObjectType

Return the AlIKHandle type identifier.