Files
godot-docs-l10n/classes/ru/class_skeletonmodifier3d.rst
Rémi Verschelde c3f2364c10 Sync classref with 4.6 branch
Lots of translations invalidated (fuzzied) as we just synced Weblate.
2025-12-19 16:39:51 +01:00

461 lines
20 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_SkeletonModifier3D:
SkeletonModifier3D
==================
**Наследует:** :ref:`Node3D<class_Node3D>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
**Наследуется от:** :ref:`BoneConstraint3D<class_BoneConstraint3D>`, :ref:`BoneTwistDisperser3D<class_BoneTwistDisperser3D>`, :ref:`IKModifier3D<class_IKModifier3D>`, :ref:`LimitAngularVelocityModifier3D<class_LimitAngularVelocityModifier3D>`, :ref:`LookAtModifier3D<class_LookAtModifier3D>`, :ref:`ModifierBoneTarget3D<class_ModifierBoneTarget3D>`, :ref:`PhysicalBoneSimulator3D<class_PhysicalBoneSimulator3D>`, :ref:`RetargetModifier3D<class_RetargetModifier3D>`, :ref:`SkeletonIK3D<class_SkeletonIK3D>`, :ref:`SpringBoneSimulator3D<class_SpringBoneSimulator3D>`, :ref:`XRBodyModifier3D<class_XRBodyModifier3D>`, :ref:`XRHandModifier3D<class_XRHandModifier3D>`
Узел, который может модифицировать кости Skeleton3D.
.. rst-class:: classref-introduction-group
Описание
----------------
**SkeletonModifier3D** извлекает целевой :ref:`Skeleton3D<class_Skeleton3D>`, имея родителя :ref:`Skeleton3D<class_Skeleton3D>`.
Если есть :ref:`AnimationMixer<class_AnimationMixer>`, модификация всегда выполняется после процесса воспроизведения :ref:`AnimationMixer<class_AnimationMixer>`.
Этот узел следует использовать для реализации пользовательских решателей IK, ограничений или физики скелета.
.. rst-class:: classref-introduction-group
Обучающие материалы
--------------------------------------
- `Проектирование скелетного модификатора 3D <https://godotengine.org/article/design-of-the-skeleton-modifier-3d/>`__
.. rst-class:: classref-reftable-group
Свойства
----------------
.. table::
:widths: auto
+---------------------------+---------------------------------------------------------------+----------+
| :ref:`bool<class_bool>` | :ref:`active<class_SkeletonModifier3D_property_active>` | ``true`` |
+---------------------------+---------------------------------------------------------------+----------+
| :ref:`float<class_float>` | :ref:`influence<class_SkeletonModifier3D_property_influence>` | ``1.0`` |
+---------------------------+---------------------------------------------------------------+----------+
.. rst-class:: classref-reftable-group
Методы
------------
.. table::
:widths: auto
+-------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_process_modification<class_SkeletonModifier3D_private_method__process_modification>`\ (\ ) |virtual| |
+-------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_process_modification_with_delta<class_SkeletonModifier3D_private_method__process_modification_with_delta>`\ (\ delta\: :ref:`float<class_float>`\ ) |virtual| |
+-------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_skeleton_changed<class_SkeletonModifier3D_private_method__skeleton_changed>`\ (\ old_skeleton\: :ref:`Skeleton3D<class_Skeleton3D>`, new_skeleton\: :ref:`Skeleton3D<class_Skeleton3D>`\ ) |virtual| |
+-------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`_validate_bone_names<class_SkeletonModifier3D_private_method__validate_bone_names>`\ (\ ) |virtual| |
+-------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Skeleton3D<class_Skeleton3D>` | :ref:`get_skeleton<class_SkeletonModifier3D_method_get_skeleton>`\ (\ ) |const| |
+-------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Сигналы
--------------
.. _class_SkeletonModifier3D_signal_modification_processed:
.. rst-class:: classref-signal
**modification_processed**\ (\ ) :ref:`🔗<class_SkeletonModifier3D_signal_modification_processed>`
Уведомляет о завершении модификации.
\ **Примечание:** Если вы хотите получить измененную позу кости модификатором, вы должны использовать :ref:`Skeleton3D.get_bone_pose()<class_Skeleton3D_method_get_bone_pose>` или :ref:`Skeleton3D.get_bone_global_pose()<class_Skeleton3D_method_get_bone_global_pose>` в момент срабатывания этого сигнала.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Перечисления
------------------------
.. _enum_SkeletonModifier3D_BoneAxis:
.. rst-class:: classref-enumeration
enum **BoneAxis**: :ref:`🔗<enum_SkeletonModifier3D_BoneAxis>`
.. _class_SkeletonModifier3D_constant_BONE_AXIS_PLUS_X:
.. rst-class:: classref-enumeration-constant
:ref:`BoneAxis<enum_SkeletonModifier3D_BoneAxis>` **BONE_AXIS_PLUS_X** = ``0``
Перечисленное значение для оси +X.
.. _class_SkeletonModifier3D_constant_BONE_AXIS_MINUS_X:
.. rst-class:: classref-enumeration-constant
:ref:`BoneAxis<enum_SkeletonModifier3D_BoneAxis>` **BONE_AXIS_MINUS_X** = ``1``
Перечисленное значение для оси -X.
.. _class_SkeletonModifier3D_constant_BONE_AXIS_PLUS_Y:
.. rst-class:: classref-enumeration-constant
:ref:`BoneAxis<enum_SkeletonModifier3D_BoneAxis>` **BONE_AXIS_PLUS_Y** = ``2``
Перечисленное значение для оси +Y.
.. _class_SkeletonModifier3D_constant_BONE_AXIS_MINUS_Y:
.. rst-class:: classref-enumeration-constant
:ref:`BoneAxis<enum_SkeletonModifier3D_BoneAxis>` **BONE_AXIS_MINUS_Y** = ``3``
Перечисленное значение для оси -Y.
.. _class_SkeletonModifier3D_constant_BONE_AXIS_PLUS_Z:
.. rst-class:: classref-enumeration-constant
:ref:`BoneAxis<enum_SkeletonModifier3D_BoneAxis>` **BONE_AXIS_PLUS_Z** = ``4``
Перечисленное значение для оси +Z.
.. _class_SkeletonModifier3D_constant_BONE_AXIS_MINUS_Z:
.. rst-class:: classref-enumeration-constant
:ref:`BoneAxis<enum_SkeletonModifier3D_BoneAxis>` **BONE_AXIS_MINUS_Z** = ``5``
Перечисленное значение для оси -Z.
.. rst-class:: classref-item-separator
----
.. _enum_SkeletonModifier3D_BoneDirection:
.. rst-class:: classref-enumeration
enum **BoneDirection**: :ref:`🔗<enum_SkeletonModifier3D_BoneDirection>`
.. _class_SkeletonModifier3D_constant_BONE_DIRECTION_PLUS_X:
.. rst-class:: classref-enumeration-constant
:ref:`BoneDirection<enum_SkeletonModifier3D_BoneDirection>` **BONE_DIRECTION_PLUS_X** = ``0``
Перечисленное значение для оси +X.
.. _class_SkeletonModifier3D_constant_BONE_DIRECTION_MINUS_X:
.. rst-class:: classref-enumeration-constant
:ref:`BoneDirection<enum_SkeletonModifier3D_BoneDirection>` **BONE_DIRECTION_MINUS_X** = ``1``
Перечисленное значение для оси -X.
.. _class_SkeletonModifier3D_constant_BONE_DIRECTION_PLUS_Y:
.. rst-class:: classref-enumeration-constant
:ref:`BoneDirection<enum_SkeletonModifier3D_BoneDirection>` **BONE_DIRECTION_PLUS_Y** = ``2``
Перечисленное значение для оси +Y.
.. _class_SkeletonModifier3D_constant_BONE_DIRECTION_MINUS_Y:
.. rst-class:: classref-enumeration-constant
:ref:`BoneDirection<enum_SkeletonModifier3D_BoneDirection>` **BONE_DIRECTION_MINUS_Y** = ``3``
Перечисленное значение для оси -Y.
.. _class_SkeletonModifier3D_constant_BONE_DIRECTION_PLUS_Z:
.. rst-class:: classref-enumeration-constant
:ref:`BoneDirection<enum_SkeletonModifier3D_BoneDirection>` **BONE_DIRECTION_PLUS_Z** = ``4``
Перечисленное значение для оси +Z.
.. _class_SkeletonModifier3D_constant_BONE_DIRECTION_MINUS_Z:
.. rst-class:: classref-enumeration-constant
:ref:`BoneDirection<enum_SkeletonModifier3D_BoneDirection>` **BONE_DIRECTION_MINUS_Z** = ``5``
Перечисленное значение для оси -Z.
.. _class_SkeletonModifier3D_constant_BONE_DIRECTION_FROM_PARENT:
.. rst-class:: classref-enumeration-constant
:ref:`BoneDirection<enum_SkeletonModifier3D_BoneDirection>` **BONE_DIRECTION_FROM_PARENT** = ``6``
Перечисленное значение для оси от родительской кости до дочерней кости.
.. rst-class:: classref-item-separator
----
.. _enum_SkeletonModifier3D_SecondaryDirection:
.. rst-class:: classref-enumeration
enum **SecondaryDirection**: :ref:`🔗<enum_SkeletonModifier3D_SecondaryDirection>`
.. _class_SkeletonModifier3D_constant_SECONDARY_DIRECTION_NONE:
.. rst-class:: classref-enumeration-constant
:ref:`SecondaryDirection<enum_SkeletonModifier3D_SecondaryDirection>` **SECONDARY_DIRECTION_NONE** = ``0``
Enumerated value for the case when the axis is undefined.
.. _class_SkeletonModifier3D_constant_SECONDARY_DIRECTION_PLUS_X:
.. rst-class:: classref-enumeration-constant
:ref:`SecondaryDirection<enum_SkeletonModifier3D_SecondaryDirection>` **SECONDARY_DIRECTION_PLUS_X** = ``1``
Перечисленное значение для оси +X.
.. _class_SkeletonModifier3D_constant_SECONDARY_DIRECTION_MINUS_X:
.. rst-class:: classref-enumeration-constant
:ref:`SecondaryDirection<enum_SkeletonModifier3D_SecondaryDirection>` **SECONDARY_DIRECTION_MINUS_X** = ``2``
Перечисленное значение для оси -X.
.. _class_SkeletonModifier3D_constant_SECONDARY_DIRECTION_PLUS_Y:
.. rst-class:: classref-enumeration-constant
:ref:`SecondaryDirection<enum_SkeletonModifier3D_SecondaryDirection>` **SECONDARY_DIRECTION_PLUS_Y** = ``3``
Перечисленное значение для оси +Y.
.. _class_SkeletonModifier3D_constant_SECONDARY_DIRECTION_MINUS_Y:
.. rst-class:: classref-enumeration-constant
:ref:`SecondaryDirection<enum_SkeletonModifier3D_SecondaryDirection>` **SECONDARY_DIRECTION_MINUS_Y** = ``4``
Перечисленное значение для оси -Y.
.. _class_SkeletonModifier3D_constant_SECONDARY_DIRECTION_PLUS_Z:
.. rst-class:: classref-enumeration-constant
:ref:`SecondaryDirection<enum_SkeletonModifier3D_SecondaryDirection>` **SECONDARY_DIRECTION_PLUS_Z** = ``5``
Перечисленное значение для оси +Z.
.. _class_SkeletonModifier3D_constant_SECONDARY_DIRECTION_MINUS_Z:
.. rst-class:: classref-enumeration-constant
:ref:`SecondaryDirection<enum_SkeletonModifier3D_SecondaryDirection>` **SECONDARY_DIRECTION_MINUS_Z** = ``6``
Перечисленное значение для оси -Z.
.. _class_SkeletonModifier3D_constant_SECONDARY_DIRECTION_CUSTOM:
.. rst-class:: classref-enumeration-constant
:ref:`SecondaryDirection<enum_SkeletonModifier3D_SecondaryDirection>` **SECONDARY_DIRECTION_CUSTOM** = ``7``
Enumerated value for an optional axis.
.. rst-class:: classref-item-separator
----
.. _enum_SkeletonModifier3D_RotationAxis:
.. rst-class:: classref-enumeration
enum **RotationAxis**: :ref:`🔗<enum_SkeletonModifier3D_RotationAxis>`
.. _class_SkeletonModifier3D_constant_ROTATION_AXIS_X:
.. rst-class:: classref-enumeration-constant
:ref:`RotationAxis<enum_SkeletonModifier3D_RotationAxis>` **ROTATION_AXIS_X** = ``0``
Перечисленное значение для вращения оси X.
.. _class_SkeletonModifier3D_constant_ROTATION_AXIS_Y:
.. rst-class:: classref-enumeration-constant
:ref:`RotationAxis<enum_SkeletonModifier3D_RotationAxis>` **ROTATION_AXIS_Y** = ``1``
Перечисленное значение для вращения оси Y.
.. _class_SkeletonModifier3D_constant_ROTATION_AXIS_Z:
.. rst-class:: classref-enumeration-constant
:ref:`RotationAxis<enum_SkeletonModifier3D_RotationAxis>` **ROTATION_AXIS_Z** = ``2``
Перечисленное значение для вращения оси Z.
.. _class_SkeletonModifier3D_constant_ROTATION_AXIS_ALL:
.. rst-class:: classref-enumeration-constant
:ref:`RotationAxis<enum_SkeletonModifier3D_RotationAxis>` **ROTATION_AXIS_ALL** = ``3``
Перечисленное значение для неограниченного вращения.
.. _class_SkeletonModifier3D_constant_ROTATION_AXIS_CUSTOM:
.. rst-class:: classref-enumeration-constant
:ref:`RotationAxis<enum_SkeletonModifier3D_RotationAxis>` **ROTATION_AXIS_CUSTOM** = ``4``
Enumerated value for an optional rotation axis.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описания свойств
--------------------------------
.. _class_SkeletonModifier3D_property_active:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **active** = ``true`` :ref:`🔗<class_SkeletonModifier3D_property_active>`
.. rst-class:: classref-property-setget
- |void| **set_active**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **is_active**\ (\ )
Если ``true``, то **SkeletonModifier3D** будет обработан.
.. rst-class:: classref-item-separator
----
.. _class_SkeletonModifier3D_property_influence:
.. rst-class:: classref-property
:ref:`float<class_float>` **influence** = ``1.0`` :ref:`🔗<class_SkeletonModifier3D_property_influence>`
.. rst-class:: classref-property-setget
- |void| **set_influence**\ (\ value\: :ref:`float<class_float>`\ )
- :ref:`float<class_float>` **get_influence**\ (\ )
Устанавливает влияние модификации.
\ **Примечание:** Это значение используется :ref:`Skeleton3D<class_Skeleton3D>` для смешивания, поэтому **SkeletonModifier3D** всегда должен применять только 100% результата без интерполяции.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описания метода
------------------------------
.. _class_SkeletonModifier3D_private_method__process_modification:
.. rst-class:: classref-method
|void| **_process_modification**\ (\ ) |virtual| :ref:`🔗<class_SkeletonModifier3D_private_method__process_modification>`
**Устарело:** Use :ref:`_process_modification_with_delta()<class_SkeletonModifier3D_private_method__process_modification_with_delta>` instead.
Переопределите этот виртуальный метод, чтобы реализовать пользовательский модификатор скелета. Вам следует сделать что-то вроде получения текущей позы :ref:`Skeleton3D<class_Skeleton3D>` и применить позу здесь.
\ :ref:`_process_modification()<class_SkeletonModifier3D_private_method__process_modification>` не должен применять :ref:`influence<class_SkeletonModifier3D_property_influence>` к позам костей, поскольку :ref:`Skeleton3D<class_Skeleton3D>` автоматически применяет влияние ко всем позам костей, заданным модификатором.
.. rst-class:: classref-item-separator
----
.. _class_SkeletonModifier3D_private_method__process_modification_with_delta:
.. rst-class:: classref-method
|void| **_process_modification_with_delta**\ (\ delta\: :ref:`float<class_float>`\ ) |virtual| :ref:`🔗<class_SkeletonModifier3D_private_method__process_modification_with_delta>`
Переопределите этот виртуальный метод для реализации пользовательского модификатора скелета. Вам следует сделать что-то вроде получения текущей позы :ref:`Skeleton3D<class_Skeleton3D>` и применить позу здесь.
\ :ref:`_process_modification_with_delta()<class_SkeletonModifier3D_private_method__process_modification_with_delta>` не должен применять :ref:`influence<class_SkeletonModifier3D_property_influence>` к позам костей, поскольку :ref:`Skeleton3D<class_Skeleton3D>` автоматически применяет влияние ко всем позам костей, заданным модификатором.
\ ``delta`` передается из родительского :ref:`Skeleton3D<class_Skeleton3D>`. См. также :ref:`Skeleton3D.advance()<class_Skeleton3D_method_advance>`.
.. rst-class:: classref-item-separator
----
.. _class_SkeletonModifier3D_private_method__skeleton_changed:
.. rst-class:: classref-method
|void| **_skeleton_changed**\ (\ old_skeleton\: :ref:`Skeleton3D<class_Skeleton3D>`, new_skeleton\: :ref:`Skeleton3D<class_Skeleton3D>`\ ) |virtual| :ref:`🔗<class_SkeletonModifier3D_private_method__skeleton_changed>`
Вызывается при изменении скелета.
.. rst-class:: classref-item-separator
----
.. _class_SkeletonModifier3D_private_method__validate_bone_names:
.. rst-class:: classref-method
|void| **_validate_bone_names**\ (\ ) |virtual| :ref:`🔗<class_SkeletonModifier3D_private_method__validate_bone_names>`
Called when bone names and indices need to be validated, such as when entering the scene tree or changing skeleton.
.. rst-class:: classref-item-separator
----
.. _class_SkeletonModifier3D_method_get_skeleton:
.. rst-class:: classref-method
:ref:`Skeleton3D<class_Skeleton3D>` **get_skeleton**\ (\ ) |const| :ref:`🔗<class_SkeletonModifier3D_method_get_skeleton>`
Returns the parent :ref:`Skeleton3D<class_Skeleton3D>` node if it exists. Otherwise, returns ``null``.
.. |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 (Нет возвращаемого значения.)`