Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

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

int

ccdik_data_chain_length

0

NodePath

target_nodepath

NodePath("")

NodePath

tip_nodepath

NodePath("")

Methods

NodePath

get_ccdik_joint_bone2d_node ( int joint_idx ) const

int

get_ccdik_joint_bone_index ( int joint_idx ) const

bool

get_ccdik_joint_constraint_angle_invert ( int joint_idx ) const

float

get_ccdik_joint_constraint_angle_max ( int joint_idx ) const

float

get_ccdik_joint_constraint_angle_min ( int joint_idx ) const

bool

get_ccdik_joint_enable_constraint ( int joint_idx ) const

bool

get_ccdik_joint_rotate_from_joint ( int joint_idx ) const

void

set_ccdik_joint_bone2d_node ( int joint_idx,