3D打印网-中国3D打印门户移动版

主页 > 3D建模教程 > 3D建模教程 >

3ds Max教程:用约束和控制器设置太空战斗机的动画

在本课程中,将对执行任务的太空战斗机飞行编队使用多种约束和控制器。

设置课程:

  • 打开 flyingspacefighter03.max。

    该课程文件在 tutorials\intro_to_animation 文件夹中。

    场景已经包含下列内容:

    • 由三架太空战斗机 FlightLeader、Wingman01 和 Wingman02 组成的飞行编队。

    • 虚拟对象 SpaceshipControl。

    • 两条运动路径:flightpath(可见)和 wingmanpath(隐藏)。

    • 摄影机(隐藏)SpaceCam。

使用虚拟对象控制飞行编队

当设置动画时,虚拟对象是很有用的。通过设置虚拟对象的动画,可以专注于用非常简单的对象设置运动,而不会降低系统的速度。一旦完成了虚拟对象的动画,就可以将对象链接到虚拟对象上。现在将虚拟对象移到哪,对象就移到哪。

将太空战斗机链接到虚拟对象:

  1.  激活“顶”视口(如果其尚未激活),并从主工具栏中单击“选择并链接”按钮。

  2. 选择 FlightLeader,并将光标拖动到虚拟对象 SpaceshipControl 上。松开鼠标按钮。

    FlightLeader 现在已链接到 SpaceshipControl。无论您将 SpaceshipControl 移动到何处,FlightLeader 都会随之移动。

  3. 将 Wingman01 和 Wingman02 都链接到 SpaceshipControl。

为虚拟对象添加路径约束:

  1.  在“顶”视口中,使用“最大化显示”查看场景。

  2. 选择 SpaceshipControl。

  3. 从“动画”菜单中,选择“约束”>“路径约束”。拖动光标并单击 flightpath。

    SpaceshipControl 会跳到路径的起点。太空战斗机会随之移动,因为它们已经链接到虚拟对象。

  4. 在“路径参数”卷展栏中,进行下列设置。

    • 启用“跟随”、“倾斜”和“恒定速度”。

    • 在“轴”组中,启用“Y”和“翻转”。

    • 将“倾斜量”设置为 7.0,将“平滑度”设置为 1.0。

  5. 激活“SpaceCam”视口并播放动画。

    所有三架太空战斗机都将沿 flightpath 移动。

  6. 将场景另存为 MyFlight01.max。

使摄影机跟随运动

在本练习中,将使用“链接约束”使摄影机在飞行编队掠过时跟随它们。从上一课继续,或加载 flyingspacefighter04.max

为摄影机添加链接约束:

  1.  打开“显示”面板,并禁用“按类别隐藏”卷展栏中的“摄影机”。

    摄影机 SpaceCam 将出现。

  2.  在“顶”视口中,使用“最大化显示”查看场景。选择摄影机目标。

    同时确保将时间滑块设置为第 0 帧(零)。

  3. 从主菜单中,选择“动画”>“约束”>“链接约束”。单击 flightpath 以在第 0 帧(零)设置第一个链接参数。

  4. 将时间滑块移动到第 80 帧,并单击“链接参数”卷展栏中的“添加链接”按钮。单击 SpaceshipControl。

  5. 单击“添加链接”将其禁用。

  6. 激活“SpaceCam”视口并播放动画。

    摄影机目标从第 0 帧到第 79 帧链接到 flightpath。在第 80 帧,摄影机目标开始专门追踪 SpaceshipControl 对象。

  7. 将场景另存为 MyFlight02.max。

飞行编队队长过于自信

您的飞行编队队长性格非常大胆。当飞行编队从 SpaceCam 的最佳视点掠过时,他或她觉得应该做一个 V 型滚转。在本练习中,将使用“方向约束”控制飞行编队队长的太空战斗机在表演桶滚的旋转。从上一课继续,或加载 flyingspacefighter05.max。

  1.  在“顶”视口中,使用“缩放区域”查看三架太空战斗机。

  2.  在“创建”面板上单击“辅助对象”,然后单击“虚拟对象”。在 FlightLeader 旁边创建一个新的虚拟对象,并将其命名为 barrelroll。

  3.  单击“选择并链接”,将 barrelroll 链接到 SpaceshipControl。

  4. 从“工具”菜单中选择“对齐”,然后单击 SpaceshipControl。

    “对齐当前选择(SpaceshipControl)”对话框会出现。

  5. 在“对齐方向(局部)”组中,启用“X 轴”、“Y 轴”和“Z 轴”控件,并单击“确定”。

    barrelroll 虚拟对象会与 SpaceshipControl 对齐。

  6.  在“运动”面板上,打开“指定控制器”卷展栏(如果其未打开),并选择“旋转:Euler XYZ”控制器。

  7.  单击“指定控制器”按钮,并从“指定旋转控制器”对话框中选择“TCB 旋转”。

    注意:这在稍后会变得非常重要,所以不要漏掉这一步。

设置 V 型滚转的动画:

  1. 在“顶”视口中选择 FlightLeader。

  2. 打开“动画”菜单,并选择“约束”>“方向约束”。将光标移动到 barrelroll 虚拟对象上并选择它。

    您会看到 barrelroll 被添加到“运动”面板上的“方向约束目标”列表中。

  3. 选择 barrelroll,并确保时间滑块位于第 0 帧(零)。

  4.   启用“设置关键点”切换,并单击“设置关键点”按钮。

  5.  将时间滑块移动到第 110 帧,并再次单击“设置关键点”。

    您已经添加了两个关键点,它们会使 FlightLeader 正常地从第 0 帧飞行到第 110 帧。

  6. 激活 SpaceCam 视口,并将时间滑块移动到第 130 帧。

  7.  单击“选择并旋转”,并将“参考坐标系”更改为“局部”。

  8. 单击 barrelroll 虚拟对象并将其绕 Y 轴旋转大约 180 度,然后单击“设置关键点”按钮。

    注意:如果希望精确一些,则可以在状态栏上的 Y 轴输入字段中输入旋转度数。

  9. 将时间滑块移动到第 150 帧,并将 barrelroll 虚拟对象绕 Y 轴旋转另一个 180 度,然后单击“设置关键点”按钮。完成后,禁用“设置关键点”切换。

  10. 将场景另存为 MyFlight03.max,并播放动画。

遇到麻烦的僚机

当 FlightLeader 表演特技时,Wingman01 好像遇到了一些麻烦。他看起来不像其他人飞行得那样平稳。在本练习中,将使用“噪波”控制器为 Wingman01 的飞行动态添加一些湍流。从上一课继续,或加载 flyingspacefighter06.max。

注意:如果从上一课继续,请确保时间滑块已返回到第 0 帧(零)。

添加湍流:

  1.  在“顶”视口中,使用“缩放区域”查看三架太空战斗机(如果尚未执行该操作)。

    您可能必须先使用“最大化显示”,再使用“缩放区域”来查看三架战斗机。

  2. 选择 Wingman01。

  3. 在“动画”菜单上,选择“位置控制器”>“噪波”。

    执行该操作会为 Wingman01 自动添加“列表”控制器。“位置列表”包含原始的“线性位置”和新的“噪波位置”控制器,它们的默认“权重”设置为 1.0。

  4. 播放动画,并注意 Wingman01 的无规律飞行。

  5. 停止播放,并将“噪波位置”控制器的“权重”更改为 25。

    现在 Wingman01 太空战斗机的飞行路径会受到轻微战斗损伤的影响。

  6. 将场景另存为 MyFlight04.max。

调离僚机

现在看起来 Wingman02 好像收到一条信息,并正准备奉命离开编队飞往别处。您将重新访问“链接约束”,以便让 Wingman02 跟随 FlightLeader 飞行一小会儿,然后飞往另一条路径。从上一课继续,或加载 flyingspacefighter07.max。

为 Wingman02 更改路线:

  1. 将时间滑块重置为第 0 帧(零),并在“顶”视口中缩放到三架太空战斗机。

  2. 在 Wingman02 旁边创建一个新的虚拟对象,并将其命名为 WingmanControl。

  3. 右键单击任意视口,并从四元菜单中选择“按名称取消隐藏”。选择 wingmanpath 并单击“取消隐藏”。

    在 Wingman02 前面会出现一条黄色的路径。

  4. 确保新的虚拟对象 WingmanControl 仍处于选定状态,然后从“动画”菜单中选择“约束”>“路径约束”。将光标拖动到 wingmanpath 上并拾取它。

    WingmanControl 会跳到 wingmanpath 的起点。

  5. 在“路径参数”卷展栏中复制先前的设置。

    • 启用“跟随”、“倾斜”和“恒定速度”。

    • 在“轴”组中,启用“Y”和“翻转”。

    • 将“倾斜量”设置为 7.0,将“平滑度”设置为 1.0。

      如果播放动画,会看到 WingmanControl 在它自己的路径上。

使 Wingman02 更改路径:

  1.  在“顶”视口中,选择 Wingman02,并单击“断开当前选择链接”按钮。

    Wingman02 将不再链接到 SpaceshipControl 虚拟对象上。

  2. 从“动画”菜单中选择“约束”>“链接约束”,并选择 SpaceshipControl。

    Wingman02 会像以前一样飞行,但链接约束为您提供了灵活性,可以让它跟随不同的路径。

  3. 将时间滑块移动到第 45 帧,并单击“运动”面板上的“链接参数”卷展栏中的“添加链接”按钮。

  4. 单击 WingmanControl 虚拟对象。

    您将看到 WingmanControl 已添加到“目标”列表中,并且当 Wingman02 到达第 45 帧时,太空战斗机开始跟随 WingmanControl 虚拟对象到另一条路径上。

  5. 将场景另存为 MyFlight05.max,并播放动画。

使 Wingman02 滚转出编队:

若要使 Wingman02 滚转出编队,您将再次使用“方向约束”。

  1. 如果时间滑块不在第 0 帧,将其移动回第 0 帧(零)。

  2. 在“顶”视口中的 Wingman02 旁边创建另一个虚拟对象,并将其命名为 wingmanroll。

  3. 使用“选择并移动”将 wingmanroll 放置在 Wingman02 旁边。

    观察“前”和“右”视口以帮助您放置它。这将有助于您在场景中有组织地放置对象。

  4.  单击“选择并链接”,将 wingmanroll 链接到 WingmanControl。

  5. 从“工具”菜单中选择“对齐”,然后单击 WingmanControl。

    “对齐当前选择(WingmanControl)”对话框会出现。

  6. 在“对齐方向(局部)”组中,启用“X 轴”、“Y 轴”和“Z 轴”控件,并单击“确定”。

    wingmanroll 虚拟对象会与 WingmanControl 对齐。

    注意:这是很重要的,因为要确保稍后赋予 wingmanroll 的旋转值将基于 WingmanControl 的初始方向。否则,赋予 wingmanroll 的任何旋转值会导致太空船的翻转失去控制。

  7. 在“运动”面板上,打开“指定控制器”卷展栏(如果其未打开),并选择“旋转:Euler XYZ”控制器。

  8. 单击“指定控制器”按钮,并从“指定旋转控制器”对话框中选择“TCB 旋转”。

    注意:如果未指定“TCB 旋转”控制器,将无法使 wingmanroll 绕局部轴旋转。

  9. 在“顶”视口中选择 Wingman02。

  10. 打开“动画”菜单,并选择“约束”>“方向约束”。将光标移动到 wingmanroll 上并选择它。

    您会看到 wingmanroll 被添加到“运动”面板上的“方向约束”卷展栏中的“方向约束”目标列表中。

  11. 在“顶”视口中选择 wingmanroll。

  12.   启用“设置关键点”切换,并单击“设置关键点”按钮。

  13.  将时间滑块移动到第 60 帧,并再次单击“设置关键点”。

    您已经添加了两个关键点,它们会使 Wingman02 正常地从第 0 帧飞行到第 60 帧。

  14. 激活 SpaceCam 视口,并将时间滑块移动到第 85 帧。

  15.  单击“选择并旋转”,并将“参考坐标系”更改为“局部”。

  16. 在这一步中要创建两个旋转:

    • 在 X 轴坐标显示输入字段中输入 -15,并单击“设置关键点”按钮。

    • 在 Y 轴坐标显示输入字段中输入 90,并单击“设置关键点”按钮。

  17. 将时间滑块移动到第 100 帧,以执行下面两个旋转:

    • 绕 Z 轴旋转 5 度,并单击“设置关键点”按钮。

    • 绕 Y 轴旋转 90 度,并再次单击“设置关键点”按钮。

  18. 将时间滑块移动到第 115 帧,以执行下面两个旋转:

    • 绕 Z 轴旋转 10 度,并单击“设置关键点”按钮。

    • 绕 Y 轴旋转 90 度,并再次单击“设置关键点”按钮。

  19. 完成后,禁用“设置关键点”切换。将场景另存为 MyFlight06.max,并播放动画。

(责任编辑:admin)