优化反应

既然已经定义了均匀地弯曲和展开手指和拇指的基本反应,那么您就可以使用“反应管理器”为手指运动添加一些细微之处。

设置课程:

调整手指弯曲:

实际的手指关节并不是均匀旋转;若要模拟实际运动,需要逐个骨骼地调整反应曲线。

  1. 在“反应管理器”对话框的“反应”列表中,选择“BN_Pointer01 / Y 轴旋转”

    在“反应管理器”对话框的曲线图区域出现一条曲线,代表此反应控制器的反应状态。您将编辑此曲线以对不同关节的运动添加一些变化。

  2. 单击曲线的一个端点以将其选中,然后按 Ctrl 键并单击另一端点以使两个点都被选中。右键单击任一端点,然后从菜单中选择“Bezier-角点”。

  3. 调整曲线的控制柄,使曲线平缓地过渡到端点,如下图所示。

  4. 右键单击中点(它代表初始状态),然后从菜单中选择“Bezier-平滑”。 调整控制柄以使曲线平滑地经过该点,如下图所示。

    提示:也可以在曲线图内拖动该点以进一步优化曲线。

    接下来,将调整其他手指。

  5. 在“反应管理器”>“反应”列表中,单击“BN_pointer02 / Y 轴旋转”,然后按 Ctrl 键并单击“BN_pointer03 / Y 轴旋转”以使二者高亮显示。在曲线图中调整曲线,以使每条曲线具有各自不同的图形。

  6. 在“透视”视口中选择 CNT_HAND 对象,并来回移动“Pointer”滑块。比较移动“Pointer”滑块时与移动“Middle”滑块时骨骼弯曲的方式。这种手指间速度上的微小变化增添了一点真实感,可以防止动画看起来过于机械。

    对其余手指重复此过程中的步骤。

    提示:若要选择多个端点或中点,请在曲线图中围绕这些点拖出一个区域。

设置手张开:

在此过程中,将定义另一个反应控制器:“Splay”属性。

  1. \tutorials\reaction_manager 目录中打开文件 hand_reactions04.max,或从上一节继续。

  2. 在“反应管理器”对话框中,单击“添加主”按钮。在视口中选择 CNT_HAND 对象,然后从菜单中选择“修改对象”>“属性承载器”>“Custom_Attributes”>“Hand Splay”。

  3. H 键显示“选择对象”对话框。在对话框中高亮显示 BN_Thumb01BN_Pointer01BN_Middle01BN_Ring01BN_Pinky01,然后单击“选择”以将它们一起选中。

  4. 在骨骼仍处于选定状态情况下,在“反应管理器”对话框中单击“添加选定项”按钮。在菜单中导航以选择“变换”>“旋转”>“Z 轴旋转”。

  5. 单击“创建模式”按钮以将其启用。

  6. 在视口中选择 CNT_HAND。在“修改”面板 >“属性承载器”修改器 >“自定义属性”卷展栏中,将“Hand Splay”滑块拖动到最右侧。

  7. 围绕每个手指基础关节的局部 Z 轴对其进行旋转,以使手指展开,如下图所示。

    警告: 请确保将参考坐标系设置为“局部”。

  8. 在“反应管理器”对话框中,单击“创建状态”按钮。

  9. 在视口中选择 CNT_HAND,然后将“Hand Splay”滑块拖动到最左侧。

  10. 围绕每个手指基础关节的局部 Z 轴对其进行旋转,以使手指闭合在一起。

  11. 在“反应管理器”对话框中,单击“创建状态”按钮。

  12. 单击“创建模式”按钮以将其禁用。

您现在已经捕获了手的单个手指的运动,这使得制作手指和拇指运动的动画变得容易。尝试选择 CNT_HAND 并滑动各个滑块,以观察它们的效果以及它们是如何相互作用的。将您的结果与完成的文件 hand_reactions05.max 中的结果进行比较。

试验设置不同滑块位置的关键帧以创建不同的手指动画。

小结

在本教程中,您学习了如何使用“反应管理器”建立控制器与参数之间的主从关系、如何定义反应状态,以及如何微调反应状态以模拟真实的运动。