三维动画制作技术(二)小球弹跳动画目的及意义•综合运用Maya基本动画控制工具•掌握设置关键帧的方法•全面使用GraphEditor主要的编辑功能调节动画曲线•用所提供的节奏音频完成一个小球弹跳的动画•并且能够用操作系统的默认播放器播出创建简单的模型和场景•1).创建一个简单的Nurbs小球,Scale是1个单位。•2).创建一Plane,作为参考地面,Scale是100个单位。•3).创建一Squash变形器:DeformCreateNonlinearSquash。•4).把Squash变形器作为小球的子物体。•5).导入背景声音。分析动画内容,确立解决方案•我们做的小球动画要求随着背景节拍跳动,跳跃中要体现重力的感觉以及体现和橡皮球类似的充满弹性的压缩变形效果。•1).分析背景声音的节拍,找出重音帧的具体位置,我们把重音帧确定为小球落地帧。然后,暂定选择两落地帧的的中间那帧为小球弹跳到最高点的关键帧。•2).预先考虑好小球从每一次接触地面、到弹跳到最高处、然后再次到坠落触地的水平位移(这里准备在X方向做位移)和弹跳的垂直高度(这里是Y方向)。•3).我们根据上面分析的大致方案制作简单的小球弹跳动画,先不考虑小球的弹跳效果。•4).观察动画,运用物理规律,通过调整曲线,使小球的弹跳更具有物理性质,体现重力的感觉。•5).通过使用Squash变形器,为小球加上变形效果。•6).调整动画曲线,达到预期的运动效果。•7).为了可能的动画需要,让小球持续弹跳下去。分析声音,创建初始跳跃的五个关键帧•整个背景音效的时间不长,我们就确定时间播放滑条的起始帧为0,终止帧为60,如下图•我们分析背景声音,知道重音的关键帧(即小球落地的关键帧)在4、24、44帧出现。落地关键帧的设置•①将时间移至第4帧处,我们选择小球在原地设置第1个关键帧(AnimateSetkey或按快捷键”S”);•②将时间移至第24帧处,将小球的X轴设为10,设置第2个关键帧;•③将时间移至第44帧处,将小球的X轴设为20,设置第3个关键帧;确定好落地关键帧后,我们再来设置小球弹至最高处的关键帧:•④将时间移至4与24之间的帧处,即第14帧处,不改变别的值,在通道栏将小球的Y轴设为8,设置第4个关键帧;•⑤将时间移至24与44之间的帧处,即第34帧处,不改变别的值,在通道栏将小球的Y轴设为8,设置第5个关键帧。•播放动画,小球沿着X轴的正方向发生了简单的跳跃动画。真实物理世界中的小球•我们仔细观察,会发现小球弹跳时缺少重量感。而且在撞击地面时,有些滑动漂浮的感觉,为此,我们需要打开图表编辑器,对小球的运动曲线进行调节。•在调节之前,我们先来分析小球的弹跳运动。•我们生活在一个充满重力的世界,被弹到高处的小球由于受到了地心引力的作用,会逐步减弱向上弹的力,最终成为地心引力的奴隶,转变为向下的加速运动,当向下撞到地面时,小球遇到了坚硬的阻碍物,重力瞬时转化为向上弹跳的运动,这样,小球周而复始,不停的做重力和向上弹跳的运动,直到由于摩擦力的原因消耗了能量而停止运动。(在这个练习里,我们不考虑摩擦力的原因,小球的弹跳运动将是一直无限的持续下去的)•为了实现这一运动,我们必须把小球调节成加速坠地,撞地后迅速的成为向上减速的运动。当弹跳到最高点时,向上的运动趋于零,然后转化为向下的加速运动。使用图表编辑器编辑动画曲线•①打开图表编辑器,选择小球的TranslateY,显示Y轴运动。•②全选关键帧,选择CurvesWeightedTangents命令,使曲线成为权重曲线。这样,我们可以通过编辑切线的权重来更合理的达到速度变化的要求。•③单击工具栏,使五个关键帧都成为Flat切线型。编辑动画曲线•④框选小球的3个落地关键帧,单击,断开落地帧地切线,以便达到小球落地后重力和弹力的瞬间变化的效果。•⑤单击,释放这些帧的切线权重。现在,我们可以通过调节切线手柄任意调节切线权重了。编辑动画曲线•⑥现在我们开始调节落地帧的加减速运动,我们以第24帧落地帧为例,单击,选择第24处的关键帧切线手柄,调节成如下图示样:•第24帧的左边曲线现在相当于小球坠地的重力加速运动,当到达24帧处,受到地面的阻碍,迅速成为相反方向的运动,如第24帧的右边曲线。编辑动画曲线•⑦由于向上的运动是个减速运动,并在最高点运动趋于零,然后成为向下的加速运动。于是,我们开始调节最高点处帧的切线,以第34帧为例,框选第34帧,释放该帧权重,选择切线手柄,调节成下图示样:•⑧好了,现在用类似的操作完成其他关键帧的曲线调节,最终如图:编辑动画曲线•现在,我们播放动画,可以看到小球的弹跳已经具备重量的感觉,落地滑动漂浮的现象也没有了。如果不是太满意,我们可以再次调节曲线,通过不同的加减运动的变化,以达到小球弹跳具有的更好的重力效果。为小球加上变形效果•但是我们还是发现小球弹跳就像一个硬梆梆的实芯球,跳的很硬,而我们要得到的效果是一个充满弹性的橡皮球。•我们知道橡皮球是由可变形的柔软的橡皮构成的,它具有挤压和拉伸的特性,当球弹跳时,撞击地面会受到挤压,而在弹起时,又会由于碰撞和惯性而拉伸,并且当球挤压和拉伸后,小球由于物理特性,会恢复原状。•要达到这个生动的效果,我们用squash变形器,建立小球的变形动画。在真实世界中,橡皮球的变形效果是很轻微,并不太明显,为了在动画的世界中再现生动的挤压和拉伸,我们还可以适当的加大小球变形量,夸张小球的变形效果。变形效果•①首先开始设置压缩帧,在第一个落地帧即第4帧处,选择小球的squash手柄,将squash通道栏中的Factor设为-0.4,其他不变(即使用默认值),设置关键帧。•②在其余的两个落地帧即第24、44帧处,设置相同squash属性的关键帧。这样,3个落地帧的小球压缩效果就出来了。•③接下来我们设置小球的拉伸帧,在第6、26帧处,将squash通道栏中的Factor设为0.4,其他不变,设置关键帧。•④在第22、42帧处,也设置相同squash属性的拉伸关键帧。•小球由于自身的物理特性,在变形后会恢复原状,根据我们上面的分析,小球在最高点的运动趋于为零,那我们就定小球的最高帧中,小球的变形为零•⑤在第14、34帧处,将squash通道栏中的Factor设为0,其他不变,设置关键帧。•⑥好了,小球的变形动画设置完成,播放动画,效果如下:完善小球弹跳动画•小球的弹跳还是有缺陷,在几个落地帧,小球没接触到地面,而在几个拉伸帧,小球在空中竖立着,显的不真实,下面我们一一来改善。•①对于几个没接触到地面的落地帧,我们在图表编辑器中,选择小球的TranslateY属性,框选三个落地帧,按键盘“W”键,然后按住键盘“Shift”键和鼠标中键,垂直往下拖曳这些帧,使小球接触到地面。•对于小球的空中竖立现象,我们可以增加些小球向前运动的倾斜度。•②在四个拉伸帧中,我们把第6,26帧的小球Z轴旋转-20,把第22,42帧的小球Z轴旋转20。•③而在几个落地帧和最高帧,我们把小球的Z轴旋转归零。•④播放动画,小球的动画应该很接近橡皮球的弹跳了。完善小球弹跳动画•观察动画,我们可以看到在动画的开始和结束,小球的运动都是静止不动的,因为我们一开始没考虑小球初始和结束状态,而且我们前面提到这个动画不考虑摩擦力的原因,因此小球的弹跳将是个无限的持续运动。现在,我们来为小球的相关动画属性添加循环命令,完善小球的弹跳。设置循环和偏移•①打开图表编辑器,选择TranslateX曲线,选用CurvesPreInfinityCycleWithOffset命令和PostInfinityCycleWithOffset命令,使小球的X轴位移将无限偏移循环。•②选择TranslateY曲线,选用PreInfinityCycle命令和PostInfinityCycle命令,使小球的Y轴位移做循环的上下运动。设置循环和偏移•③对小球的RotateZ和变形器squash的Fator属性也执行循环的命令。•④现在,再次播放动画。•小球的运动已经趋于完善。如果还不满意,可以再次编辑相关的关键帧,调节相关的切线,更可以移动这些关键帧在时间上的位置,使运动更合理。