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.

SplineIK3D

继承: ChainIK3D < IKModifier3D < SkeletonModifier3D < Node3D < Node < Object

用于沿 Path3D 对齐骨骼的 SkeletonModifier3D

描述

一种用于沿 Path3D(3D路径)对齐骨骼的 SkeletonModifier3D(3D骨骼修改器)。拟合的平滑度取决于 Curve3D.bake_interval(曲线3D的烘焙间隔)。

如果你希望 Path3D 附着在某个特定的骨骼上,建议将 ModifierBoneTarget3D(修改器骨骼目标3D)放在 SkeletonModifier3D 列表(Skeleton3D 的子节点)中 SplineIK3D 的前面,然后将 Path3D 作为 ModifierBoneTarget3D 的子节点放置。

骨骼的扭转由 Curve3D.get_point_tilt()(曲线3D获取点倾斜度)方法决定。

如果根骨骼关节与 Curve3D(曲线3D)的起点是分离的,它会假设两者之间存在一条直线段。这意味着,指向 Curve3D 起点的向量,其优先级会高于沿 Curve3D 的最短交点。

如果末端骨骼关节超出了路径的长度,它会尽可能地向着 Curve3D 的终点弯曲。

注意: 该类中的所有方法都带有一个 index(索引)参数。如果 IK(反向动力学)有多个条目(例如 settings//root_bone_name),该参数用于指定要返回哪一个设置列表条目。

属性

int

setting_count

0

方法

NodePath

get_path_3d(index: int) const

int

get_tilt_fade_in(index: int) const

int

get_tilt_fade_out(index: int) const

bool

is_tilt_enabled(index: int) const

void

set_path_3d(index: int, path_3d: NodePath)

void

set_tilt_enabled(index: int, enabled: bool)

void

set_tilt_fade_in(index: int, size: int)

void

set_tilt_fade_out(index: int, size: int)


属性说明

int setting_count = 0 🔗

  • void set_setting_count(value: int)

  • int get_setting_count()

设置的数量。


方法说明

NodePath get_path_3d(index: int) const 🔗

返回描述路径的 Path3D 的节点路径。


int get_tilt_fade_in(index: int) const 🔗

根骨骼与 Curve3D 起始点不重合时,返回它们之间使用的倾斜插值方法。另见 set_tilt_fade_in()


int get_tilt_fade_out(index: int) const 🔗

当末端骨骼和 Curve3D 的终点不重合时,返回它们之间使用的倾斜插值的方法。另见 set_tilt_fade_out()


bool is_tilt_enabled(index: int) const 🔗

返回 Curve3D 的倾斜属性是否影响骨骼扭转。


void set_path_3d(index: int, path_3d: NodePath) 🔗

设置描述路径的 Path3D 的节点路径。


void set_tilt_enabled(index: int, enabled: bool) 🔗

设置 Curve3D 的倾斜属性是否应该影响骨骼的扭转。


void set_tilt_fade_in(index: int, size: int) 🔗

如果 size 大于 0,则当它们彼此分离时,倾斜角度会在从 Curve3D 起始点起的 size 个起始骨骼之间进行插值计算。

如果 size 等于 0,则根骨骼头部和 Curve3D 起始点之间的倾斜角度将与 Curve3D 起始点的倾斜角度保持一致。

如果 size 小于 0,则根骨骼和 Curve3D 起始点之间的倾斜角度为 0.0


void set_tilt_fade_out(index: int, size: int) 🔗

如果 size 大于 0,则当它们彼此分离时,倾斜角度会在从 Curve3D 终点起的 size 个末端骨骼之间进行插值计算。

如果 size 等于 0,则末端骨骼尾部与 Curve3D 终点之间的倾斜角度将与 Curve3D 终点的倾斜角度保持一致。

如果 size 小于 0,则末端骨骼与 Curve3D 终点之间的倾斜角度为 0.0