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
Sperimentale: This class may be changed or removed in future versions.
Eredita: SkeletonModification2D < Resource < RefCounted < Object
Una modificazione che utilizza il CCDIK per manipolare una serie di ossa per raggiungere un obiettivo in 2D.
Descrizione
Questo SkeletonModification2D utilizza un algoritmo chiamato Cyclic Coordinate Descent Inverse Kinematics, o CCDIK, per manipolare una catena di ossa in uno Skeleton2D in modo che raggiunga un obiettivo definito.
CCDIK funziona ruotando un insieme di ossa, in genere chiamato "catena di ossa", su un singolo asse. Ogni osso viene ruotato per puntare verso l'obiettivo dalla punta (per impostazione predefinita), che su una catena di ossa gli consente di ruotare correttamente per raggiungere l'obiettivo. Poiché le ossa ruotano solo su un singolo asse, CCDIK può apparire più robotico di altri risolutori IK.
Nota: Il modificatore CCDIK ha ccdik_joints, che sono gli oggetti dati che contengono i dati per ogni articolazione nella catena CCDIK. Questo è diverso da un osso! I giunti CCDIK contengono i dati necessari per ogni osso nella catena di ossa utilizzata da CCDIK.
Inoltre, CCDIK supporta totalmente i vincoli angolari, consentendo un maggiore controllo sul modo in cui viene soddisfatta una soluzione.
Proprietà
|
||
|
||
|
Metodi
get_ccdik_joint_bone2d_node(joint_idx: int) const |
|
get_ccdik_joint_bone_index(joint_idx: int) const |
|
get_ccdik_joint_constraint_angle_invert(joint_idx: int) const |
|
get_ccdik_joint_constraint_angle_max(joint_idx: int) const |
|
get_ccdik_joint_constraint_angle_min(joint_idx: int) const |
|
get_ccdik_joint_enable_constraint(joint_idx: int) const |
|
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) |
Descrizioni delle proprietà
int ccdik_data_chain_length = 0 🔗
Il numero di articolazioni CCDIK nella modificazione CCDIK.
NodePath target_nodepath = NodePath("") 🔗
Il NodePath al nodo che è l'obiettivo per la modificazione CCDIK. Questo nodo è ciò verso cui la catena CCDIK tenterà di ruotare la catena d'ossa.
NodePath tip_nodepath = NodePath("") 🔗
La posizione finale della catena CCDIK. In genere, dovrebbe essere un figlio di un nodo Bone2D collegato al Bone2D finale nella catena CCDIK.
Descrizioni dei metodi
NodePath get_ccdik_joint_bone2d_node(joint_idx: int) const 🔗
Restituisce il nodo Bone2D assegnato all'articolazione CCDIK all'indice joint_idx.
int get_ccdik_joint_bone_index(joint_idx: int) const 🔗
Restituisce l'indice del nodo Bone2D assegnato all'articolazione CCDIK all'indice joint_idx.
bool get_ccdik_joint_constraint_angle_invert(joint_idx: int) const 🔗
Restituisce se l'articolazione CCDIK all'indice joint_idx utilizza un vincolo invertito di articolazione. Vedi set_ccdik_joint_constraint_angle_invert() per i dettagli.
float get_ccdik_joint_constraint_angle_max(joint_idx: int) const 🔗
Restituisce il vincolo angolare massimo per l'articolazione all'indice joint_idx.
float get_ccdik_joint_constraint_angle_min(joint_idx: int) const 🔗
Restituisce il limite minimo dell'angolo per l'articolazione all'indice joint_idx.
bool get_ccdik_joint_enable_constraint(joint_idx: int) const 🔗
Restituisce se i vincoli angolari sull'articolazione CCDIK all'indice joint_idx sono abilitati.
bool get_ccdik_joint_rotate_from_joint(joint_idx: int) const 🔗
Restituisce se l'articolazione all'indice joint_idx è impostata per ruotare dal giunto, true, o per ruotare dalla punta, false. L'impostazione predefinita è ruotare dalla punta.
void set_ccdik_joint_bone2d_node(joint_idx: int, bone2d_nodepath: NodePath) 🔗
Imposta il nodo Bone2D assegnato all'articolazione CCDIK all'indice joint_idx.
void set_ccdik_joint_bone_index(joint_idx: int, bone_idx: int) 🔗
Imposta l'indice osseo, bone_idx, dell'articolazione CCDIK su joint_idx. Quando possibile, questo aggiornerà anche il bone2d_node dell'articolazione CCDIK in base ai dati forniti dallo scheletro collegato.
void set_ccdik_joint_constraint_angle_invert(joint_idx: int, invert: bool) 🔗
Imposta se l'articolazione CCDIK all'indice joint_idx utilizza un vincolo invertito di articolazione.
Un vincolo invertito vincola l'articolazione CCDIK solo agli angoli esterni degli angoli minimo e massimo immessi. Per questo motivo, viene definito vincolo invertito, in quanto vincola l'articolazione all'esterno dei valori immessi.
void set_ccdik_joint_constraint_angle_max(joint_idx: int, angle_max: float) 🔗
Imposta il limite massimo dell'angolo per l'articolazione all'indice joint_idx.
void set_ccdik_joint_constraint_angle_min(joint_idx: int, angle_min: float) 🔗
Imposta il vincolo angolare minimo per l'articolazione all'indice joint_idx.
void set_ccdik_joint_enable_constraint(joint_idx: int, enable_constraint: bool) 🔗
Determina se i vincoli angolari sull'articolazione CCDIK all'indice joint_idx sono abilitati. Quando true, i vincoli saranno abilitati e presi in considerazione durante la risoluzione.
void set_ccdik_joint_rotate_from_joint(joint_idx: int, rotate_from_joint: bool) 🔗
Imposta se l'articolazione all'indice joint_idx è impostato per ruotare dal giunto, true, o per ruotare dalla punta, false.