2017-09-12 22:42:36 +02:00
<?xml version="1.0" encoding="UTF-8" ?>
2021-03-23 13:40:34 +01:00
<class name= "Skeleton" inherits= "Spatial" version= "3.3" >
2017-09-12 22:42:36 +02:00
<brief_description >
Skeleton for characters and animated objects.
</brief_description>
<description >
2019-09-13 22:04:01 +02:00
Skeleton provides a hierarchical interface for managing bones, including pose, rest and animation (see [Animation]). It can also use ragdoll physics.
2018-06-15 01:07:03 +02:00
The overall transform of a bone with respect to the skeleton is determined by the following hierarchical order: rest pose, custom pose and pose.
Note that "global pose" below refers to the overall transform of the bone with respect to skeleton, so it not the actual global/world transform of the bone.
2017-09-12 22:42:36 +02:00
</description>
<tutorials >
2020-10-01 10:34:47 +02:00
<link title= "3D Inverse Kinematics Demo" > https://godotengine.org/asset-library/asset/523</link>
<link title= "Third Person Shooter Demo" > https://godotengine.org/asset-library/asset/678</link>
2017-09-12 22:42:36 +02:00
</tutorials>
<methods >
<method name= "add_bone" >
<return type= "void" >
</return>
<argument index= "0" name= "name" type= "String" >
</argument>
<description >
2019-06-22 01:04:47 +02:00
Adds a bone, with name [code]name[/code]. [method get_bone_count] will become the bone index.
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "bind_child_node_to_bone" >
<return type= "void" >
</return>
<argument index= "0" name= "bone_idx" type= "int" >
</argument>
<argument index= "1" name= "node" type= "Node" >
</argument>
<description >
2019-06-22 01:04:47 +02:00
[i]Deprecated soon.[/i]
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "clear_bones" >
<return type= "void" >
</return>
<description >
Clear all the bones in this skeleton.
</description>
</method>
2020-04-16 13:02:36 +02:00
<method name= "clear_bones_global_pose_override" >
<return type= "void" >
</return>
<description >
</description>
</method>
2017-09-12 22:42:36 +02:00
<method name= "find_bone" qualifiers= "const" >
<return type= "int" >
</return>
<argument index= "0" name= "name" type= "String" >
</argument>
<description >
2019-06-22 01:04:47 +02:00
Returns the bone index that matches [code]name[/code] as its name.
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "get_bone_count" qualifiers= "const" >
<return type= "int" >
</return>
<description >
2019-05-24 04:15:43 +02:00
Returns the amount of bones in the skeleton.
2017-09-12 22:42:36 +02:00
</description>
</method>
2019-09-27 22:16:32 +02:00
<method name= "get_bone_custom_pose" qualifiers= "const" >
<return type= "Transform" >
</return>
<argument index= "0" name= "bone_idx" type= "int" >
</argument>
<description >
Returns the custom pose of the specified bone. Custom pose is applied on top of the rest pose.
</description>
</method>
2017-09-12 22:42:36 +02:00
<method name= "get_bone_global_pose" qualifiers= "const" >
<return type= "Transform" >
</return>
<argument index= "0" name= "bone_idx" type= "int" >
</argument>
<description >
2019-05-24 04:15:43 +02:00
Returns the overall transform of the specified bone, with respect to the skeleton. Being relative to the skeleton frame, this is not the actual "global" transform of the bone.
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "get_bone_name" qualifiers= "const" >
<return type= "String" >
</return>
<argument index= "0" name= "bone_idx" type= "int" >
</argument>
<description >
2019-06-22 01:04:47 +02:00
Returns the name of the bone at index [code]index[/code].
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "get_bone_parent" qualifiers= "const" >
<return type= "int" >
</return>
<argument index= "0" name= "bone_idx" type= "int" >
</argument>
<description >
2019-06-22 01:04:47 +02:00
Returns the bone index which is the parent of the bone at [code]bone_idx[/code]. If -1, then bone has no parent.
[b]Note:[/b] The parent bone returned will always be less than [code]bone_idx[/code].
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "get_bone_pose" qualifiers= "const" >
<return type= "Transform" >
</return>
<argument index= "0" name= "bone_idx" type= "int" >
</argument>
<description >
2019-05-24 04:15:43 +02:00
Returns the pose transform of the specified bone. Pose is applied on top of the custom pose, which is applied on top the rest pose.
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "get_bone_rest" qualifiers= "const" >
<return type= "Transform" >
</return>
<argument index= "0" name= "bone_idx" type= "int" >
</argument>
<description >
2019-06-22 01:04:47 +02:00
Returns the rest transform for a bone [code]bone_idx[/code].
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "get_bound_child_nodes_to_bone" qualifiers= "const" >
<return type= "Array" >
</return>
<argument index= "0" name= "bone_idx" type= "int" >
</argument>
<description >
2019-06-22 01:04:47 +02:00
[i]Deprecated soon.[/i]
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "is_bone_rest_disabled" qualifiers= "const" >
<return type= "bool" >
</return>
<argument index= "0" name= "bone_idx" type= "int" >
</argument>
<description >
</description>
</method>
2019-04-23 21:39:09 +02:00
<method name= "localize_rests" >
<return type= "void" >
</return>
<description >
</description>
</method>
2018-05-12 09:38:00 +02:00
<method name= "physical_bones_add_collision_exception" >
<return type= "void" >
</return>
<argument index= "0" name= "exception" type= "RID" >
</argument>
<description >
</description>
</method>
<method name= "physical_bones_remove_collision_exception" >
<return type= "void" >
</return>
<argument index= "0" name= "exception" type= "RID" >
</argument>
<description >
</description>
</method>
2018-05-28 14:53:15 +02:00
<method name= "physical_bones_start_simulation" >
2018-05-12 09:38:00 +02:00
<return type= "void" >
</return>
2018-05-28 14:53:15 +02:00
<argument index= "0" name= "bones" type= "Array" default= "[ ]" >
2018-05-12 09:38:00 +02:00
</argument>
<description >
</description>
</method>
2018-05-28 14:53:15 +02:00
<method name= "physical_bones_stop_simulation" >
<return type= "void" >
</return>
<description >
</description>
</method>
2019-09-24 11:44:48 +02:00
<method name= "register_skin" >
<return type= "SkinReference" >
2017-09-12 22:42:36 +02:00
</return>
2019-09-24 11:44:48 +02:00
<argument index= "0" name= "skin" type= "Skin" >
2017-09-12 22:42:36 +02:00
</argument>
<description >
</description>
</method>
2019-09-27 22:16:32 +02:00
<method name= "set_bone_custom_pose" >
<return type= "void" >
</return>
<argument index= "0" name= "bone_idx" type= "int" >
</argument>
<argument index= "1" name= "custom_pose" type= "Transform" >
</argument>
<description >
</description>
</method>
2017-09-12 22:42:36 +02:00
<method name= "set_bone_disable_rest" >
<return type= "void" >
</return>
<argument index= "0" name= "bone_idx" type= "int" >
</argument>
<argument index= "1" name= "disable" type= "bool" >
</argument>
<description >
</description>
</method>
2019-09-24 11:44:48 +02:00
<method name= "set_bone_global_pose_override" >
2017-09-12 22:42:36 +02:00
<return type= "void" >
</return>
<argument index= "0" name= "bone_idx" type= "int" >
</argument>
<argument index= "1" name= "pose" type= "Transform" >
</argument>
2019-09-24 11:44:48 +02:00
<argument index= "2" name= "amount" type= "float" >
2018-08-21 00:35:30 +02:00
</argument>
2019-09-24 11:44:48 +02:00
<argument index= "3" name= "persistent" type= "bool" default= "false" >
2018-08-21 00:35:30 +02:00
</argument>
<description >
</description>
</method>
2017-09-12 22:42:36 +02:00
<method name= "set_bone_parent" >
<return type= "void" >
</return>
<argument index= "0" name= "bone_idx" type= "int" >
</argument>
<argument index= "1" name= "parent_idx" type= "int" >
</argument>
<description >
2019-06-22 01:04:47 +02:00
Sets the bone index [code]parent_idx[/code] as the parent of the bone at [code]bone_idx[/code]. If -1, then bone has no parent.
[b]Note:[/b] [code]parent_idx[/code] must be less than [code]bone_idx[/code].
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "set_bone_pose" >
<return type= "void" >
</return>
<argument index= "0" name= "bone_idx" type= "int" >
</argument>
<argument index= "1" name= "pose" type= "Transform" >
</argument>
<description >
2020-07-22 18:21:29 +02:00
Sets the pose transform for bone [code]bone_idx[/code].
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "set_bone_rest" >
<return type= "void" >
</return>
<argument index= "0" name= "bone_idx" type= "int" >
</argument>
<argument index= "1" name= "rest" type= "Transform" >
</argument>
<description >
2019-06-22 01:04:47 +02:00
Sets the rest transform for bone [code]bone_idx[/code].
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "unbind_child_node_from_bone" >
<return type= "void" >
</return>
<argument index= "0" name= "bone_idx" type= "int" >
</argument>
<argument index= "1" name= "node" type= "Node" >
</argument>
<description >
2019-06-22 01:04:47 +02:00
[i]Deprecated soon.[/i]
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "unparent_bone_and_rest" >
<return type= "void" >
</return>
<argument index= "0" name= "bone_idx" type= "int" >
</argument>
<description >
</description>
</method>
</methods>
2020-10-19 17:13:30 +02:00
<signals >
<signal name= "skeleton_updated" >
<description >
</description>
</signal>
</signals>
2017-09-12 22:42:36 +02:00
<constants >
2017-11-24 23:16:30 +01:00
<constant name= "NOTIFICATION_UPDATE_SKELETON" value= "50" >
2017-09-12 22:42:36 +02:00
</constant>
</constants>
</class>