3D 变换工具

在 Motion 中,2D 项目文件与 3D 项目文件之间没有本质区别。您可以随时决定开始使用 3D 群组或层。执行此操作时不需要您预先作出任何计划;事实上,您可以在 2D 和 3D 空间下操纵对象,这两种模式可来回切换。此部分涵盖了可供您用于在“画布”中随意移动对象的工具。

Figure. Canvas window and HUD showing an image in a 2D layer.

以上屏幕快照中的图像刚被导入场景中,放在场景的原点位置。使用工具栏中的 2D 变换工具右侧的 3D 变换工具来移动该图像。

Figure. Toolbar inset showing 3D Transform tool.

提示: 当 2D“选择/变换”工具处于活跃状态(且“画布”中已选择一个对象)时,您可以通过按 Tab 键来选择 3D 变换工具。再次按 Tab 键即可循环浏览各种 2D 变换工具。

若要使用 3D 变换工具
  • 在工具栏中选择 3D 变换工具(或按 Q 键)。

当您选择 3D 变换工具时会立即发生两种变化。屏幕控制会发生变化,对象的 HUD 会显示附加 3D 变换控制。

Figure. HUD showing controls that appear when an object in a 3D layer is selected.

3D 变换屏幕控制

当您选择 3D 变换工具时,“画布”中靠近图像中心的位置会显示三个带有颜色的箭头。每个箭头对应三个坐标轴中的一个。在默认视图中,Z 轴直接指向您,因此只有蓝色 Z 箭头的尖端可见。拖移一个箭头会沿一个轴移动图像。

Figure. Onscreen 3D controls.
若要使用屏幕控制移动对象
  1. 选择要移动的对象。

  2. 拖移一个带有颜色的箭头。

    拖移时,活跃的箭头会变为黄色,同时“画布”上方的状态栏会显示对象的当前坐标以及对象已移动的距离。坐标以 X、Y 和 Z 的形式表示。

    Figure. Canvas window showing the 3D transform onscreen controls.

    三个带有颜色的箭头附近有三个小圆圈。

    Figure. Onscreen 3D rotation controls.

    它们是旋转控制柄。将鼠标指针放在一个圆圈上方可调用该轴的旋转环。

若要使用屏幕控制绕单轴旋转对象
  1. 选择要旋转的对象。

  2. 将鼠标指针移到旋转轴所对应的旋转控制柄(小圆圈)上。

    此时会显示旋转环。

  3. 拖移此环旋转对象。

    此时会出现一个状态栏,显示当前“旋转”值和对象已旋转量。

    Figure. Canvas window showing an object rotating around the X axis.
若要使用屏幕控制让对象绕所有轴旋转
  1. 选择要旋转的对象。

  2. 将鼠标指针放在旋转控制柄上,然后按住 Command 键。

    三个旋转环全都会显示出来。

  3. 继续按住 Command 键,同时在环内拖移以旋转对象。

    此时会出现一个状态栏,显示绝对旋转值和旋转增量(更改数值)。

    重要事项: 使用 2D“选择/变换”工具只能绕 Z 轴执行旋转。

    Figure. Canvas window showing an object rotating along the Z axis in 3D and using the 2D Select/Transform tool.

3D 变换屏幕控制显示

它可以显示 3D 变换屏幕控制的子集。

  • 按逗号键 (,) 显示轴箭头(但不显示旋转控制柄或缩放控制柄)。

  • 按句号键 (.) 键显示旋转控制柄(但不显示轴箭头或缩放控制柄)。

  • 按斜杠键 (/) 显示缩放控制柄(但不显示轴箭头或旋转控制柄)。

    当您再次按任意一个按键时,显示会切换回默认状态,三个屏幕控制全都可见。

3D 变换 HUD 控制

除了屏幕控制,HUD 还提供了另一种在 3D 空间中变换对象的方法,即使用一组图形变换控制。

Figure. HUD showing the 3D controls.
  • 移动: HUD“移动”部分中的三个控制可让您同时拖移一个或多个轴中的所选对象。在一个“移动”控制内拖移可更改对象在“画布”中的相关参数值。
    • 移动 Z: 拖移此处可将所选对象沿 Z 轴移动。向右拖移可减小 Z 值(向外移动对象),向左拖移则可加大 Z 值(向内移动对象)。拖移时按住 Command 键可在移动对象的同时缩放对象,保留对象相对于摄像机的大小。
    • 移动 XY: 拖移此处可将对象沿 X 和 Y 轴移动。向右或向左拖移会加大或减小 X 值。向上或向下拖移则会加大或减小 Y 值。使用此控制与在“画布”中拖移 2D 对象作用相同。拖移时按住 Command 键可限制为只向最初拖移的方向移动。
    • 移动 XZ: 拖移此处可将对象沿 X 和 Z 轴移动。向右或向左拖移会加大或减小 X 值。向上或向下拖移则会加大或减小 Z 值。拖移时按住 Command 键可限制为只向最初拖移的方向移动。

      提示: 与检查器中一样,在 HUD 中拖移时按住 Shift 键可做出较大的更改。拖移时按住 Option 键则可做出较小的更改。

  • 旋转和缩放: HUD 中的两个附加拖移控制可让您旋转和缩放“画布”中的所选对象:
    • 旋转 XYZ: 拖移此处可将对象围绕所有轴旋转。从原点开始,上下拖移可围绕 X 轴旋转对象。左右拖移则可围绕 Y 轴旋转对象。

      若要限制为只沿 Z 轴旋转,拖移时按住 Command 键即可。

    • 缩放: 拖移此处可将“画布”中的所选对象统一缩放。向右或向上(或向右上)拖移可加大“缩放”值。向左或向下(或向左下)拖移则可减小“缩放”值。

      若要限制为只沿最初拖移方向缩放轴,拖移时按住 Command 键即可。

相对坐标

若要更好地理解相对坐标的概念,请想象一下卫星系统,如地球、月球和太阳。月球的父项是地球,地球的父项是太阳。通常,在考虑这三个主体时,月球的位置按照其与地球(月球的父项)的相对位置来描述,地球的位置则按照与太阳(地球的父项)的相对位置来描述。在 Motion 中,对象的位置和方位始终与其父项有关。

将群组添加到 Motion 项目时,该群组会创建在其父项的原点坐标上。如果是根群组(在“层”列表中未被任何其他群组嵌套在内的群组),则父项指的是项目本身。放置在群组内的对象的位置描述与其父项有关:群组。

Figure. Canvas and Inspector showing a group placed at coordinates: X=50, Y=50, Z=50.

在上述示例中,群组放置的 X、Y 和 Z 坐标分别为 100、100 和 100。该群组在所有轴上都位于距离其父项原点 100 个像素的位置(在此例中,父项是项目本身)。该群组内的图像放置在 0, 0, 0 位置。由于图像位置与其父项(群组)有关,所以它的原点与其父项相同,在世界中的视位置为 100, 100, 100。

将图像移到坐标为 50, 50, 50 的位置,会使其在所有轴上从群组原点位移 50 个像素。您可以在下图中看到箭头此时正超过“画布”的可见区域。尽管图像相对于世界的视位置为 150, 150, 150 时,它在检查器中的“位置”值为 50, 50, 50,因为其位置始终与父项有关。

Figure. Canvas and Inspector showing image in a group at coordinate: X=25, Y=25, Z=25.

旋转值同样与对象的父项有关。

Figure. Canvas showing a group with Z Rotation set to 45 degrees.
Figure. Inspector and Viewer showing object rotated -90 degrees within group rotated to 45 degrees.

重要事项: 世界和视图变换仅限于 HUD 和屏幕控制;在检查器中做出的所有变换均与对象的父项空间有关。

层顺序和深度顺序

在 2D 模式下进行合成时,“层”列表会显示层顺序,该顺序决定对象在“画布”中的堆叠顺序。位于“层”列表上方的对象在“画布”中会显示在“层”列表中低于它们的对象的顶部。

重要事项: 2D 群组的子项按照层顺序进行合成。

在以下示例中,“层”列表显示“蓝色 A”群组位于“红色 B”群组的上方,“画布”显示“蓝色”对象位于“红色”对象的上方。

Figure. Layers list and Canvas showing how layers in the Canvas match the top-to-bottom arrangement in the Layers list.

如果您在“层”列表中将“群组 A”移动至“群组 B”的下方,则“群组 B”会在“群组 A”的顶部进行渲染。

Figure. Layers list and Canvas showing the layers reversed in both Layers tab and Canvas.

“层”列表还会显示与父子关系有关的对象关系。通过使用缩进和显示三角形,父子关系会显示在“层”列表中。

Figure. Layers list showing how groups are the parents of the items within them.

当考虑 3D 中的对象时,“层”列表并不是唯一的顺序指示器。进行深度排序后,对象可以位于“层”列表底部但看似位于“画布”中所有其他对象的顶部,因为对象位置与当前摄像机有关。调整深度顺序最常用的方法是更改层或群组的 Z 位置。

重要事项: 默认情况下,3D 群组的子项会按照深度顺序进行合成。

Figure. Layers list and Canvas showing objects in 3D groups where the order in the Canvas doesn't match the order in the Layers list.

对于上述 3D 群组,对象将按照深度顺序进行合成;它们在“层”列表中的位置与其在 3D 空间中相对于摄像机的位置没有关联。

在上述示例中,“层”列表中的“蓝色 A”群组位于“红色 A”群组的上方,但它在“画布”中会显示在“红色 A”群组的背后,因为示例中按深度排序。这一原则同样适用于“蓝色 B”群组和“红色 B”群组。

2D 群组中的 3D 变换

所有对象均可使用 3D 变换,即使是在 2D 群组中。对象均可绕任意轴进行旋转,或沿任意轴进行移动。无论 2D 群组中的对象在 3D 空间中的位置如何,它们都不会按深度排序且不可相交。

在下图中,群组 A 和群组 B 均放在 3D 空间中的同一个点。但由于它们是按层排序,所以群组 A 不会与群组 B 相交。

Figure. Layers list and Canvas showing groups sorted in layer order.

但是,当您将父代群组更改为 3D,群组 A 和群组 B 将会相交,如下图所示。

Figure. Layers list and Canvas showing groups sorted in depth order.

备注: 如果两个群组共面(占用同一平面),无论对象的父项是 2D 群组还是 3D 群组,它们都会按照层顺序进行合成。在 2D 合成中,所有对象都共面。