Skeleton

Inherits: Spatial < Node < Object

角色和动画对象的骨架。

描述

骨架为管理骨骼提供了分层的界面,包括姿势、放松和动画(请参阅 Animation)。它还可以使用布娃娃物理。

骨骼相对于骨架的整体变换是由以下层次顺序决定的:放松姿势、自定义姿势和姿势。

注意,下面的“全局姿势”是指骨骼相对于骨架的整体变换,所以它不是骨骼的实际全局或世界变换。

教程

方法

void

add_bone ( String name )

void

bind_child_node_to_bone ( int bone_idx, Node node )

void

clear_bones ( )

void

clear_bones_global_pose_override ( )

int

find_bone ( String name ) const

int

get_bone_count ( ) const

Transform

get_bone_custom_pose ( int bone_idx ) const

Transform

get_bone_global_pose ( int bone_idx ) const

Transform

get_bone_global_pose_no_override ( int bone_idx ) const

String

get_bone_name ( int bone_idx ) const

int

get_bone_parent ( int bone_idx ) const

Transform

get_bone_pose ( int bone_idx ) const

Transform

get_bone_rest ( int bone_idx ) const

Array

get_bound_child_nodes_to_bone ( int bone_idx ) const

bool

is_bone_rest_disabled ( int bone_idx ) const

void

localize_rests ( )

void

physical_bones_add_collision_exception ( RID exception )

void

physical_bones_remove_collision_exception ( RID exception )

void

physical_bones_start_simulation ( Array bones=[ ] )

void

physical_bones_stop_simulation ( )

SkinReference

register_skin ( Skin skin )

void

set_bone_custom_pose ( int bone_idx, Transform custom_pose )

void

set_bone_disable_rest ( int bone_idx, bool disable )

void

set_bone_global_pose_override ( int bone_idx, Transform pose, float amount, bool persistent=false )

void

set_bone_name ( int bone_idx, String name )

void

set_bone_parent ( int bone_idx, int parent_idx )

void

set_bone_pose ( int bone_idx, Transform pose )

void

set_bone_rest ( int bone_idx, Transform rest )

void

unbind_child_node_from_bone ( int bone_idx, Node node )

void

unparent_bone_and_rest ( int bone_idx )

信号

  • skeleton_updated ( )

常量

  • NOTIFICATION_UPDATE_SKELETON = 50

方法说明

  • void add_bone ( String name )

添加一个骨骼,名称为 nameget_bone_count 将成为骨骼索引。


  • void bind_child_node_to_bone ( int bone_idx, Node node )

很快就会弃用。


  • void clear_bones ( )

清除这个骨架上的所有骨骼。


  • void clear_bones_global_pose_override ( )

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


  • int get_bone_count ( ) const

返回骨架中的骨骼数量。


返回指定骨骼的自定义姿势。自定义姿势应用于放松姿势之上。


返回相对于骨架的指定骨骼的整体变换。由于是相对于骨架的,这不是该骨骼的实际 “全局 “变换。


  • Transform get_bone_global_pose_no_override ( int bone_idx ) const

返回指定骨骼的整体变换,相对于骨架,但没有任何全局姿势覆盖。相对于骨架帧,这不是骨骼的实际“全局”变换。


返回索引 index 处的骨骼名称。


  • int get_bone_parent ( int bone_idx ) const

返回在bone_idx处的骨骼的父级索引。如果是-1,那么骨骼就没有父骨骼。

注意:返回的父骨骼将总是小于bone_idx


返回指定骨骼的姿势变换。姿势应用于自定义姿势之上,自定义姿势应用于放松姿势之上。


返回骨骼 bone_idx 的休息变换。


  • Array get_bound_child_nodes_to_bone ( int bone_idx ) const

很快就会弃用。


  • bool is_bone_rest_disabled ( int bone_idx ) const

  • void localize_rests ( )

  • void physical_bones_add_collision_exception ( RID exception )

  • void physical_bones_remove_collision_exception ( RID exception )

  • void physical_bones_start_simulation ( Array bones=[ ] )

  • void physical_bones_stop_simulation ( )


  • void set_bone_custom_pose ( int bone_idx, Transform custom_pose )

  • void set_bone_disable_rest ( int bone_idx, bool disable )

  • void set_bone_global_pose_override ( int bone_idx, Transform pose, float amount, bool persistent=false )

  • void set_bone_name ( int bone_idx, String name )

  • void set_bone_parent ( int bone_idx, int parent_idx )

将骨骼索引 parent_idx 设置为 bone_idx 处骨骼的父级。如果 -1,则骨骼没有父级。

注意: parent_idx 必须小于 bone_idx


设置骨骼 bone_idx 的姿势变换。


为骨骼bone_idx设置休息变换。


  • void unbind_child_node_from_bone ( int bone_idx, Node node )

很快就会弃用。


  • void unparent_bone_and_rest ( int bone_idx )