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.

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 🔗

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.


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) 🔗

Sets the required status for bone bone_idx to required.


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

設定在 bone_idx 處的骨骼的尾部方向。

注意:這裡只規定了計算方法。所需的實際座標應該儲存在外部骨架中,因此計算本身需要在外部完成。


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

設定在 group_idx 處的組的紋理,這將是 BoneMap 編輯器中繪製組的背景圖像。