Final IK学习笔记11:Look At IK

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()
Final IK学习笔记11:Look At IK_第1张图片
LookAtIK

组件参数:

  • 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 - 眼睛的骨头
Final IK学习笔记11:Look At IK_第2张图片
LookAtIK组件

你可能感兴趣的:(Final IK学习笔记11:Look At IK)