跳转到内容

solveik

始于版本17.5

vector [] solveik(float lengths[], vector targetpos, vector twistpos, float twist, int twistflag, float dampen, int resiststraight, float trackingthres, matrix relmat, vector constraints[])

matrix3 [] solveik(float lengths[], vector targetpos, vector twistpos, float twist, int twistflag, float dampen, int resiststraight, float trackingthres, matrix relmat, vector constraints[])

返回一个包含局部骨骼旋转角度(度数)的数组。

lengths

所有待解算骨骼的长度数组。

targetpos

世界空间中的目标位置。

twistpos

世界空间中的扭曲影响位置。

twist

扭曲角度(度数)。

twistflag

是否使用扭曲影响器应用扭曲。

dampen

整个骨骼链的阻尼系数。

resiststraight

抵抗伸直效果。

trackingthres

追踪阈值。

relmat

用于将目标和扭曲位置相对于原点进行变换的相对矩阵。 通常这是骨骼链根节点的逆矩阵。

constraints

这是一个用于定义每根骨骼的静止角度、阻尼、最小角度、最大角度、最小阻尼、最大阻尼和衰减系数的向量数组。 如果数组为空,则使用骨骼对象中相同的默认值。 如果数组大小等于输入骨骼数量,则定义了静止角度。 如果数组大小等于输入骨骼数量的2倍,则定义了静止角度和阻尼。 如果数组大小等于输入骨骼数量的3倍,则定义了静止角度、阻尼和最小/最大角度(最小/最大角度共享相同值)。 如果数组大小等于输入骨骼数量的4倍,则定义了静止角度、阻尼和最小/最大角度(最小/最大角度具有不同值)。 如果数组大小等于输入骨骼数量的5倍,则定义了静止角度、阻尼、最小/最大角度和阻尼角度。 如果数组大小等于输入骨骼数量的6倍,则定义了静止角度、阻尼、最小/最大角度和最小/最大阻尼角度。 如果数组大小等于输入骨骼数量的7倍,则定义了静止角度、阻尼、最小/最大角度、最小/最大阻尼角度和衰减系数。