| 六、加权列表控制器 通过对列表中控制器的权重进行更改或设置动画,可以调整每个控制器的效果并以非线性方式设置动画。 1、单击乒乓球.max打开我们提供的一个场景文件。如下图所示。 
图24:打开乒乓球.max文件 2、播放动画观看效果,乒乓球以模拟的凌空击球方式在球网上来回反弹,其中最后的四次反弹在原地发生,通过使用加权列表控制器可以删除后四次反弹,并用滚动运动替换它们,也可以添加“噪波”控制器去除反弹,改为让球在球桌上不稳定地来回运动,然后停止。 3、选择乒乓球,打开“运动”面板,并展开“指定控制器”卷展栏,此时对于乒乓球,“指定控制器”卷展栏将“位置”控制器显示为“Bezier 位置”,如下图所示。我们至少可以在三个不同的位置将控制器指定给对象:即在“轨迹视图”窗口中、在“运动”面板上或在“动画”菜单上,这里我们将使用“动画”菜单指定控制器,并使用“运动”面板来编辑权重。 
图25:指定控制器 4、单击屏幕上方的“动画”菜单,然后单击其下的“位置控制器”>“噪波”选项,此时我们就将澡波控制器指定给了乒乓球,这时在视口中的轨迹将会变成杂乱的红色样条线,如下图所示。 
图26:“位置控制器”>“噪波”选项 5、需要说明的是,在从“动画”菜单指定澡波控制器给乒乓球时,加权列表控制器会自动添加到乒乓球对象上。 6、单击进入“运动”面板中,在“指定控制器”卷展栏上,展开“位置”列表,然后展开“噪波位置”,如下图所示。新的“噪波位置”轨迹出现在“Bezier 位置”轨迹的下方,它将新的“噪波”控制器添加到其中,此时如果播放动画,则乒乓球会满场飞来飞去。 
图27:展开“噪波位置” 7、调整噪波参数和控制器权重。在“指定控制器”窗口中,高亮显示并右键单击“噪波位置”项,然后选择“属性”,此时会弹出“噪波控制器”属性对话框,将“频率”更改为非常小的值,例如0.009,将“Z 向强度”更改为 0.0,将“X 向强度”和“Y 向强度”的值更改为 1.0,此时将会创建球在桌面上的不稳定的来回运动,如下图所示。 
图28:调整噪波参数和控制器权重 8、播放动画观察效果。现在噪波的抖动较少,几乎看不见,我们需要对控制器进行加权,以便噪波在第201帧之前不影响反弹,并且禁用第200帧之后的位置控制器。 9、设置权重动画。单击打开“自动关键点”功能,“自动关键点”按钮变成红色,将时间滑块拖动到第200帧的位置,我们将在第200帧和第201帧为“Bezier 位置”设置关键点,还将在第200帧、第201帧和第0帧为“噪波”设置关键点。 10、在运动命令面板中,打开“位置列表”卷展栏,然后在窗口中选择“Bezier 位置”层,找到“权重”字段,然后按住Shift键并右键单击微调器箭头,即权重对话框中数字100的右侧上下小箭头,此时微调器的轮廓变成红色,说明已将关键帧置于此处,我们也可以在“设置关键点”和“自动关键点”模式下用该方法设置关键点,如下图所示。 
图29:调节权重值 11、在“位置列表”卷展栏中选择“噪波位置”层,然后右键单击权重右侧数字100后的微调器,此时“权重”值被重置为 0,并且设置了一个关键点,如下图所示。在打开自动关键点的前提下,右键单击任一微调器,可将值重置为0并设置一个关键点;而按住 Shift 键并右键单击任一微调器,可在不更改值的情况下添加关键点。 
图30:重置权重并设置一个关键点 12、将时间滑块移动到第201帧,然后在“噪波”仍处于选定状态情况下,在“权重”字段中输入 100。 13、在“位置列表”中,选择“Bezier 位置”层,然后右键单击“权重”微调器将值设置为 0,并设置一个关键点,这们做将从该点开始去除反弹效果。 14、在动画播放控件中,将时间滑块拖动到第0帧,然后在“位置列表”中选择“噪波位置”,然后将“权重”值设置为 0。 15、播放动画观看效果,乒乓球在第200帧之后停止了反弹,在球桌上来回滚动。 16、纠正错误的移动。如果由于某些原因使乒乓球在空中而不是在球桌上来回滚动,那么就将时间滑块拖动到第201帧,然后向下移动虚拟对象直到球与球桌接触,通过使用此方法可纠正任何其他错误的移动。 17、若要完全停止乒乓球的移动,可以将时间滑块拖动到第250帧,并将“噪波”权重的关键帧设置为 0。 18、此时播放动画观看效果,乒乓球在第250帧完全停止了移动。再次单击“自动关键点”钮将其关闭。
|