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.

SkeletonModification2DCCDIK

Experimental: This class may be changed or removed in future versions.

Hereda: SkeletonModification2D < Resource < RefCounted < Object

Una modificación que usa CCDIK para manipular una serie de huesos y alcanzar un objetivo en 2D.

Descripción

Este SkeletonModification2D utiliza un algoritmo llamado Cinemática Inversa de Descenso de Coordenadas Cíclicas, o CCDIK, para manipular una cadena de huesos en un Skeleton2D para que alcance un objetivo definido.

CCDIK funciona rotando un conjunto de huesos, típicamente llamado "cadena de huesos", en un solo eje. Cada hueso se rota para encarar el objetivo desde la punta (por defecto), lo que a lo largo de una cadena de huesos le permite rotar correctamente para alcanzar el objetivo. Debido a que los huesos solo rotan en un solo eje, CCDIK puede parecer más robótico que otros solucionadores IK.

Nota: El modificador CCDIK tiene ccdik_joints, que son los objetos de datos que contienen los datos de cada articulación en la cadena CCDIK. ¡Esto es diferente de un hueso! Las articulaciones CCDIK contienen los datos necesarios para cada hueso en la cadena de huesos utilizada por CCDIK.

CCDIK también es totalmente compatible con las restricciones de ángulo, lo que permite un mayor control sobre cómo se encuentra una solución.

Propiedades

int

ccdik_data_chain_length

0

NodePath

target_nodepath

NodePath("")

NodePath

tip_nodepath

NodePath("")

Métodos

NodePath

get_ccdik_joint_bone2d_node(joint_idx: int) const

int

get_ccdik_joint_bone_index(joint_idx: int) const

bool

get_ccdik_joint_constraint_angle_invert(joint_idx: int) const

float

get_ccdik_joint_constraint_angle_max(joint_idx: int) const

float

get_ccdik_joint_constraint_angle_min(joint_idx: int) const

bool

get_ccdik_joint_enable_constraint(joint_idx: int) const

bool

get_ccdik_joint_rotate_from_joint(joint_idx: int) const

void

set_ccdik_joint_bone2d_node(joint_idx: int, bone2d_nodepath: NodePath)

void

set_ccdik_joint_bone_index(joint_idx: int, bone_idx: int)

void

set_ccdik_joint_constraint_angle_invert(joint_idx: int, invert: bool)

void

set_ccdik_joint_constraint_angle_max(joint_idx: int, angle_max: float)

void

set_ccdik_joint_constraint_angle_min(joint_idx: int, angle_min: float)

void

set_ccdik_joint_enable_constraint(joint_idx: int, enable_constraint: bool)

void

set_ccdik_joint_rotate_from_joint(joint_idx: int, rotate_from_joint: bool)


Descripciones de Propiedades

int ccdik_data_chain_length = 0 🔗

  • void set_ccdik_data_chain_length(value: int)

  • int get_ccdik_data_chain_length()

El número de articulaciones CCDIK en la modificación CCDIK.


NodePath target_nodepath = NodePath("") 🔗

La NodePath al nodo que es el objetivo de la modificación CCDIK. Este nodo es hacia donde la cadena CCDIK intentará rotar la cadena de huesos.


NodePath tip_nodepath = NodePath("") 🔗

La posición final de la cadena CCDIK. Típicamente, este debería ser un hijo de un nodo Bone2D adjunto al Bone2D final en la cadena CCDIK.


Descripciones de Métodos

NodePath get_ccdik_joint_bone2d_node(joint_idx: int) const 🔗

Devuelve el nodo Bone2D asignado a la articulación CCDIK en joint_idx.


int get_ccdik_joint_bone_index(joint_idx: int) const 🔗

Devuelve el índice del nodo Bone2D asignado a la articulación CCDIK en joint_idx.


bool get_ccdik_joint_constraint_angle_invert(joint_idx: int) const 🔗

Devuelve si la articulación CCDIK en joint_idx utiliza una restricción de articulación invertida. Véase set_ccdik_joint_constraint_angle_invert() para más detalles.


float get_ccdik_joint_constraint_angle_max(joint_idx: int) const 🔗

Devuelve la restricción de ángulo máxima para la articulación en joint_idx.


float get_ccdik_joint_constraint_angle_min(joint_idx: int) const 🔗

Devuelve la restricción de ángulo mínima para la articulación en joint_idx.


bool get_ccdik_joint_enable_constraint(joint_idx: int) const 🔗

Devuelve si las restricciones de ángulo en la articulación CCDIK en joint_idx están habilitadas.


bool get_ccdik_joint_rotate_from_joint(joint_idx: int) const 🔗

Devuelve si la articulación en joint_idx está configurada para rotar desde la articulación, true, o para rotar desde la punta, false. El valor por defecto es rotar desde la punta.


void set_ccdik_joint_bone2d_node(joint_idx: int, bone2d_nodepath: NodePath) 🔗

Establece el nodo Bone2D asignado a la articulación CCDIK en joint_idx.


void set_ccdik_joint_bone_index(joint_idx: int, bone_idx: int) 🔗

Establece el índice del hueso, bone_idx, de la articulación CCDIK en joint_idx. Cuando sea posible, esto también actualizará el bone2d_node de la articulación CCDIK basándose en los datos proporcionados por el esqueleto vinculado.


void set_ccdik_joint_constraint_angle_invert(joint_idx: int, invert: bool) 🔗

Sets whether the CCDIK joint at joint_idx uses an inverted joint constraint.

An inverted joint constraint only constraints the CCDIK joint to the angles outside of the inputted minimum and maximum angles. For this reason, it is referred to as an inverted joint constraint, as it constraints the joint to the outside of the inputted values.


void set_ccdik_joint_constraint_angle_max(joint_idx: int, angle_max: float) 🔗

Establece la restricción de ángulo máximo para la articulación en joint_idx.


void set_ccdik_joint_constraint_angle_min(joint_idx: int, angle_min: float) 🔗

Establece la restricción de ángulo mínimo para la articulación en joint_idx.


void set_ccdik_joint_enable_constraint(joint_idx: int, enable_constraint: bool) 🔗

Determina si las restricciones de ángulo en la articulación CCDIK en joint_idx están habilitadas. Cuando es true, las restricciones estarán habilitadas y se tendrán en cuenta al resolver.


void set_ccdik_joint_rotate_from_joint(joint_idx: int, rotate_from_joint: bool) 🔗

Establece si la articulación en joint_idx está configurada para rotar desde la articulación, true, o para rotar desde la punta, false.