:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/SkeletonProfile.xml. .. _class_SkeletonProfile: SkeletonProfile =============== **Inherits:** :ref:`Resource` **<** :ref:`RefCounted` **<** :ref:`Object` **Inherited By:** :ref:`SkeletonProfileHumanoid` Base class for a profile of a virtual skeleton used as a target for retargeting. .. rst-class:: classref-introduction-group Description ----------- This resource is used in :ref:`EditorScenePostImport`. Some parameters are referring to bones in :ref:`Skeleton3D`, :ref:`Skin`, :ref:`Animation`, and some other nodes are rewritten based on the parameters of **SkeletonProfile**. \ **Note:** These parameters need to be set only when creating a custom profile. In :ref:`SkeletonProfileHumanoid`, they are defined internally as read-only values. .. rst-class:: classref-introduction-group Tutorials --------- - :doc:`Retargeting 3D Skeletons <../tutorials/assets_pipeline/retargeting_3d_skeletons>` .. rst-class:: classref-reftable-group Properties ---------- .. table:: :widths: auto +-------------------------------------+------------------------------------------------------------------------+---------+ | :ref:`int` | :ref:`bone_size` | ``0`` | +-------------------------------------+------------------------------------------------------------------------+---------+ | :ref:`int` | :ref:`group_size` | ``0`` | +-------------------------------------+------------------------------------------------------------------------+---------+ | :ref:`StringName` | :ref:`root_bone` | ``&""`` | +-------------------------------------+------------------------------------------------------------------------+---------+ | :ref:`StringName` | :ref:`scale_base_bone` | ``&""`` | +-------------------------------------+------------------------------------------------------------------------+---------+ .. rst-class:: classref-reftable-group Methods ------- .. table:: :widths: auto +----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`find_bone`\ (\ bone_name\: :ref:`StringName`\ ) |const| | +----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`StringName` | :ref:`get_bone_name`\ (\ bone_idx\: :ref:`int`\ ) |const| | +----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`StringName` | :ref:`get_bone_parent`\ (\ bone_idx\: :ref:`int`\ ) |const| | +----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`StringName` | :ref:`get_bone_tail`\ (\ bone_idx\: :ref:`int`\ ) |const| | +----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`StringName` | :ref:`get_group`\ (\ bone_idx\: :ref:`int`\ ) |const| | +----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`StringName` | :ref:`get_group_name`\ (\ group_idx\: :ref:`int`\ ) |const| | +----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`get_handle_offset`\ (\ bone_idx\: :ref:`int`\ ) |const| | +----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Transform3D` | :ref:`get_reference_pose`\ (\ bone_idx\: :ref:`int`\ ) |const| | +----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`TailDirection` | :ref:`get_tail_direction`\ (\ bone_idx\: :ref:`int`\ ) |const| | +----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Texture2D` | :ref:`get_texture`\ (\ group_idx\: :ref:`int`\ ) |const| | +----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`is_required`\ (\ bone_idx\: :ref:`int`\ ) |const| | +----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_bone_name`\ (\ bone_idx\: :ref:`int`, bone_name\: :ref:`StringName`\ ) | +----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_bone_parent`\ (\ bone_idx\: :ref:`int`, bone_parent\: :ref:`StringName`\ ) | +----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_bone_tail`\ (\ bone_idx\: :ref:`int`, bone_tail\: :ref:`StringName`\ ) | +----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_group`\ (\ bone_idx\: :ref:`int`, group\: :ref:`StringName`\ ) | +----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_group_name`\ (\ group_idx\: :ref:`int`, group_name\: :ref:`StringName`\ ) | +----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_handle_offset`\ (\ bone_idx\: :ref:`int`, handle_offset\: :ref:`Vector2`\ ) | +----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_reference_pose`\ (\ bone_idx\: :ref:`int`, bone_name\: :ref:`Transform3D`\ ) | +----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_required`\ (\ bone_idx\: :ref:`int`, required\: :ref:`bool`\ ) | +----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_tail_direction`\ (\ bone_idx\: :ref:`int`, tail_direction\: :ref:`TailDirection`\ ) | +----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`set_texture`\ (\ group_idx\: :ref:`int`, texture\: :ref:`Texture2D`\ ) | +----------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Signals ------- .. _class_SkeletonProfile_signal_profile_updated: .. rst-class:: classref-signal **profile_updated**\ (\ ) :ref:`🔗` This signal is emitted when change the value in profile. This is used to update key name in the :ref:`BoneMap` and to redraw the :ref:`BoneMap` editor. \ **Note:** This signal is not connected directly to editor to simplify the reference, instead it is passed on to editor through the :ref:`BoneMap`. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Enumerations ------------ .. _enum_SkeletonProfile_TailDirection: .. rst-class:: classref-enumeration enum **TailDirection**: :ref:`🔗` .. _class_SkeletonProfile_constant_TAIL_DIRECTION_AVERAGE_CHILDREN: .. rst-class:: classref-enumeration-constant :ref:`TailDirection` **TAIL_DIRECTION_AVERAGE_CHILDREN** = ``0`` Direction to the average coordinates of bone children. .. _class_SkeletonProfile_constant_TAIL_DIRECTION_SPECIFIC_CHILD: .. rst-class:: classref-enumeration-constant :ref:`TailDirection` **TAIL_DIRECTION_SPECIFIC_CHILD** = ``1`` Direction to the coordinates of specified bone child. .. _class_SkeletonProfile_constant_TAIL_DIRECTION_END: .. rst-class:: classref-enumeration-constant :ref:`TailDirection` **TAIL_DIRECTION_END** = ``2`` Direction is not calculated. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Property Descriptions --------------------- .. _class_SkeletonProfile_property_bone_size: .. rst-class:: classref-property :ref:`int` **bone_size** = ``0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_bone_size**\ (\ value\: :ref:`int`\ ) - :ref:`int` **get_bone_size**\ (\ ) The amount of bones in retargeting section's :ref:`BoneMap` editor. For example, :ref:`SkeletonProfileHumanoid` has 56 bones. The size of elements in :ref:`BoneMap` updates when changing this property in it's assigned **SkeletonProfile**. .. rst-class:: classref-item-separator ---- .. _class_SkeletonProfile_property_group_size: .. rst-class:: classref-property :ref:`int` **group_size** = ``0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_group_size**\ (\ value\: :ref:`int`\ ) - :ref:`int` **get_group_size**\ (\ ) The amount of groups of bones in retargeting section's :ref:`BoneMap` editor. For example, :ref:`SkeletonProfileHumanoid` has 4 groups. This property exists to separate the bone list into several sections in the editor. .. rst-class:: classref-item-separator ---- .. _class_SkeletonProfile_property_root_bone: .. rst-class:: classref-property :ref:`StringName` **root_bone** = ``&""`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_root_bone**\ (\ value\: :ref:`StringName`\ ) - :ref:`StringName` **get_root_bone**\ (\ ) A bone name that will be used as the root bone in :ref:`AnimationTree`. This should be the bone of the parent of hips that exists at the world origin. .. rst-class:: classref-item-separator ---- .. _class_SkeletonProfile_property_scale_base_bone: .. rst-class:: classref-property :ref:`StringName` **scale_base_bone** = ``&""`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_scale_base_bone**\ (\ value\: :ref:`StringName`\ ) - :ref:`StringName` **get_scale_base_bone**\ (\ ) A bone name which will use model's height as the coefficient for normalization. For example, :ref:`SkeletonProfileHumanoid` defines it as ``Hips``. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Method Descriptions ------------------- .. _class_SkeletonProfile_method_find_bone: .. rst-class:: classref-method :ref:`int` **find_bone**\ (\ bone_name\: :ref:`StringName`\ ) |const| :ref:`🔗` Returns the bone index that matches ``bone_name`` as its name. .. rst-class:: classref-item-separator ---- .. _class_SkeletonProfile_method_get_bone_name: .. rst-class:: classref-method :ref:`StringName` **get_bone_name**\ (\ bone_idx\: :ref:`int`\ ) |const| :ref:`🔗` Returns the name of the bone at ``bone_idx`` that will be the key name in the :ref:`BoneMap`. In the retargeting process, the returned bone name is the bone name of the target skeleton. .. rst-class:: classref-item-separator ---- .. _class_SkeletonProfile_method_get_bone_parent: .. rst-class:: classref-method :ref:`StringName` **get_bone_parent**\ (\ bone_idx\: :ref:`int`\ ) |const| :ref:`🔗` Returns the name of the bone which is the parent to the bone at ``bone_idx``. The result is empty if the bone has no parent. .. rst-class:: classref-item-separator ---- .. _class_SkeletonProfile_method_get_bone_tail: .. rst-class:: classref-method :ref:`StringName` **get_bone_tail**\ (\ bone_idx\: :ref:`int`\ ) |const| :ref:`🔗` Returns the name of the bone which is the tail of the bone at ``bone_idx``. .. rst-class:: classref-item-separator ---- .. _class_SkeletonProfile_method_get_group: .. rst-class:: classref-method :ref:`StringName` **get_group**\ (\ bone_idx\: :ref:`int`\ ) |const| :ref:`🔗` Returns the group of the bone at ``bone_idx``. .. rst-class:: classref-item-separator ---- .. _class_SkeletonProfile_method_get_group_name: .. rst-class:: classref-method :ref:`StringName` **get_group_name**\ (\ group_idx\: :ref:`int`\ ) |const| :ref:`🔗` Returns the name of the group at ``group_idx`` that will be the drawing group in the :ref:`BoneMap` editor. .. rst-class:: classref-item-separator ---- .. _class_SkeletonProfile_method_get_handle_offset: .. rst-class:: classref-method :ref:`Vector2` **get_handle_offset**\ (\ bone_idx\: :ref:`int`\ ) |const| :ref:`🔗` Returns the offset of the bone at ``bone_idx`` that will be the button position in the :ref:`BoneMap` editor. This is the offset with origin at the top left corner of the square. .. rst-class:: classref-item-separator ---- .. _class_SkeletonProfile_method_get_reference_pose: .. rst-class:: classref-method :ref:`Transform3D` **get_reference_pose**\ (\ bone_idx\: :ref:`int`\ ) |const| :ref:`🔗` Returns the reference pose transform for bone ``bone_idx``. .. rst-class:: classref-item-separator ---- .. _class_SkeletonProfile_method_get_tail_direction: .. rst-class:: classref-method :ref:`TailDirection` **get_tail_direction**\ (\ bone_idx\: :ref:`int`\ ) |const| :ref:`🔗` Returns the tail direction of the bone at ``bone_idx``. .. rst-class:: classref-item-separator ---- .. _class_SkeletonProfile_method_get_texture: .. rst-class:: classref-method :ref:`Texture2D` **get_texture**\ (\ group_idx\: :ref:`int`\ ) |const| :ref:`🔗` Returns the texture of the group at ``group_idx`` that will be the drawing group background image in the :ref:`BoneMap` editor. .. rst-class:: classref-item-separator ---- .. _class_SkeletonProfile_method_is_required: .. rst-class:: classref-method :ref:`bool` **is_required**\ (\ bone_idx\: :ref:`int`\ ) |const| :ref:`🔗` Returns whether the bone at ``bone_idx`` is required for retargeting. This value is used by the bone map editor. If this method returns ``true``, and no bone is assigned, the handle color will be red on the bone map editor. .. rst-class:: classref-item-separator ---- .. _class_SkeletonProfile_method_set_bone_name: .. rst-class:: classref-method |void| **set_bone_name**\ (\ bone_idx\: :ref:`int`, bone_name\: :ref:`StringName`\ ) :ref:`🔗` Sets the name of the bone at ``bone_idx`` that will be the key name in the :ref:`BoneMap`. In the retargeting process, the setting bone name is the bone name of the target skeleton. .. rst-class:: classref-item-separator ---- .. _class_SkeletonProfile_method_set_bone_parent: .. rst-class:: classref-method |void| **set_bone_parent**\ (\ bone_idx\: :ref:`int`, bone_parent\: :ref:`StringName`\ ) :ref:`🔗` Sets the bone with name ``bone_parent`` as the parent of the bone at ``bone_idx``. If an empty string is passed, then the bone has no parent. .. rst-class:: classref-item-separator ---- .. _class_SkeletonProfile_method_set_bone_tail: .. rst-class:: classref-method |void| **set_bone_tail**\ (\ bone_idx\: :ref:`int`, bone_tail\: :ref:`StringName`\ ) :ref:`🔗` Sets the bone with name ``bone_tail`` as the tail of the bone at ``bone_idx``. .. rst-class:: classref-item-separator ---- .. _class_SkeletonProfile_method_set_group: .. rst-class:: classref-method |void| **set_group**\ (\ bone_idx\: :ref:`int`, group\: :ref:`StringName`\ ) :ref:`🔗` Sets the group of the bone at ``bone_idx``. .. rst-class:: classref-item-separator ---- .. _class_SkeletonProfile_method_set_group_name: .. rst-class:: classref-method |void| **set_group_name**\ (\ group_idx\: :ref:`int`, group_name\: :ref:`StringName`\ ) :ref:`🔗` Sets the name of the group at ``group_idx`` that will be the drawing group in the :ref:`BoneMap` editor. .. rst-class:: classref-item-separator ---- .. _class_SkeletonProfile_method_set_handle_offset: .. rst-class:: classref-method |void| **set_handle_offset**\ (\ bone_idx\: :ref:`int`, handle_offset\: :ref:`Vector2`\ ) :ref:`🔗` Sets the offset of the bone at ``bone_idx`` that will be the button position in the :ref:`BoneMap` editor. This is the offset with origin at the top left corner of the square. .. rst-class:: classref-item-separator ---- .. _class_SkeletonProfile_method_set_reference_pose: .. rst-class:: classref-method |void| **set_reference_pose**\ (\ bone_idx\: :ref:`int`, bone_name\: :ref:`Transform3D`\ ) :ref:`🔗` Sets the reference pose transform for bone ``bone_idx``. .. rst-class:: classref-item-separator ---- .. _class_SkeletonProfile_method_set_required: .. rst-class:: classref-method |void| **set_required**\ (\ bone_idx\: :ref:`int`, required\: :ref:`bool`\ ) :ref:`🔗` Sets the required status for bone ``bone_idx`` to ``required``. .. rst-class:: classref-item-separator ---- .. _class_SkeletonProfile_method_set_tail_direction: .. rst-class:: classref-method |void| **set_tail_direction**\ (\ bone_idx\: :ref:`int`, tail_direction\: :ref:`TailDirection`\ ) :ref:`🔗` Sets the tail direction of the bone at ``bone_idx``. \ **Note:** This only specifies the method of calculation. The actual coordinates required should be stored in an external skeleton, so the calculation itself needs to be done externally. .. rst-class:: classref-item-separator ---- .. _class_SkeletonProfile_method_set_texture: .. rst-class:: classref-method |void| **set_texture**\ (\ group_idx\: :ref:`int`, texture\: :ref:`Texture2D`\ ) :ref:`🔗` Sets the texture of the group at ``group_idx`` that will be the drawing group background image in the :ref:`BoneMap` editor. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)` .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)` .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)` .. |bitfield| replace:: :abbr:`BitField (This value is an integer composed as a bitmask of the following flags.)` .. |void| replace:: :abbr:`void (No return value.)`