关于旋转
很多自学3d角色动画朋友在绑定或动画时没有意识到3维软件中旋转并不是像现实生活中那样的,如果不弄清其中的基本原理,打完关键帧后会发现插值出的结果和预料的不太一样甚至会莫名其妙的绕了一个弧线,这里我提供一些关于旋转的一些小知识,有讲的不对的地方请大家多多指教!
下面以maya为例,大部分三维软件都是类似的算法。
Maya 提供了:
Synchronized Quaternion Curves (同步的四元曲线) 旋转解算器
Independent Euler-Angle Curves (独立的欧拉角曲线) 旋转解算器
Synchronized Euler-Angle Curves (同步的欧拉角曲线) 旋转解算器
Synchronized Quaternion Curves 旋转解算器可以产生平滑的旋转行为,它能够避免使用Euler XYZ旋转解算器插值时会碰到的Gimba(万向节)锁定和取向改变的问题,Quaternion Curves是同步的,这表明决定旋转的XYZ曲线上的关键帧会及时的锁定在一起。当在曲线上添加,删除,修改关键帧时,相关联曲线的相应关键帧同样会更新,这就排除了不希望遇到的插值问题,而这些问题在从单一的轴中删除关键帧以及单独去除顶点时会出现。
Independent Euler Curves 旋转解算器虽然不能产生如Quaternion旋转解算器一样的平滑的旋转行为,但它是唯一可以分别对XYZ轴的旋转曲线进行独立编辑的旋转解算器。Euler XYZ 旋转操纵器非常注重关键物体的旋转顺序,即 X、Y 和Z 旋转操作所实施的顺序,后一个轴的旋转值是以前一个轴的旋转为基础的,所以,当使用 Global 和 Local 旋转坐标系时,一个轴的改变通常会改变其它两个轴的值,虽然运用 Gimbal(万向节)操纵器时,可以独立的旋转单个的轴,但仍会使取向改变。
Synchronized Euler Curves 旋转解算器在 Graph Editor 中产生与 Quaternion Curves 相同的曲线,而关键帧之间的插值在欧拉角空间中执行。使旋转帧同步很重要,因为旋转实际上是三个单独的旋转值的合成。在曲线上删除一个关键帧会对插值产生难以预料的后果。
在角色设定中,设置旋转顺序是非常有用的,它可以使你的动画过程变得容易,我们通常以动作主次为根据,设置旋转的顺序。
图片如下:

头部和颈部:先解算头部的左右摆动,其次解算头部的前后摆动,最后解算头部左右摇动。
当轴向如图时,解算顺序为YXZ
图片如下:

肩部:肩部是设置中最复杂的结构,正确的设置可以对 skin 产生巨大的帮助。我们先解算肱骨的旋转,其次解算肱骨上下摆动,最后解算肱骨的左右摆动。
当轴向如图时,解算顺序为 XZY
图片如下:

腕部:先解算上下摆动,其次解算手的左右摆动,最后解算腕部的旋转。
当轴向如图时,解算顺序为 ZYX
图片如下:

臀部:先解算股骨的旋转,其次解算股骨的张开,最后解算股骨的前后摆动。
当轴向如图时,解算顺序为XYZ
图片如下:

踝部:旋转几乎不可能,扭动也只能扭很少的角度,但假设特殊情况下可以动,我们先解算扭动,其次解算上下摆动,最后解算旋转。
当轴向如图时,解算顺序为 XZY