旋转模式

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 的规律在数学上定义为:

\[\ lvert q\ rvert =\ sqrt {X ^ 2 + Y ^ 2 + Z ^ 2 + W ^ 2}\]

然而,如果在交互式转换期间使用适当的锁定按钮锁定四元数组分之一,则规范将不会保持不变,因为被阻断的组件将无法自行调整以保持单位规范。

Hint

与控件交互式旋转不会改变当前四元数的法线。单独编辑单个 XYZW 组件,您可以更改规范。要再次使标准 1.0,您可以切换到任何旋转模式,然后再次返回到四元数。

四元数的旋转分量与轴角度分量保持紧密关系。要找到对应关系,首先我们必须处理四元数的标准化版本,即一个其规范等于 1.0 的四元数。要使一个四元数归一化,只需将其每个组成部分按其规范划分即可。如前所述,将所有四个值除以相同的数字会产生相同的方向。

一旦我们计算出归一化四元数的分量,与轴角分量的关系如下:

  • X、Y 和 Z 表示与轴角完全相同:它们只是定义了旋转围绕的轴。

  • W can be used to retrieve the actual rotation around the defined angle. The following formula applies (provided that the quaternion is normalized): \(W = \cos(\frac{a}{2})\), where a is actually the rotation angle we are looking for. That is: \(a = 2 \arccos{W}\).

其他注意事项

在轴角模式和四元数模式中,我们可以在每个组件的基础上锁定交互式模式中的旋转,而不是按轴进行。为此,我们可以使用相应的 旋转 变换按钮旁边的锁定按钮激活此锁定功能。

关于旋转动画,所有关键帧必须以相同的旋转模式定义,这必须是整个动画中对象的选定旋转模式。