LookAt IK可用于任何角色或其他骨骼层次结构,以旋转一组骨骼以面向目标。
请注意,如果LookAtIK不符合您的要求,您还可以使用非常相似的AimIK,但提供一组不同的参数,以使角色(尤其是非Biped)查看目标。
使用步骤:
- 将LookAtIK组件添加到根GameObject。 GameObject的前轴将是前进方向。
- 将脊柱,头部和眼睛骨头分配到组件上。
- 运行
使用脚本:
public LookAtIK lookAt;
void LateUpdate () {
lookAt.solver.IKPositionWeight = 1f; // The master weight
lookAt.solver.IKPosition = something; // Changing the look at target
// Changing the weights of individual body parts
lookAt.solver.bodyWeight = 1f;
lookAt.solver.headWeight = 1f;
lookAt.solver.eyesWeight = 1f;
// Changing the clamp weight of individual body parts
lookAt.solver.clampWeight = 1f;
lookAt.solver.clampWeightHead = 1f;
lookAt.solver.clampWeightEyes = 1f;
}
在运行时添加LookAtIK:
- 通过脚本添加LookAtIK组件
- 调用LookAtIK.solver.SetChain()
组件参数:
- timeStep - 如果为零,将更新每个LateUpdate()中的求解器,用于骨骼带动画时的情况。 如果大于零,将按频率更新,以便求解器将在所有对象上同时到达其目标。
- fixTransforms - 如果为true,则将解算器使用的所有Transforms修复为每个Update中的初始状态。 这可以防止没有动画骨骼和animator的剔除的问题,并且性能成本很低。
求解参数:
- target - 目标transform。如果已分配,则解算器IKPosition将自动设置为目标的位置
- weight - 求解器的主要权重(乘以所有其他权重)
- bodyWeight - 旋转脊柱骨骼的权重
- headWeight - 旋转头骨的权重
- eyesWeight - 旋转眼骨的权重
- clampWeight - 夹紧脊柱骨骼的旋转。 0是自由旋转,1是完全钳位到无效果
- clampWeightHead - 夹紧头骨的旋转。 0是自由旋转,1是完全钳位到无效果
- clampWeightEyes - 夹紧眼骨的旋转。 0是自由旋转,1是完全钳位到无效果
- clampSmoothing - 用于夹紧的正弦平滑迭代次数,使其更平滑
- spineWeightCurve - 脊柱骨骼之间的标准化重量分布。第一个脊骨骨骼位于“time”为0处,最后一个脊椎骨骼位于1
- head - 头骨
- spine - 脊椎骨骼按降序排列(父亲优先),可以跳过骨骼
- eyes - 眼睛的骨头
网友评论