SkeletonModifier3D

继承: Node3D < Node < Object

派生: PhysicalBoneSimulator3D, SkeletonIK3D, XRBodyModifier3D, XRHandModifier3D

能够对 Skeleton3D 中的骨骼进行修改的节点。

描述

SkeletonModifier3D 会将父级 Skeleton3D 节点作为目标 Skeleton3D

如果存在 AnimationMixer,则修改会在 AnimationMixer 的播放处理后执行。

该节点应该用于实现自定义 IK 解算器、约束、骨架物理。

属性

bool

active

true

float

influence

1.0

方法

void

_process_modification() virtual

Skeleton3D

get_skeleton() const


信号

modification_processed() 🔗

修改完成后通知。

注意:如果要获取修改器修改后的骨骼姿势,必须在触发该信号时使用 Skeleton3D.get_bone_poseSkeleton3D.get_bone_global_pose


属性说明

bool active = true 🔗

  • void set_active(value: bool)

  • bool is_active()

如果为 true,则 SkeletonModifier3D 将执行处理。


float influence = 1.0 🔗

  • void set_influence(value: float)

  • float get_influence()

设置修改的影响。

注意:该值由 Skeleton3D 用来混合,因此 SkeletonModifier3D 应始终仅应用结果的 100% 而不进行插值。


方法说明

void _process_modification() virtual 🔗

覆盖该虚拟方法以实现自定义骨架修改器。你应该执行诸如获取 Skeleton3D 的当前姿势并在此处应用姿势之类的操作。

_process_modification 不得将 influence 应用于骨骼姿势,因为 Skeleton3D 会自动将影响应用于修改器设置的所有骨骼姿势。


Skeleton3D get_skeleton() const 🔗

存在 Skeleton3D 父节点时将其返回。