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...
SkeletonModification2DTwoBoneIK
Expérimental : This class may be changed or removed in future versions.
Hérite de : SkeletonModification2D < Resource < RefCounted < Object
Une modification qui fait tourner deux os en utilisant la loi des cosinus pour atteindre la cible.
Description
Ce SkeletonModification2D utilise un algorithme généralement appelé TwoBoneIK (litt. Cinématique inverse à deux os). Cet algorithme fonctionne en tirant parti de la loi des cosinus et des longueurs des os pour déterminer quelle rotation les os ont actuellement, et quelle rotation ils doivent avoir pour obtenir un triangle complet, où le premier os, le second os, et la cible forment les trois sommets du triangle. Parce que l'algorithme fonctionne en faisant un triangle, il ne peut fonctionner que sur deux os.
TwoBoneIK est idéal pour les bras, les jambes, et vraiment toutes les liaisons qui peuvent être représentées par seulement deux os qui se plient pour atteindre une cible. Ce solveur est plus léger que SkeletonModification2DFABRIK, mais donne des résultats similaires et naturels.
Propriétés
|
||
|
||
|
||
|
Méthodes
get_joint_one_bone2d_node() const |
|
get_joint_one_bone_idx() const |
|
get_joint_two_bone2d_node() const |
|
get_joint_two_bone_idx() const |
|
void |
set_joint_one_bone2d_node(bone2d_node: NodePath) |
void |
set_joint_one_bone_idx(bone_idx: int) |
void |
set_joint_two_bone2d_node(bone2d_node: NodePath) |
void |
set_joint_two_bone_idx(bone_idx: int) |
Descriptions des propriétés
bool flip_bend_direction = false 🔗
Si true, les os de la modification se plieront vers l'extérieur plutôt que vers l'intérieur lors de la contraction. Si false, les os se plient à l'intérieur lors de la contraction.
float target_maximum_distance = 0.0 🔗
La distance maximale à laquelle la cible peut être. Si la cible est plus loin que cette distance, la modification va se résoudre comme si elle était à cette distance maximale. Lorsque définie à 0, la modification va se résoudre sans contraintes de distance.
float target_minimum_distance = 0.0 🔗
La distance minimale à laquelle la cible peut être. Si la cible est plus proche que cette distance, la modification va se résoudre comme si elle était à cette distance minimale. Lorsque définie à 0, la modification va se résoudre sans contraintes de distance.
NodePath target_nodepath = NodePath("") 🔗
Le NodePath vers le nœud qui est la cible pour la modification TwoBoneIK. Ce nœud est ce que la modification utilisera lors de la flexion des nœuds Bone2D.
Descriptions des méthodes
NodePath get_joint_one_bone2d_node() const 🔗
Renvoie le nœud Bone2D qui est utilisé comme premier os dans la modification TwoBoneIK.
int get_joint_one_bone_idx() const 🔗
Renvoie l'index du nœud Bone2D qui est utilisé comme premier os dans la modification TwoBoneIK.
NodePath get_joint_two_bone2d_node() const 🔗
Renvoie le nœud Bone2D qui est utilisé comme second os dans la modification TwoBoneIK.
int get_joint_two_bone_idx() const 🔗
Renvoie l'index du nœud Bone2D qui est utilisé comme second os dans la modification TwoBoneIK.
void set_joint_one_bone2d_node(bone2d_node: NodePath) 🔗
Définit le nœud Bone2D qui est utilisé comme premier os dans la modification TwoBoneIK.
void set_joint_one_bone_idx(bone_idx: int) 🔗
Définit l'index du nœud Bone2D qui est utilisé comme premier os dans la modification TwoBoneIK.
void set_joint_two_bone2d_node(bone2d_node: NodePath) 🔗
Définit le nœud Bone2D qui est utilisé comme second os dans la modification TwoBoneIK.
void set_joint_two_bone_idx(bone_idx: int) 🔗
Définit le nœud Bone2D qui est utilisé comme second os dans la modification TwoBoneIK.