class_skeleton.rst 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. .. Generated automatically by doc/tools/makerst.py in Godot's source tree.
  2. .. DO NOT EDIT THIS FILE, but the Skeleton.xml source instead.
  3. .. The source is found in doc/classes or modules/<name>/doc_classes.
  4. .. _class_Skeleton:
  5. Skeleton
  6. ========
  7. **Inherits:** :ref:`Spatial<class_spatial>` **<** :ref:`Node<class_node>` **<** :ref:`Object<class_object>`
  8. **Category:** Core
  9. Brief Description
  10. -----------------
  11. Skeleton for characters and animated objects.
  12. Member Functions
  13. ----------------
  14. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  15. | void | :ref:`add_bone<class_Skeleton_add_bone>` **(** :ref:`String<class_string>` name **)** |
  16. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  17. | void | :ref:`bind_child_node_to_bone<class_Skeleton_bind_child_node_to_bone>` **(** :ref:`int<class_int>` bone_idx, :ref:`Node<class_node>` node **)** |
  18. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  19. | void | :ref:`clear_bones<class_Skeleton_clear_bones>` **(** **)** |
  20. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  21. | :ref:`int<class_int>` | :ref:`find_bone<class_Skeleton_find_bone>` **(** :ref:`String<class_string>` name **)** const |
  22. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  23. | :ref:`int<class_int>` | :ref:`get_bone_count<class_Skeleton_get_bone_count>` **(** **)** const |
  24. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  25. | :ref:`Transform<class_transform>` | :ref:`get_bone_custom_pose<class_Skeleton_get_bone_custom_pose>` **(** :ref:`int<class_int>` bone_idx **)** const |
  26. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  27. | :ref:`Transform<class_transform>` | :ref:`get_bone_global_pose<class_Skeleton_get_bone_global_pose>` **(** :ref:`int<class_int>` bone_idx **)** const |
  28. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  29. | :ref:`String<class_string>` | :ref:`get_bone_name<class_Skeleton_get_bone_name>` **(** :ref:`int<class_int>` bone_idx **)** const |
  30. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  31. | :ref:`int<class_int>` | :ref:`get_bone_parent<class_Skeleton_get_bone_parent>` **(** :ref:`int<class_int>` bone_idx **)** const |
  32. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  33. | :ref:`Transform<class_transform>` | :ref:`get_bone_pose<class_Skeleton_get_bone_pose>` **(** :ref:`int<class_int>` bone_idx **)** const |
  34. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  35. | :ref:`Transform<class_transform>` | :ref:`get_bone_rest<class_Skeleton_get_bone_rest>` **(** :ref:`int<class_int>` bone_idx **)** const |
  36. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  37. | :ref:`Transform<class_transform>` | :ref:`get_bone_transform<class_Skeleton_get_bone_transform>` **(** :ref:`int<class_int>` bone_idx **)** const |
  38. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  39. | :ref:`Array<class_array>` | :ref:`get_bound_child_nodes_to_bone<class_Skeleton_get_bound_child_nodes_to_bone>` **(** :ref:`int<class_int>` bone_idx **)** const |
  40. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  41. | :ref:`bool<class_bool>` | :ref:`is_bone_rest_disabled<class_Skeleton_is_bone_rest_disabled>` **(** :ref:`int<class_int>` bone_idx **)** const |
  42. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  43. | void | :ref:`physical_bones_add_collision_exception<class_Skeleton_physical_bones_add_collision_exception>` **(** :ref:`RID<class_rid>` exception **)** |
  44. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  45. | void | :ref:`physical_bones_remove_collision_exception<class_Skeleton_physical_bones_remove_collision_exception>` **(** :ref:`RID<class_rid>` exception **)** |
  46. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  47. | void | :ref:`physical_bones_start_simulation<class_Skeleton_physical_bones_start_simulation>` **(** :ref:`Array<class_array>` bones=[ ] **)** |
  48. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  49. | void | :ref:`physical_bones_stop_simulation<class_Skeleton_physical_bones_stop_simulation>` **(** **)** |
  50. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  51. | void | :ref:`set_bone_custom_pose<class_Skeleton_set_bone_custom_pose>` **(** :ref:`int<class_int>` bone_idx, :ref:`Transform<class_transform>` custom_pose **)** |
  52. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  53. | void | :ref:`set_bone_disable_rest<class_Skeleton_set_bone_disable_rest>` **(** :ref:`int<class_int>` bone_idx, :ref:`bool<class_bool>` disable **)** |
  54. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  55. | void | :ref:`set_bone_global_pose<class_Skeleton_set_bone_global_pose>` **(** :ref:`int<class_int>` bone_idx, :ref:`Transform<class_transform>` pose **)** |
  56. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  57. | void | :ref:`set_bone_parent<class_Skeleton_set_bone_parent>` **(** :ref:`int<class_int>` bone_idx, :ref:`int<class_int>` parent_idx **)** |
  58. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  59. | void | :ref:`set_bone_pose<class_Skeleton_set_bone_pose>` **(** :ref:`int<class_int>` bone_idx, :ref:`Transform<class_transform>` pose **)** |
  60. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  61. | void | :ref:`set_bone_rest<class_Skeleton_set_bone_rest>` **(** :ref:`int<class_int>` bone_idx, :ref:`Transform<class_transform>` rest **)** |
  62. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  63. | void | :ref:`unbind_child_node_from_bone<class_Skeleton_unbind_child_node_from_bone>` **(** :ref:`int<class_int>` bone_idx, :ref:`Node<class_node>` node **)** |
  64. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  65. | void | :ref:`unparent_bone_and_rest<class_Skeleton_unparent_bone_and_rest>` **(** :ref:`int<class_int>` bone_idx **)** |
  66. +------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+
  67. Numeric Constants
  68. -----------------
  69. - **NOTIFICATION_UPDATE_SKELETON** = **50**
  70. Description
  71. -----------
  72. Skeleton provides a hierarchical interface for managing bones, including pose, rest and animation (see :ref:`Animation<class_animation>`). Skeleton will support rag doll dynamics in the future.
  73. Member Function Description
  74. ---------------------------
  75. .. _class_Skeleton_add_bone:
  76. - void **add_bone** **(** :ref:`String<class_string>` name **)**
  77. Add a bone, with name "name". :ref:`get_bone_count<class_Skeleton_get_bone_count>` will become the bone index.
  78. .. _class_Skeleton_bind_child_node_to_bone:
  79. - void **bind_child_node_to_bone** **(** :ref:`int<class_int>` bone_idx, :ref:`Node<class_node>` node **)**
  80. Deprecated soon.
  81. .. _class_Skeleton_clear_bones:
  82. - void **clear_bones** **(** **)**
  83. Clear all the bones in this skeleton.
  84. .. _class_Skeleton_find_bone:
  85. - :ref:`int<class_int>` **find_bone** **(** :ref:`String<class_string>` name **)** const
  86. Return the bone index that matches "name" as its name.
  87. .. _class_Skeleton_get_bone_count:
  88. - :ref:`int<class_int>` **get_bone_count** **(** **)** const
  89. Return the amount of bones in the skeleton.
  90. .. _class_Skeleton_get_bone_custom_pose:
  91. - :ref:`Transform<class_transform>` **get_bone_custom_pose** **(** :ref:`int<class_int>` bone_idx **)** const
  92. .. _class_Skeleton_get_bone_global_pose:
  93. - :ref:`Transform<class_transform>` **get_bone_global_pose** **(** :ref:`int<class_int>` bone_idx **)** const
  94. .. _class_Skeleton_get_bone_name:
  95. - :ref:`String<class_string>` **get_bone_name** **(** :ref:`int<class_int>` bone_idx **)** const
  96. Return the name of the bone at index "index"
  97. .. _class_Skeleton_get_bone_parent:
  98. - :ref:`int<class_int>` **get_bone_parent** **(** :ref:`int<class_int>` bone_idx **)** const
  99. Return the bone index which is the parent of the bone at "bone_idx". If -1, then bone has no parent. Note that the parent bone returned will always be less than "bone_idx".
  100. .. _class_Skeleton_get_bone_pose:
  101. - :ref:`Transform<class_transform>` **get_bone_pose** **(** :ref:`int<class_int>` bone_idx **)** const
  102. Return the pose transform for bone "bone_idx".
  103. .. _class_Skeleton_get_bone_rest:
  104. - :ref:`Transform<class_transform>` **get_bone_rest** **(** :ref:`int<class_int>` bone_idx **)** const
  105. Return the rest transform for a bone "bone_idx".
  106. .. _class_Skeleton_get_bone_transform:
  107. - :ref:`Transform<class_transform>` **get_bone_transform** **(** :ref:`int<class_int>` bone_idx **)** const
  108. .. _class_Skeleton_get_bound_child_nodes_to_bone:
  109. - :ref:`Array<class_array>` **get_bound_child_nodes_to_bone** **(** :ref:`int<class_int>` bone_idx **)** const
  110. Deprecated soon.
  111. .. _class_Skeleton_is_bone_rest_disabled:
  112. - :ref:`bool<class_bool>` **is_bone_rest_disabled** **(** :ref:`int<class_int>` bone_idx **)** const
  113. .. _class_Skeleton_physical_bones_add_collision_exception:
  114. - void **physical_bones_add_collision_exception** **(** :ref:`RID<class_rid>` exception **)**
  115. .. _class_Skeleton_physical_bones_remove_collision_exception:
  116. - void **physical_bones_remove_collision_exception** **(** :ref:`RID<class_rid>` exception **)**
  117. .. _class_Skeleton_physical_bones_start_simulation:
  118. - void **physical_bones_start_simulation** **(** :ref:`Array<class_array>` bones=[ ] **)**
  119. .. _class_Skeleton_physical_bones_stop_simulation:
  120. - void **physical_bones_stop_simulation** **(** **)**
  121. .. _class_Skeleton_set_bone_custom_pose:
  122. - void **set_bone_custom_pose** **(** :ref:`int<class_int>` bone_idx, :ref:`Transform<class_transform>` custom_pose **)**
  123. .. _class_Skeleton_set_bone_disable_rest:
  124. - void **set_bone_disable_rest** **(** :ref:`int<class_int>` bone_idx, :ref:`bool<class_bool>` disable **)**
  125. .. _class_Skeleton_set_bone_global_pose:
  126. - void **set_bone_global_pose** **(** :ref:`int<class_int>` bone_idx, :ref:`Transform<class_transform>` pose **)**
  127. .. _class_Skeleton_set_bone_parent:
  128. - void **set_bone_parent** **(** :ref:`int<class_int>` bone_idx, :ref:`int<class_int>` parent_idx **)**
  129. Set the bone index "parent_idx" as the parent of the bone at "bone_idx". If -1, then bone has no parent. Note: "parent_idx" must be less than "bone_idx".
  130. .. _class_Skeleton_set_bone_pose:
  131. - void **set_bone_pose** **(** :ref:`int<class_int>` bone_idx, :ref:`Transform<class_transform>` pose **)**
  132. Return the pose transform for bone "bone_idx".
  133. .. _class_Skeleton_set_bone_rest:
  134. - void **set_bone_rest** **(** :ref:`int<class_int>` bone_idx, :ref:`Transform<class_transform>` rest **)**
  135. Set the rest transform for bone "bone_idx"
  136. .. _class_Skeleton_unbind_child_node_from_bone:
  137. - void **unbind_child_node_from_bone** **(** :ref:`int<class_int>` bone_idx, :ref:`Node<class_node>` node **)**
  138. Deprecated soon.
  139. .. _class_Skeleton_unparent_bone_and_rest:
  140. - void **unparent_bone_and_rest** **(** :ref:`int<class_int>` bone_idx **)**