:github_url: hide .. _class_SkeletonModification2DTwoBoneIK: SkeletonModification2DTwoBoneIK =============================== **Sperimentale:** This class may be changed or removed in future versions. **Eredita:** :ref:`SkeletonModification2D` **<** :ref:`Resource` **<** :ref:`RefCounted` **<** :ref:`Object` Una modificazione che fa ruotare due ossa attraverso la legge dei coseni per raggiungere l'obiettivo. .. rst-class:: classref-introduction-group Descrizione ---------------------- Questo :ref:`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 :ref:`SkeletonModification2DFABRIK`, ma fornisce risultati simili e dall'aspetto naturale. .. rst-class:: classref-reftable-group Proprietà ------------------ .. table:: :widths: auto +---------------------------------+--------------------------------------------------------------------------------------------------------+------------------+ | :ref:`bool` | :ref:`flip_bend_direction` | ``false`` | +---------------------------------+--------------------------------------------------------------------------------------------------------+------------------+ | :ref:`float` | :ref:`target_maximum_distance` | ``0.0`` | +---------------------------------+--------------------------------------------------------------------------------------------------------+------------------+ | :ref:`float` | :ref:`target_minimum_distance` | ``0.0`` | +---------------------------------+--------------------------------------------------------------------------------------------------------+------------------+ | :ref:`NodePath` | :ref:`target_nodepath` | ``NodePath("")`` | +---------------------------------+--------------------------------------------------------------------------------------------------------+------------------+ .. rst-class:: classref-reftable-group Metodi ------------ .. table:: :widths: auto +---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`NodePath` | :ref:`get_joint_one_bone2d_node`\ (\ ) |const| | +---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_joint_one_bone_idx`\ (\ ) |const| | +---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`NodePath` | :ref:`get_joint_two_bone2d_node`\ (\ ) |const| | +---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_joint_two_bone_idx`\ (\ ) |const| | +---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_joint_one_bone2d_node`\ (\ bone2d_node\: :ref:`NodePath`\ ) | +---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_joint_one_bone_idx`\ (\ bone_idx\: :ref:`int`\ ) | +---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_joint_two_bone2d_node`\ (\ bone2d_node\: :ref:`NodePath`\ ) | +---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_joint_two_bone_idx`\ (\ bone_idx\: :ref:`int`\ ) | +---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Descrizioni delle proprietà ------------------------------------------------------ .. _class_SkeletonModification2DTwoBoneIK_property_flip_bend_direction: .. rst-class:: classref-property :ref:`bool` **flip_bend_direction** = ``false`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_flip_bend_direction**\ (\ value\: :ref:`bool`\ ) - :ref:`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. .. rst-class:: classref-item-separator ---- .. _class_SkeletonModification2DTwoBoneIK_property_target_maximum_distance: .. rst-class:: classref-property :ref:`float` **target_maximum_distance** = ``0.0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_target_maximum_distance**\ (\ value\: :ref:`float`\ ) - :ref:`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. .. rst-class:: classref-item-separator ---- .. _class_SkeletonModification2DTwoBoneIK_property_target_minimum_distance: .. rst-class:: classref-property :ref:`float` **target_minimum_distance** = ``0.0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_target_minimum_distance**\ (\ value\: :ref:`float`\ ) - :ref:`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. .. rst-class:: classref-item-separator ---- .. _class_SkeletonModification2DTwoBoneIK_property_target_nodepath: .. rst-class:: classref-property :ref:`NodePath` **target_nodepath** = ``NodePath("")`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_target_node**\ (\ value\: :ref:`NodePath`\ ) - :ref:`NodePath` **get_target_node**\ (\ ) Il NodePath al nodo che è l'obiettivo per la modificazione TwoBoneIK. Questo nodo è quello che la modificazione userà per piegare i nodi :ref:`Bone2D`. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Descrizioni dei metodi -------------------------------------------- .. _class_SkeletonModification2DTwoBoneIK_method_get_joint_one_bone2d_node: .. rst-class:: classref-method :ref:`NodePath` **get_joint_one_bone2d_node**\ (\ ) |const| :ref:`🔗` Restituisce il nodo :ref:`Bone2D` che viene utilizzato come primo osso nella modificazione TwoBoneIK. .. rst-class:: classref-item-separator ---- .. _class_SkeletonModification2DTwoBoneIK_method_get_joint_one_bone_idx: .. rst-class:: classref-method :ref:`int` **get_joint_one_bone_idx**\ (\ ) |const| :ref:`🔗` Restituisce l'indice del nodo :ref:`Bone2D` che viene utilizzato come primo osso nella modificazione TwoBoneIK. .. rst-class:: classref-item-separator ---- .. _class_SkeletonModification2DTwoBoneIK_method_get_joint_two_bone2d_node: .. rst-class:: classref-method :ref:`NodePath` **get_joint_two_bone2d_node**\ (\ ) |const| :ref:`🔗` Restituisce il nodo :ref:`Bone2D` che viene utilizzato come secondo osso nella modificazione TwoBoneIK. .. rst-class:: classref-item-separator ---- .. _class_SkeletonModification2DTwoBoneIK_method_get_joint_two_bone_idx: .. rst-class:: classref-method :ref:`int` **get_joint_two_bone_idx**\ (\ ) |const| :ref:`🔗` Restituisce l'indice del nodo :ref:`Bone2D` che viene utilizzato come secondo osso nella modificazione TwoBoneIK. .. rst-class:: classref-item-separator ---- .. _class_SkeletonModification2DTwoBoneIK_method_set_joint_one_bone2d_node: .. rst-class:: classref-method |void| **set_joint_one_bone2d_node**\ (\ bone2d_node\: :ref:`NodePath`\ ) :ref:`🔗` Imposta il nodo :ref:`Bone2D` che è utilizzato come primo osso nella modificazione TwoBoneIK. .. rst-class:: classref-item-separator ---- .. _class_SkeletonModification2DTwoBoneIK_method_set_joint_one_bone_idx: .. rst-class:: classref-method |void| **set_joint_one_bone_idx**\ (\ bone_idx\: :ref:`int`\ ) :ref:`🔗` Imposta l'indice del nodo :ref:`Bone2D` che è utilizzato come primo osso nella modificazione TwoBoneIK. .. rst-class:: classref-item-separator ---- .. _class_SkeletonModification2DTwoBoneIK_method_set_joint_two_bone2d_node: .. rst-class:: classref-method |void| **set_joint_two_bone2d_node**\ (\ bone2d_node\: :ref:`NodePath`\ ) :ref:`🔗` Imposta il nodo :ref:`Bone2D` che è utilizzato come secondo osso nella modificazione TwoBoneIK. .. rst-class:: classref-item-separator ---- .. _class_SkeletonModification2DTwoBoneIK_method_set_joint_two_bone_idx: .. rst-class:: classref-method |void| **set_joint_two_bone_idx**\ (\ bone_idx\: :ref:`int`\ ) :ref:`🔗` Imposta l'indice del nodo :ref:`Bone2D` che è utilizzato come secondo osso nella modificazione TwoBoneIK. .. |virtual| replace:: :abbr:`virtual (Questo metodo dovrebbe solitamente essere sovrascritto dall'utente per aver un effetto.)` .. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)` .. |const| replace:: :abbr:`const (Questo metodo non ha effetti collaterali. Non modifica alcuna variabile appartenente all'istanza.)` .. |vararg| replace:: :abbr:`vararg (Questo metodo accetta qualsiasi numero di argomenti oltre a quelli descritti qui.)` .. |constructor| replace:: :abbr:`constructor (Questo metodo è utilizzato per creare un tipo.)` .. |static| replace:: :abbr:`static (Questo metodo non necessita di alcun'istanza per essere chiamato, quindi può essere chiamato direttamente usando il nome della classe.)` .. |operator| replace:: :abbr:`operator (Questo metodo descrive un operatore valido da usare con questo tipo come operando di sinistra.)` .. |bitfield| replace:: :abbr:`BitField (Questo valore è un intero composto da una maschera di bit dei seguenti flag.)` .. |void| replace:: :abbr:`void (Nessun valore restituito.)`