Final IK学习笔记8:FABRIK Root

FABRIKRoot是FABRIK的多个效应器系统。
它将FABRIK链连接在一起形成极其复杂的IK系统的组件,具有多个分支,末端效应器和旋转限制。

使用步骤:

  • 创建多个FABRIK链,将它们定位为你希望它们连接的位置。 链条不必彼此成为父对象
  • 确保子链的第一个骨骼与其父骨骼的最后一个骨骼位于同一位置
  • 创建一个新的GameObject,添加FABRIKRoot组件
  • 将所有FABRIK链添加到FABRIKRoot组件中的“Chains”
  • 运行测试

访问FABRIKRoot的链:

public FABRIKRoot fabrikRoot;
void LateUpdate () {
    Debug.Log(fabrikRoot.solver.chains[index].ik.name);
}

限制:

  • 单独的FABRIK链不能使用相同的骨骼,它们必须完全独立
  • FABRIK链的最后一根骨骼必须与其子链的第一根骨骼位于同一位置
Final IK学习笔记8:FABRIK Root_第1张图片
FABRIKRoot

组件参数:

  • timeStep - 如果为零,将更新每个LateUpdate()中的求解器,用于骨骼带动画时的情况。 如果大于零,将按频率更新,以便求解器将在所有对象上同时到达其目标。
  • fixTransforms - 如果为true,则将解算器使用的所有Transforms修复为每个Update中的初始状态。 这可以防止没有动画骨骼和animator的剔除的问题,并且性能成本很低。

求解参数:

  • weight - 用于平滑地混合IK效果的求解器权重
  • iterations - 每帧最大迭代次数。
  • rootPin - 将第一个链固定到组件所连接的Transform的权重
  • chains - 此FABRIKRoot使用的FABRIK组件列表

链参数:

  • IK - 使用的FABRIK组件
  • pull - 对于父链条拉力。
  • pin - 对于子链条的抵抗力。 如果是1,这条链不能被它的子链条拉出来。
  • children - 此链的直接子节点的索引(“Chains”数组)。 不要添加子节点的子节点。
Final IK学习笔记8:FABRIK Root_第2张图片
FABRIKRoot组件

你可能感兴趣的:(Final IK学习笔记8:FABRIK Root)