大多数动画是通过将骨架中的关节角度旋转到预定值来产生的。子关节的位置根据其父关节的旋转而改变,因此可以根据其包含的各个关节的角度和相对位置来确定关节链的终点。这种构成骨架的方法称为正向运动学。
从相反的角度来看构造关节的任务通常是有用的 - 给定在空间中的选定位置,向后工作并找到定位关节的有效方式,以便终点落在该位置。当您希望角色在用户选择的点上触摸物体或在不平坦的表面上令人信服地放置脚时,这可能非常有用。这种方法被称为反向运动学(IK),并且在Mecanim中支持具有正确配置的头像的任何人形角色。
为角色设置IK,你通常在场景周围有角色与之交互的对象,然后通过脚本来设置IK,特别是动画师功能,如 SetIKPositionWeight, SetIKRotationWeight, SetIKPosition, SetIKRotation, SetLookAtPosition, bodyPosition, bodyRotation
创建一个Animator控制器,其中至少包含一个角色的动画。然后在Animator窗口的图层窗格中,单击图层的齿轮设置图标,然后在弹出的菜单中选中IK Pass复选框。
确保Animator控制器分配给角色的动画师组件:
protected Animator animator;
public bool ikActive = false;
public Transform rightHandObj = null;
public Transform lookObj =