class_springbonesimulator3d.rst 89 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304
  1. :github_url: hide
  2. .. DO NOT EDIT THIS FILE!!!
  3. .. Generated automatically from Godot engine sources.
  4. .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/SpringBoneSimulator3D.xml.
  6. .. _class_SpringBoneSimulator3D:
  7. SpringBoneSimulator3D
  8. =====================
  9. **Inherits:** :ref:`SkeletonModifier3D<class_SkeletonModifier3D>` **<** :ref:`Node3D<class_Node3D>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
  10. A :ref:`SkeletonModifier3D<class_SkeletonModifier3D>` to apply inertial wavering to bone chains.
  11. .. rst-class:: classref-introduction-group
  12. Description
  13. -----------
  14. This :ref:`SkeletonModifier3D<class_SkeletonModifier3D>` can be used to wiggle hair, cloth, and tails. This modifier behaves differently from :ref:`PhysicalBoneSimulator3D<class_PhysicalBoneSimulator3D>` as it attempts to return the original pose after modification.
  15. If you setup :ref:`set_root_bone()<class_SpringBoneSimulator3D_method_set_root_bone>` and :ref:`set_end_bone()<class_SpringBoneSimulator3D_method_set_end_bone>`, it is treated as one bone chain. Note that it does not support a branched chain like Y-shaped chains.
  16. When a bone chain is created, an array is generated from the bones that exist in between and listed in the joint list.
  17. Several properties can be applied to each joint, such as :ref:`set_joint_stiffness()<class_SpringBoneSimulator3D_method_set_joint_stiffness>`, :ref:`set_joint_drag()<class_SpringBoneSimulator3D_method_set_joint_drag>`, and :ref:`set_joint_gravity()<class_SpringBoneSimulator3D_method_set_joint_gravity>`.
  18. For simplicity, you can set values to all joints at the same time by using a :ref:`Curve<class_Curve>`. If you want to specify detailed values individually, set :ref:`set_individual_config()<class_SpringBoneSimulator3D_method_set_individual_config>` to ``true``.
  19. For physical simulation, **SpringBoneSimulator3D** can have children as self-standing collisions that are not related to :ref:`PhysicsServer3D<class_PhysicsServer3D>`, see also :ref:`SpringBoneCollision3D<class_SpringBoneCollision3D>`.
  20. \ **Warning:** A scaled **SpringBoneSimulator3D** will likely not behave as expected. Make sure that the parent :ref:`Skeleton3D<class_Skeleton3D>` and its bones are not scaled.
  21. .. rst-class:: classref-reftable-group
  22. Properties
  23. ----------
  24. .. table::
  25. :widths: auto
  26. +-------------------------------+----------------------------------------------------------------------------------+----------------------+
  27. | :ref:`Vector3<class_Vector3>` | :ref:`external_force<class_SpringBoneSimulator3D_property_external_force>` | ``Vector3(0, 0, 0)`` |
  28. +-------------------------------+----------------------------------------------------------------------------------+----------------------+
  29. | :ref:`bool<class_bool>` | :ref:`mutable_bone_axes<class_SpringBoneSimulator3D_property_mutable_bone_axes>` | ``true`` |
  30. +-------------------------------+----------------------------------------------------------------------------------+----------------------+
  31. | :ref:`int<class_int>` | :ref:`setting_count<class_SpringBoneSimulator3D_property_setting_count>` | ``0`` |
  32. +-------------------------------+----------------------------------------------------------------------------------+----------------------+
  33. .. rst-class:: classref-reftable-group
  34. Methods
  35. -------
  36. .. table::
  37. :widths: auto
  38. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  39. | :ref:`bool<class_bool>` | :ref:`are_all_child_collisions_enabled<class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  40. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  41. | |void| | :ref:`clear_collisions<class_SpringBoneSimulator3D_method_clear_collisions>`\ (\ index\: :ref:`int<class_int>`\ ) |
  42. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  43. | |void| | :ref:`clear_exclude_collisions<class_SpringBoneSimulator3D_method_clear_exclude_collisions>`\ (\ index\: :ref:`int<class_int>`\ ) |
  44. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  45. | |void| | :ref:`clear_settings<class_SpringBoneSimulator3D_method_clear_settings>`\ (\ ) |
  46. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  47. | :ref:`int<class_int>` | :ref:`get_center_bone<class_SpringBoneSimulator3D_method_get_center_bone>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  48. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  49. | :ref:`String<class_String>` | :ref:`get_center_bone_name<class_SpringBoneSimulator3D_method_get_center_bone_name>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  50. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  51. | :ref:`CenterFrom<enum_SpringBoneSimulator3D_CenterFrom>` | :ref:`get_center_from<class_SpringBoneSimulator3D_method_get_center_from>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  52. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  53. | :ref:`NodePath<class_NodePath>` | :ref:`get_center_node<class_SpringBoneSimulator3D_method_get_center_node>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  54. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  55. | :ref:`int<class_int>` | :ref:`get_collision_count<class_SpringBoneSimulator3D_method_get_collision_count>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  56. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  57. | :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| |
  58. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  59. | :ref:`float<class_float>` | :ref:`get_drag<class_SpringBoneSimulator3D_method_get_drag>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  60. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  61. | :ref:`Curve<class_Curve>` | :ref:`get_drag_damping_curve<class_SpringBoneSimulator3D_method_get_drag_damping_curve>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  62. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  63. | :ref:`int<class_int>` | :ref:`get_end_bone<class_SpringBoneSimulator3D_method_get_end_bone>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  64. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  65. | :ref:`BoneDirection<enum_SkeletonModifier3D_BoneDirection>` | :ref:`get_end_bone_direction<class_SpringBoneSimulator3D_method_get_end_bone_direction>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  66. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  67. | :ref:`float<class_float>` | :ref:`get_end_bone_length<class_SpringBoneSimulator3D_method_get_end_bone_length>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  68. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  69. | :ref:`String<class_String>` | :ref:`get_end_bone_name<class_SpringBoneSimulator3D_method_get_end_bone_name>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  70. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  71. | :ref:`int<class_int>` | :ref:`get_exclude_collision_count<class_SpringBoneSimulator3D_method_get_exclude_collision_count>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  72. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  73. | :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| |
  74. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  75. | :ref:`float<class_float>` | :ref:`get_gravity<class_SpringBoneSimulator3D_method_get_gravity>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  76. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  77. | :ref:`Curve<class_Curve>` | :ref:`get_gravity_damping_curve<class_SpringBoneSimulator3D_method_get_gravity_damping_curve>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  78. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  79. | :ref:`Vector3<class_Vector3>` | :ref:`get_gravity_direction<class_SpringBoneSimulator3D_method_get_gravity_direction>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  80. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  81. | :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| |
  82. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  83. | :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| |
  84. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  85. | :ref:`int<class_int>` | :ref:`get_joint_count<class_SpringBoneSimulator3D_method_get_joint_count>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  86. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  87. | :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| |
  88. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  89. | :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| |
  90. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  91. | :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| |
  92. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  93. | :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| |
  94. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  95. | :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| |
  96. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  97. | :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| |
  98. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  99. | :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| |
  100. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  101. | :ref:`float<class_float>` | :ref:`get_radius<class_SpringBoneSimulator3D_method_get_radius>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  102. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  103. | :ref:`Curve<class_Curve>` | :ref:`get_radius_damping_curve<class_SpringBoneSimulator3D_method_get_radius_damping_curve>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  104. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  105. | :ref:`int<class_int>` | :ref:`get_root_bone<class_SpringBoneSimulator3D_method_get_root_bone>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  106. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  107. | :ref:`String<class_String>` | :ref:`get_root_bone_name<class_SpringBoneSimulator3D_method_get_root_bone_name>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  108. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  109. | :ref:`RotationAxis<enum_SkeletonModifier3D_RotationAxis>` | :ref:`get_rotation_axis<class_SpringBoneSimulator3D_method_get_rotation_axis>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  110. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  111. | :ref:`Vector3<class_Vector3>` | :ref:`get_rotation_axis_vector<class_SpringBoneSimulator3D_method_get_rotation_axis_vector>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  112. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  113. | :ref:`float<class_float>` | :ref:`get_stiffness<class_SpringBoneSimulator3D_method_get_stiffness>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  114. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  115. | :ref:`Curve<class_Curve>` | :ref:`get_stiffness_damping_curve<class_SpringBoneSimulator3D_method_get_stiffness_damping_curve>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  116. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  117. | :ref:`bool<class_bool>` | :ref:`is_config_individual<class_SpringBoneSimulator3D_method_is_config_individual>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  118. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  119. | :ref:`bool<class_bool>` | :ref:`is_end_bone_extended<class_SpringBoneSimulator3D_method_is_end_bone_extended>`\ (\ index\: :ref:`int<class_int>`\ ) |const| |
  120. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  121. | |void| | :ref:`reset<class_SpringBoneSimulator3D_method_reset>`\ (\ ) |
  122. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  123. | |void| | :ref:`set_center_bone<class_SpringBoneSimulator3D_method_set_center_bone>`\ (\ index\: :ref:`int<class_int>`, bone\: :ref:`int<class_int>`\ ) |
  124. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  125. | |void| | :ref:`set_center_bone_name<class_SpringBoneSimulator3D_method_set_center_bone_name>`\ (\ index\: :ref:`int<class_int>`, bone_name\: :ref:`String<class_String>`\ ) |
  126. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  127. | |void| | :ref:`set_center_from<class_SpringBoneSimulator3D_method_set_center_from>`\ (\ index\: :ref:`int<class_int>`, center_from\: :ref:`CenterFrom<enum_SpringBoneSimulator3D_CenterFrom>`\ ) |
  128. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  129. | |void| | :ref:`set_center_node<class_SpringBoneSimulator3D_method_set_center_node>`\ (\ index\: :ref:`int<class_int>`, node_path\: :ref:`NodePath<class_NodePath>`\ ) |
  130. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  131. | |void| | :ref:`set_collision_count<class_SpringBoneSimulator3D_method_set_collision_count>`\ (\ index\: :ref:`int<class_int>`, count\: :ref:`int<class_int>`\ ) |
  132. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  133. | |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>`\ ) |
  134. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  135. | |void| | :ref:`set_drag<class_SpringBoneSimulator3D_method_set_drag>`\ (\ index\: :ref:`int<class_int>`, drag\: :ref:`float<class_float>`\ ) |
  136. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  137. | |void| | :ref:`set_drag_damping_curve<class_SpringBoneSimulator3D_method_set_drag_damping_curve>`\ (\ index\: :ref:`int<class_int>`, curve\: :ref:`Curve<class_Curve>`\ ) |
  138. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  139. | |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>`\ ) |
  140. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  141. | |void| | :ref:`set_end_bone<class_SpringBoneSimulator3D_method_set_end_bone>`\ (\ index\: :ref:`int<class_int>`, bone\: :ref:`int<class_int>`\ ) |
  142. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  143. | |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>`\ ) |
  144. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  145. | |void| | :ref:`set_end_bone_length<class_SpringBoneSimulator3D_method_set_end_bone_length>`\ (\ index\: :ref:`int<class_int>`, length\: :ref:`float<class_float>`\ ) |
  146. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  147. | |void| | :ref:`set_end_bone_name<class_SpringBoneSimulator3D_method_set_end_bone_name>`\ (\ index\: :ref:`int<class_int>`, bone_name\: :ref:`String<class_String>`\ ) |
  148. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  149. | |void| | :ref:`set_exclude_collision_count<class_SpringBoneSimulator3D_method_set_exclude_collision_count>`\ (\ index\: :ref:`int<class_int>`, count\: :ref:`int<class_int>`\ ) |
  150. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  151. | |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>`\ ) |
  152. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  153. | |void| | :ref:`set_extend_end_bone<class_SpringBoneSimulator3D_method_set_extend_end_bone>`\ (\ index\: :ref:`int<class_int>`, enabled\: :ref:`bool<class_bool>`\ ) |
  154. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  155. | |void| | :ref:`set_gravity<class_SpringBoneSimulator3D_method_set_gravity>`\ (\ index\: :ref:`int<class_int>`, gravity\: :ref:`float<class_float>`\ ) |
  156. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  157. | |void| | :ref:`set_gravity_damping_curve<class_SpringBoneSimulator3D_method_set_gravity_damping_curve>`\ (\ index\: :ref:`int<class_int>`, curve\: :ref:`Curve<class_Curve>`\ ) |
  158. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  159. | |void| | :ref:`set_gravity_direction<class_SpringBoneSimulator3D_method_set_gravity_direction>`\ (\ index\: :ref:`int<class_int>`, gravity_direction\: :ref:`Vector3<class_Vector3>`\ ) |
  160. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  161. | |void| | :ref:`set_individual_config<class_SpringBoneSimulator3D_method_set_individual_config>`\ (\ index\: :ref:`int<class_int>`, enabled\: :ref:`bool<class_bool>`\ ) |
  162. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  163. | |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>`\ ) |
  164. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  165. | |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>`\ ) |
  166. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  167. | |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>`\ ) |
  168. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  169. | |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>`\ ) |
  170. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  171. | |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>`\ ) |
  172. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  173. | |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>`\ ) |
  174. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  175. | |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>`\ ) |
  176. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  177. | |void| | :ref:`set_radius<class_SpringBoneSimulator3D_method_set_radius>`\ (\ index\: :ref:`int<class_int>`, radius\: :ref:`float<class_float>`\ ) |
  178. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  179. | |void| | :ref:`set_radius_damping_curve<class_SpringBoneSimulator3D_method_set_radius_damping_curve>`\ (\ index\: :ref:`int<class_int>`, curve\: :ref:`Curve<class_Curve>`\ ) |
  180. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  181. | |void| | :ref:`set_root_bone<class_SpringBoneSimulator3D_method_set_root_bone>`\ (\ index\: :ref:`int<class_int>`, bone\: :ref:`int<class_int>`\ ) |
  182. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  183. | |void| | :ref:`set_root_bone_name<class_SpringBoneSimulator3D_method_set_root_bone_name>`\ (\ index\: :ref:`int<class_int>`, bone_name\: :ref:`String<class_String>`\ ) |
  184. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  185. | |void| | :ref:`set_rotation_axis<class_SpringBoneSimulator3D_method_set_rotation_axis>`\ (\ index\: :ref:`int<class_int>`, axis\: :ref:`RotationAxis<enum_SkeletonModifier3D_RotationAxis>`\ ) |
  186. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  187. | |void| | :ref:`set_rotation_axis_vector<class_SpringBoneSimulator3D_method_set_rotation_axis_vector>`\ (\ index\: :ref:`int<class_int>`, vector\: :ref:`Vector3<class_Vector3>`\ ) |
  188. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  189. | |void| | :ref:`set_stiffness<class_SpringBoneSimulator3D_method_set_stiffness>`\ (\ index\: :ref:`int<class_int>`, stiffness\: :ref:`float<class_float>`\ ) |
  190. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  191. | |void| | :ref:`set_stiffness_damping_curve<class_SpringBoneSimulator3D_method_set_stiffness_damping_curve>`\ (\ index\: :ref:`int<class_int>`, curve\: :ref:`Curve<class_Curve>`\ ) |
  192. +-------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  193. .. rst-class:: classref-section-separator
  194. ----
  195. .. rst-class:: classref-descriptions-group
  196. Enumerations
  197. ------------
  198. .. _enum_SpringBoneSimulator3D_CenterFrom:
  199. .. rst-class:: classref-enumeration
  200. enum **CenterFrom**: :ref:`🔗<enum_SpringBoneSimulator3D_CenterFrom>`
  201. .. _class_SpringBoneSimulator3D_constant_CENTER_FROM_WORLD_ORIGIN:
  202. .. rst-class:: classref-enumeration-constant
  203. :ref:`CenterFrom<enum_SpringBoneSimulator3D_CenterFrom>` **CENTER_FROM_WORLD_ORIGIN** = ``0``
  204. The world origin is defined as center.
  205. .. _class_SpringBoneSimulator3D_constant_CENTER_FROM_NODE:
  206. .. rst-class:: classref-enumeration-constant
  207. :ref:`CenterFrom<enum_SpringBoneSimulator3D_CenterFrom>` **CENTER_FROM_NODE** = ``1``
  208. The :ref:`Node3D<class_Node3D>` specified by :ref:`set_center_node()<class_SpringBoneSimulator3D_method_set_center_node>` is defined as center.
  209. If :ref:`Node3D<class_Node3D>` is not found, the parent :ref:`Skeleton3D<class_Skeleton3D>` is treated as center.
  210. .. _class_SpringBoneSimulator3D_constant_CENTER_FROM_BONE:
  211. .. rst-class:: classref-enumeration-constant
  212. :ref:`CenterFrom<enum_SpringBoneSimulator3D_CenterFrom>` **CENTER_FROM_BONE** = ``2``
  213. The bone pose origin of the parent :ref:`Skeleton3D<class_Skeleton3D>` specified by :ref:`set_center_bone()<class_SpringBoneSimulator3D_method_set_center_bone>` is defined as center.
  214. If :ref:`Node3D<class_Node3D>` is not found, the parent :ref:`Skeleton3D<class_Skeleton3D>` is treated as center.
  215. .. rst-class:: classref-section-separator
  216. ----
  217. .. rst-class:: classref-descriptions-group
  218. Property Descriptions
  219. ---------------------
  220. .. _class_SpringBoneSimulator3D_property_external_force:
  221. .. rst-class:: classref-property
  222. :ref:`Vector3<class_Vector3>` **external_force** = ``Vector3(0, 0, 0)`` :ref:`🔗<class_SpringBoneSimulator3D_property_external_force>`
  223. .. rst-class:: classref-property-setget
  224. - |void| **set_external_force**\ (\ value\: :ref:`Vector3<class_Vector3>`\ )
  225. - :ref:`Vector3<class_Vector3>` **get_external_force**\ (\ )
  226. The constant force that always affected bones. It is equal to the result when the parent :ref:`Skeleton3D<class_Skeleton3D>` moves at this speed in the opposite direction.
  227. This is useful for effects such as wind and anti-gravity.
  228. .. rst-class:: classref-item-separator
  229. ----
  230. .. _class_SpringBoneSimulator3D_property_mutable_bone_axes:
  231. .. rst-class:: classref-property
  232. :ref:`bool<class_bool>` **mutable_bone_axes** = ``true`` :ref:`🔗<class_SpringBoneSimulator3D_property_mutable_bone_axes>`
  233. .. rst-class:: classref-property-setget
  234. - |void| **set_mutable_bone_axes**\ (\ value\: :ref:`bool<class_bool>`\ )
  235. - :ref:`bool<class_bool>` **are_bone_axes_mutable**\ (\ )
  236. If ``true``, the solver retrieves the bone axis from the bone pose every frame.
  237. 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.
  238. .. rst-class:: classref-item-separator
  239. ----
  240. .. _class_SpringBoneSimulator3D_property_setting_count:
  241. .. rst-class:: classref-property
  242. :ref:`int<class_int>` **setting_count** = ``0`` :ref:`🔗<class_SpringBoneSimulator3D_property_setting_count>`
  243. .. rst-class:: classref-property-setget
  244. - |void| **set_setting_count**\ (\ value\: :ref:`int<class_int>`\ )
  245. - :ref:`int<class_int>` **get_setting_count**\ (\ )
  246. The number of settings.
  247. .. rst-class:: classref-section-separator
  248. ----
  249. .. rst-class:: classref-descriptions-group
  250. Method Descriptions
  251. -------------------
  252. .. _class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled:
  253. .. rst-class:: classref-method
  254. :ref:`bool<class_bool>` **are_all_child_collisions_enabled**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled>`
  255. Returns ``true`` if all child :ref:`SpringBoneCollision3D<class_SpringBoneCollision3D>`\ s are contained in the collision list at ``index`` in the settings.
  256. .. rst-class:: classref-item-separator
  257. ----
  258. .. _class_SpringBoneSimulator3D_method_clear_collisions:
  259. .. rst-class:: classref-method
  260. |void| **clear_collisions**\ (\ index\: :ref:`int<class_int>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_clear_collisions>`
  261. Clears all collisions from the collision list at ``index`` in the settings when :ref:`are_all_child_collisions_enabled()<class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled>` is ``false``.
  262. .. rst-class:: classref-item-separator
  263. ----
  264. .. _class_SpringBoneSimulator3D_method_clear_exclude_collisions:
  265. .. rst-class:: classref-method
  266. |void| **clear_exclude_collisions**\ (\ index\: :ref:`int<class_int>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_clear_exclude_collisions>`
  267. Clears all exclude collisions from the collision list at ``index`` in the settings when :ref:`are_all_child_collisions_enabled()<class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled>` is ``true``.
  268. .. rst-class:: classref-item-separator
  269. ----
  270. .. _class_SpringBoneSimulator3D_method_clear_settings:
  271. .. rst-class:: classref-method
  272. |void| **clear_settings**\ (\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_clear_settings>`
  273. Clears all settings.
  274. .. rst-class:: classref-item-separator
  275. ----
  276. .. _class_SpringBoneSimulator3D_method_get_center_bone:
  277. .. rst-class:: classref-method
  278. :ref:`int<class_int>` **get_center_bone**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_center_bone>`
  279. Returns the center bone index of the bone chain.
  280. .. rst-class:: classref-item-separator
  281. ----
  282. .. _class_SpringBoneSimulator3D_method_get_center_bone_name:
  283. .. rst-class:: classref-method
  284. :ref:`String<class_String>` **get_center_bone_name**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_center_bone_name>`
  285. Returns the center bone name of the bone chain.
  286. .. rst-class:: classref-item-separator
  287. ----
  288. .. _class_SpringBoneSimulator3D_method_get_center_from:
  289. .. rst-class:: classref-method
  290. :ref:`CenterFrom<enum_SpringBoneSimulator3D_CenterFrom>` **get_center_from**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_center_from>`
  291. Returns what the center originates from in the bone chain.
  292. .. rst-class:: classref-item-separator
  293. ----
  294. .. _class_SpringBoneSimulator3D_method_get_center_node:
  295. .. rst-class:: classref-method
  296. :ref:`NodePath<class_NodePath>` **get_center_node**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_center_node>`
  297. Returns the center node path of the bone chain.
  298. .. rst-class:: classref-item-separator
  299. ----
  300. .. _class_SpringBoneSimulator3D_method_get_collision_count:
  301. .. rst-class:: classref-method
  302. :ref:`int<class_int>` **get_collision_count**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_collision_count>`
  303. Returns the collision count of the bone chain's collision list when :ref:`are_all_child_collisions_enabled()<class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled>` is ``false``.
  304. .. rst-class:: classref-item-separator
  305. ----
  306. .. _class_SpringBoneSimulator3D_method_get_collision_path:
  307. .. rst-class:: classref-method
  308. :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>`
  309. Returns the node path of the :ref:`SpringBoneCollision3D<class_SpringBoneCollision3D>` at ``collision`` in the bone chain's collision list when :ref:`are_all_child_collisions_enabled()<class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled>` is ``false``.
  310. .. rst-class:: classref-item-separator
  311. ----
  312. .. _class_SpringBoneSimulator3D_method_get_drag:
  313. .. rst-class:: classref-method
  314. :ref:`float<class_float>` **get_drag**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_drag>`
  315. Returns the drag force damping curve of the bone chain.
  316. .. rst-class:: classref-item-separator
  317. ----
  318. .. _class_SpringBoneSimulator3D_method_get_drag_damping_curve:
  319. .. rst-class:: classref-method
  320. :ref:`Curve<class_Curve>` **get_drag_damping_curve**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_drag_damping_curve>`
  321. Returns the drag force damping curve of the bone chain.
  322. .. rst-class:: classref-item-separator
  323. ----
  324. .. _class_SpringBoneSimulator3D_method_get_end_bone:
  325. .. rst-class:: classref-method
  326. :ref:`int<class_int>` **get_end_bone**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_end_bone>`
  327. Returns the end bone index of the bone chain.
  328. .. rst-class:: classref-item-separator
  329. ----
  330. .. _class_SpringBoneSimulator3D_method_get_end_bone_direction:
  331. .. rst-class:: classref-method
  332. :ref:`BoneDirection<enum_SkeletonModifier3D_BoneDirection>` **get_end_bone_direction**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_end_bone_direction>`
  333. 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``.
  334. .. rst-class:: classref-item-separator
  335. ----
  336. .. _class_SpringBoneSimulator3D_method_get_end_bone_length:
  337. .. rst-class:: classref-method
  338. :ref:`float<class_float>` **get_end_bone_length**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_end_bone_length>`
  339. 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``.
  340. .. rst-class:: classref-item-separator
  341. ----
  342. .. _class_SpringBoneSimulator3D_method_get_end_bone_name:
  343. .. rst-class:: classref-method
  344. :ref:`String<class_String>` **get_end_bone_name**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_end_bone_name>`
  345. Returns the end bone name of the bone chain.
  346. .. rst-class:: classref-item-separator
  347. ----
  348. .. _class_SpringBoneSimulator3D_method_get_exclude_collision_count:
  349. .. rst-class:: classref-method
  350. :ref:`int<class_int>` **get_exclude_collision_count**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_exclude_collision_count>`
  351. Returns the exclude collision count of the bone chain's exclude collision list when :ref:`are_all_child_collisions_enabled()<class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled>` is ``true``.
  352. .. rst-class:: classref-item-separator
  353. ----
  354. .. _class_SpringBoneSimulator3D_method_get_exclude_collision_path:
  355. .. rst-class:: classref-method
  356. :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>`
  357. Returns the node path of the :ref:`SpringBoneCollision3D<class_SpringBoneCollision3D>` at ``collision`` in the bone chain's exclude collision list when :ref:`are_all_child_collisions_enabled()<class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled>` is ``true``.
  358. .. rst-class:: classref-item-separator
  359. ----
  360. .. _class_SpringBoneSimulator3D_method_get_gravity:
  361. .. rst-class:: classref-method
  362. :ref:`float<class_float>` **get_gravity**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_gravity>`
  363. Returns the gravity amount of the bone chain.
  364. .. rst-class:: classref-item-separator
  365. ----
  366. .. _class_SpringBoneSimulator3D_method_get_gravity_damping_curve:
  367. .. rst-class:: classref-method
  368. :ref:`Curve<class_Curve>` **get_gravity_damping_curve**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_gravity_damping_curve>`
  369. Returns the gravity amount damping curve of the bone chain.
  370. .. rst-class:: classref-item-separator
  371. ----
  372. .. _class_SpringBoneSimulator3D_method_get_gravity_direction:
  373. .. rst-class:: classref-method
  374. :ref:`Vector3<class_Vector3>` **get_gravity_direction**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_gravity_direction>`
  375. Returns the gravity direction of the bone chain.
  376. .. rst-class:: classref-item-separator
  377. ----
  378. .. _class_SpringBoneSimulator3D_method_get_joint_bone:
  379. .. rst-class:: classref-method
  380. :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>`
  381. Returns the bone index at ``joint`` in the bone chain's joint list.
  382. .. rst-class:: classref-item-separator
  383. ----
  384. .. _class_SpringBoneSimulator3D_method_get_joint_bone_name:
  385. .. rst-class:: classref-method
  386. :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>`
  387. Returns the bone name at ``joint`` in the bone chain's joint list.
  388. .. rst-class:: classref-item-separator
  389. ----
  390. .. _class_SpringBoneSimulator3D_method_get_joint_count:
  391. .. rst-class:: classref-method
  392. :ref:`int<class_int>` **get_joint_count**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_joint_count>`
  393. Returns the joint count of the bone chain's joint list.
  394. .. rst-class:: classref-item-separator
  395. ----
  396. .. _class_SpringBoneSimulator3D_method_get_joint_drag:
  397. .. rst-class:: classref-method
  398. :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>`
  399. Returns the drag force at ``joint`` in the bone chain's joint list.
  400. .. rst-class:: classref-item-separator
  401. ----
  402. .. _class_SpringBoneSimulator3D_method_get_joint_gravity:
  403. .. rst-class:: classref-method
  404. :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>`
  405. Returns the gravity amount at ``joint`` in the bone chain's joint list.
  406. .. rst-class:: classref-item-separator
  407. ----
  408. .. _class_SpringBoneSimulator3D_method_get_joint_gravity_direction:
  409. .. rst-class:: classref-method
  410. :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>`
  411. Returns the gravity direction at ``joint`` in the bone chain's joint list.
  412. .. rst-class:: classref-item-separator
  413. ----
  414. .. _class_SpringBoneSimulator3D_method_get_joint_radius:
  415. .. rst-class:: classref-method
  416. :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>`
  417. Returns the radius at ``joint`` in the bone chain's joint list.
  418. .. rst-class:: classref-item-separator
  419. ----
  420. .. _class_SpringBoneSimulator3D_method_get_joint_rotation_axis:
  421. .. rst-class:: classref-method
  422. :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>`
  423. Returns the rotation axis at ``joint`` in the bone chain's joint list.
  424. .. rst-class:: classref-item-separator
  425. ----
  426. .. _class_SpringBoneSimulator3D_method_get_joint_rotation_axis_vector:
  427. .. rst-class:: classref-method
  428. :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>`
  429. 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.
  430. 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)``.
  431. .. rst-class:: classref-item-separator
  432. ----
  433. .. _class_SpringBoneSimulator3D_method_get_joint_stiffness:
  434. .. rst-class:: classref-method
  435. :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>`
  436. Returns the stiffness force at ``joint`` in the bone chain's joint list.
  437. .. rst-class:: classref-item-separator
  438. ----
  439. .. _class_SpringBoneSimulator3D_method_get_radius:
  440. .. rst-class:: classref-method
  441. :ref:`float<class_float>` **get_radius**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_radius>`
  442. Returns the joint radius of the bone chain.
  443. .. rst-class:: classref-item-separator
  444. ----
  445. .. _class_SpringBoneSimulator3D_method_get_radius_damping_curve:
  446. .. rst-class:: classref-method
  447. :ref:`Curve<class_Curve>` **get_radius_damping_curve**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_radius_damping_curve>`
  448. Returns the joint radius damping curve of the bone chain.
  449. .. rst-class:: classref-item-separator
  450. ----
  451. .. _class_SpringBoneSimulator3D_method_get_root_bone:
  452. .. rst-class:: classref-method
  453. :ref:`int<class_int>` **get_root_bone**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_root_bone>`
  454. Returns the root bone index of the bone chain.
  455. .. rst-class:: classref-item-separator
  456. ----
  457. .. _class_SpringBoneSimulator3D_method_get_root_bone_name:
  458. .. rst-class:: classref-method
  459. :ref:`String<class_String>` **get_root_bone_name**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_root_bone_name>`
  460. Returns the root bone name of the bone chain.
  461. .. rst-class:: classref-item-separator
  462. ----
  463. .. _class_SpringBoneSimulator3D_method_get_rotation_axis:
  464. .. rst-class:: classref-method
  465. :ref:`RotationAxis<enum_SkeletonModifier3D_RotationAxis>` **get_rotation_axis**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_rotation_axis>`
  466. Returns the rotation axis of the bone chain.
  467. .. rst-class:: classref-item-separator
  468. ----
  469. .. _class_SpringBoneSimulator3D_method_get_rotation_axis_vector:
  470. .. rst-class:: classref-method
  471. :ref:`Vector3<class_Vector3>` **get_rotation_axis_vector**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_rotation_axis_vector>`
  472. 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.
  473. 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)``.
  474. .. rst-class:: classref-item-separator
  475. ----
  476. .. _class_SpringBoneSimulator3D_method_get_stiffness:
  477. .. rst-class:: classref-method
  478. :ref:`float<class_float>` **get_stiffness**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_stiffness>`
  479. Returns the stiffness force of the bone chain.
  480. .. rst-class:: classref-item-separator
  481. ----
  482. .. _class_SpringBoneSimulator3D_method_get_stiffness_damping_curve:
  483. .. rst-class:: classref-method
  484. :ref:`Curve<class_Curve>` **get_stiffness_damping_curve**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_get_stiffness_damping_curve>`
  485. Returns the stiffness force damping curve of the bone chain.
  486. .. rst-class:: classref-item-separator
  487. ----
  488. .. _class_SpringBoneSimulator3D_method_is_config_individual:
  489. .. rst-class:: classref-method
  490. :ref:`bool<class_bool>` **is_config_individual**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_is_config_individual>`
  491. Returns ``true`` if the config can be edited individually for each joint.
  492. .. rst-class:: classref-item-separator
  493. ----
  494. .. _class_SpringBoneSimulator3D_method_is_end_bone_extended:
  495. .. rst-class:: classref-method
  496. :ref:`bool<class_bool>` **is_end_bone_extended**\ (\ index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SpringBoneSimulator3D_method_is_end_bone_extended>`
  497. Returns ``true`` if the end bone is extended to have a tail.
  498. .. rst-class:: classref-item-separator
  499. ----
  500. .. _class_SpringBoneSimulator3D_method_reset:
  501. .. rst-class:: classref-method
  502. |void| **reset**\ (\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_reset>`
  503. Resets a simulating state with respect to the current bone pose.
  504. It is useful to prevent the simulation result getting violent. For example, calling this immediately after a call to :ref:`AnimationPlayer.play()<class_AnimationPlayer_method_play>` without a fading, or within the previous :ref:`SkeletonModifier3D.modification_processed<class_SkeletonModifier3D_signal_modification_processed>` signal if it's condition changes significantly.
  505. .. rst-class:: classref-item-separator
  506. ----
  507. .. _class_SpringBoneSimulator3D_method_set_center_bone:
  508. .. rst-class:: classref-method
  509. |void| **set_center_bone**\ (\ index\: :ref:`int<class_int>`, bone\: :ref:`int<class_int>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_center_bone>`
  510. Sets the center bone index of the bone chain.
  511. .. rst-class:: classref-item-separator
  512. ----
  513. .. _class_SpringBoneSimulator3D_method_set_center_bone_name:
  514. .. rst-class:: classref-method
  515. |void| **set_center_bone_name**\ (\ index\: :ref:`int<class_int>`, bone_name\: :ref:`String<class_String>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_center_bone_name>`
  516. Sets the center bone name of the bone chain.
  517. .. rst-class:: classref-item-separator
  518. ----
  519. .. _class_SpringBoneSimulator3D_method_set_center_from:
  520. .. rst-class:: classref-method
  521. |void| **set_center_from**\ (\ index\: :ref:`int<class_int>`, center_from\: :ref:`CenterFrom<enum_SpringBoneSimulator3D_CenterFrom>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_center_from>`
  522. Sets what the center originates from in the bone chain.
  523. Bone movement is calculated based on the difference in relative distance between center and bone in the previous and next frames.
  524. For example, if the parent :ref:`Skeleton3D<class_Skeleton3D>` is used as the center, the bones are considered to have not moved if the :ref:`Skeleton3D<class_Skeleton3D>` moves in the world.
  525. In this case, only a change in the bone pose is considered to be a bone movement.
  526. .. rst-class:: classref-item-separator
  527. ----
  528. .. _class_SpringBoneSimulator3D_method_set_center_node:
  529. .. rst-class:: classref-method
  530. |void| **set_center_node**\ (\ index\: :ref:`int<class_int>`, node_path\: :ref:`NodePath<class_NodePath>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_center_node>`
  531. Sets the center node path of the bone chain.
  532. .. rst-class:: classref-item-separator
  533. ----
  534. .. _class_SpringBoneSimulator3D_method_set_collision_count:
  535. .. rst-class:: classref-method
  536. |void| **set_collision_count**\ (\ index\: :ref:`int<class_int>`, count\: :ref:`int<class_int>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_collision_count>`
  537. Sets the number of collisions in the collision list at ``index`` in the settings when :ref:`are_all_child_collisions_enabled()<class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled>` is ``false``.
  538. .. rst-class:: classref-item-separator
  539. ----
  540. .. _class_SpringBoneSimulator3D_method_set_collision_path:
  541. .. rst-class:: classref-method
  542. |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>`
  543. Sets the node path of the :ref:`SpringBoneCollision3D<class_SpringBoneCollision3D>` at ``collision`` in the bone chain's collision list when :ref:`are_all_child_collisions_enabled()<class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled>` is ``false``.
  544. .. rst-class:: classref-item-separator
  545. ----
  546. .. _class_SpringBoneSimulator3D_method_set_drag:
  547. .. rst-class:: classref-method
  548. |void| **set_drag**\ (\ index\: :ref:`int<class_int>`, drag\: :ref:`float<class_float>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_drag>`
  549. Sets the drag force of the bone chain. The greater the value, the more suppressed the wiggling.
  550. The value is scaled by :ref:`set_drag_damping_curve()<class_SpringBoneSimulator3D_method_set_drag_damping_curve>` and cached in each joint setting in the joint list.
  551. .. rst-class:: classref-item-separator
  552. ----
  553. .. _class_SpringBoneSimulator3D_method_set_drag_damping_curve:
  554. .. rst-class:: classref-method
  555. |void| **set_drag_damping_curve**\ (\ index\: :ref:`int<class_int>`, curve\: :ref:`Curve<class_Curve>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_drag_damping_curve>`
  556. Sets the drag force damping curve of the bone chain.
  557. .. rst-class:: classref-item-separator
  558. ----
  559. .. _class_SpringBoneSimulator3D_method_set_enable_all_child_collisions:
  560. .. rst-class:: classref-method
  561. |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>`
  562. If ``enabled`` is ``true``, all child :ref:`SpringBoneCollision3D<class_SpringBoneCollision3D>`\ s are colliding and :ref:`set_exclude_collision_path()<class_SpringBoneSimulator3D_method_set_exclude_collision_path>` is enabled as an exclusion list at ``index`` in the settings.
  563. If ``enabled`` is ``false``, you need to manually register all valid collisions with :ref:`set_collision_path()<class_SpringBoneSimulator3D_method_set_collision_path>`.
  564. .. rst-class:: classref-item-separator
  565. ----
  566. .. _class_SpringBoneSimulator3D_method_set_end_bone:
  567. .. rst-class:: classref-method
  568. |void| **set_end_bone**\ (\ index\: :ref:`int<class_int>`, bone\: :ref:`int<class_int>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_end_bone>`
  569. Sets the end bone index of the bone chain.
  570. .. rst-class:: classref-item-separator
  571. ----
  572. .. _class_SpringBoneSimulator3D_method_set_end_bone_direction:
  573. .. rst-class:: classref-method
  574. |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>`
  575. Sets the end bone tail direction of the bone chain when :ref:`is_end_bone_extended()<class_SpringBoneSimulator3D_method_is_end_bone_extended>` is ``true``.
  576. .. rst-class:: classref-item-separator
  577. ----
  578. .. _class_SpringBoneSimulator3D_method_set_end_bone_length:
  579. .. rst-class:: classref-method
  580. |void| **set_end_bone_length**\ (\ index\: :ref:`int<class_int>`, length\: :ref:`float<class_float>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_end_bone_length>`
  581. Sets the end bone tail length of the bone chain when :ref:`is_end_bone_extended()<class_SpringBoneSimulator3D_method_is_end_bone_extended>` is ``true``.
  582. .. rst-class:: classref-item-separator
  583. ----
  584. .. _class_SpringBoneSimulator3D_method_set_end_bone_name:
  585. .. rst-class:: classref-method
  586. |void| **set_end_bone_name**\ (\ index\: :ref:`int<class_int>`, bone_name\: :ref:`String<class_String>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_end_bone_name>`
  587. Sets the end bone name of the bone chain.
  588. \ **Note:** End bone must be the root bone or a child of the root bone. If they are the same, the tail must be extended by :ref:`set_extend_end_bone()<class_SpringBoneSimulator3D_method_set_extend_end_bone>` to jiggle the bone.
  589. .. rst-class:: classref-item-separator
  590. ----
  591. .. _class_SpringBoneSimulator3D_method_set_exclude_collision_count:
  592. .. rst-class:: classref-method
  593. |void| **set_exclude_collision_count**\ (\ index\: :ref:`int<class_int>`, count\: :ref:`int<class_int>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_exclude_collision_count>`
  594. Sets the number of exclude collisions in the exclude collision list at ``index`` in the settings when :ref:`are_all_child_collisions_enabled()<class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled>` is ``true``.
  595. .. rst-class:: classref-item-separator
  596. ----
  597. .. _class_SpringBoneSimulator3D_method_set_exclude_collision_path:
  598. .. rst-class:: classref-method
  599. |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>`
  600. Sets the node path of the :ref:`SpringBoneCollision3D<class_SpringBoneCollision3D>` at ``collision`` in the bone chain's exclude collision list when :ref:`are_all_child_collisions_enabled()<class_SpringBoneSimulator3D_method_are_all_child_collisions_enabled>` is ``true``.
  601. .. rst-class:: classref-item-separator
  602. ----
  603. .. _class_SpringBoneSimulator3D_method_set_extend_end_bone:
  604. .. rst-class:: classref-method
  605. |void| **set_extend_end_bone**\ (\ index\: :ref:`int<class_int>`, enabled\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_extend_end_bone>`
  606. If ``enabled`` is ``true``, the end bone is extended to have a tail.
  607. 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.
  608. .. rst-class:: classref-item-separator
  609. ----
  610. .. _class_SpringBoneSimulator3D_method_set_gravity:
  611. .. rst-class:: classref-method
  612. |void| **set_gravity**\ (\ index\: :ref:`int<class_int>`, gravity\: :ref:`float<class_float>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_gravity>`
  613. Sets the gravity amount of the bone chain. This value is not an acceleration, but a constant velocity of movement in :ref:`set_gravity_direction()<class_SpringBoneSimulator3D_method_set_gravity_direction>`.
  614. If ``gravity`` is not ``0``, the modified pose will not return to the original pose since it is always affected by gravity.
  615. The value is scaled by :ref:`set_gravity_damping_curve()<class_SpringBoneSimulator3D_method_set_gravity_damping_curve>` and cached in each joint setting in the joint list.
  616. .. rst-class:: classref-item-separator
  617. ----
  618. .. _class_SpringBoneSimulator3D_method_set_gravity_damping_curve:
  619. .. rst-class:: classref-method
  620. |void| **set_gravity_damping_curve**\ (\ index\: :ref:`int<class_int>`, curve\: :ref:`Curve<class_Curve>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_gravity_damping_curve>`
  621. Sets the gravity amount damping curve of the bone chain.
  622. .. rst-class:: classref-item-separator
  623. ----
  624. .. _class_SpringBoneSimulator3D_method_set_gravity_direction:
  625. .. rst-class:: classref-method
  626. |void| **set_gravity_direction**\ (\ index\: :ref:`int<class_int>`, gravity_direction\: :ref:`Vector3<class_Vector3>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_gravity_direction>`
  627. Sets the gravity direction of the bone chain. This value is internally normalized and then multiplied by :ref:`set_gravity()<class_SpringBoneSimulator3D_method_set_gravity>`.
  628. The value is cached in each joint setting in the joint list.
  629. .. rst-class:: classref-item-separator
  630. ----
  631. .. _class_SpringBoneSimulator3D_method_set_individual_config:
  632. .. rst-class:: classref-method
  633. |void| **set_individual_config**\ (\ index\: :ref:`int<class_int>`, enabled\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_individual_config>`
  634. If ``enabled`` is ``true``, the config can be edited individually for each joint.
  635. .. rst-class:: classref-item-separator
  636. ----
  637. .. _class_SpringBoneSimulator3D_method_set_joint_drag:
  638. .. rst-class:: classref-method
  639. |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>`
  640. Sets the drag force at ``joint`` in the bone chain's joint list when :ref:`is_config_individual()<class_SpringBoneSimulator3D_method_is_config_individual>` is ``true``.
  641. .. rst-class:: classref-item-separator
  642. ----
  643. .. _class_SpringBoneSimulator3D_method_set_joint_gravity:
  644. .. rst-class:: classref-method
  645. |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>`
  646. Sets the gravity amount at ``joint`` in the bone chain's joint list when :ref:`is_config_individual()<class_SpringBoneSimulator3D_method_is_config_individual>` is ``true``.
  647. .. rst-class:: classref-item-separator
  648. ----
  649. .. _class_SpringBoneSimulator3D_method_set_joint_gravity_direction:
  650. .. rst-class:: classref-method
  651. |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>`
  652. Sets the gravity direction at ``joint`` in the bone chain's joint list when :ref:`is_config_individual()<class_SpringBoneSimulator3D_method_is_config_individual>` is ``true``.
  653. .. rst-class:: classref-item-separator
  654. ----
  655. .. _class_SpringBoneSimulator3D_method_set_joint_radius:
  656. .. rst-class:: classref-method
  657. |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>`
  658. Sets the joint radius at ``joint`` in the bone chain's joint list when :ref:`is_config_individual()<class_SpringBoneSimulator3D_method_is_config_individual>` is ``true``.
  659. .. rst-class:: classref-item-separator
  660. ----
  661. .. _class_SpringBoneSimulator3D_method_set_joint_rotation_axis:
  662. .. rst-class:: classref-method
  663. |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>`
  664. 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``.
  665. 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.
  666. \ **Note:** The rotation axis and the forward vector shouldn't be colinear to avoid unintended rotation since **SpringBoneSimulator3D** does not factor in twisting forces.
  667. .. rst-class:: classref-item-separator
  668. ----
  669. .. _class_SpringBoneSimulator3D_method_set_joint_rotation_axis_vector:
  670. .. rst-class:: classref-method
  671. |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>`
  672. Sets the rotation axis vector for the specified joint in the bone chain.
  673. This vector is normalized by an internal process and represents the axis around which the bone chain can rotate.
  674. If the vector length is ``0``, it is considered synonymous with :ref:`SkeletonModifier3D.ROTATION_AXIS_ALL<class_SkeletonModifier3D_constant_ROTATION_AXIS_ALL>`.
  675. .. rst-class:: classref-item-separator
  676. ----
  677. .. _class_SpringBoneSimulator3D_method_set_joint_stiffness:
  678. .. rst-class:: classref-method
  679. |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>`
  680. Sets the stiffness force at ``joint`` in the bone chain's joint list when :ref:`is_config_individual()<class_SpringBoneSimulator3D_method_is_config_individual>` is ``true``.
  681. .. rst-class:: classref-item-separator
  682. ----
  683. .. _class_SpringBoneSimulator3D_method_set_radius:
  684. .. rst-class:: classref-method
  685. |void| **set_radius**\ (\ index\: :ref:`int<class_int>`, radius\: :ref:`float<class_float>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_radius>`
  686. Sets the joint radius of the bone chain. It is used to move and slide with the :ref:`SpringBoneCollision3D<class_SpringBoneCollision3D>` in the collision list.
  687. The value is scaled by :ref:`set_radius_damping_curve()<class_SpringBoneSimulator3D_method_set_radius_damping_curve>` and cached in each joint setting in the joint list.
  688. .. rst-class:: classref-item-separator
  689. ----
  690. .. _class_SpringBoneSimulator3D_method_set_radius_damping_curve:
  691. .. rst-class:: classref-method
  692. |void| **set_radius_damping_curve**\ (\ index\: :ref:`int<class_int>`, curve\: :ref:`Curve<class_Curve>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_radius_damping_curve>`
  693. Sets the joint radius damping curve of the bone chain.
  694. .. rst-class:: classref-item-separator
  695. ----
  696. .. _class_SpringBoneSimulator3D_method_set_root_bone:
  697. .. rst-class:: classref-method
  698. |void| **set_root_bone**\ (\ index\: :ref:`int<class_int>`, bone\: :ref:`int<class_int>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_root_bone>`
  699. Sets the root bone index of the bone chain.
  700. .. rst-class:: classref-item-separator
  701. ----
  702. .. _class_SpringBoneSimulator3D_method_set_root_bone_name:
  703. .. rst-class:: classref-method
  704. |void| **set_root_bone_name**\ (\ index\: :ref:`int<class_int>`, bone_name\: :ref:`String<class_String>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_root_bone_name>`
  705. Sets the root bone name of the bone chain.
  706. .. rst-class:: classref-item-separator
  707. ----
  708. .. _class_SpringBoneSimulator3D_method_set_rotation_axis:
  709. .. rst-class:: classref-method
  710. |void| **set_rotation_axis**\ (\ index\: :ref:`int<class_int>`, axis\: :ref:`RotationAxis<enum_SkeletonModifier3D_RotationAxis>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_rotation_axis>`
  711. 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.
  712. 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.
  713. \ **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.
  714. .. rst-class:: classref-item-separator
  715. ----
  716. .. _class_SpringBoneSimulator3D_method_set_rotation_axis_vector:
  717. .. rst-class:: classref-method
  718. |void| **set_rotation_axis_vector**\ (\ index\: :ref:`int<class_int>`, vector\: :ref:`Vector3<class_Vector3>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_rotation_axis_vector>`
  719. Sets the rotation axis vector of the bone chain. The value is cached in each joint setting in the joint list.
  720. This vector is normalized by an internal process and represents the axis around which the bone chain can rotate.
  721. If the vector length is ``0``, it is considered synonymous with :ref:`SkeletonModifier3D.ROTATION_AXIS_ALL<class_SkeletonModifier3D_constant_ROTATION_AXIS_ALL>`.
  722. .. rst-class:: classref-item-separator
  723. ----
  724. .. _class_SpringBoneSimulator3D_method_set_stiffness:
  725. .. rst-class:: classref-method
  726. |void| **set_stiffness**\ (\ index\: :ref:`int<class_int>`, stiffness\: :ref:`float<class_float>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_stiffness>`
  727. Sets the stiffness force of the bone chain. The greater the value, the faster it recovers to its initial pose.
  728. If ``stiffness`` is ``0``, the modified pose will not return to the original pose.
  729. The value is scaled by :ref:`set_stiffness_damping_curve()<class_SpringBoneSimulator3D_method_set_stiffness_damping_curve>` and cached in each joint setting in the joint list.
  730. .. rst-class:: classref-item-separator
  731. ----
  732. .. _class_SpringBoneSimulator3D_method_set_stiffness_damping_curve:
  733. .. rst-class:: classref-method
  734. |void| **set_stiffness_damping_curve**\ (\ index\: :ref:`int<class_int>`, curve\: :ref:`Curve<class_Curve>`\ ) :ref:`🔗<class_SpringBoneSimulator3D_method_set_stiffness_damping_curve>`
  735. Sets the stiffness force damping curve of the bone chain.
  736. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  737. .. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
  738. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  739. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  740. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  741. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  742. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`
  743. .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)`
  744. .. |void| replace:: :abbr:`void (No return value.)`