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

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

Eredita: SkeletonModification2D < Resource < RefCounted < Object

Una modificazione che fa ruotare due ossa attraverso la legge dei coseni per raggiungere l'obiettivo.

Descrizione

Questo SkeletonModification2D usa un algoritmo denominato in genere TwoBoneIK. Questo algoritmo funziona sfruttando la legge dei coseni e le lunghezze delle ossa per capire quale rotazione hanno attualmente le ossa e quale rotazione devono avere per creare un triangolo completo, dove il primo osso, il secondo osso e l'obiettivo formano i tre vertici del triangolo. Poiché l'algoritmo funziona creando un triangolo, può operare solo su due ossa.

TwoBoneIK è ottimo per braccia, gambe e in realtà qualsiasi articolazione che può essere rappresentata da due sole ossa che si piegano per raggiungere un obiettivo. Questo risolutore è più leggero di SkeletonModification2DFABRIK, ma fornisce risultati simili e dall'aspetto naturale.

Proprietà

bool

flip_bend_direction

false

float

target_maximum_distance

0.0

float

target_minimum_distance

0.0

NodePath

target_nodepath

NodePath("")

Metodi

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)


Descrizioni delle proprietà

bool flip_bend_direction = false 🔗

  • void set_flip_bend_direction(value: bool)

  • bool get_flip_bend_direction()

Se true, le ossa nella modificazione si piegheranno verso l'esterno anziché verso l'interno quando si contraggono. Se false, le ossa si piegheranno verso l'interno quando si contraggono.


float target_maximum_distance = 0.0 🔗

  • void set_target_maximum_distance(value: float)

  • float get_target_maximum_distance()

La distanza massima a cui può trovarsi l'obiettivo. Se l'obiettivo è più lontano di questa distanza, la modificazione sarà risolta come se si trovasse a questa distanza massima. Se impostato su 0, la modificazione sarà risolta senza vincoli di distanza.


float target_minimum_distance = 0.0 🔗

  • void set_target_minimum_distance(value: float)

  • float get_target_minimum_distance()

La distanza minima a cui può trovarsi l'obiettivo. Se l'obiettivo è più vicino di questa distanza, la modificazione sarà risolta come se si trovasse a questa distanza minima. Se impostato su 0, la modificazione sarà risolta senza vincoli di distanza.


NodePath target_nodepath = NodePath("") 🔗

Il NodePath al nodo che è l'obiettivo per la modificazione TwoBoneIK. Questo nodo è quello che la modificazione userà per piegare i nodi Bone2D.


Descrizioni dei metodi

NodePath get_joint_one_bone2d_node() const 🔗

Restituisce il nodo Bone2D che viene utilizzato come primo osso nella modificazione TwoBoneIK.


int get_joint_one_bone_idx() const 🔗

Restituisce l'indice del nodo Bone2D che viene utilizzato come primo osso nella modificazione TwoBoneIK.


NodePath get_joint_two_bone2d_node() const 🔗

Restituisce il nodo Bone2D che viene utilizzato come secondo osso nella modificazione TwoBoneIK.


int get_joint_two_bone_idx() const 🔗

Restituisce l'indice del nodo Bone2D che viene utilizzato come secondo osso nella modificazione TwoBoneIK.


void set_joint_one_bone2d_node(bone2d_node: NodePath) 🔗

Imposta il nodo Bone2D che è utilizzato come primo osso nella modificazione TwoBoneIK.


void set_joint_one_bone_idx(bone_idx: int) 🔗

Imposta l'indice del nodo Bone2D che è utilizzato come primo osso nella modificazione TwoBoneIK.


void set_joint_two_bone2d_node(bone2d_node: NodePath) 🔗

Imposta il nodo Bone2D che è utilizzato come secondo osso nella modificazione TwoBoneIK.


void set_joint_two_bone_idx(bone_idx: int) 🔗

Imposta l'indice del nodo Bone2D che è utilizzato come secondo osso nella modificazione TwoBoneIK.