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.

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

bool

flip_bend_direction

false

float

target_maximum_distance

0.0

float

target_minimum_distance

0.0

NodePath

target_nodepath

NodePath("")

Méthodes

NodePath

get_joint_one_bone2d_node() const

int

get_joint_one_bone_idx() const

NodePath

get_joint_two_bone2d_node() const

int

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 🔗

  • void set_flip_bend_direction(value: bool)

  • bool get_flip_bend_direction()

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 🔗

  • void set_target_maximum_distance(value: float)

  • float get_target_maximum_distance()

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 🔗

  • void set_target_minimum_distance(value: float)

  • float get_target_minimum_distance()

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.