使用外部设备(如 MIDI 键盘、游戏杆和鼠标),“运动捕捉”工具可以驱动动画。驱动动画时,可以对其进行实时记录。
3ds Max 中的运动捕捉系统的处理方式如下:
- 在轨迹视图中,向需要由外部设备控制的特定轨迹分配运动捕捉动画控制器。
- 分配运动捕捉控制器之后,可以为该轨迹打开“属性”对话框,然后绑定外部设备的类型。例如,旋转运动捕捉控制器包含可以分别绑定每个设备的三个旋转轴。
- 绑定设备之后,在“轨迹属性”对话框下面部分中调整设置和参数。这些控件因设备类型而异。
- 在“工具”面板中,打开“运动捕捉”工具。您可以测试和记录任何帧范围内的轨迹的全部组合。
3ds Max 附带的运动捕捉设备如下:
“鼠标输入设备”卷展栏
“键盘输入设备”卷展栏
“游戏杆输入设备”卷展栏
“MIDI 设备”卷展栏
过程
要向轨迹分配运动捕捉控制器,请执行下列操作:
使用运动捕捉的第一步是,向所需的轨迹分配运动捕捉控制器。
- 在“轨迹视图”层次中,高亮显示所需的变换轨迹。
- 选择“控制器”“指定”。
3ds Max 将打开“指定控制器”对话框。
- 选择“运动捕捉”(可能以“位置”、“浮点”、“缩放”或其他开头),然后单击“确定”。
此时,将会显示“运动捕捉”对话框。其标题栏包括对象的名称和为其分配控制器的轨迹。
如果打开的是“数据”对话框,请将其关闭,并右键单击轨迹名称,然后选择“属性”。
分配运动捕捉控制器时,以前分配的控制器将作为该控制器的子级进行维护。这样,便可继续使用标准变换控件调整对象,即便仍旧使用运动捕捉控件,也是如此。
要绑定和调整设备,请执行下列操作:
- 分配运动捕捉控制器之后,可以确定要生成运动的设备类型。
根据控制器的类型,可以绑定一个或多个设备。例如,旋转运动捕捉控制器有三个设备,每个设备对应每个旋转轴。另外一方面,圆柱体半径控制器只能使用一个设备控制半径值。
- 为轨迹绑定“属性”对话框中的设备。
要指定设备,请执行下列操作:
- 选定旋转轨迹时,单击“属性”按钮。
旋转运动捕捉的“属性”对话框包括三个绑定按钮(一个按钮对应一个轴)。
- 单击“Y 旋转”按钮。在结果对话框中,选择“鼠标输入设备”,然后单击“确定”。
此时,“属性”对话框的下半部分将会显示特定于新设备的控件。假定这是一个没有连接其他对象的段,且需要水平移动鼠标。
- 在“鼠标输入”的下方,选择“水平”。
使用缩放微调器,可以调整鼠标相对于旋转的运动效果。“翻转”可以反转鼠标移动的旋转方向。
示例:要设置游戏杆控制器以便移动自由摄影机,请执行下列操作:
设置游戏杆控制器,以便在 XY 平面上来回移动自由摄影机。游戏杆在 Y 方向的移动将会影响摄影机的前后移动,而游戏杆在 X 方向的移动将会使摄影机发生旋转。您可以使用“基于方向的增量”,使摄影机在 Y 方向的移动是局部的,而不是全局的。
- 在“前”视口中创建“自由摄影机”。
- 在轨迹视图中,为摄影机的旋转轨迹分配旋转运动捕捉控制器。
- 右键单击旋转轨迹,以便显示“运动捕捉属性”对话框。
- 单击“Z 旋转”旁的按钮,然后分配“游戏杆输入设备”。
- 在“游戏杆轴”的下方,选中“X”选项(如果尚未选中)。
- 选中“积累”,以便在每次释放游戏杆时,旋转都不会归零。
示例:要设置随游戏杆一起移动的摄影机的位置控制器,请执行下列操作:
摄影机绕全局 Z 轴的旋转将由该游戏杆在 X 方向的运动控制。可以对该摄影机的位置控制器进行设置,以便使该摄影机可以随游戏杆在 Y 方向的运动而来回移动。
- 向摄影机的位置轨迹分配位置运动捕捉控制器,然后访问其“属性”对话框。
- 同时向“X 位置”和“Y 位置”按钮分配游戏杆输入设备。
- 单击“编辑绑定 X”按钮,然后选中“游戏杆轴”下方的“Y”选项。
- 选中“积累”。
- 单击“编辑绑定 Y”按钮,然后选中“游戏杆轴”下方的“Y”。
- 选中“积累”。
此时,游戏杆在 Y 方向的运动将会同时影响摄影机在 X 和 Y 方向的位置。
继续示例:要添加基于方向的增量选项,请执行下列操作:
如果此时已测试该摄影机,沿着 Y 方向前后移动游戏杆时,将会生成对角线运动,原因在于位置轨迹将会获得同等数量的 X 和 Y 值。添加“基于方向的增量”选项时,将会更改上述操作。
- 单击“X 编辑绑定”按钮。
- 在“基于方向的增量”选项的下方,单击控制器旁的按钮。
此时,将会显示一个对话框,其中列出了一组控制器。
- 为摄影机查找和选择旋转运动捕捉控制器。
- 将“方向”选项设置为 Z(方向所指的局部轴)。
- 将“组件”选项设置为 X(匹配的“编辑绑定”按钮)。
- 单击“Y 编辑绑定”按钮。
- 单击控制器旁的该按钮,然后分配旋转运动捕捉控制器。
- 将“方向”选项设置为 Z,然后将“组件”选项设置为 Y。
- 打开“运动捕捉”工具,启用列表中的两个轨迹,并单击“测试”按钮,然后在“顶”视口中查看摄影机时移动该摄影机。
沿着 Y 方向移动游戏杆时,摄影机也会随之前后移动。沿着 X 方向移动游戏杆时,将会旋转摄影机,但是,此时,继续沿着 Y 方向移动摄影机时,该摄影机将会沿着其局部轴前后移动。
界面
“运动捕捉”卷展栏
“记录控制”组
测试和记录动画。使用前三个按钮,可以直接控制记录,而使用“开始/停止”按钮,可以通过 MIDI 设备控制记录。
- 开始
- 开始使用“轨迹”列表下方“记录范围”下方设置的值进行记录。
- 停止
- 在到达“输出”帧之前停止记录。另外,还可以按 Esc 或单击鼠标右键停止记录。按 Esc 将取消记录且不保存关键点,而单击鼠标右键可提交记录并保存截至该点已记录的关键点。
- 测试
- 测试运动。没有做任何记录。重新单击“测试”、Esc 键或鼠标右键即可退出。
- 测试期间播放
- 启用并单击“测试”后,场景中的动画将会在测试运动期间循环播放。请注意,“运动捕捉”列表中选定的轨迹不会播放,原因在于这些轨迹正在等待来自指定外部设备的输入。
- 开始/停止
- 显示“开始/停止触发器设置”对话框。您可以选择要控制记录的 MIDI 设备的类型。
- 启用
- 使用指定的 MIDI 设备而不使用“开始”、“停止”和“测试”按钮进行记录。
提示: 在“时间配置”对话框中,可以减小视口播放速度,并以较低的速度进行测试或记录,然后将速度重置为常值,以便查看相应的结果。
“轨迹”组
“轨迹”区域显示了已经分配运动捕捉控制器的所有轨迹。此后,选择要受“记录控制”组中三个按钮影响的轨迹。单击某个轨迹,以便启用或禁用选择框。只有显示红框的选定轨迹才会受“记录控制”组的影响。
通过单击轨迹或使用“全部”、“反选”和“无”按钮,可以对其进行选择。此后,可以创建轨迹的命名选择集。要创建命名选择集,请单击所需的轨迹,然后在轨迹列表上方的“编辑”字段中输入相应的名称。要选择以前命名的集,请打开“编辑”窗口,然后从该列表中进行选择。若要删除命名集,请从该列表中将其选中,然后单击右侧的 (“删除”)。
注: 特定轨迹一次只能属于一个命名选择集。
- 全部
- 向“记录控制”组分配所有轨迹。
- 反转
- 选定轨迹后,将会向“记录控制”区域分配未选定的轨迹。
- 无
- 不向“记录控制”组分配轨迹。
默认情况下,将会向每个轨迹提供一个名称,它包含对象的名称以及紧跟其后的反斜杠和参数名称。例如,Sphere01\Angle 是一个应用于分配给球体的修改器之一的“角度”参数。重命名轨迹时,不仅可以使用轨迹视图中的“属性”对话框,而且可以双击“运动捕捉”工具中的轨迹名称。每个“属性”对话框的上卷展栏都包含一个“轨迹名称”字段。“轨迹名称”字段中输入的任何名称都显示在“属性”对话框标题栏中“命令”面板的“轨迹列表”中,且位于轨迹视图中“层次”列表中“数据”轨迹的旁边。
“记录范围”组
指定记录影响的帧范围。您还可以设置帧的预卷 范围(如下所述)。
- 预卷
- 指定按下“开始”按钮时开始播放动画所在的帧编号。如果该数字大于或等于“内”编号,将会忽略“预卷”编号。例如,如果“输入”为 0,“而“输出”为 200,则“预卷”为 -100 时,将会在开始记录之前提供 -100 帧。如果“预卷”为 50,则毫无意义。如果“预卷”和“外”编号定义的范围大于当前段,记录时,将会暂时放大该段。
- 输入
- 指定单击“开始”后记录开始所在的帧编号。
- 输出
- 指定单击“开始”后记录结束所在的帧编号。单击“停止”,可以在此前停止记录。
- 预卷期间激活
- 激活该选项时,运动捕捉在整个预卷帧期间都处于活动状态。此时,将会产生运动,但不会予以记录。因为到达“内”帧时活动运动可能与动画不符,所以会使运动在“内”帧处突然发生改变。如果未激活该选项,到达“内”帧之前,将会禁用或冻结运动。
“采样”组
捕捉运动数据时,将会以相对于当前帧速率的速率对其进行采样。其中,默认速率值为每秒 30 帧。采样速率随帧速率的增加而增加。
- 每帧
- 使用这两个单选按钮,每帧可以选择一个或两个采样。这是一种以字段速率进行采样的简便方法。如果对字段进行渲染,捕捉速率不必达到每秒 60 帧。控制器可以在采样之间插补。
- 减少关键点
- 减少捕捉运动时生成的关键点。
- 阈值
- 在“阈值”字段中输入的值可以约束 3ds Max 更改选定轨迹的方式。对任何帧而言,新动画和原始动画之差小于阈值。
较低的阈值与原始动画的匹配度高,但是不会大幅减少关键点数。
较高的阈值生成的关键点最少,但不能提高与原始动画的匹配精度。
注: 如果激活“减少关键点”,每完成一次记录,还需要额外的计算时间。
“开始/停止触发器设置”对话框
- 预设
- 选择 MIDI 设备的类型。如果选择“第二个媒体控制站”,可以使用其按钮执行“停止”、“播放”和“记录”操作。(媒体控制站是一种 MIDI 设备,它包含标准的 VCR 类型播放按钮和一个缓进。)通过选择“自定义”,可以启用该对话框中的其余微调器。您可以在该对话框中设置通道和音符编号。另外,也可以使用“自定义”来定制“媒体控制站”使用的控件。
- 通道
- 指定分配给 MIDI 设备的通道。
- 音符编号
- 使用后面带该标签的“停止”、“播放”和“记录”微调器,可以指定哪些音符事件可以触发哪项功能。
- 停止该音符事件可以停止播放或记录。在“媒体控制站”中,它可能是方形按钮。其作用与单击“记录控制”组中的“停止”按钮相同。
- 播放播放动画。这是“媒体控制站”中的箭头按钮。
- 记录如果该音符由自身发送,其作用与单击“记录控制”组中的“测试”按钮相同。要记录运动捕捉,必须同时按下“播放”和“记录”按钮(其作用与单击“记录控制”组中的“开始”按钮相同)。您可以在按下“记录”按钮之前或后按下“播放”按钮,然后在按下“记录”按钮之前或之后按下“播放”按钮。释放该按钮后,将会开始进行记录。
“鼠标输入设备”卷展栏
通过鼠标的水平或垂直运动控制动画。可用的设置包括:
- 水平/垂直
- 指定驱动动画的鼠标运动。
- 比例
- 缩放鼠标移动相对于动画响应的效果。(微调器值:浮点值,0 至 999,999)
- 翻转
- 翻转响应相对于鼠标移动的方向。例如,向右水平移动鼠标时,将会对旋转控制器产生顺时针效果。激活“翻转”时,将会翻转旋转成逆时针方向。
“键盘输入设备”卷展栏
用于分配大多数键盘键,以便驱动动画。
“关键点分配”组
单击“分配”按钮,然后按任何键。此时,分配的键将会显示在右侧的列表中。或者,可以打开该列表,然后从其中选择某个键。
- 指定
- 单击“分配”按钮,然后按任何键。此时,分配的键将会显示在右侧的下部列表中。
- [下拉列表]
- 您可以打开该列表,然后从中选择某个键。
“封套参数”组
指定相对于按键和释放键操作封套生效的时间。
- 击打
- 显示按键后使该值达到最大所需的时间。
- 衰退
- 显示达到最大值后使该值减小到“持续”微调器指定值所需的时间。
- 持续
- 继“击打”和“衰退”之后,此处指定的值是释放键之前持续的值。
- 释放
- 释放键后,它是该值减小为 0 时所需的时间。
“参数缩放”组
设置封套的比例和输出值的范围。
- 时间
- 指定“击打”、“衰退”和“释放”参数的比例。该值表示一个单位包含的秒数。例如,如果该值为 1.0,则“击打”值为 1.0 相当于 1 秒。
- 范围
- 设置控制器的最大输出值。
注: 该控制器将会忽略 Ctrl、Alt 和 Shift 键的状态。
提示: 因为一个键盘键只能生成正值或负值,所以,如果要控制“弯曲角度”的两个方向,例如,可以使用列表控制器。首选,确保该列表包含第一次分配的标准控制器(如 Bezier 控制器),以便保持中心位置。然后,向该列表中添加两个键盘运动捕捉控制器(一个分配给一个键,其他分配给另外一个键)。将一个控制器的范围设置为正,而将另外一个控制器的范围设置为负。
“游戏杆输入设备”卷展栏
“游戏杆输入设备”驱动程序是专门为 Microsoft Sidewinder 游戏杆设计的,它包含的控件超过了标准游戏杆。另外,还可以将该设备驱动程序用于标准游戏杆。
“游戏杆轴”组
- X、Y、Z
- 指定哪些游戏杆指令可以驱动动画。(标准游戏杆只有 X 和 Y 轴。扭曲游戏杆时,Sidewinder 提供有 Z 轴。)
- 减速
- 对于 Sidewinder,这是游戏杆之旁的滑块。
- 比例
- 缩放游戏杆操作相对于动画响应的效果。(微调器值:浮点值,0 至 999,999)
- 翻转
- 翻转响应方向。
- 积累
- 禁用该选项时,游戏杆的位置表示绝对位置,所以,只能在游戏杆限制定义的“矩形”内操作。游戏杆返回到停止位置时,生成的值会恢复为 0。启用该选项时,游戏杆表示当前位置发生了更改。例如,向前移动游戏杆时,可能会使对象开始移动。此后,它将会继续移动,直到该游戏杆返回到停止位置为止。
“游戏杆按钮”组
- 触动盖的触点(左右、上下)
- Sidewinder 包括主游戏杆尖端的小型游戏杆。指定该游戏杆在动画中控制的方向。
- 1, 2, 3, 4
- 指定 Sidewinder 游戏杆中四个按钮之一。这些按钮与触动盖的触点的工作方式相同,但不同的是每个按钮只能在按下时增加方向值。释放按钮时,该值将会恢复为 0(居中)。
- 增大/减小
- 只有在选择其中一个数字游戏杆按钮选项时可用的三个选项之一。该选项(增大/减小)表示,按下按钮时可以增大值;释放按钮时可以减小值。
- 增大
- 启用时,按下按钮时可以增大值;释放按钮时可以保持值不变。
- 绝对
- 启用时,如果按下按钮,分配的参数会转为“速度”微调器中设置的值;如果释放按钮,该参数会恢复为 0。请使用此选项打开/关闭动画,如闪烁的灯光。
- 速度
- 用于控制使用触动盖的触点或四个按钮时值的更改速率。如果使用按钮选项和“绝对”选项,按下按钮时,将会指定输出值。(微调器值:浮点值,-999,999 至 999,999)
“基于方向的增量”组
提供了各种组件,用于从旋转控制器生成移动方向。这些选项主要是在设置第一人称飞行动画时(如控制摄影机时)使用。
注: 只有在“游戏杆轴”组中选中“积累”时,才能使用该区域中的项。
- 控制器
- 分配要通过其生成方向的旋转捉控制器。
- 清除
- 删除分配的控制器。
- 方向 X/Y/Z
- 指定要用作方向的局部轴。例如,对“自由摄影机”而言,它会是 Z,原因在于该摄影机指向 Z 方向。但是,如果驾驶的汽车指向 Y 轴,则最好使用 Y。
- 组分 X/Y/Z
- 指定要使用的编辑绑定。使其与“设备绑定”下方的“编辑绑定”按钮匹配。例如,如果选择“Y 编辑绑定”按钮,将会选中“Y 组件”选项。
“MIDI 设备”卷展栏
使用 MIDI 设备控制动画。
“MIDI 通道”组
包含 16 个按钮。单击以便指定为其分配 MIDI 设备的通道。
“MIDI 触发器”组
定义要生成运动的 MIDI 事件(消息)的类型。它包含四个选项。
- 音符选中此选项时,音符编号或音高将会定义输出值。该值是从音符范围内的音符生成的,如下面的“音符范围”组中所述。如果音符是音符范围的下限,该值是“参数缩放”组下方指定的最小值。如果音符是音符范围的上限,该值是相同区域中指定的最大值。范围内的音符都可以插补在最小值和最大值之间。(注意,最小值不一定要小于最大值。)按下不同的键时,生成的值将左右滑动。按键越难,值的更改速度就越快。“速度”设置可以从整体上定义按下键时值的更改快慢程度。
- 速率选中该选项时,按下音符的速率将会确定输出值。“音符范围”组下方设置的音符可以指定按下后生效的音符。按下“音符范围”内的键时,该值一直是最小值。按下该键时,该值会根据按键的难易程度接近最大值。(事实上,该值沿着抛物线的轨迹向最大值接近。)“持续”设置可以定义值沿着抛物线的轨迹移动的时间。选中“变量”时,持续长度也可以通过按键的难易程度进行缩放。
- 弯音MIDI 乐器的弯音按键将会定义输出值。在这种情况下,“音符范围”不适用,所以没有提供。
- MIDI 控制器在连接不同于典型键盘的 MIDI 控制器类型时指定音符事件。例如,如果使用的是 MIDI 滑块框,请选中“MIDI 控制器”选项,然后使用 # 微调器指定特定滑块的音符事件。
“音符范围”组
- 低音/高音
- 对这些音符进行设置,以便在启用“MIDI 触发器”下方的“音符”选项时,指定音符范围的低端和高端值。
“参数缩放”组
包含用于指定生成值范围的“最小”和“最大”微调器。请参见“音符”和“速率”。
- MIDI 通道查看器
- 单击以显示一个对话框,从中可以测试 MIDI 设备,以查看正在接收事件的 MIDI 通道和正在触发的音符。
“MIDI 通道查看器”对话框
“MIDI 通道”组
提供排成一列的 16 个按钮和表示 16 个 MIDI 通道的进度栏。选择要查看音符活动的通道。如果任何通道中包含事件,该通道进度栏将会亮起。
“MIDI 音符”组
使用 11 个八度音阶按钮,可以选择要查看的八度音阶。如果使用该八度音阶播放音符,“音符”栏中的相应进度栏将会亮起。
- MIDI 控制器编号
- 使用不同类型的 MIDI 控制器(如滑块框)时,可以指定音符事件,然后在激活该事件时查看相应的进度栏是否亮起。您可以查找正确的音符编号,方法是激活该事件,同时查看对话框底部的“音符编号”字段。
- 通道
- 这是四个文本字段之一。这些文本字段可以在激活事件时显示 MIDI 设备生成的所有值。“通道”字段可以显示当前选定的通道。
- 事件
- 显示正在发送的 MIDI 事件的类型。类型可能如下:
启用音符:9
禁用音符:8
弯音:14
MIDI 控制器:11
- 速率
- 显示速率。速率的含义因事件而异。对最常见的事件而言,按下音符时,该值表示的是击打键的速率。但是,对其他事件而言,可能会生成连续值。例如,弯音事件可以传输弯音的位置。
- 音符编号
- 为事件显示相应的音符编号。例如,如果使用的是非键盘 MIDI 设备,如滑块框,可以使用该选项识别特定滑块的音符编号。