3D逆向运动学: MultiLimbIK插件使用指南

Number of views 13
  1. 在场景中确定关节链,把Scripts > Core > IKSystem.ts 脚本添加到关节链中的第一个关节上。

image1745913988728.png

  1. 在IKSystem组件配置相应的属性插槽,详细属性如下:
属性 描述
Target 关节链末端效应器(末端关节)需要到达的位置
IsAutoMatch 是否自动匹配所有关节(关节需要作为父关节的第一个子节点),值为false则需要手动匹配关节
Joints 当IsAutoMatch为false时,手动匹配的关节节点数组
ForceUpdateChain 是否强制更新关节链,主要适用于首关节需要随时变动的情况,如蜘蛛腿关节等
JointNum 当IsAutoMatch为true时需要告诉系统关节链有多少关节数量。避免所有子节点都作为关节
Precision 针对Fabrik算法,末端效应器与目标点距离的允许误差范围
MaxIterations 针对Fabrik算法,最大迭代数量
  1. 如果关节数量为3(加上末端效应器),内部自动会采用三角函数算法,而不是Fabrik算法,这样性能会更高。
  2. 可以对目标节点编写特定的移动逻辑,或添加关键帧动画,运行后可以看到整个关节链会跟随目标点运动。

5rzXi9esJbU.gif

5rzWLogirt7.gif

  1. 对于蜘蛛腿的IK逻辑,需要勾选ForceUpdateChain属性为true,这样可以让整个关节链跟随蜘蛛身体移动。

  1. 把LegIK脚本给到Target节点。

  1. LegIK的属性解释如下:
属性 描述
IKSystem 当前LegIK对应的IKSystem组件
LegMaxStep 当前Leg的最大步长
LegMoveSpeed 当前Leg的移动速度
LegMoveThreshold 当前Leg移动的可允许误差
FootTaget 足部的目标位置点
  1. 上述逻辑就绪后,可以看到蜘蛛的走动效果:

5rzXH1UMrN9.gif

想要深入原理可查看以下教程:

  1. 2D逆向运动学:三角函数求解
  2. 3D逆向运动学: 三角函数求解与Fabrik
  3. 3D逆向运动学: 动物腿部IK实现
0 Answers