Files
godot-docs-l10n/classes/ru/class_skeletonmodification2dccdik.rst

321 lines
22 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

:github_url: hide
.. _class_SkeletonModification2DCCDIK:
SkeletonModification2DCCDIK
===========================
**Экспериментальное:** This class may be changed or removed in future versions.
**Наследует:** :ref:`SkeletonModification2D<class_SkeletonModification2D>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
Модификация, использующая CCDIK для манипулирования серией костей с целью достижения цели в 2D.
.. rst-class:: classref-introduction-group
Описание
----------------
Этот :ref:`SkeletonModification2D<class_SkeletonModification2D>` использует алгоритм, называемый Обратная кинематика циклического спуска по координатам (CCDIK), для управления цепочкой костей в :ref:`Skeleton2D<class_Skeleton2D>` так, чтобы она достигла определенной цели.
CCDIK работает, вращая набор костей, обычно называемый «цепочкой костей», вокруг одной оси. Каждая кость поворачивается так, чтобы быть обращенной к цели с кончика (по умолчанию), что позволяет ей вращаться правильно, достигая цели, через цепочку костей. Поскольку кости вращаются только вокруг одной оси, CCDIK *может* выглядеть более роботизированным, чем другие решатели IK.
\ **Примечание:** Модификатор CCDIK имеет ``ccdik_joints``, которые являются объектами данных, которые содержат данные для каждого сустава в цепочке CCDIK. Это отличается от кости! Суставы CCDIK содержат данные, необходимые для каждой кости в цепочке костей, используемой CCDIK.
CCDIK также полностью поддерживает угловые ограничения, что позволяет лучше контролировать выполнение решения.
.. rst-class:: classref-reftable-group
Свойства
----------------
.. table::
:widths: auto
+---------------------------------+----------------------------------------------------------------------------------------------------+------------------+
| :ref:`int<class_int>` | :ref:`ccdik_data_chain_length<class_SkeletonModification2DCCDIK_property_ccdik_data_chain_length>` | ``0`` |
+---------------------------------+----------------------------------------------------------------------------------------------------+------------------+
| :ref:`NodePath<class_NodePath>` | :ref:`target_nodepath<class_SkeletonModification2DCCDIK_property_target_nodepath>` | ``NodePath("")`` |
+---------------------------------+----------------------------------------------------------------------------------------------------+------------------+
| :ref:`NodePath<class_NodePath>` | :ref:`tip_nodepath<class_SkeletonModification2DCCDIK_property_tip_nodepath>` | ``NodePath("")`` |
+---------------------------------+----------------------------------------------------------------------------------------------------+------------------+
.. rst-class:: classref-reftable-group
Методы
------------
.. table::
:widths: auto
+---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`NodePath<class_NodePath>` | :ref:`get_ccdik_joint_bone2d_node<class_SkeletonModification2DCCDIK_method_get_ccdik_joint_bone2d_node>`\ (\ joint_idx\: :ref:`int<class_int>`\ ) |const| |
+---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_ccdik_joint_bone_index<class_SkeletonModification2DCCDIK_method_get_ccdik_joint_bone_index>`\ (\ joint_idx\: :ref:`int<class_int>`\ ) |const| |
+---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`get_ccdik_joint_constraint_angle_invert<class_SkeletonModification2DCCDIK_method_get_ccdik_joint_constraint_angle_invert>`\ (\ joint_idx\: :ref:`int<class_int>`\ ) |const| |
+---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_ccdik_joint_constraint_angle_max<class_SkeletonModification2DCCDIK_method_get_ccdik_joint_constraint_angle_max>`\ (\ joint_idx\: :ref:`int<class_int>`\ ) |const| |
+---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_ccdik_joint_constraint_angle_min<class_SkeletonModification2DCCDIK_method_get_ccdik_joint_constraint_angle_min>`\ (\ joint_idx\: :ref:`int<class_int>`\ ) |const| |
+---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`get_ccdik_joint_enable_constraint<class_SkeletonModification2DCCDIK_method_get_ccdik_joint_enable_constraint>`\ (\ joint_idx\: :ref:`int<class_int>`\ ) |const| |
+---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`get_ccdik_joint_rotate_from_joint<class_SkeletonModification2DCCDIK_method_get_ccdik_joint_rotate_from_joint>`\ (\ joint_idx\: :ref:`int<class_int>`\ ) |const| |
+---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_ccdik_joint_bone2d_node<class_SkeletonModification2DCCDIK_method_set_ccdik_joint_bone2d_node>`\ (\ joint_idx\: :ref:`int<class_int>`, bone2d_nodepath\: :ref:`NodePath<class_NodePath>`\ ) |
+---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_ccdik_joint_bone_index<class_SkeletonModification2DCCDIK_method_set_ccdik_joint_bone_index>`\ (\ joint_idx\: :ref:`int<class_int>`, bone_idx\: :ref:`int<class_int>`\ ) |
+---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_ccdik_joint_constraint_angle_invert<class_SkeletonModification2DCCDIK_method_set_ccdik_joint_constraint_angle_invert>`\ (\ joint_idx\: :ref:`int<class_int>`, invert\: :ref:`bool<class_bool>`\ ) |
+---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_ccdik_joint_constraint_angle_max<class_SkeletonModification2DCCDIK_method_set_ccdik_joint_constraint_angle_max>`\ (\ joint_idx\: :ref:`int<class_int>`, angle_max\: :ref:`float<class_float>`\ ) |
+---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_ccdik_joint_constraint_angle_min<class_SkeletonModification2DCCDIK_method_set_ccdik_joint_constraint_angle_min>`\ (\ joint_idx\: :ref:`int<class_int>`, angle_min\: :ref:`float<class_float>`\ ) |
+---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_ccdik_joint_enable_constraint<class_SkeletonModification2DCCDIK_method_set_ccdik_joint_enable_constraint>`\ (\ joint_idx\: :ref:`int<class_int>`, enable_constraint\: :ref:`bool<class_bool>`\ ) |
+---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_ccdik_joint_rotate_from_joint<class_SkeletonModification2DCCDIK_method_set_ccdik_joint_rotate_from_joint>`\ (\ joint_idx\: :ref:`int<class_int>`, rotate_from_joint\: :ref:`bool<class_bool>`\ ) |
+---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описания свойств
--------------------------------
.. _class_SkeletonModification2DCCDIK_property_ccdik_data_chain_length:
.. rst-class:: classref-property
:ref:`int<class_int>` **ccdik_data_chain_length** = ``0`` :ref:`🔗<class_SkeletonModification2DCCDIK_property_ccdik_data_chain_length>`
.. rst-class:: classref-property-setget
- |void| **set_ccdik_data_chain_length**\ (\ value\: :ref:`int<class_int>`\ )
- :ref:`int<class_int>` **get_ccdik_data_chain_length**\ (\ )
Количество соединений CCDIK в модификации CCDIK.
.. rst-class:: classref-item-separator
----
.. _class_SkeletonModification2DCCDIK_property_target_nodepath:
.. rst-class:: classref-property
:ref:`NodePath<class_NodePath>` **target_nodepath** = ``NodePath("")`` :ref:`🔗<class_SkeletonModification2DCCDIK_property_target_nodepath>`
.. rst-class:: classref-property-setget
- |void| **set_target_node**\ (\ value\: :ref:`NodePath<class_NodePath>`\ )
- :ref:`NodePath<class_NodePath>` **get_target_node**\ (\ )
NodePath к узлу, который является целью модификации CCDIK. Это узел, к которому цепь CCDIK попытается повернуть цепочку костей.
.. rst-class:: classref-item-separator
----
.. _class_SkeletonModification2DCCDIK_property_tip_nodepath:
.. rst-class:: classref-property
:ref:`NodePath<class_NodePath>` **tip_nodepath** = ``NodePath("")`` :ref:`🔗<class_SkeletonModification2DCCDIK_property_tip_nodepath>`
.. rst-class:: classref-property-setget
- |void| **set_tip_node**\ (\ value\: :ref:`NodePath<class_NodePath>`\ )
- :ref:`NodePath<class_NodePath>` **get_tip_node**\ (\ )
Конечная позиция цепочки CCDIK. Обычно это должен быть дочерний узел :ref:`Bone2D<class_Bone2D>`, прикрепленный к конечному :ref:`Bone2D<class_Bone2D>` в цепочке CCDIK.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описания метода
------------------------------
.. _class_SkeletonModification2DCCDIK_method_get_ccdik_joint_bone2d_node:
.. rst-class:: classref-method
:ref:`NodePath<class_NodePath>` **get_ccdik_joint_bone2d_node**\ (\ joint_idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SkeletonModification2DCCDIK_method_get_ccdik_joint_bone2d_node>`
Возвращает узел :ref:`Bone2D<class_Bone2D>`, назначенный суставу CCDIK в ``joint_idx``.
.. rst-class:: classref-item-separator
----
.. _class_SkeletonModification2DCCDIK_method_get_ccdik_joint_bone_index:
.. rst-class:: classref-method
:ref:`int<class_int>` **get_ccdik_joint_bone_index**\ (\ joint_idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SkeletonModification2DCCDIK_method_get_ccdik_joint_bone_index>`
Возвращает индекс узла :ref:`Bone2D<class_Bone2D>`, назначенного суставу CCDIK в ``joint_idx``.
.. rst-class:: classref-item-separator
----
.. _class_SkeletonModification2DCCDIK_method_get_ccdik_joint_constraint_angle_invert:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **get_ccdik_joint_constraint_angle_invert**\ (\ joint_idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SkeletonModification2DCCDIK_method_get_ccdik_joint_constraint_angle_invert>`
Возвращает, использует ли соединение CCDIK в ``joint_idx`` инвертированное ограничение соединения. Подробности см. в :ref:`set_ccdik_joint_constraint_angle_invert()<class_SkeletonModification2DCCDIK_method_set_ccdik_joint_constraint_angle_invert>`.
.. rst-class:: classref-item-separator
----
.. _class_SkeletonModification2DCCDIK_method_get_ccdik_joint_constraint_angle_max:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_ccdik_joint_constraint_angle_max**\ (\ joint_idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SkeletonModification2DCCDIK_method_get_ccdik_joint_constraint_angle_max>`
Возвращает максимальное ограничение угла для сочленения в ``joint_idx``.
.. rst-class:: classref-item-separator
----
.. _class_SkeletonModification2DCCDIK_method_get_ccdik_joint_constraint_angle_min:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_ccdik_joint_constraint_angle_min**\ (\ joint_idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SkeletonModification2DCCDIK_method_get_ccdik_joint_constraint_angle_min>`
Возвращает минимальное ограничение угла для сочленения в ``joint_idx``.
.. rst-class:: classref-item-separator
----
.. _class_SkeletonModification2DCCDIK_method_get_ccdik_joint_enable_constraint:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **get_ccdik_joint_enable_constraint**\ (\ joint_idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SkeletonModification2DCCDIK_method_get_ccdik_joint_enable_constraint>`
Возвращает информацию о том, включены ли ограничения угла для соединения CCDIK в ``joint_idx``.
.. rst-class:: classref-item-separator
----
.. _class_SkeletonModification2DCCDIK_method_get_ccdik_joint_rotate_from_joint:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **get_ccdik_joint_rotate_from_joint**\ (\ joint_idx\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SkeletonModification2DCCDIK_method_get_ccdik_joint_rotate_from_joint>`
Возвращает, установлено ли соединение в ``joint_idx`` для вращения от сочленения, ``true``, или для вращения от кончика, ``false``. По умолчанию вращение происходит от кончика.
.. rst-class:: classref-item-separator
----
.. _class_SkeletonModification2DCCDIK_method_set_ccdik_joint_bone2d_node:
.. rst-class:: classref-method
|void| **set_ccdik_joint_bone2d_node**\ (\ joint_idx\: :ref:`int<class_int>`, bone2d_nodepath\: :ref:`NodePath<class_NodePath>`\ ) :ref:`🔗<class_SkeletonModification2DCCDIK_method_set_ccdik_joint_bone2d_node>`
Устанавливает узел :ref:`Bone2D<class_Bone2D>`, назначенный суставу CCDIK в ``joint_idx``.
.. rst-class:: classref-item-separator
----
.. _class_SkeletonModification2DCCDIK_method_set_ccdik_joint_bone_index:
.. rst-class:: classref-method
|void| **set_ccdik_joint_bone_index**\ (\ joint_idx\: :ref:`int<class_int>`, bone_idx\: :ref:`int<class_int>`\ ) :ref:`🔗<class_SkeletonModification2DCCDIK_method_set_ccdik_joint_bone_index>`
Устанавливает индекс кости ``bone_idx`` сустава CCDIK в ``joint_idx``. Когда это возможно, это также обновит ``bone2d_node`` сустава CCDIK на основе данных, предоставленных связанным скелетом.
.. rst-class:: classref-item-separator
----
.. _class_SkeletonModification2DCCDIK_method_set_ccdik_joint_constraint_angle_invert:
.. rst-class:: classref-method
|void| **set_ccdik_joint_constraint_angle_invert**\ (\ joint_idx\: :ref:`int<class_int>`, invert\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_SkeletonModification2DCCDIK_method_set_ccdik_joint_constraint_angle_invert>`
Устанавливает, использует ли соединение CCDIK в ``joint_idx`` инвертированное ограничение соединения.
Инвертированное ограничение соединения ограничивает соединение CCDIK только углами *вне* введенных минимальных и максимальных углов. По этой причине оно называется инвертированным ограничением соединения, так как оно ограничивает соединение снаружи введенных значений.
.. rst-class:: classref-item-separator
----
.. _class_SkeletonModification2DCCDIK_method_set_ccdik_joint_constraint_angle_max:
.. rst-class:: classref-method
|void| **set_ccdik_joint_constraint_angle_max**\ (\ joint_idx\: :ref:`int<class_int>`, angle_max\: :ref:`float<class_float>`\ ) :ref:`🔗<class_SkeletonModification2DCCDIK_method_set_ccdik_joint_constraint_angle_max>`
Устанавливает максимальное ограничение угла для сочленения в ``joint_idx``.
.. rst-class:: classref-item-separator
----
.. _class_SkeletonModification2DCCDIK_method_set_ccdik_joint_constraint_angle_min:
.. rst-class:: classref-method
|void| **set_ccdik_joint_constraint_angle_min**\ (\ joint_idx\: :ref:`int<class_int>`, angle_min\: :ref:`float<class_float>`\ ) :ref:`🔗<class_SkeletonModification2DCCDIK_method_set_ccdik_joint_constraint_angle_min>`
Устанавливает минимальное ограничение угла для сочленения в ``joint_idx``.
.. rst-class:: classref-item-separator
----
.. _class_SkeletonModification2DCCDIK_method_set_ccdik_joint_enable_constraint:
.. rst-class:: classref-method
|void| **set_ccdik_joint_enable_constraint**\ (\ joint_idx\: :ref:`int<class_int>`, enable_constraint\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_SkeletonModification2DCCDIK_method_set_ccdik_joint_enable_constraint>`
Определяет, включены ли ограничения угла на сочленении CCDIK в ``joint_idx``. Когда ``true``, ограничения будут включены и учтены при решении.
.. rst-class:: classref-item-separator
----
.. _class_SkeletonModification2DCCDIK_method_set_ccdik_joint_rotate_from_joint:
.. rst-class:: classref-method
|void| **set_ccdik_joint_rotate_from_joint**\ (\ joint_idx\: :ref:`int<class_int>`, rotate_from_joint\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_SkeletonModification2DCCDIK_method_set_ccdik_joint_rotate_from_joint>`
Устанавливает, будет ли сочленение в ``joint_idx`` настроено на вращение от сочленения, ``true``, или на вращение от кончика, ``false``.
.. |virtual| replace:: :abbr:`virtual (Этот метод обычно должен быть переопределен пользователем, чтобы иметь какой-либо эффект.)`
.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
.. |const| replace:: :abbr:`const (Этот метод не имеет побочных эффектов. Он не изменяет ни одну из переменных-членов экземпляра.)`
.. |vararg| replace:: :abbr:`vararg (Этот метод принимает любое количество аргументов после описанных здесь.)`
.. |constructor| replace:: :abbr:`constructor (Этот метод используется для создания типа.)`
.. |static| replace:: :abbr:`static (Этот метод не нуждается в вызове экземпляра, поэтому его можно вызвать напрямую, используя имя класса.)`
.. |operator| replace:: :abbr:`operator (Этот метод описывает допустимый оператор для использования с этим типом в качестве левого операнда.)`
.. |bitfield| replace:: :abbr:`BitField (Это значение является целым числом, составленным как битовая маска следующих флагов.)`
.. |void| replace:: :abbr:`void (Нет возвращаемого значения.)`