Files
godot-docs-l10n/classes/zh_Hans/class_springbonesimulator3d.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

1300 lines
87 KiB
ReStructuredText

:github_url: hide
.. _class_SpringBoneSimulator3D:
SpringBoneSimulator3D
=====================
**继承:** :ref:`SkeletonModifier3D<class_SkeletonModifier3D>` **<** :ref:`Node3D<class_Node3D>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
对骨骼链应用惯性摆动的 :ref:`SkeletonModifier3D<class_SkeletonModifier3D>`\ 。
.. rst-class:: classref-introduction-group
描述
----
这种 :ref:`SkeletonModifier3D<class_SkeletonModifier3D>` 可以用来扭动头发、布料和尾巴,其行为与 :ref:`PhysicalBoneSimulator3D<class_PhysicalBoneSimulator3D>` 不同,修改后会尝试返回到原始姿势。
如果设置了 :ref:`set_root_bone()<class_SpringBoneSimulator3D_method_set_root_bone>`:ref:`set_end_bone()<class_SpringBoneSimulator3D_method_set_end_bone>` 就会将其视为骨骼链。请注意,不支持像 Y 形链那样的分支链。
创建骨骼链时会根据首尾之间的骨骼生成数组,在关节列表中展示。
每个关节都有许多属性可以应用,例如 :ref:`set_joint_stiffness()<class_SpringBoneSimulator3D_method_set_joint_stiffness>`\ 、\ :ref:`set_joint_drag()<class_SpringBoneSimulator3D_method_set_joint_drag>`:ref:`set_joint_gravity()<class_SpringBoneSimulator3D_method_set_joint_gravity>`\ 。
为了简化操作,你可以使用 :ref:`Curve<class_Curve>` 同时设置所有关节的值。如果你想单独指定详细值,请将 :ref:`set_individual_config()<class_SpringBoneSimulator3D_method_set_individual_config>` 设置为 ``true``\ 。
物理模拟时,\ **SpringBoneSimulator3D** 可以有子对象作为独立的碰撞体,这些碰撞体与 :ref:`PhysicsServer3D<class_PhysicsServer3D>` 无关,另见 :ref:`SpringBoneCollision3D<class_SpringBoneCollision3D>`\ 。
\ **警告:**\ 缩放后的 **SpringBoneSimulator3D** 可能不会按预期行为。请确保父级 :ref:`Skeleton3D<class_Skeleton3D>` 及其骨骼没有缩放。
.. rst-class:: classref-reftable-group
属性
----
.. table::
:widths: auto
+-------------------------------+----------------------------------------------------------------------------------+----------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`external_force<class_SpringBoneSimulator3D_property_external_force>` | ``Vector3(0, 0, 0)`` |
+-------------------------------+----------------------------------------------------------------------------------+----------------------+
| :ref:`bool<class_bool>` | :ref:`mutable_bone_axes<class_SpringBoneSimulator3D_property_mutable_bone_axes>` | ``true`` |
+-------------------------------+----------------------------------------------------------------------------------+----------------------+
| :ref:`int<class_int>` | :ref:`setting_count<class_SpringBoneSimulator3D_property_setting_count>` | ``0`` |
+-------------------------------+----------------------------------------------------------------------------------+----------------------+
.. rst-class:: classref-reftable-group
方法
----
.. table::
:widths: auto
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`are_all_child_collisions_enabled<class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`clear_collisions<class_SpringBoneSimulator3D_method_clear_collisions>`\ (\ index\: :ref:`int<class_int>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`clear_exclude_collisions<class_SpringBoneSimulator3D_method_clear_exclude_collisions>`\ (\ index\: :ref:`int<class_int>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`clear_settings<class_SpringBoneSimulator3D_method_clear_settings>`\ (\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_center_bone<class_SpringBoneSimulator3D_method_get_center_bone>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`get_center_bone_name<class_SpringBoneSimulator3D_method_get_center_bone_name>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`CenterFrom<enum_SpringBoneSimulator3D_CenterFrom>` | :ref:`get_center_from<class_SpringBoneSimulator3D_method_get_center_from>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`NodePath<class_NodePath>` | :ref:`get_center_node<class_SpringBoneSimulator3D_method_get_center_node>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_collision_count<class_SpringBoneSimulator3D_method_get_collision_count>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`NodePath<class_NodePath>` | :ref:`get_collision_path<class_SpringBoneSimulator3D_method_get_collision_path>`\ (\ index\: :ref:`int<class_int>`, collision\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_drag<class_SpringBoneSimulator3D_method_get_drag>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Curve<class_Curve>` | :ref:`get_drag_damping_curve<class_SpringBoneSimulator3D_method_get_drag_damping_curve>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_end_bone<class_SpringBoneSimulator3D_method_get_end_bone>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`BoneDirection<enum_SkeletonModifier3D_BoneDirection>` | :ref:`get_end_bone_direction<class_SpringBoneSimulator3D_method_get_end_bone_direction>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_end_bone_length<class_SpringBoneSimulator3D_method_get_end_bone_length>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`get_end_bone_name<class_SpringBoneSimulator3D_method_get_end_bone_name>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_exclude_collision_count<class_SpringBoneSimulator3D_method_get_exclude_collision_count>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`NodePath<class_NodePath>` | :ref:`get_exclude_collision_path<class_SpringBoneSimulator3D_method_get_exclude_collision_path>`\ (\ index\: :ref:`int<class_int>`, collision\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_gravity<class_SpringBoneSimulator3D_method_get_gravity>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Curve<class_Curve>` | :ref:`get_gravity_damping_curve<class_SpringBoneSimulator3D_method_get_gravity_damping_curve>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`get_gravity_direction<class_SpringBoneSimulator3D_method_get_gravity_direction>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_joint_bone<class_SpringBoneSimulator3D_method_get_joint_bone>`\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`get_joint_bone_name<class_SpringBoneSimulator3D_method_get_joint_bone_name>`\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_joint_count<class_SpringBoneSimulator3D_method_get_joint_count>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_joint_drag<class_SpringBoneSimulator3D_method_get_joint_drag>`\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_joint_gravity<class_SpringBoneSimulator3D_method_get_joint_gravity>`\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`get_joint_gravity_direction<class_SpringBoneSimulator3D_method_get_joint_gravity_direction>`\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_joint_radius<class_SpringBoneSimulator3D_method_get_joint_radius>`\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`RotationAxis<enum_SkeletonModifier3D_RotationAxis>` | :ref:`get_joint_rotation_axis<class_SpringBoneSimulator3D_method_get_joint_rotation_axis>`\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`get_joint_rotation_axis_vector<class_SpringBoneSimulator3D_method_get_joint_rotation_axis_vector>`\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_joint_stiffness<class_SpringBoneSimulator3D_method_get_joint_stiffness>`\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_radius<class_SpringBoneSimulator3D_method_get_radius>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Curve<class_Curve>` | :ref:`get_radius_damping_curve<class_SpringBoneSimulator3D_method_get_radius_damping_curve>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_root_bone<class_SpringBoneSimulator3D_method_get_root_bone>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`get_root_bone_name<class_SpringBoneSimulator3D_method_get_root_bone_name>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`RotationAxis<enum_SkeletonModifier3D_RotationAxis>` | :ref:`get_rotation_axis<class_SpringBoneSimulator3D_method_get_rotation_axis>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Vector3<class_Vector3>` | :ref:`get_rotation_axis_vector<class_SpringBoneSimulator3D_method_get_rotation_axis_vector>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`get_stiffness<class_SpringBoneSimulator3D_method_get_stiffness>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Curve<class_Curve>` | :ref:`get_stiffness_damping_curve<class_SpringBoneSimulator3D_method_get_stiffness_damping_curve>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_config_individual<class_SpringBoneSimulator3D_method_is_config_individual>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`is_end_bone_extended<class_SpringBoneSimulator3D_method_is_end_bone_extended>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`reset<class_SpringBoneSimulator3D_method_reset>`\ (\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_center_bone<class_SpringBoneSimulator3D_method_set_center_bone>`\ (\ index\: :ref:`int<class_int>`, bone\: :ref:`int<class_int>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_center_bone_name<class_SpringBoneSimulator3D_method_set_center_bone_name>`\ (\ index\: :ref:`int<class_int>`, bone_name\: :ref:`String<class_String>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_center_from<class_SpringBoneSimulator3D_method_set_center_from>`\ (\ index\: :ref:`int<class_int>`, center_from\: :ref:`CenterFrom<enum_SpringBoneSimulator3D_CenterFrom>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_center_node<class_SpringBoneSimulator3D_method_set_center_node>`\ (\ index\: :ref:`int<class_int>`, node_path\: :ref:`NodePath<class_NodePath>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_collision_count<class_SpringBoneSimulator3D_method_set_collision_count>`\ (\ index\: :ref:`int<class_int>`, count\: :ref:`int<class_int>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_collision_path<class_SpringBoneSimulator3D_method_set_collision_path>`\ (\ index\: :ref:`int<class_int>`, collision\: :ref:`int<class_int>`, node_path\: :ref:`NodePath<class_NodePath>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_drag<class_SpringBoneSimulator3D_method_set_drag>`\ (\ index\: :ref:`int<class_int>`, drag\: :ref:`float<class_float>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_drag_damping_curve<class_SpringBoneSimulator3D_method_set_drag_damping_curve>`\ (\ index\: :ref:`int<class_int>`, curve\: :ref:`Curve<class_Curve>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_enable_all_child_collisions<class_SpringBoneSimulator3D_method_set_enable_all_child_collisions>`\ (\ index\: :ref:`int<class_int>`, enabled\: :ref:`bool<class_bool>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_end_bone<class_SpringBoneSimulator3D_method_set_end_bone>`\ (\ index\: :ref:`int<class_int>`, bone\: :ref:`int<class_int>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_end_bone_direction<class_SpringBoneSimulator3D_method_set_end_bone_direction>`\ (\ index\: :ref:`int<class_int>`, bone_direction\: :ref:`BoneDirection<enum_SkeletonModifier3D_BoneDirection>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_end_bone_length<class_SpringBoneSimulator3D_method_set_end_bone_length>`\ (\ index\: :ref:`int<class_int>`, length\: :ref:`float<class_float>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_end_bone_name<class_SpringBoneSimulator3D_method_set_end_bone_name>`\ (\ index\: :ref:`int<class_int>`, bone_name\: :ref:`String<class_String>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_exclude_collision_count<class_SpringBoneSimulator3D_method_set_exclude_collision_count>`\ (\ index\: :ref:`int<class_int>`, count\: :ref:`int<class_int>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_exclude_collision_path<class_SpringBoneSimulator3D_method_set_exclude_collision_path>`\ (\ index\: :ref:`int<class_int>`, collision\: :ref:`int<class_int>`, node_path\: :ref:`NodePath<class_NodePath>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_extend_end_bone<class_SpringBoneSimulator3D_method_set_extend_end_bone>`\ (\ index\: :ref:`int<class_int>`, enabled\: :ref:`bool<class_bool>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_gravity<class_SpringBoneSimulator3D_method_set_gravity>`\ (\ index\: :ref:`int<class_int>`, gravity\: :ref:`float<class_float>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_gravity_damping_curve<class_SpringBoneSimulator3D_method_set_gravity_damping_curve>`\ (\ index\: :ref:`int<class_int>`, curve\: :ref:`Curve<class_Curve>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_gravity_direction<class_SpringBoneSimulator3D_method_set_gravity_direction>`\ (\ index\: :ref:`int<class_int>`, gravity_direction\: :ref:`Vector3<class_Vector3>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_individual_config<class_SpringBoneSimulator3D_method_set_individual_config>`\ (\ index\: :ref:`int<class_int>`, enabled\: :ref:`bool<class_bool>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_joint_drag<class_SpringBoneSimulator3D_method_set_joint_drag>`\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`, drag\: :ref:`float<class_float>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_joint_gravity<class_SpringBoneSimulator3D_method_set_joint_gravity>`\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`, gravity\: :ref:`float<class_float>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_joint_gravity_direction<class_SpringBoneSimulator3D_method_set_joint_gravity_direction>`\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`, gravity_direction\: :ref:`Vector3<class_Vector3>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_joint_radius<class_SpringBoneSimulator3D_method_set_joint_radius>`\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`, radius\: :ref:`float<class_float>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_joint_rotation_axis<class_SpringBoneSimulator3D_method_set_joint_rotation_axis>`\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`, axis\: :ref:`RotationAxis<enum_SkeletonModifier3D_RotationAxis>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_joint_rotation_axis_vector<class_SpringBoneSimulator3D_method_set_joint_rotation_axis_vector>`\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`, vector\: :ref:`Vector3<class_Vector3>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_joint_stiffness<class_SpringBoneSimulator3D_method_set_joint_stiffness>`\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`, stiffness\: :ref:`float<class_float>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_radius<class_SpringBoneSimulator3D_method_set_radius>`\ (\ index\: :ref:`int<class_int>`, radius\: :ref:`float<class_float>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_radius_damping_curve<class_SpringBoneSimulator3D_method_set_radius_damping_curve>`\ (\ index\: :ref:`int<class_int>`, curve\: :ref:`Curve<class_Curve>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_root_bone<class_SpringBoneSimulator3D_method_set_root_bone>`\ (\ index\: :ref:`int<class_int>`, bone\: :ref:`int<class_int>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_root_bone_name<class_SpringBoneSimulator3D_method_set_root_bone_name>`\ (\ index\: :ref:`int<class_int>`, bone_name\: :ref:`String<class_String>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_rotation_axis<class_SpringBoneSimulator3D_method_set_rotation_axis>`\ (\ index\: :ref:`int<class_int>`, axis\: :ref:`RotationAxis<enum_SkeletonModifier3D_RotationAxis>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_rotation_axis_vector<class_SpringBoneSimulator3D_method_set_rotation_axis_vector>`\ (\ index\: :ref:`int<class_int>`, vector\: :ref:`Vector3<class_Vector3>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_stiffness<class_SpringBoneSimulator3D_method_set_stiffness>`\ (\ index\: :ref:`int<class_int>`, stiffness\: :ref:`float<class_float>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_stiffness_damping_curve<class_SpringBoneSimulator3D_method_set_stiffness_damping_curve>`\ (\ index\: :ref:`int<class_int>`, curve\: :ref:`Curve<class_Curve>`\ ) |
+-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
枚举
----
.. _enum_SpringBoneSimulator3D_CenterFrom:
.. rst-class:: classref-enumeration
enum **CenterFrom**: :ref:`🔗<enum_SpringBoneSimulator3D_CenterFrom>`
.. _class_SpringBoneSimulator3D_constant_CENTER_FROM_WORLD_ORIGIN:
.. rst-class:: classref-enumeration-constant
:ref:`CenterFrom<enum_SpringBoneSimulator3D_CenterFrom>` **CENTER_FROM_WORLD_ORIGIN** = ``0``
将世界原点定义为中心。
.. _class_SpringBoneSimulator3D_constant_CENTER_FROM_NODE:
.. rst-class:: classref-enumeration-constant
:ref:`CenterFrom<enum_SpringBoneSimulator3D_CenterFrom>` **CENTER_FROM_NODE** = ``1``
:ref:`set_center_node()<class_SpringBoneSimulator3D_method_set_center_node>` 指定的 :ref:`Node3D<class_Node3D>` 定义为中心。
如果未找到 :ref:`Node3D<class_Node3D>`\ ,则将父 :ref:`Skeleton3D<class_Skeleton3D>` 作为中心。
.. _class_SpringBoneSimulator3D_constant_CENTER_FROM_BONE:
.. rst-class:: classref-enumeration-constant
:ref:`CenterFrom<enum_SpringBoneSimulator3D_CenterFrom>` **CENTER_FROM_BONE** = ``2``
:ref:`set_center_bone()<class_SpringBoneSimulator3D_method_set_center_bone>` 指定的父 :ref:`Skeleton3D<class_Skeleton3D>` 的骨骼姿势原点定义为中心。
如果未找到 :ref:`Node3D<class_Node3D>`\ ,则将父 :ref:`Skeleton3D<class_Skeleton3D>` 作为中心。
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
属性说明
--------
.. _class_SpringBoneSimulator3D_property_external_force:
.. rst-class:: classref-property
:ref:`Vector3<class_Vector3>` **external_force** = ``Vector3(0, 0, 0)`` :ref:`🔗<class_SpringBoneSimulator3D_property_external_force>`
.. rst-class:: classref-property-setget
- |void| **set_external_force**\ (\ value\: :ref:`Vector3<class_Vector3>`\ )
- :ref:`Vector3<class_Vector3>` **get_external_force**\ (\ )
始终作用于骨骼的恒定力。当父级 :ref:`Skeleton3D<class_Skeleton3D>` 以相反方向以此速度移动时,该力等于其结果。
对于风和反重力等效果非常有用。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_property_mutable_bone_axes:
.. rst-class:: classref-property
:ref:`bool<class_bool>` **mutable_bone_axes** = ``true`` :ref:`🔗<class_SpringBoneSimulator3D_property_mutable_bone_axes>`
.. rst-class:: classref-property-setget
- |void| **set_mutable_bone_axes**\ (\ value\: :ref:`bool<class_bool>`\ )
- :ref:`bool<class_bool>` **are_bone_axes_mutable**\ (\ )
If ``true``, the solver retrieves the bone axis from the bone pose every frame.
If ``false``, the solver retrieves the bone axis from the bone rest and caches it, which increases performance slightly, but position changes in the bone pose made before processing this **SpringBoneSimulator3D** are ignored.
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_property_setting_count:
.. rst-class:: classref-property
:ref:`int<class_int>` **setting_count** = ``0`` :ref:`🔗<class_SpringBoneSimulator3D_property_setting_count>`
.. rst-class:: classref-property-setget
- |void| **set_setting_count**\ (\ value\: :ref:`int<class_int>`\ )
- :ref:`int<class_int>` **get_setting_count**\ (\ )
设置的数量。
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
方法说明
--------
.. _class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **are_all_child_collisions_enabled**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled>`
如果所有子 :ref:`SpringBoneCollision3D<class_SpringBoneCollision3D>` 都包含在设置中索引为 ``index`` 的碰撞列表中,则返回 ``true``\ 。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_clear_collisions:
.. rst-class:: classref-method
|void| **clear_collisions**\ (\ index\: :ref:`int<class_int>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_clear_collisions>`
当 :ref:`are_all_child_collisions_enabled()<class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled>```false`` 时,清空设置中索引为 ``index`` 的碰撞列表中的所有碰撞。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_clear_exclude_collisions:
.. rst-class:: classref-method
|void| **clear_exclude_collisions**\ (\ index\: :ref:`int<class_int>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_clear_exclude_collisions>`
:ref:`are_all_child_collisions_enabled()<class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled>```true`` 时,清空设置中索引为 ``index`` 的碰撞列表中的所有排除碰撞。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_clear_settings:
.. rst-class:: classref-method
|void| **clear_settings**\ (\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_clear_settings>`
清空所有设置。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_center_bone:
.. rst-class:: classref-method
:ref:`int<class_int>` **get_center_bone**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_center_bone>`
返回骨骼链中间骨骼的索引。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_center_bone_name:
.. rst-class:: classref-method
:ref:`String<class_String>` **get_center_bone_name**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_center_bone_name>`
返回骨骼链中间骨骼的名称。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_center_from:
.. rst-class:: classref-method
:ref:`CenterFrom<enum_SpringBoneSimulator3D_CenterFrom>` **get_center_from**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_center_from>`
返回骨骼链中心的来源。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_center_node:
.. rst-class:: classref-method
:ref:`NodePath<class_NodePath>` **get_center_node**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_center_node>`
返回骨骼链中心节点的路径。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_collision_count:
.. rst-class:: classref-method
:ref:`int<class_int>` **get_collision_count**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_collision_count>`
:ref:`are_all_child_collisions_enabled()<class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled>```false`` 时,返回骨骼链的碰撞列表中的碰撞数量。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_collision_path:
.. rst-class:: classref-method
:ref:`NodePath<class_NodePath>` **get_collision_path**\ (\ index\: :ref:`int<class_int>`, collision\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_collision_path>`
:ref:`are_all_child_collisions_enabled()<class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled>```false`` 时,返回骨骼链的碰撞列表中 ``collision``:ref:`SpringBoneCollision3D<class_SpringBoneCollision3D>` 节点路径。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_drag:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_drag**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_drag>`
返回骨骼链的阻力阻尼曲线。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_drag_damping_curve:
.. rst-class:: classref-method
:ref:`Curve<class_Curve>` **get_drag_damping_curve**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_drag_damping_curve>`
返回骨骼链的阻力阻尼曲线。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_end_bone:
.. rst-class:: classref-method
:ref:`int<class_int>` **get_end_bone**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_end_bone>`
返回骨骼链末尾骨骼的索引。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_end_bone_direction:
.. rst-class:: classref-method
:ref:`BoneDirection<enum_SkeletonModifier3D_BoneDirection>` **get_end_bone_direction**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_end_bone_direction>`
Returns the tail direction of the end bone of the bone chain when :ref:`is_end_bone_extended()<class_SpringBoneSimulator3D_method_is_end_bone_extended>` is ``true``.
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_end_bone_length:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_end_bone_length**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_end_bone_length>`
Returns the end bone tail length of the bone chain when :ref:`is_end_bone_extended()<class_SpringBoneSimulator3D_method_is_end_bone_extended>` is ``true``.
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_end_bone_name:
.. rst-class:: classref-method
:ref:`String<class_String>` **get_end_bone_name**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_end_bone_name>`
返回骨骼链末尾骨骼的名称。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_exclude_collision_count:
.. rst-class:: classref-method
:ref:`int<class_int>` **get_exclude_collision_count**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_exclude_collision_count>`
:ref:`are_all_child_collisions_enabled()<class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled>```true`` 时,返回骨骼链的排除碰撞列表中的排除碰撞数量。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_exclude_collision_path:
.. rst-class:: classref-method
:ref:`NodePath<class_NodePath>` **get_exclude_collision_path**\ (\ index\: :ref:`int<class_int>`, collision\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_exclude_collision_path>`
:ref:`are_all_child_collisions_enabled()<class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled>```true`` 时,返回骨骼链的排除碰撞列表中 ``collision``:ref:`SpringBoneCollision3D<class_SpringBoneCollision3D>` 节点路径。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_gravity:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_gravity**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_gravity>`
返回骨骼链的重力强度。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_gravity_damping_curve:
.. rst-class:: classref-method
:ref:`Curve<class_Curve>` **get_gravity_damping_curve**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_gravity_damping_curve>`
返回骨骼链的重力强度阻尼曲线。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_gravity_direction:
.. rst-class:: classref-method
:ref:`Vector3<class_Vector3>` **get_gravity_direction**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_gravity_direction>`
返回骨骼链的重力方向。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_joint_bone:
.. rst-class:: classref-method
:ref:`int<class_int>` **get_joint_bone**\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_joint_bone>`
返回骨骼链关节列表中位于 ``joint`` 的骨骼的索引。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_joint_bone_name:
.. rst-class:: classref-method
:ref:`String<class_String>` **get_joint_bone_name**\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_joint_bone_name>`
返回骨骼链关节列表中位于 ``joint`` 的骨骼的名称。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_joint_count:
.. rst-class:: classref-method
:ref:`int<class_int>` **get_joint_count**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_joint_count>`
返回骨骼链关节列表中的关节数量。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_joint_drag:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_joint_drag**\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_joint_drag>`
返回骨骼链关节列表中 ``joint`` 关节的阻力。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_joint_gravity:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_joint_gravity**\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_joint_gravity>`
返回骨骼链关节列表中 ``joint`` 关节的重力强度。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_joint_gravity_direction:
.. rst-class:: classref-method
:ref:`Vector3<class_Vector3>` **get_joint_gravity_direction**\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_joint_gravity_direction>`
返回骨骼链关节列表中 ``joint`` 关节的重力方向。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_joint_radius:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_joint_radius**\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_joint_radius>`
返回骨骼链关节列表中 ``joint`` 关节的半径。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_joint_rotation_axis:
.. rst-class:: classref-method
:ref:`RotationAxis<enum_SkeletonModifier3D_RotationAxis>` **get_joint_rotation_axis**\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_joint_rotation_axis>`
返回骨骼链关节列表中 ``joint`` 关节的旋转轴。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_joint_rotation_axis_vector:
.. rst-class:: classref-method
:ref:`Vector3<class_Vector3>` **get_joint_rotation_axis_vector**\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_joint_rotation_axis_vector>`
Returns the rotation axis vector for the specified joint in the bone chain. This vector represents the axis around which the joint can rotate. It is determined based on the rotation axis set for the joint.
If :ref:`get_joint_rotation_axis()<class_SpringBoneSimulator3D_method_get_joint_rotation_axis>` is :ref:`SkeletonModifier3D.ROTATION_AXIS_ALL<class_SkeletonModifier3D_constant_ROTATION_AXIS_ALL>`, this method returns ``Vector3(0, 0, 0)``.
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_joint_stiffness:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_joint_stiffness**\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_joint_stiffness>`
返回骨骼链关节列表中 ``joint`` 关节的刚度力。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_radius:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_radius**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_radius>`
返回骨骼链的关节半径。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_radius_damping_curve:
.. rst-class:: classref-method
:ref:`Curve<class_Curve>` **get_radius_damping_curve**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_radius_damping_curve>`
返回骨骼链的关节半径阻尼曲线。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_root_bone:
.. rst-class:: classref-method
:ref:`int<class_int>` **get_root_bone**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_root_bone>`
返回骨骼链根骨骼的索引。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_root_bone_name:
.. rst-class:: classref-method
:ref:`String<class_String>` **get_root_bone_name**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_root_bone_name>`
返回骨骼链根骨骼的名称。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_rotation_axis:
.. rst-class:: classref-method
:ref:`RotationAxis<enum_SkeletonModifier3D_RotationAxis>` **get_rotation_axis**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_rotation_axis>`
返回骨骼链的旋转轴。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_rotation_axis_vector:
.. rst-class:: classref-method
:ref:`Vector3<class_Vector3>` **get_rotation_axis_vector**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_rotation_axis_vector>`
Returns the rotation axis vector of the bone chain. This vector represents the axis around which the bone chain can rotate. It is determined based on the rotation axis set for the bone chain.
If :ref:`get_rotation_axis()<class_SpringBoneSimulator3D_method_get_rotation_axis>` is :ref:`SkeletonModifier3D.ROTATION_AXIS_ALL<class_SkeletonModifier3D_constant_ROTATION_AXIS_ALL>`, this method returns ``Vector3(0, 0, 0)``.
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_stiffness:
.. rst-class:: classref-method
:ref:`float<class_float>` **get_stiffness**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_stiffness>`
返回骨骼链的刚度力。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_get_stiffness_damping_curve:
.. rst-class:: classref-method
:ref:`Curve<class_Curve>` **get_stiffness_damping_curve**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_stiffness_damping_curve>`
返回骨骼链的刚度力阻尼曲线。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_is_config_individual:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **is_config_individual**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_is_config_individual>`
如果可以为每个关节单独编辑配置,则返回 ``true``\ 。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_is_end_bone_extended:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **is_end_bone_extended**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_is_end_bone_extended>`
Returns ``true`` if the end bone is extended to have a tail.
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_reset:
.. rst-class:: classref-method
|void| **reset**\ (\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_reset>`
重置与当前骨骼姿势相关的模拟状态。
这样做有助于防止模拟结果变得剧烈。例如在不带渐变调用 :ref:`AnimationPlayer.play()<class_AnimationPlayer_method_play>` 之后立即调用该方法,或者在前一个 :ref:`SkeletonModifier3D.modification_processed<class_SkeletonModifier3D_signal_modification_processed>` 信号中当条件发生显著变化时调用。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_center_bone:
.. rst-class:: classref-method
|void| **set_center_bone**\ (\ index\: :ref:`int<class_int>`, bone\: :ref:`int<class_int>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_center_bone>`
设置骨骼链中心骨骼的索引。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_center_bone_name:
.. rst-class:: classref-method
|void| **set_center_bone_name**\ (\ index\: :ref:`int<class_int>`, bone_name\: :ref:`String<class_String>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_center_bone_name>`
设置骨骼链中心骨骼的名称。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_center_from:
.. rst-class:: classref-method
|void| **set_center_from**\ (\ index\: :ref:`int<class_int>`, center_from\: :ref:`CenterFrom<enum_SpringBoneSimulator3D_CenterFrom>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_center_from>`
设置骨骼链中心的来源。
骨骼的移动是基于中心与骨骼在前后帧之间相对距离的变化来计算的。
例如将父级 :ref:`Skeleton3D<class_Skeleton3D>` 用作中心,那么 :ref:`Skeleton3D<class_Skeleton3D>` 在世界中移动时,骨骼就会被视为没有移动。
在这种情况下,只有骨骼姿势的变化才被视为骨骼的移动。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_center_node:
.. rst-class:: classref-method
|void| **set_center_node**\ (\ index\: :ref:`int<class_int>`, node_path\: :ref:`NodePath<class_NodePath>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_center_node>`
设置骨骼链中心节点的路径。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_collision_count:
.. rst-class:: classref-method
|void| **set_collision_count**\ (\ index\: :ref:`int<class_int>`, count\: :ref:`int<class_int>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_collision_count>`
:ref:`are_all_child_collisions_enabled()<class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled>```false`` 时,设置索引为 ``index`` 的碰撞列表中的碰撞数量。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_collision_path:
.. rst-class:: classref-method
|void| **set_collision_path**\ (\ index\: :ref:`int<class_int>`, collision\: :ref:`int<class_int>`, node_path\: :ref:`NodePath<class_NodePath>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_collision_path>`
:ref:`are_all_child_collisions_enabled()<class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled>```false`` 时,设置骨骼链的碰撞列表中 ``collision``:ref:`SpringBoneCollision3D<class_SpringBoneCollision3D>` 节点路径。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_drag:
.. rst-class:: classref-method
|void| **set_drag**\ (\ index\: :ref:`int<class_int>`, drag\: :ref:`float<class_float>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_drag>`
设置骨骼链的阻力。值越大,摆动越受到抑制。
该值由 :ref:`set_drag_damping_curve()<class_SpringBoneSimulator3D_method_set_drag_damping_curve>` 进行缩放,并缓存到关节列表中每个关节的设置中。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_drag_damping_curve:
.. rst-class:: classref-method
|void| **set_drag_damping_curve**\ (\ index\: :ref:`int<class_int>`, curve\: :ref:`Curve<class_Curve>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_drag_damping_curve>`
设置骨骼链的阻力阻尼曲线。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_enable_all_child_collisions:
.. rst-class:: classref-method
|void| **set_enable_all_child_collisions**\ (\ index\: :ref:`int<class_int>`, enabled\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_enable_all_child_collisions>`
如果 ``enabled````true``\ ,则所有子级 :ref:`SpringBoneCollision3D<class_SpringBoneCollision3D>` 都会发生碰撞,\ :ref:`set_exclude_collision_path()<class_SpringBoneSimulator3D_method_set_exclude_collision_path>` 在设置中的 ``index`` 处启用作为排除列表。
如果 ``enabled````false``\ ,则需要手动使用 :ref:`set_collision_path()<class_SpringBoneSimulator3D_method_set_collision_path>` 注册所有有效的碰撞。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_end_bone:
.. rst-class:: classref-method
|void| **set_end_bone**\ (\ index\: :ref:`int<class_int>`, bone\: :ref:`int<class_int>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_end_bone>`
设置骨骼链中末端骨骼的索引。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_end_bone_direction:
.. rst-class:: classref-method
|void| **set_end_bone_direction**\ (\ index\: :ref:`int<class_int>`, bone_direction\: :ref:`BoneDirection<enum_SkeletonModifier3D_BoneDirection>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_end_bone_direction>`
当 :ref:`is_end_bone_extended()<class_SpringBoneSimulator3D_method_is_end_bone_extended>```true`` 时,设置骨骼链中末端骨骼的尾部方向。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_end_bone_length:
.. rst-class:: classref-method
|void| **set_end_bone_length**\ (\ index\: :ref:`int<class_int>`, length\: :ref:`float<class_float>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_end_bone_length>`
:ref:`is_end_bone_extended()<class_SpringBoneSimulator3D_method_is_end_bone_extended>```true`` 时,设置骨骼链中末端骨骼的尾部长度。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_end_bone_name:
.. rst-class:: classref-method
|void| **set_end_bone_name**\ (\ index\: :ref:`int<class_int>`, bone_name\: :ref:`String<class_String>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_end_bone_name>`
设置骨骼链中末端骨骼的名称。
\ **注意:** 末端骨骼必须是根骨骼或根骨骼的子骨骼。如果相同,则必须通过 :ref:`set_extend_end_bone()<class_SpringBoneSimulator3D_method_set_extend_end_bone>` 扩展尾部,使骨骼产生摆动。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_exclude_collision_count:
.. rst-class:: classref-method
|void| **set_exclude_collision_count**\ (\ index\: :ref:`int<class_int>`, count\: :ref:`int<class_int>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_exclude_collision_count>`
:ref:`are_all_child_collisions_enabled()<class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled>```true`` 时,设置索引为 ``index`` 的排除碰撞列表中的排除碰撞数量。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_exclude_collision_path:
.. rst-class:: classref-method
|void| **set_exclude_collision_path**\ (\ index\: :ref:`int<class_int>`, collision\: :ref:`int<class_int>`, node_path\: :ref:`NodePath<class_NodePath>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_exclude_collision_path>`
:ref:`are_all_child_collisions_enabled()<class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled>```true`` 时,设置骨骼链的排除碰撞列表中 ``collision``:ref:`SpringBoneCollision3D<class_SpringBoneCollision3D>` 节点路径。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_extend_end_bone:
.. rst-class:: classref-method
|void| **set_extend_end_bone**\ (\ index\: :ref:`int<class_int>`, enabled\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_extend_end_bone>`
If ``enabled`` is ``true``, the end bone is extended to have a tail.
The extended tail config is allocated to the last element in the joint list. In other words, if you set ``enabled`` to ``false``, the config of the last element in the joint list has no effect in the simulated result.
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_gravity:
.. rst-class:: classref-method
|void| **set_gravity**\ (\ index\: :ref:`int<class_int>`, gravity\: :ref:`float<class_float>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_gravity>`
设置骨骼链的重力强度。该值不是加速度,而是 :ref:`set_gravity_direction()<class_SpringBoneSimulator3D_method_set_gravity_direction>` 的恒定运动速度。
如果 ``gravity`` 不为 ``0``\ ,则修改后的姿势将不会返回到原始姿势,因为它始终受到重力的影响。
该值会被 :ref:`set_gravity_damping_curve()<class_SpringBoneSimulator3D_method_set_gravity_damping_curve>` 缩放,并缓存到关节列表中的每个关节设置中。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_gravity_damping_curve:
.. rst-class:: classref-method
|void| **set_gravity_damping_curve**\ (\ index\: :ref:`int<class_int>`, curve\: :ref:`Curve<class_Curve>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_gravity_damping_curve>`
设置骨骼链的重力强度阻尼曲线。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_gravity_direction:
.. rst-class:: classref-method
|void| **set_gravity_direction**\ (\ index\: :ref:`int<class_int>`, gravity_direction\: :ref:`Vector3<class_Vector3>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_gravity_direction>`
设置骨骼链的重力方向。内部会对该值进行归一化,然后乘以 :ref:`set_gravity()<class_SpringBoneSimulator3D_method_set_gravity>`\ 。
该值会被缓存到关节列表中的每个关节设置中。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_individual_config:
.. rst-class:: classref-method
|void| **set_individual_config**\ (\ index\: :ref:`int<class_int>`, enabled\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_individual_config>`
如果 ``enabled````true``\ ,则可以为每个关节单独编辑配置。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_joint_drag:
.. rst-class:: classref-method
|void| **set_joint_drag**\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`, drag\: :ref:`float<class_float>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_joint_drag>`
当 :ref:`is_config_individual()<class_SpringBoneSimulator3D_method_is_config_individual>```true`` 时,设置骨骼链关节列表中 ``joint`` 关节的阻力。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_joint_gravity:
.. rst-class:: classref-method
|void| **set_joint_gravity**\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`, gravity\: :ref:`float<class_float>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_joint_gravity>`
:ref:`is_config_individual()<class_SpringBoneSimulator3D_method_is_config_individual>```true`` 时,设置骨骼链关节列表中 ``joint`` 关节的重力强度。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_joint_gravity_direction:
.. rst-class:: classref-method
|void| **set_joint_gravity_direction**\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`, gravity_direction\: :ref:`Vector3<class_Vector3>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_joint_gravity_direction>`
:ref:`is_config_individual()<class_SpringBoneSimulator3D_method_is_config_individual>```true`` 时,设置骨骼链关节列表中 ``joint`` 关节的重力方向。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_joint_radius:
.. rst-class:: classref-method
|void| **set_joint_radius**\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`, radius\: :ref:`float<class_float>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_joint_radius>`
:ref:`is_config_individual()<class_SpringBoneSimulator3D_method_is_config_individual>```true`` 时,设置骨骼链关节列表中 ``joint`` 关节的半径。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_joint_rotation_axis:
.. rst-class:: classref-method
|void| **set_joint_rotation_axis**\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`, axis\: :ref:`RotationAxis<enum_SkeletonModifier3D_RotationAxis>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_joint_rotation_axis>`
Sets the rotation axis at ``joint`` in the bone chain's joint list when :ref:`is_config_individual()<class_SpringBoneSimulator3D_method_is_config_individual>` is ``true``.
The axes are based on the :ref:`Skeleton3D.get_bone_rest()<class_Skeleton3D_method_get_bone_rest>`'s space, if ``axis`` is :ref:`SkeletonModifier3D.ROTATION_AXIS_CUSTOM<class_SkeletonModifier3D_constant_ROTATION_AXIS_CUSTOM>`, you can specify any axis.
\ **Note:** The rotation axis and the forward vector shouldn't be colinear to avoid unintended rotation since **SpringBoneSimulator3D** does not factor in twisting forces.
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_joint_rotation_axis_vector:
.. rst-class:: classref-method
|void| **set_joint_rotation_axis_vector**\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`, vector\: :ref:`Vector3<class_Vector3>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_joint_rotation_axis_vector>`
Sets the rotation axis vector for the specified joint in the bone chain.
This vector is normalized by an internal process and represents the axis around which the bone chain can rotate.
If the vector length is ``0``, it is considered synonymous with :ref:`SkeletonModifier3D.ROTATION_AXIS_ALL<class_SkeletonModifier3D_constant_ROTATION_AXIS_ALL>`.
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_joint_stiffness:
.. rst-class:: classref-method
|void| **set_joint_stiffness**\ (\ index\: :ref:`int<class_int>`, joint\: :ref:`int<class_int>`, stiffness\: :ref:`float<class_float>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_joint_stiffness>`
:ref:`is_config_individual()<class_SpringBoneSimulator3D_method_is_config_individual>```true`` 时,设置骨骼链关节列表中 ``joint`` 关节的刚度力。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_radius:
.. rst-class:: classref-method
|void| **set_radius**\ (\ index\: :ref:`int<class_int>`, radius\: :ref:`float<class_float>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_radius>`
设置骨骼链的关节半径,用于在碰撞列表中与 :ref:`SpringBoneCollision3D<class_SpringBoneCollision3D>` 一起移动和滑动。
该值由 :ref:`set_radius_damping_curve()<class_SpringBoneSimulator3D_method_set_radius_damping_curve>` 进行缩放,并缓存到关节列表中每个关节的设置中。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_radius_damping_curve:
.. rst-class:: classref-method
|void| **set_radius_damping_curve**\ (\ index\: :ref:`int<class_int>`, curve\: :ref:`Curve<class_Curve>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_radius_damping_curve>`
设置骨骼链的关节半径阻尼曲线。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_root_bone:
.. rst-class:: classref-method
|void| **set_root_bone**\ (\ index\: :ref:`int<class_int>`, bone\: :ref:`int<class_int>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_root_bone>`
设置骨骼链中根骨骼的索引。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_root_bone_name:
.. rst-class:: classref-method
|void| **set_root_bone_name**\ (\ index\: :ref:`int<class_int>`, bone_name\: :ref:`String<class_String>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_root_bone_name>`
设置骨骼链中根骨骼的名称。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_rotation_axis:
.. rst-class:: classref-method
|void| **set_rotation_axis**\ (\ index\: :ref:`int<class_int>`, axis\: :ref:`RotationAxis<enum_SkeletonModifier3D_RotationAxis>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_rotation_axis>`
Sets the rotation axis of the bone chain. If set to a specific axis, it acts like a hinge joint. The value is cached in each joint setting in the joint list.
The axes are based on the :ref:`Skeleton3D.get_bone_rest()<class_Skeleton3D_method_get_bone_rest>`'s space, if ``axis`` is :ref:`SkeletonModifier3D.ROTATION_AXIS_CUSTOM<class_SkeletonModifier3D_constant_ROTATION_AXIS_CUSTOM>`, you can specify any axis.
\ **Note:** The rotation axis vector and the forward vector shouldn't be colinear to avoid unintended rotation since **SpringBoneSimulator3D** does not factor in twisting forces.
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_rotation_axis_vector:
.. rst-class:: classref-method
|void| **set_rotation_axis_vector**\ (\ index\: :ref:`int<class_int>`, vector\: :ref:`Vector3<class_Vector3>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_rotation_axis_vector>`
Sets the rotation axis vector of the bone chain. The value is cached in each joint setting in the joint list.
This vector is normalized by an internal process and represents the axis around which the bone chain can rotate.
If the vector length is ``0``, it is considered synonymous with :ref:`SkeletonModifier3D.ROTATION_AXIS_ALL<class_SkeletonModifier3D_constant_ROTATION_AXIS_ALL>`.
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_stiffness:
.. rst-class:: classref-method
|void| **set_stiffness**\ (\ index\: :ref:`int<class_int>`, stiffness\: :ref:`float<class_float>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_stiffness>`
设置骨骼链的刚度力。值越大,恢复到初始姿势的速度越快。
如果 ``stiffness````0``\ ,则修改后的姿势不会返回到原始姿势。
该值由 :ref:`set_stiffness_damping_curve()<class_SpringBoneSimulator3D_method_set_stiffness_damping_curve>` 进行缩放,并缓存到关节列表中每个关节的设置中。
.. rst-class:: classref-item-separator
----
.. _class_SpringBoneSimulator3D_method_set_stiffness_damping_curve:
.. rst-class:: classref-method
|void| **set_stiffness_damping_curve**\ (\ index\: :ref:`int<class_int>`, curve\: :ref:`Curve<class_Curve>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_stiffness_damping_curve>`
设置骨骼链的刚度力阻尼曲线。
.. |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 (无返回值。)`