下面我们就通过一个简单动画的制作过程,来了解3DS MAX的动画原理和生成动画的技术。请看shake.avi,在场景中我们使用几段管状物,模拟类似摇椅的晃动,这是一个简单的动画过程,但是它却包含了大量的动画技巧,是一个简单却实用的例子。对于刚刚入门的朋友来说,能熟练地掌握这个例子,对以后的学习大有帮助,对于有经验的朋友,这个练习也将给你很大的启发,好让我们启程把。
1、建模:
对于一个好的动画过程,建模部分是十分重要的,因为一个模型往往有几种建模的方法,不同的建模方法对动画的加入会有不同的影响。一个要加入动画的模型,在建模之初就要考虑到模型建立对动画的影响。因此我们在此没有省略建模的部分。首先,我们在前视窗建立一个管状物,并将其命名为:LEG1。分别调整其外径R1为100、内径R2为95、管高为5、边数为32、其他片段数为1,勾选切片功能(Slice on)开关,将之打开,输入数值从-145~145切片。
在顶视图,使用SHIFT键,并向Y轴负向移动LEG1约40个单位,移动并复制出LEG2。
同样,向Y轴负向移动约5个单位并复制出第三个管状物,命名为FACE,分别调整其外径R1为96、内径R2为95、管高为40,其它参数不变。最后生成的模型如图一。
2、手工生成关键帧动画
对于初学者来说,在大多数情况下,完成了简单的建模过程以后,接下来的步骤就是是用手工设定关键帧动画。手动设定关键帧,是最简单的一种方法,他易于掌握,只需要指定动画两端的变换状态,中间的部分会自动生成,是初学者常用的方法。
在制作动画之前,首先确定在那个视窗进行工作,由于摇椅的运动是平行于前视图的,因此我们应选择在前视图工作。点选前视图,按W键使之满屏显示。点选LEG1,按下动画按钮,打开动画记录,在第0帧处,将LEG1沿Z轴逆时针旋转30度,将动画调整到第50帧处,将LEG1沿Z轴顺时针旋转60度。再次按下动画按钮,关闭动画记录。观看动画。
发现LEG1只是进行了一小段圆周运动,可不管怎么说它毕竟是动了,但为了使他产生摇椅的摇摆晃动效果,我们必须分析它的运动原理,其实很多运动都不是简单的运动,不能通过一种运动方式模拟出来,需要把它的运动进行分解,我们发现这种摇摆运动是由两个运动组成的,一个是我们刚才制作的圆周运动,另一个是水平的移动,其实这很好理解,球的滚动就是一样的(这需要对运动进行很好的观察)。通过数学的方法,可以得到转动角度和水平移动距离关系的数学公式:D=2πR*α/360。如图二。本例中顺逆时针各旋转30度,左右各移动约52。
下面让我们来根据计算结果制作出动画,在第0帧处,打开动画记录,将LEG1沿X轴正向移动52个单位,将动画调整到第50帧处,将LEG1沿X轴负向移动104个单位,关闭动画记录。观看动画,现在的动画已经有了正确的运动规律,只是运动了半个周期,下面我们用简单的办法生成另外半个运动周期。
3、使用运动轨迹视窗(Track View)制作动画
运动轨迹视窗式3DSMAX调整和修改动画的重要工具,我会在以后的文章中详细讲解,现在请大家一步一步跟我做。首先为了使摇椅有几个周期的运动,我们将时间轴长度设为400帧。然后点击工具栏上的Track View按钮,打开运动轨迹视窗,在左侧的项目栏找到Objects下的LEG1打开位置动画项目(Position),按下动画曲线按钮,如图三,可以看到物体沿X、Y、Z轴的动画曲线,X为红色、Y为绿色、Z为蓝色。
为了以后将动画复制给其他物体,我们将X、Y、Z轴的位置动画进行分离。按下指定控制器按钮,如图四,弹出控制器类型窗口,选择Position XYZ控制器,如图五,按OK,回到运动轨迹视窗,可以看到在Position下又分别产生了三个独立的项目,点选X Position,可以看到动画曲线。这样准备工作就基本完成了。
接下来我们利用已经生成的动画,来完成后续动画。在运动轨迹视窗按下越界曲线类型(Parameter Curve Out-of Range Type)按钮,如图六,在弹出的窗口中选择PingPong类型,将其左右两个按钮按下,按OK,回到运动轨迹视窗,可以看到生成了四个周期的运动曲线,如图七。
对旋转(Rotation)进行同样的操作,先分离轴向上的动画,然后对其使用PingPong越界曲线类型,注意分离旋转控制器的类型为Euler XYZ。完成后观看动画。
4、精确控制动画
在上一步完成以后,LEG1的动画就可以说基本完成了,可观看动画以后发现,在旋转的两个最大值处,转折生硬好,像被物体弹回,而实际上应该是动能渐渐转化为势能的过程。再次回到运动轨迹视窗,LEG1里的Position下的点选X Position项,选中曲线第0帧上的控制点,按鼠标右键,弹出其属性窗口如图八,在OUT项上选择慢进(Slow),按右侧箭头将选择传给下一个控制点。这样我们就完成了LEG1的动画的过程。
我们可以重复上述步骤来完成LEG2和FACE的动画过程,但那样太过麻烦,我们可以用复制的办法,来生成LEG2和FACE的动画过程。需要注意的是复制过程应在同等级别的项目之间进行,所以我们先要对LEG2和FACE的Position和Rotation两个项目进行分离,千万不能直接复制Position项,那样Y、Z两轴的位置也会完全一样,三个物体移动到了同一位置,但可以复制Rotation项,因为其他两个轴向上没有动画,角度会保持不变。复制和粘贴的按钮位置如图九。我们先选中要复制的项目Objects下的LEG1-Position下点选X Position,按下复制按钮,选择LEG2对其的position项进行分离,然后点选X Position,再按下粘贴按钮,同样的方法复制Rotation项和Face的动画。看看完成的动画是不是和前面的一样。赋上材质就完工了。
制作这样一个动画,关键在于制作前的建模和运动的分解,其它的只是技巧上的差别,你可以用不同的建模方法尝试制作这个动画,如使用Blend弯曲的Box物体,看看有没有不同。有好的经验欢迎交流