旋转模式¶
Blender 允许您通过多种方式定义旋转。每一个都有一系列优缺点;没有最佳的旋转模式,因为每一个都适合具体情况。
在所有这些模式中,正角值表示逆时针旋转方向,而负值定义顺时针旋转。
虽然您可以使用全局或局部变换方向旋转元素,但这些轴不适合定义旋转,因为它们各自的效果无法与其他两个分离。
例如,取 X、Y 和 Z 旋转的任何三个值。使用全局或局部轴执行这些操作中的每一个。根据您执行这些操作的顺序,您最终将获得不同的最终方向。因此,需要适当的旋转坐标系。
欧拉模式¶
用于执行欧拉旋转的轴系统是所谓的欧拉万向轴。支架是一组特定的三个轴。其中的特殊之处在于,轴之间有一个层次关系:其中一个轴位于层次结构的顶部,并且以另外两个轴中的一个作为其直接子轴;同时,这个子轴是剩余轴的父轴,即层次结构最底部的一个。
哪个轴位于顶部,哪个位于中间,哪个位于底部,这取决于特定的欧拉万向轴:它们有六种类型,因为有六种可能的组合:XYZ、XZY、YXZ、YZX、ZXY 和 ZYX 欧拉旋转模式。使用轴的字母顺序命名这些模式,从层次结构底部的轴开始,最后是顶部的轴。
这些系统的主要问题出现在它们失去相对垂直度的时候。而这发生在中间的轴旋转时,导致底部的轴也随之旋转。当这个底部的轴接近 90°(或相等的角度)时,情况不断恶化。在这种情况下,它将保持与层次结构顶部的轴对齐。在那一刻,我们刚刚失去了一个旋转轴。这在制作动画时可能会导致不连续的插值。这种特殊的轴线损失被称为 “万向节锁”。
Hint
通过启用 旋转 物体操控器并将其设置为 万向(位于标题栏中的操控器按钮),可以在 3D 视口中看到支架轴的实际配置。同时,旋转模式应设置为活动物体的任意欧拉模式。
现在,您可以围绕中间的轴执行旋转(例如,在 XYZ 欧拉 模式下对应的是 Y 轴),并查看只有两个轴的万向轴有多容易。在带有万向节锁的 XYZ 欧拉 模式的特定情况下,围绕 X 轴的旋转将具有与围绕 Z 轴旋转相同的效果,这意味着实际上无法执行 X 轴旋转。
此模式的一个优点是动画曲线易于理解和编辑。但是,当中轴接近 90°(或等效角度)值时,必须特别注意。
轴向角度模式¶
此模式允许我们定义轴(X, Y, Z)和围绕该轴的旋转角度(W)。
如果我们使用交互式旋转(使用旋转控件)定义旋转,则 X、Y 和 Z 的值在绝对值上不会超过 1.0,并且 W 将包含在 0 和 180 度之间。
如果要定义 180° 以上的旋转(例如,定义多个旋转),则需要直接编辑 W 值,但当您执行交互式旋转时,该值将再次调整。轴线值也是如此。
此系统适用于围绕固定轴旋转的元素,或一次动画化一个元素(轴或角度)。当同时动画(插值)两个组件(轴和角度)时,可能会出现问题。由此产生的效果可能不如预期。
此旋转模式下的 Gimbal 控件显示一组三个正交轴,其中 Z 轴沿着定义的旋转轴,即它指向由(X, Y, Z)点定义的方向。
轴-角度系统没有万向节锁,但当同时动画轴和角度时,此模式下的动画曲线根本不直观,在这种情况下,它们很难理解和编辑。
四元数模式¶
在此模式下,旋转也由四个值( X、Y、Z 和 W )定义。X、Y 和 Z 也定义了一个轴,而 W 则定义了一个角度,但它与轴的角度截然不同。这里重要的是所有四个值之间的关系。
为了以直观的方式描述它,让我们来看看 X 坐标的效果:它所做的是将元素围绕 X 轴旋转到 180 度。Y 和 Z 也是如此。W 的效果是避免这些旋转并且使元件保持零旋转。最后的方向是这四种效果的组合。
由于组件之间的关系定义了最终方向,将所有四个数字乘以或除以一个恒定值将产生非常相同的旋转。
此模式非常适合在 任何 对方向之间插值。它不会受到万向节锁定或任何不希望的插值效应的影响。唯一的缺点是,您无法在距离大于 180° 的两个方向之间插值,因为动画将在它们之间走最短的路径。因此,要动画化旋转元素,您必须设置许多中间关键帧,最多彼此 180°。
此模式下的 Gimbal 控件等同于 Local 控件,没有任何特殊含义。
此模式下的动画曲线不直观,因此也难以理解和编辑。
更多关于四元数¶
本节对 3D 艺术家来说并不真正有用,但它可以适用于好奇或科学家。
四元数是扩展复杂数字的数字系统。它们表示一个四个分量向量,其分量在 Blender 中被称为 X、Y、Z 和 W 。当在四元数模式下交互式旋转时,四元数的所谓的规范(长度)将保持不变。根据定义,四元数的规范等于 1.0(这是 归一化 四元数)。当您在 Blender 中选择四元数模式时,XYZW 组件将描述归一化四元数。
Note
四元数 q 的规律在数学上定义为:
然而,如果在交互式转换期间使用适当的锁定按钮锁定四元数组分之一,则规范将不会保持不变,因为被阻断的组件将无法自行调整以保持单位规范。
Hint
与控件交互式旋转不会改变当前四元数的法线。单独编辑单个 XYZW 组件,您可以更改规范。要再次使标准 1.0,您可以切换到任何旋转模式,然后再次返回到四元数。
四元数的旋转分量与轴角度分量保持紧密关系。要找到对应关系,首先我们必须处理四元数的标准化版本,即一个其规范等于 1.0 的四元数。要使一个四元数归一化,只需将其每个组成部分按其规范划分即可。如前所述,将所有四个值除以相同的数字会产生相同的方向。
一旦我们计算出归一化四元数的分量,与轴角分量的关系如下:
X、Y 和 Z 表示与轴角完全相同:它们只是定义了旋转围绕的轴。
W 可以用来检索围绕定义角度的实际旋转。以下公式适用(前提是 四元数已归一化):\(W = \cos(\frac{a}{2})\),其中 a 实际上就是我们要找的旋转角度。也就是说:\(a = 2 \arccos{W}\)。
其他注意事项¶
在轴角模式和四元数模式中,我们可以在每个组件的基础上锁定交互式模式中的旋转,而不是按轴进行。为此,我们可以使用相应的 旋转 变换按钮旁边的锁定按钮激活此锁定功能。
关于旋转动画,所有关键帧必须以相同的旋转模式定义,这必须是整个动画中对象的选定旋转模式。