- 在场景中确定关节链,把Scripts > Core > IKSystem.ts 脚本添加到关节链中的第一个关节上。
- 在IKSystem组件配置相应的属性插槽,详细属性如下:
属性 | 描述 |
---|---|
Target | 关节链末端效应器(末端关节)需要到达的位置 |
IsAutoMatch | 是否自动匹配所有关节(关节需要作为父关节的第一个子节点),值为false则需要手动匹配关节 |
Joints | 当IsAutoMatch为false时,手动匹配的关节节点数组 |
ForceUpdateChain | 是否强制更新关节链,主要适用于首关节需要随时变动的情况,如蜘蛛腿关节等 |
JointNum | 当IsAutoMatch为true时需要告诉系统关节链有多少关节数量。避免所有子节点都作为关节 |
Precision | 针对Fabrik算法,末端效应器与目标点距离的允许误差范围 |
MaxIterations | 针对Fabrik算法,最大迭代数量 |
- 如果关节数量为3(加上末端效应器),内部自动会采用三角函数算法,而不是Fabrik算法,这样性能会更高。
- 可以对目标节点编写特定的移动逻辑,或添加关键帧动画,运行后可以看到整个关节链会跟随目标点运动。
- 对于蜘蛛腿的IK逻辑,需要勾选ForceUpdateChain属性为true,这样可以让整个关节链跟随蜘蛛身体移动。
- 把LegIK脚本给到Target节点。
- LegIK的属性解释如下:
属性 | 描述 |
---|---|
IKSystem | 当前LegIK对应的IKSystem组件 |
LegMaxStep | 当前Leg的最大步长 |
LegMoveSpeed | 当前Leg的移动速度 |
LegMoveThreshold | 当前Leg移动的可允许误差 |
FootTaget | 足部的目标位置点 |
- 上述逻辑就绪后,可以看到蜘蛛的走动效果:
想要深入原理可查看以下教程: