Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
SkeletonProfile
继承: Resource < RefCounted < Object
用作重定向目标的虚拟骨架的配置文件的基类。
描述
这个资源在 EditorScenePostImport 中使用。一些参数是指 Skeleton3D、Skin、Animation 中的骨骼,还有一些节点是根据 SkeletonProfile 中的参数改写的。
注意:只有在创建自定义配置时这些参数才需要被设置。在 SkeletonProfileHumanoid 中,它们在内部被定义为只读值。
教程
属性
|
||
|
||
|
||
|
方法
find_bone(bone_name: StringName) const |
|
get_bone_name(bone_idx: int) const |
|
get_bone_parent(bone_idx: int) const |
|
get_bone_tail(bone_idx: int) const |
|
get_group_name(group_idx: int) const |
|
get_handle_offset(bone_idx: int) const |
|
get_reference_pose(bone_idx: int) const |
|
get_tail_direction(bone_idx: int) const |
|
get_texture(group_idx: int) const |
|
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
不计算方向。
属性说明
重定向部分的 BoneMap 编辑器中的骨骼数量。例如,SkeletonProfileHumanoid 有 56 块骨头。
BoneMap 中元素的大小在其分配的 SkeletonProfile 中更改该属性时更新。
重定向部分的 BoneMap 编辑器中的骨骼组的数量。例如,SkeletonProfileHumanoid 有 4 个组。
这个属性的存在是为了在编辑器中把骨骼列表分成几个部分。
StringName root_bone = &""
🔗
void set_root_bone(value: StringName)
StringName get_root_bone()
会被用作 AnimationTree 中根骨骼的骨骼名称。应该是髋部父级的骨骼,位于世界原点。
StringName scale_base_bone = &""
🔗
void set_scale_base_bone(value: StringName)
StringName get_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 编辑器中绘制组的背景图像。