要理解反向动力学(Inverse kinematics)系统,应该首先明白正向动力学(forward kinematics)系统。FK是一种让动画制作者可以将层级的节点摆出一个类似一副骨架的形状的方法。
节点的概念。它是一个用于电脑动画产业的通用术语。就角色动画骨骼来说。一个节点代表层级内外的任何物体,例如一个大腿骨骼,或者一个辅助点,或者一个球体
在一套FK系统中,一般的规则是:层级里的一个父节点驱动任意子节点的运动。例如,如果你移动前臂(父),手腕(子)就会随之运动。但是,如果你移动腕节点,前臂还将停留在原处。
使用FK方法制作动画的过程非常像摆放动作造型:当你摆放肢体(子)造型的时候,可以移动人物的躯干(父)以及所有保持与父节点的相对位置的肢体。
这是制作动画物体(例如一个行走的角色)的手臂的一种简单、直观的方法,因为动画制作者只需要考虑手臂相对应父节点的运动,而不是相对于整个空间的运动。同时应该注意的是,在使用FK制作动画时要给每一个为特定姿势而旋转的关节设置旋转关键帧。不过,当角色手臂需要抓住场景里的某些物体时,如楼梯的扶手,FK就不是最好的使用方法了。
那么与之相比。IK就是一种子节点驱动父节点运动的动画制作方法。
依然使用手臂做为例子,如果使用IK移动手腕,计算机将计算如何移动和旋转手臂的其他父节点,以使其完成想要的造型。
一般情况下,使用一条IK链需要更多的元素进行操作。手腕的位置代表一个被称为末端受动器(End Effector)的位置。末端受动器是一个IK节点,它代表一种IK解决方案的最终结果。另外,目标的物体代表末端受动器的所需位置。动画制作者操纵目标只是为了最终定位手腕,因为IK解算器总是将末端受动器的位置匹配到目标物体上。如图所示。在某些情况下,如手臂关节旋转或者只是手臂的长度太短,可能会将目标移动到某些末端受动器无法匹配的位置。
使用IK方法的一大好处之一就是可以安置末端受动器。如果你把手腕目标移动到楼梯扶手的某个位置上,并随后移动角色的躯干,手腕将会留在扶手上,因为手臂关节会自动改变到适合手腕和身体新位置的地方。使用FK完成这样的工作将会非常乏味和繁琐。而且与FK相比,默认情况下在一个IK链上制作目标物体的动画会设置目标物体的位置关键帧,但不在IK链的关节上设置旋转关键帧。
这两种方法各有其优点和缺点。一般的解决方案包括在角色的上部躯干使用FK,腿部使用IK.但是如果角色使用手掌行走呢。。。。。。。。
理想的解决方案是拥有一套你可以在其中根据需要在FK和IK之间来回切换的系统。比如强大的CS骨骼系统。
百度百科:
IK反向动力学,是根据末端子关节的位置移动来计算得出每个父关节的旋转
两个原理正好相反