Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
SkeletonModification2DCCDIK¶
Inherits: SkeletonModification2D < Resource < RefCounted < Object
A modification that uses CCDIK to manipulate a series of bones to reach a target in 2D.
Description¶
This SkeletonModification2D uses an algorithm called Cyclic Coordinate Descent Inverse Kinematics, or CCDIK, to manipulate a chain of bones in a Skeleton2D so it reaches a defined target.
CCDIK works by rotating a set of bones, typically called a "bone chain", on a single axis. Each bone is rotated to face the target from the tip (by default), which over a chain of bones allow it to rotate properly to reach the target. Because the bones only rotate on a single axis, CCDIK can look more robotic than other IK solvers.
Note: The CCDIK modifier has ccdik_joints
, which are the data objects that hold the data for each joint in the CCDIK chain. This is different from a bone! CCDIK joints hold the data needed for each bone in the bone chain used by CCDIK.
CCDIK also fully supports angle constraints, allowing for more control over how a solution is met.
Properties¶
|
||
|
||
|
Methods¶
get_ccdik_joint_bone2d_node ( int joint_idx ) const |
|
get_ccdik_joint_bone_index ( int joint_idx ) const |
|
get_ccdik_joint_constraint_angle_invert ( int joint_idx ) const |
|
get_ccdik_joint_constraint_angle_max ( int joint_idx ) const |
|
get_ccdik_joint_constraint_angle_min ( int joint_idx ) const |
|
get_ccdik_joint_enable_constraint ( int joint_idx ) const |
|
get_ccdik_joint_rotate_from_joint ( int joint_idx ) const |
|
void |
set_ccdik_joint_bone2d_node ( int joint_idx, NodePath bone2d_nodepath ) |
void |
set_ccdik_joint_bone_index ( int joint_idx, int bone_idx ) |
void |
set_ccdik_joint_constraint_angle_invert ( int joint_idx, bool invert ) |
void |
set_ccdik_joint_constraint_angle_max ( int joint_idx, float angle_max ) |
void |
set_ccdik_joint_constraint_angle_min ( int joint_idx, float angle_min ) |
void |
set_ccdik_joint_enable_constraint ( int joint_idx, bool enable_constraint ) |
void |