SkeletonProfile

继承: Resource < RefCounted < Object

派生: SkeletonProfileHumanoid

用作重定向目标的虚拟骨架的配置文件的基类。

描述

这个资源在 EditorScenePostImport 中使用。一些参数是指 Skeleton3DSkinAnimation 中的骨骼,还有一些节点是根据 SkeletonProfile 中的参数改写的。

注意:只有在创建自定义配置时这些参数才需要被设置。在 SkeletonProfileHumanoid 中,它们在内部被定义为只读值。

教程

属性

int

bone_size

0

int

group_size

0

StringName

root_bone

&””

StringName

scale_base_bone

&””

方法

int

find_bone(bone_name: StringName) const

StringName

get_bone_name(bone_idx: int) const

StringName

get_bone_parent(bone_idx: int) const

StringName

get_bone_tail(bone_idx: int) const

StringName

get_group(bone_idx: int) const

StringName

get_group_name(group_idx: int) const

Vector2

get_handle_offset(bone_idx: int) const

Transform3D

get_reference_pose(bone_idx: int) const

TailDirection

get_tail_direction(bone_idx: int) const

Texture2D

get_texture(group_idx: int) const

bool

is_required(bone_idx: int) const

void

set_bone_name(bone_idx: int, bone_name: StringName)

void

set_bone_parent(bone_idx: int, bone_parent: StringName)

void

set_bone_tail(bone_idx: int, bone_tail: StringName)

void

set_group(bone_idx: int, group: StringName)

void

set_group_name(group_idx: int, group_name: StringName)

void

set_handle_offset(bone_idx: int, handle_offset: Vector2)

void

set_reference_pose(bone_idx: int, bone_name: Transform3D)

void

set_required(bone_idx: int, required: bool)

void

set_tail_direction(bone_idx: int, tail_direction: TailDirection)

void

set_texture(group_idx: int, texture: Texture2D)


信号

profile_updated() 🔗

更改配置中的值时会发出该信号。这被用于更新 BoneMap 中的键名并重绘 BoneMap 编辑器。

注意:为了简化引用,这个信号没有直接连接到编辑器,而是通过 BoneMap 传递给编辑器。


枚举

enum TailDirection: 🔗

TailDirection TAIL_DIRECTION_AVERAGE_CHILDREN = 0

子级骨骼平均坐标的方向。

TailDirection TAIL_DIRECTION_SPECIFIC_CHILD = 1

指定子级骨骼坐标的方向。

TailDirection TAIL_DIRECTION_END = 2

不计算方向。


属性说明

int bone_size = 0 🔗

  • void set_bone_size(value: int)

  • int get_bone_size()

重定向部分的 BoneMap 编辑器中的骨骼数量。例如,SkeletonProfileHumanoid 有 56 块骨头。

BoneMap 中元素的大小在其分配的 SkeletonProfile 中更改该属性时更新。


int group_size = 0 🔗

  • void set_group_size(value: int)

  • int get_group_size()

重定向部分的 BoneMap 编辑器中的骨骼组的数量。例如,SkeletonProfileHumanoid 有 4 个组。

这个属性的存在是为了在编辑器中把骨骼列表分成几个部分。


StringName root_bone = &"" 🔗

会被用作 AnimationTree 中根骨骼的骨骼名称。应该是髋部父级的骨骼,位于世界原点。


StringName scale_base_bone = &"" 🔗

骨骼的名称,将使用模型的高度作为归一化的系数。例如,SkeletonProfileHumanoid 将其定义为 Hips


方法说明

int find_bone(bone_name: StringName) const 🔗

返回名称与 bone_name 匹配的骨骼的索引。


StringName get_bone_name(bone_idx: int) const 🔗

返回位于 bone_idx 的骨骼的名称,会成为 BoneMap 中的键名。

在重定向过程中,返回的骨骼名称是目标骨架中的骨骼名称。


StringName get_bone_parent(bone_idx: int) const 🔗

返回位于 bone_idx 的骨骼的父级骨骼的名称。如果该骨骼没有父级,则结果为空。


StringName get_bone_tail(bone_idx: int) const 🔗

返回 bone_idx 处骨骼的尾部骨骼的名称。


StringName get_group(bone_idx: int) const 🔗

返回索引为 bone_idx 的骨骼的分组。


StringName get_group_name(group_idx: int) const 🔗

返回 group_idx 处的组的名称,该组将成为 BoneMap 编辑器中的绘制组。


Vector2 get_handle_offset(bone_idx: int) const 🔗

返回在 bone_idx 处的骨骼的偏移量,这将是 BoneMap 编辑器中的按钮位置。

这是一个偏移量,原点在正方形的左上角。


Transform3D get_reference_pose(bone_idx: int) const 🔗

返回索引为 bone_idx 的骨骼的参考姿势变换。


TailDirection get_tail_direction(bone_idx: int) const 🔗

返回索引为 bone_idx 的骨骼的尾部方向。


Texture2D get_texture(group_idx: int) const 🔗

返回 group_idx 处的组的纹理,该组将作为 BoneMap 编辑器中的绘制组的背景图像。


bool is_required(bone_idx: int) const 🔗

返回 bone_idx 处的骨骼是否需要重定目标。

该值由骨骼贴图编辑器使用。如果该方法返回 true,且未分配骨骼,则骨骼贴图编辑器上的控制柄颜色将为红色。


void set_bone_name(bone_idx: int, bone_name: StringName) 🔗

设置在 bone_idx 处的骨骼的名称,这将是 BoneMap 中的键名。

在重定向过程中,设置的骨骼名称是目标骨架的骨骼名称。


void set_bone_parent(bone_idx: int, bone_parent: StringName) 🔗

将名称为 bone_parent 的骨骼设置为索引为 bone_idx 的骨骼的父级。如果传入的是空字符串,则该骨骼没有父级。


void set_bone_tail(bone_idx: int, bone_tail: StringName) 🔗

将名称为 bone_tail 的骨骼设置为索引为 bone_idx 的骨骼的尾部。


void set_group(bone_idx: int, group: StringName) 🔗

设置索引为 bone_idx 的骨骼的分组。


void set_group_name(group_idx: int, group_name: StringName) 🔗

设置在 group_idx 处的组的名称,这将是 BoneMap 编辑器中的绘制组。


void set_handle_offset(bone_idx: int, handle_offset: Vector2) 🔗

设置在 bone_idx 处的骨骼的偏移量,这将是 BoneMap 编辑器中的按钮位置。

这是原点在正方形左上角的偏移量。


void set_reference_pose(bone_idx: int, bone_name: Transform3D) 🔗

设置骨骼 bone_idx 的参考姿势变换。


void set_required(bone_idx: int, required: bool) 🔗

将骨骼 bone_idx 的所需状态设置为 required


void set_tail_direction(bone_idx: int, tail_direction: TailDirection) 🔗

设置在 bone_idx 处的骨骼的尾部方向。

注意:这里只规定了计算方法。所需的实际坐标应该存储在外部骨架中,因此计算本身需要在外部完成。


void set_texture(group_idx: int, texture: Texture2D) 🔗

设置在 group_idx 处的组的纹理,这将是 BoneMap 编辑器中绘制组的背景图像。