本教程将讲解有关动画操作的7个技巧,分别是IK与FK、IK与FK的转换、表达式实现动画效果、父子关系与父子约束、权重绘制技巧、关键帧和制作循环动画。
技巧一: IK与FK
IK与FK主要应用在骨骼绑定中,IK即反向动力学,是指根据末端关节的位置移动来控制其父关节的旋转操作,FK即正向动力学,是指根据父关节的旋转来控制其子关节的位置,下面通过一个小实例来具体讲解IK与FK的区别。
step 01. 单击Animation(动画)工具架上的(骨骼工具)按钮,在场景中创建下图(左)所示的两个腿部骨骼。
step 02. 单击(IK手柄)按钮,在右侧骨骼的“Joint1”和“Joint3”关节上分别单击
鼠标,为其创建一个IK,如下图(中)所示。当前左侧骨骼为FK,右侧为IK。
step 03 要想为左侧的骨骼设置屈腿动作,需要执行以下两个步骤:使用旋转工具对“Joint01”关节做如下图(右)所示的旋转。
使用旋转工具对“Joint02”关节做如下图(左)所示的旋转。
step 04. 要想为右侧的骨骼设置屈伸腿动作,只需使用移动工具移动右侧骨骼上的IK手柄,整个腿部会随之移动,做屈腿伸腿运动,如下图(右)所示。
由此可见,当前使用IK来调节屈腿伸腿的动画比使用FK要容易,但是就灵活性来说,IK却不如FK,使用IK只能调节出常规的动作,它有一定的限制,而使用FK则可调节出任意动作,如下图所示,这是IK做不到的,因此IK与FK各有利弊,在制作具体的项目时,要依据所创建的模型和要调节的动作来选择使用IK还是使用FK。
(提示:由于IK和FK的作用是互补的,因此在绑定角色的骨骼时,通常会在腿部、身体和胳膊等部位分别创建IK和FK,以方便根据不同的情况做出不同的选择。)
双击Animation(动画)工具架上的(IK手柄)按钮,会弹出IK手柄工具的参数,如下图(左)所示,在Current solver(当前结算器)中有两个选项,分别是ikSCsolver和ikR
psolver,其中ikSCsolver是没有极向量的,多用于控制骨骼的长度,ikRPsolver是有极向量并可对其进行调节的,多用于胳膊、膝盖等部位,如下图(右)所示。
技巧二: IK与FK的切换
本小节将通过一个小实例来讲解切换IK和FK的方法。
step 01. 单击Animation(动画)工具架上的(骨骼工具)按钮,在场景中创建下图(左)所示的骨骼。
step 02. 单击(IK手柄)按钮,然后在“Joint1”和“Joint3”关节上分别单击鼠标,为其创建一个IK手柄,如下图(中)所示。
step 03. 打开通道盒,此时Ik Blend(IK弯曲)的值为1,选择并移动IK手柄,骨骼会随之移动,如下图(右)所示,这说明此时IK是打开状态。
step 04. 保持IK手柄的选中状态,打开通道盒,将Ik Blend(IK弯曲)值改为0,如下图(左)所示。
step 05. 再次移动IK手柄,骨骼已经不会跟随移动了,如下图(中)所示,说明此时IK是关闭状态。
step 06. 此时,使用旋转工具移动骨骼,骨骼会随之运动,如下图(右)所示,这说明此时FK是开启状态。
由此可见,Ik Blend(IK弯曲)值用于控制IK与FK之间的切换。
技巧三:表达式实现动画效果
本小节将通过一个小实例来讲解使用表达式创建动画的方法。
step 01 创建下图(左)所示的盒子、车轮模型,以及一个曲线圆环,要及时对模型执行冻结变换命令(Modify>Freeze Transformations),同时将车轮设置为盒子的子物体,将盒子设置为曲线圆环的子物体。
下面制作车轮的旋转动画。
step 02 添加属性。选择曲线圆环,在通道盒的菜单栏中执行Edit>Add Attribute Editor(编辑>添加属性编辑器)命令,打开Add Attribute(添加属性)窗口,在Long name(长命名)中输入名称“roc”,如下图(中)所示,然后单击Add(添加)按钮,这样在通道盒中就出现了创建的“roc”属性,如下图(右)所示。
step 03 选择该属性,执行Modify>Edit Attribute(修改>编辑属性)命令,打开Edit Attribute(编辑属性)窗口,进行下图(左)所示的设置。
step 04 选择曲线,因此在通道盒中选择roc参数,然后执行通道盒菜单中的Edit>Expressions(编辑>表达式)命令,打开Expression Editor(表达式编辑器)窗口,在Expression(表达式)栏下输入语句“pCylinder1.rotateZ=time*nurbsCircle2.roc*10;”,如下图(右)所示,即车轮物体的z轴旋转的值为时间与“roc”值乘积的10倍,然后单击Create(创建)按钮。
step 05. 测试车轮的旋转动画。在通道盒中将圆环曲线的“Roc”值设置为1,同时将时间滑块的范围设置为200帧,单击播放按钮,可见车轮将自动执行旋转动画,增大“Roc”值,车轮的旋转速度会加快,如果将该值设置为0,则车轮不会旋转。这就是通过表达式来设置动画的方法。读者可以举一反三,为车轮设置抖动等动画效果,具体的操作可参见本小节视频教程。
技巧四:父子关系与父子约束
父子关系与父子约束是
maya中经常使用的两种物体关系,但很多读者容易将这两个概念相互混淆,因此本小节将通过一个案例来讲解它们之间的区别。
step 01. 在场景中分别创建两个球体和两个立方体,如下图所示,两个通道盒参数分别代表左右两个球体当前的属性。
step 02. 选择左侧的球体,按Shift键加选左侧立方体,按P键,为其创建父子关系,使立方体作为球体的父物体。
step 03 选择右侧立方体,按Shift键加选右侧球体,执行Animation(动画)模块下的Constrain>
arent(约束>父子约束)命令,为其创建父子约束,即用立方体约束球体。
step 04. 分别选择两个立方体,执行旋转操作,观察两个球体在通道盒中的参数,如下图所示。
可见在父子关系中,在对父物体执行旋转操作后,子物体的位置虽然会随之运动,但是其属性并没有任何变化,而在父子约束中,被约束物体会随约束物体的旋转而移动,其属性也发生了变化,这就是父子关系和父子约束之间的最大区别。
(提示:父子约束主要是应用在骨骼绑定中)
技巧五:权重绘制技巧
step 01 创建一个立方体,并为其创建3个独立的关节,如下图(左)所示。
step 02 选择3个关节,并按Shift键加选立方体,在动画模块下执行Skin>Bind Skin>Smooth Bind> (蒙皮>绑定蒙皮>平滑绑定> )命令,打开Smooth Bind Options(平滑绑定选项)窗口,在Bind to(绑定到)中选择Selected joints(选择关节)选项,其他参数默认,如下图(中)所示,然后单击Apply(应用)按钮,为骨骼和模型执行蒙皮操作,这样移动骨骼,模型也会随之移动,如下图(右)所示。
step 03 在Animation(动画)工具架上双击(绘制权重工具)按钮,打开Paint Skin Weights Tool(绘制蒙皮权重工具)窗口,从中可以调节权重绘制的参数,如下图(左)所示。
从Tool Settings(工具设置)下的Normalize Weights(规格化权重)选项中可以看到,当前为Post模式,即新版本的权重,其权重原理是,从模型上选择一个点,如下图(右)所示,那么该点的权重可以分别给到“joint1”、“joint2”或“joint3”,且每节骨骼的权重值都可以设置为1,这在旧版本中是无法实现的,在旧版本中,会将该点的权重分成3份,分别给“joint1”、“joint2”和“joint3”。
要想切换到旧版本的权重,可选择Interactive(交互)选项,下面用旧版本的权重绘制方式进行绘制。
在绘制某个骨骼时,先在Paint Skin Weights Tool(绘制蒙皮权重工具)面板中选择该骨骼,然后将该骨骼影响的区域绘制为100%(即1)的权重,如我们先选择“joint1”,绘制之后的效果如下图(左)所示,那么当前所绘制的位置均受joint1影响。
需要注意的是,在绘制“joint1”之前,先在Paint Skin Weights Tool(绘制蒙皮权重工具)面板的Influence(影响)卷展栏中分别选择“joint2”和“joint3”,并单击下面的按钮,将其锁定,如下图(右)所示,否则在绘制“joint1”的权重时,会对“joint2”和“joint3”有一定的影响。
然后再分别选择“joint2”和“joint3”,用相同的方法进行绘制,如下图所示。
可见所绘制的效果是,除了两节骨骼之间相交位置的权重不是1之外,其他位置的权重均为1,即完全受各自位置骨骼的影响,因此在调节某个骨骼的位置时,其他骨骼是不跟随运动的,如下图(左)所示,运动非常僵硬。
如果想做出“joint1”与“joint2”之间的过渡效果,可在Paint Skin Weights Tool(绘制蒙皮权重工具)面板的Influence(影响)卷展栏中选择Paint operation(绘制操作)中的Smooth(平滑)选项,如下图(右)所示。
然后分别选择“joint1”和“joint2”,在它们之间的位置进行绘制,如下图(左)和(中)所示,所绘制的颜色并非是纯白色,而是灰白色,说明两个骨骼之间有了过渡效果,绘制完成后,进行测试,如下图(右)所示。
由于“joint2”和“joint3”之间并没有绘制平滑权重,因此左右效果对比比较明显,左侧比右侧要平滑很多。
以上就是有关权重的绘制方法和技巧。
技巧六:关键帧
设置关键帧在制作动画的过程中是必不可少的一个环节,设置关键帧与编辑关键帧的方法是多种多样的,本小节将讲解一些常用的方法和技巧。
01. 设置关键帧
这里主要讲解两种最常用的设置关键帧的方法。
(1) S键设置关键帧
这是最简单且最基本的设置关键帧的方法,在制作简单的动画效果时会使用这种方法,下面以一个小实例来进行说明。
step 01. 在场景中创建一个小球并选择小球,然后将时间滑块拖曳到时间线的第1帧处,按S键即可创建一个关键帧,如下图所示。
step 02. 将时间滑块移至第24帧的位置,然后用移动工具将小球移动到场景的右侧,再按S键,创建一个关键帧,如下图所示,这样一个小球从左到右的位移动画就制作完成了,从通道盒中的参数可以观察到小球位置的变化。
(2) 在通道盒中为指定属性设置关键帧
为指定的属性设置关键帧的好处是不会对其他用不到的属性产生影响,在制作动画时通常都会根据需要来设置关键帧。
在通道盒中选择相应的属性,单击鼠标右键,在弹出的菜单中执行Key Selected(为所选设置关键帧)命令即可,如下图所示。
另外,还可以使用快捷键来设置关键帧,Shift+W键即为平移属性设置关键帧,Shift+E键即为旋转属性设置关键帧,Shift+R键即为缩放属性设置关键帧。
02 编辑关键帧
编辑关键帧包括删除关键帧、添加关键帧、插入关键帧、复制关键帧等操作。
(1) 删除关键帧
根据不同的需要,删除关键帧的方法也是不同的。
直接在时间线上删除关键帧
具体方法是,在时间线上选择要删除的关键帧,单击鼠标右键,在弹出的菜单中执行Delete(删除)命令即可,如下图(左)所示。
在通道盒中删除关键帧
具体方法是,在通道盒中选择要删除的关键帧属性,单击鼠标右键,在弹出的菜单中执行Break Connections(打断连接)命令,如下图(中)所示。
(提示:在时间线上删除关键帧会将该物体此刻所有属性的关键帧全部删除。)
在Graph Editor(曲线编辑器)中删除关键帧
具体方法是,执行Window>Animation Editors>Graph Editor(窗口>动画编辑器>曲线编辑器)命令,打开Graph Editor(曲线编辑器)窗口,在左侧栏中选择属性,在右侧的动画曲线中选择要删除的关键帧,按Delete键即可,如下图(右)所示。
(2)添加与插入关键帧
添加与插入关键帧同样在Graph Editor(曲线编辑器)窗口中进行,先在工具栏中单击(插入帧工具)或(添加帧工具)按钮,然后在动画曲线上按鼠标中键即可,插入一个关键帧的效果如下图(左)所示。
(3) 复制与粘贴关键帧
复制和粘贴关键帧可以直接在时间线上进行,也可以在曲线编辑器Graph Editor(曲线编辑器)中进行。
在时间线上复制与粘贴关键帧
具体方法是,在时间线上选择关键帧,单击鼠标右键,在弹出的菜单中执行Copy(拷贝)命令,然后在需要粘贴关键帧的位置再次单击鼠标右键,在弹出的菜单中执行Paste>
aste(粘贴>粘贴)命令或Paste>
aste Connect(粘贴>粘贴连接)命令,如下图(右)所示。
在Graph Editor(曲线编辑器)中复制与粘贴关键帧
在Graph Editor(曲线编辑器)中复制、粘贴关键帧与在时间线上复制、粘贴的方法大同小异,即选择要复制的关键帧,在菜单栏中执行Edit>Copy(编辑>拷贝)和Edit>
aste(编辑>粘贴)命令即可,如下图(左)所示。
执行Paste(粘贴)与执行Paste Connect(粘贴连接)命令的结果是不同的,Paste(粘贴)只是简单的粘贴,而执行Paste Connect(粘贴连接)命令之后,会将粘贴的关键帧与原来的动画曲线保持连续性,对比效果如下图(右)所示。
(4)通过调节关键帧来加快或减慢动画的播放速度
在时间线上按住Shift键选择要调节的关键帧,如下图(左)所示,用鼠标左键拖动右下角黄色箭头,即可拉长或缩短所选择的时间范围,如下图(中)所示,用鼠标左键拖动中键黄色箭头可移动所选关键帧的位置,如下图(右)所示。
技巧七:制作循环动画
在上一小节中我们学习了使用关键帧的方法和技巧,本小节将根据上一小节的内容来学习循环动画的制作方法。
循环动画顾名思义,就是不断重复相同的动作,如小球的原地弹跳动画,人的原地踏步动画等,循环动画要求动作的起始帧和结束帧是完全相同的。
下面介绍两种制作循环动画的方法。
01 直接在时间线上连续复制、粘贴关键帧
复制、粘贴关键帧的方法在上一小节已经讲解过,如下图所示,这里不再赘述。
02 使用Graph Editor(曲线编辑器)中的命令
step 01 打开Graph Editor(曲线编辑器)窗口,勾选菜单栏中的View>Infinity(查看>无限)选项,即开启无限性选项,如下图所示。
step 02 执行Curves>
ost Infinity>Cycle(曲线>向后无限>循环)命令,如下图(左)所示,也就是向时间轴正向做循环动画,如下图(右)所示,如果要使其向时间轴负向做循环动画,执行PreInfinity(向前无限)中的命令即可。
与复制关键帧的方法相比,该方法更能够提高工作效率,特别是在需要做很长时间的循环动画时(如10 000帧),如果逐个复制将是非常大的工作量,而通过使用无限性和循环两个命令就可以完
全解决这一问题,并且在使用该方法后,时间线上并不会增加关键帧。
另外,使用这种方法还可以制作如小球向前弹跳的动画。
首先制作好小球首次向前(即向x轴正方向)弹跳的动画,如下图(左)所示。
然后打开Graph Editor(曲线编辑器)窗口,配合工具栏中的(线性切线)工具和Curves>
ost Infinity>Linear(曲线>向后无限>线性)命令,将曲线调节成下图(右)所示的形状即可,这样小球就会无限向x轴正方向弹跳。
(本
3D教程完)
此教程节选自《Maya插件与高级技巧火星风暴》,全书共六章,第1章讲解如何快速提升软件操作效率,包括如何设置界面布局、界面颜色、快捷键等;第2章讲解掌握建模必学秘技与插件技巧,包括模型的细分预览与物体的复制方法、轴向的作用、ER_Spiral Creator(螺旋线脚本)插件、StairsCreator(
楼梯脚本)插件等;第3章讲解掌握动画必学秘技与插件技巧,包括IK与FK的转换、表达式实现动画效果、nudge(权重脚本)插件、softCon(软约束)插件等;第4章讲解掌握渲染必学秘技与插件技巧,包括灯光阵的建立、层材质的使用、DST双面材质插件等;第5章讲解掌握特效必学秘技与插件技巧,包括创建缓存、控制粒子随机大小、texture2Particles插件、BlastCode 1.7插件等;第6章讲解Maya表达式和MEL脚本。随书附赠1张DVD9多媒体教学光盘。其中,视频内容包括每一个技巧和每一个插件的具体视频讲解,素材内容包含学习过程中所涉及到的场景和素材文件。本书不仅适合Maya初中级读者阅读,还可以作为高等院校影视动画、艺术设计等相关专业的教辅图书及相关教师的参考图书。