论文部分内容阅读
【摘 要】 本文探讨了在动画中巧妙应用打组命令实现特殊动画效果的方法。
【关键词】 动画;打组命令;特殊动画效果;方法
在MAYA初级阶段的学习中,特别是在模型的学习过程中,我们会遇到的一个命令就是“打组”(如图),其快捷键为ctrl+g。
打组的好处有很多,比如:我们在场景中建立多个物体(如图)。
现在我们要同时调整这些物体,如整体旋转90度,那么我们无需单独调整每一个模型,而是选择所有模型执行打组的命令,此时可以打开大纲观察一下,打组前大纲里罗列了所有模型图标,打组之后大纲里多出一个“group1”组的图标(如图)。
只要单击组前面的“+”展开组的列表,我们就能看到,所有模型已进到组的层级之下(如图)。
现在我们只需对组做一次旋转操作,就能达到想要的效果(如图)。
有时我们会对不同的模型打组,相当于是对大纲层级的一个整理,就好像一个书架一样,第一层放小说,第二层放杂志,第三层放报纸…我们将不同模型分门别类的放到不同的组里,大纲看起来就更简介、清晰。当然,打组的好处不止这些,我今天要着重说明的就是打组的另外一个好处——为物体提供一个新的坐标轴,当然这个优势在模型模块里没有得到很好的体现,但是在动画制作过程中,一些看似简单却又比较特殊的动画效果恰恰需要通过打组这一方式才能得到很好的实现,下面我就举例说明一下。
生活中,我们都见过硬币掉落到地上的情况,硬币落地瞬间快速旋转,随着旋转不断减弱,硬币慢慢倾斜直至平躺在地面上,如果想在动画中实现这个效果应该如何操作呢?首先我们打开场景文件(如圖)。
我们先分析一下动画时间,硬币从旋转到静止这个过程一般不会持续很长,因此我们先把时间长度设定为1-80帧,大概3秒左右的时间。硬币在初始帧为直立状态,在结束帧为平躺状态,我们可以先将首尾关键帧设定好:第一步将时间放置在第一帧,选择硬币模型,执行Animate——SetKey设置关键帧命令(如图),快捷键为s;
再将时间放置在最后一帧,利用旋转、位移工具调整硬币模型至平躺在地面上,再次执行SetKey设置关键帧命令(如图)。
现在我们播放动画看一下效果(如图)。
通过观察可以发现,动画在中间位置有穿帮的地方,解决这个问题只需要把TranslateY数值调高即可,但在调整之前,我们先打开自动设置关键帧开关,该开关位于maya界面右下角,默认为黑色关闭状态,鼠标左键单击,变为红色开启状态(见图)。
此开关开启后,已经具备动画的物体无论哪个属性发生改变,maya都会自动为该属性记录一帧关键帧,而无需每次都执行SetKey设置关键帧命令。现在我们把时间放置在中间大概35帧的位置,将模型移动到地面之上,从而解决穿帮问题(如图)。
可以看到,即使我们没有执行SetKey设置关键帧命令,maya也自动记录了一帧关键帧(如图)
接下来我们继续分析未完成的动画效果。硬币在掉到地面瞬间会伴随高速旋转,通过观察不难看出,在动画第一帧位置,模型的旋转应由RotateX来控制(如图)。
在动画的起始帧位置,模型的RotateX旋转值为0,此关键帧已在刚才设定好,我们只需要在结束帧位置给RotateX设定一个较高的数值,如4000,由于自动设置关键帧开关已打开,此时关键帧已设定好(如图)。
现在我们播放动画,会发现动画效果完全不是我们想要的,硬币只是一直旋转着倒下,而与现实中的状态相差甚远(如图)。
其实RotateX本身的旋转没有问题,但如果再加上之前已设置好的硬币倒下的动画,RotateX方向就会发生改变。如图所示,在起始帧位置,硬币沿着RotateX进行水平方向的旋转,随着硬币逐渐倾斜,RotateX的方向也会随之改变,慢慢从最初的横向变为纵向,这也就是动画效果错误的原因。
找到了问题的原因,接下来就是如何解决的问题了,此时回想我们最初提到的“打组”的概念,打组的其中一个好处就是为物体提供一个新的坐标轴,比如:我们在场景中创建一个物体,移动一下位置,此时物体的坐标轴位于物体中心(如图)。
现在我们给物体打一个组,执行Edit——Group打组命令,可以看到,组的坐标轴位于原点位置,而物体本身的坐标轴没有发生任何改变(如图),由此可见,打组之后,我们得到了一个新的坐标轴,那这个新的坐标轴又有什么用处呢?
回到硬币动画这个案例,我们选择模型,先将模型的RotateX动画取消,即在动画结尾处将RotateX的值归零,这样RotateX的值始终不变,自然也就没有动画了。然后回到起始帧位置,给模型打一个组,从而得到一个新的坐标轴,我们可以看到,控制组的横向旋转的坐标轴为RotateY(如图)
接下来我们把时间放置在结束帧位置,此时,硬币模型已发生改变,从最初的直立状态变化为平躺在地面上,而组的横向旋转的坐标轴仍为RotateY(如图)
我们分析一下原因,动画效果是存在于模型上的,模型的层级位于组之下,因此模型的任何改变都不会影响到组,既然组没有变化,换句话说,组的坐标轴也没有变化,那么我们可以放心的给组的RotateY设定动画。按照我们之前的操作,在起始帧位置对组执行SetKey设置关键帧命令,在结束帧位置,将组的RotateY设定为4000,关键帧会自动设定好(如图)。
现在我们播放动画看一下效果(如图),如果感觉动画节奏不合适,可以再适当调整一下旋转属性的数值。
至此,我们的动画就做好了,回顾整个制作过程,我们所用到的动画命令并没有太多、太复杂,关键效果的实现主要依赖于“打组”的应用,我们利用组的其中一个特性——为物体提供一个新的坐标轴,使动画效果作用于一个新的物体之上,且不受原有动画的干扰。其实类似的动画效果还有很多,比如盒子的翻滚动画等等,只要我们明白了其中的原理,再遇到同类问题时就能够迎刃而解了。
【关键词】 动画;打组命令;特殊动画效果;方法
在MAYA初级阶段的学习中,特别是在模型的学习过程中,我们会遇到的一个命令就是“打组”(如图),其快捷键为ctrl+g。
打组的好处有很多,比如:我们在场景中建立多个物体(如图)。
现在我们要同时调整这些物体,如整体旋转90度,那么我们无需单独调整每一个模型,而是选择所有模型执行打组的命令,此时可以打开大纲观察一下,打组前大纲里罗列了所有模型图标,打组之后大纲里多出一个“group1”组的图标(如图)。
只要单击组前面的“+”展开组的列表,我们就能看到,所有模型已进到组的层级之下(如图)。
现在我们只需对组做一次旋转操作,就能达到想要的效果(如图)。
有时我们会对不同的模型打组,相当于是对大纲层级的一个整理,就好像一个书架一样,第一层放小说,第二层放杂志,第三层放报纸…我们将不同模型分门别类的放到不同的组里,大纲看起来就更简介、清晰。当然,打组的好处不止这些,我今天要着重说明的就是打组的另外一个好处——为物体提供一个新的坐标轴,当然这个优势在模型模块里没有得到很好的体现,但是在动画制作过程中,一些看似简单却又比较特殊的动画效果恰恰需要通过打组这一方式才能得到很好的实现,下面我就举例说明一下。
生活中,我们都见过硬币掉落到地上的情况,硬币落地瞬间快速旋转,随着旋转不断减弱,硬币慢慢倾斜直至平躺在地面上,如果想在动画中实现这个效果应该如何操作呢?首先我们打开场景文件(如圖)。
我们先分析一下动画时间,硬币从旋转到静止这个过程一般不会持续很长,因此我们先把时间长度设定为1-80帧,大概3秒左右的时间。硬币在初始帧为直立状态,在结束帧为平躺状态,我们可以先将首尾关键帧设定好:第一步将时间放置在第一帧,选择硬币模型,执行Animate——SetKey设置关键帧命令(如图),快捷键为s;
再将时间放置在最后一帧,利用旋转、位移工具调整硬币模型至平躺在地面上,再次执行SetKey设置关键帧命令(如图)。
现在我们播放动画看一下效果(如图)。
通过观察可以发现,动画在中间位置有穿帮的地方,解决这个问题只需要把TranslateY数值调高即可,但在调整之前,我们先打开自动设置关键帧开关,该开关位于maya界面右下角,默认为黑色关闭状态,鼠标左键单击,变为红色开启状态(见图)。
此开关开启后,已经具备动画的物体无论哪个属性发生改变,maya都会自动为该属性记录一帧关键帧,而无需每次都执行SetKey设置关键帧命令。现在我们把时间放置在中间大概35帧的位置,将模型移动到地面之上,从而解决穿帮问题(如图)。
可以看到,即使我们没有执行SetKey设置关键帧命令,maya也自动记录了一帧关键帧(如图)
接下来我们继续分析未完成的动画效果。硬币在掉到地面瞬间会伴随高速旋转,通过观察不难看出,在动画第一帧位置,模型的旋转应由RotateX来控制(如图)。
在动画的起始帧位置,模型的RotateX旋转值为0,此关键帧已在刚才设定好,我们只需要在结束帧位置给RotateX设定一个较高的数值,如4000,由于自动设置关键帧开关已打开,此时关键帧已设定好(如图)。
现在我们播放动画,会发现动画效果完全不是我们想要的,硬币只是一直旋转着倒下,而与现实中的状态相差甚远(如图)。
其实RotateX本身的旋转没有问题,但如果再加上之前已设置好的硬币倒下的动画,RotateX方向就会发生改变。如图所示,在起始帧位置,硬币沿着RotateX进行水平方向的旋转,随着硬币逐渐倾斜,RotateX的方向也会随之改变,慢慢从最初的横向变为纵向,这也就是动画效果错误的原因。
找到了问题的原因,接下来就是如何解决的问题了,此时回想我们最初提到的“打组”的概念,打组的其中一个好处就是为物体提供一个新的坐标轴,比如:我们在场景中创建一个物体,移动一下位置,此时物体的坐标轴位于物体中心(如图)。
现在我们给物体打一个组,执行Edit——Group打组命令,可以看到,组的坐标轴位于原点位置,而物体本身的坐标轴没有发生任何改变(如图),由此可见,打组之后,我们得到了一个新的坐标轴,那这个新的坐标轴又有什么用处呢?
回到硬币动画这个案例,我们选择模型,先将模型的RotateX动画取消,即在动画结尾处将RotateX的值归零,这样RotateX的值始终不变,自然也就没有动画了。然后回到起始帧位置,给模型打一个组,从而得到一个新的坐标轴,我们可以看到,控制组的横向旋转的坐标轴为RotateY(如图)
接下来我们把时间放置在结束帧位置,此时,硬币模型已发生改变,从最初的直立状态变化为平躺在地面上,而组的横向旋转的坐标轴仍为RotateY(如图)
我们分析一下原因,动画效果是存在于模型上的,模型的层级位于组之下,因此模型的任何改变都不会影响到组,既然组没有变化,换句话说,组的坐标轴也没有变化,那么我们可以放心的给组的RotateY设定动画。按照我们之前的操作,在起始帧位置对组执行SetKey设置关键帧命令,在结束帧位置,将组的RotateY设定为4000,关键帧会自动设定好(如图)。
现在我们播放动画看一下效果(如图),如果感觉动画节奏不合适,可以再适当调整一下旋转属性的数值。
至此,我们的动画就做好了,回顾整个制作过程,我们所用到的动画命令并没有太多、太复杂,关键效果的实现主要依赖于“打组”的应用,我们利用组的其中一个特性——为物体提供一个新的坐标轴,使动画效果作用于一个新的物体之上,且不受原有动画的干扰。其实类似的动画效果还有很多,比如盒子的翻滚动画等等,只要我们明白了其中的原理,再遇到同类问题时就能够迎刃而解了。