第三章第二节 眼睛和眉毛的控制

第三章第二节 眼睛和眉毛的控制

此文出自国际Maya认证教师:王之纲(我的老师),转载请注明出处以及撰写人!

回章目录选择

回第三章节选择

本节概述

在表情动画中,眼睛及眉毛是动作的重点,角色的情绪可以由这两部分直观的表现出来。眼睛的动作包括眼球的转动和眼睑开闭,眉毛的动作主要是扬起和下垂。这些动作的组合调节可以表现出角色的很多情绪。下面首先讲解使用Maya制作角色面部表情所必须使用的几个重要工具,并且通过这些工具的一些练习,理解Maya的面部表情动画制作方法。

驱动帧(Set Driven key)的使用

定义

驱动帧(Driven Key)的基本概念就是使用一个物体的一个参数去驱动另外一个或多个物体上的一个或多个参数。它的用处很广泛而且主要用于角色动画中的角色设定中。

在调节表情动画时,每个部分的一个动作可能需要选择不同的物体然后分别调节一个或几个相关参数,这种逐一调节的方法在表现复杂动画时是非常麻烦的,驱动帧工具可以很好地解决这一问题,它可以将很多物体的调节控制集中在某一物体上(例如Locator),通过调节一个物体的几个属性可以控制多个物体的变化。下面我们通过两个例子熟悉并理解Driven Key的用法。

实例教程

实例一:齿轮齿条的运动配合
1设置驱动帧的起始帧

打开gear-rack文件。这是一个齿轮和齿条的场景。在真实的运动过程中,可以是齿轮带动齿条,也可以是齿条带动齿轮。在这里我们按照齿轮带动齿条来设置动画。

首先,在Z方向调整齿条的位移,使齿条的左侧第一个齿与齿轮开始接触,如图3.2.1所示

image001图3.2.1

选择主菜单Animation>Animate>Set Driven Key>Set>Option打开设置窗口。选择gear后单击Load Driver,在Driver项目右侧选择rotateY;选择rack后单击Load Driven,在Driven项目右侧选择translateZ,如图3.2.2所示

image003图3.2.2

这时作为驱动物体的是gear,被驱动物体是rack,。改变gear的rotateY会直接影响rack的translateZ。选择完成后单击Key键设置第一个驱动帧,这时在ChannelBox中rack的Translate Z项出现桔黄色高亮显示,说明该项目被设置了动画。

2 设置驱动帧的结束帧

在Z方向调整齿条的位移,使齿条的右侧第一个齿与齿轮接触,为了使齿轮的相应齿与齿条对应,选择gear后在ChannelBox中的RotateY中输入215.46,设置完成后单击Key键设置第二个驱动帧,如图3.2.3所示

image005图3.2.3

选择gear后让它在Y轴上旋转,让RotateY参数在0~215.46之间变化时,rack会在Z方向进行相应的位移变化,如图3.2.4所示

image007

图3.2.4

3 设置关键帧动画

现在设置齿轮的关键帧就可以完成动画了。确认Time Slider中当前时间是第0帧,选择gear齿轮,在ChannelBox中将RotateY设为0,这时齿条回到起始位置,在RotateY上单击右键选择Key Selected设置第一个关键帧。然后将Time Slider中的时间调到100帧,在Channel Box中将RotateY设为215.46,这时齿条到结束位置,在RotateY上单击右键选择Key Selected设置第二个关键帧。单击播放按钮播放动画,可以看到在0~100帧之间,齿轮带动齿条运动。

实例二:小球撞门

在齿轮齿条动画中,使用Driver的Rotate属性驱动Driven的Translate属性,在这个实例中,我们将使用Driver的Translate属性驱动Driven的Rotate属性。

1 使用驱动帧设定小球与门的运动关系

进入Top视图。创建一个Polygon的Sphere作为撞门的球,再创建一个Cube作为门,在Channel Box中将门的Scale X设为1,Scale Y设为5,Scale Z设为8。选择门后按键盘的Insert键一次,进入轴心编辑状态,将门的旋转轴心移动到一侧,如图3.2.5所示

image009

图3.2.5

选择主菜单Animation>Animate>Set Driven Key>Set>Option打开设置窗口。选择pSphere1后单击Load Driver,在Driver项目右侧选择translateX;选择pCube1后单击Load Driven,在Driven项目右侧选择rotateY,如图3.2.6所示

image011图3.2.6

选择完成后开始设置驱动帧。球在撞击门的过程中可以分解为几个状态:

球开始运动时,门没有相应的运动

球接触门的瞬间,门没有相应的运动

球撞门而过以后,门打开了

球远离了门以后,门关上了

按照撞击过程中的四个状态设置驱动帧,球撞门的动画就基本完成了,如图3.2.7所示

image013image015image017image019

图3.2.7

2 设置关键帧动画

这时改变pSphere1的TranslateX值,作为门的pCube1相应的开启和关闭。为了让动画可以连贯的播放,可以将pSphere1的TranslateX设置关键帧。将当前时间定在第一帧,选择pCube1后选择主菜单Animation>Animate>Set Driven Key>Go to Previous/Go to Next可以逐一切换到设置的四个驱动帧的状态,将当前状态切换到起始位置的第一帧,选择pSphere1,在Channel Box中右键单击选择Key Selected设置第一个关键帧。然后将时间调到第100帧,选择pCube1,将驱动帧切换到撞门的最后一个状态,选择pSphere1后,为Translate X设置第二个关键帧,单击播放按钮播放动画,可以看到球撞击门后,门受撞击打开,当球远离后门自动关上。

小结

Set Driven Key工具是动画制作中非常重要的工具,它主要应用于制作多个物体之间有运动关系的动画。

约束(Constrain)的使用

定义

约束(Constrain)工具是角色动画中使用频率很高的工具之一。主要用于制定动画物体之间的相互约束关系,包括约束位移、约束角度、约束缩放。

灵活的使用Constrain工具可以有效的简化制作过程,提高工作效率。本节教程通过两个实例介绍常用Constrain工具的使用方法。

实例教程

实例一:火车车轮转动动画
1创建车轮转动动画中的主要部件。

新建一个场景,创建三个Polygon物体模拟车轮转动动画中的主要部件。选择主菜单Create>Polygon Primitives>Cylinder建立一个圆柱体,在右侧的Channelbox中将圆柱体的名称改为arm_1;Rotate Z改为90;Scale Y改为15,在INPUTS项目中将Radius改为0.9,结果如图3.2.8所示

image021

图3.2.8

创建第二个圆柱体并命名为arm_2 ,具体参数设置为:Translate X改为25;Rotate Z改为90;Scale Y改为15,在INPUTS项目中将Radius保持为1。创建第三个圆柱体并命名为Wheel,设置参数为:Translate Z改为-3;Rotate X改为90;在INPUTS项目中将Radius改为15;Height改为4,结果如图3.2.9所示。

image023

图3.2.9

2使用目标约束工具制作两个连杆同轴运动的效果

通过对真实车轮转动的观察,我们可以发现车轮的两根连杆在车轮转动过程中保持着同轴并且同方向的状态,这种关系用MAYA的约束原理可以解释为arm_1以arm_2为对准的目标物体、arm_2以arm_1为对准的目标物体,通过连杆的相互对准可以实现在转动过程中保持同轴和同向。这种约束关系可以通过aim-constrain实现。

Aim-constrain是通过约束的物体的Local Axis来实现约束作用的 ,因此需要将物体的Local Axis显示出来。选择视图内的三个圆柱体,选择主菜单Display>Component Display>Local Rotation Axes显示出每个物体的Local Axis,如图3.2.10所示

image026图3.2.10

进入Animation模块,选择主菜单Constrain>Aim>Option打开设置面板,其中各项设置功能解释请查阅本节工具解析部分。

通过对两根连杆Local Axis的分析,首先用arm_1约束arm_2,即arm_2的Y轴正方向始终对准arm_1的Y轴正方向。打开Aim Constraint的设置面板,选择Edit>Reset Setting恢复缺省设置,设置Aim Vector为0 1 0, 设置Up Vector为0 1 0,在视图中选择arm_1 后按住Shift键,增加选择arm_2,单击Apply键应用约束。这时通过移动工具任意移动arm_1时,arm_2始终以arm_1为目标进行转动,如图3.2.11

image027图3.2.11

按z键取消移动操作。然后用arm_2约束arm_1,即arm_1的Y轴的负方向始终对准arm_2的Y轴负方向。打开Aim Constraint的设置面板,设置Aim Vector为0 -1 0, 设置Up Vector为0 -1 0,在视图中选择arm_2 后按住Shift键,增加选择arm_1,单击Apply键,应用约束。这是无论我们移动那一根连杆都会带动另一根产生同轴同向的效果。

3 使用定点约束工具制作连杆与车轮关联运动的效果

连杆的约束关系设置完成后,我们需要连杆跟随车轮的转动而转动,即用车轮约束连杆。通过分析实际车轮的转动,我们发现arm_1最外端的某一点始终与车轮上的某一点保持相对静止,这一效果可以通过Point Constraint实现。由于约束关系都是通过轴向与轴心点实现的,因此需要调整arm_1的轴心点位置。但是,考虑到arm_1与arm_2之间的aim-constraint约束,arm_1轴心点的调整必须是在Y轴上进行。切换至Front视图,使用移动工具选择arm_1,按Insert键,进入轴心点编辑状态,将arm_1的轴心点移动到外侧末端附近。然后调整Wheel的轴心点到arm_1的轴心点附近,再次按Insert键恢复,如图3.2.12所示

image029图3.2.12

选择Wheel后按住Shift键增加选择arm_1,打开Point Constraint的设置面板,选择Maintain Offset选项,保持当前相对位移,单击Apply键应用约束。这时移动Wheel会同时带动arm_1和arm_2,而连杆之间仍然保持同轴同向关系。

4 为车轮创建新的旋转坐标系

Wheel的轴心移动后,车轮已经不能按照正常的情况转动,这时需要给车轮增加一个正常的轴心点来实现转动,同时又不能破坏原有的约束关系。选择Wheel之后,按Ctrl+g键为车轮曾加一个组—group1, group1的轴心位于World坐标系的中心,同时也在Wheel的Y轴上,可以实现车轮的正常转动,使用转动工具沿Y轴转动group1测试车轮的转动,如图3.2.13所示

image031图3.2.13

通过对group1的RotateZ设置关键帧可以很容易的实现车轮转动的动画。需要注意的是每次选择车轮时会选择wheel而不是group1,这就需要按键盘的向上箭头选择其所在组,对group1设置动画。

实例二:发射跟踪导弹动画
1创建模拟炮台打飞机动画的基本物体。

新建一个场景,选择主菜单Create>Polygon Primitives>Sphere建立一个球体作为炮台的主体。在Channelbox中将球体的名字改为base,在INPUTS栏中将Radius改为2。选择base后进入face级别,使用选择工具框选球体下半部分的面并将其删除。按F8键返回物体编辑级别。

选择主菜单Create>Polygon Primitives>Cylinder建立一个圆柱体作为炮管。在Channelbox中将圆柱体的名字改为shoot,在INPUTS栏中将Radius改为0.2、Height改为3。使用移动工具将shoot沿Y轴移动到X-Z平面以上,如图。

选择主菜单Create>Polygon Primitives>Sphere建立一个球体作为射击目标。在Channelbox中球体的名字改为marker,在INPUTS栏中将Radius改为0.5。使用移动工具将shoot沿Y轴移动到X-Z平面以上,如图。

选择主菜单Create>Polygon Primitives>Cone建立一个圆锥体作为炮弹。在Channelbox中球体的名字改为bullet,在INPUTS栏中将Radius改为0.1,Height改为1,如图3.2.14所示。

image033图3.2.14

2 使用目标约束制作炮管与飞机的瞄准关系

在炮台打飞机的过程当中,炮管的底部始终位于炮台内部,顶端则是以射击物体为目标随时变化的。这一效果可以通过aim-constraint实现。aim-constrain是通过约束的物体的Local Axis来实现约束作用的 ,因此需要将物体的Local Axis显示出来。选择所有物体,选择主菜单Display>Component Display>Local Rotation Axes显示出每个物体的Local Axis,如图3.2.15所示

image035图3.2.15

在这里我们需要marker作为目标物体约束shoot,即shoot的Y轴正方向始终指向marker的Y轴正方向。选择marker后按住shift键增加选择shoot,选择主菜单Constrain>Aim>Option打开设置面板,设置Aim Vector为0 1 0, 设置Up Vector为0 1 0,单击Apply键应用约束。

这时移动marker会带动shoot一起转动,但是shoot转动的轴心不是理想的位置,按Z键取消对marker的移动操作,切换至front视图,选择shoot后按Insert键进入轴心点编辑状态,使用移动工具将shoot的轴心点移至炮管的底部,按Insert键返回物体编辑状态。这时再移动marker球体,shoot的转动情况正常,如图3.2.16所示

image037图3.2.16

3使用目标约束制作炮弹与飞机的瞄准关系

在炮台射击目标过程中,炮弹由炮管发射出去,炮弹与炮管始终保持同轴同方向,与 marker球体约束炮管的方法一样,在这里需要marker作为目标物体约束bullet,即bullet的Y轴正方向始终指向marker的Y轴正方向。选择marker后按住shift键增加选择bullet,选择主菜单Constrain>Aim>Option打开设置面板,设置Aim Vector为0 1 0, 设置Up Vector为0 1 0,单击Apply键应用约束。移动marker球体,炮管与炮弹同时对准目标,如图3.2.17所示

image039图3.2.17

4 使用定点约束工具设定炮弹在炮台与飞机之间位置关系

选择marker后按住shift增加选择bullet,选择菜单Constrain>Point>Option打开设置面板,选择面板菜单Edit>Reset Settings恢复缺省设置,单击Apply应用约束。

选择base后按住shift增加选择bullet,选择菜单Constrain>Point应用约束。这时bullet同时受到marker与base两个物体的约束,系统会为被约束物体定义两个权重参数:Marker W0与Base W1,缺省值都为1,结果如图3.2.18所示。

image041图3.2.18

调节权重的数值可以使某一方对炮弹的作用力增大或减小,当两者相等时作用力相等,炮弹位于两者的中间。

5 调节定点约束的权重参数制作炮弹的飞行动画

切换当前视图到front视图,在屏幕下方的Time Slider中设置当前帧为第1帧。沿X轴负方向移动marker球体至某一位置,在channelbox中用选择TranslateX、按RMB出现弹出菜单,选择Key Selected设置marker的第一个关键帧。

选择bullet炮弹,在channelbox中的SHAPES栏下将Marker W0设置为0、Base W1设置为1,同时选择Marker W0与Base W1两项,在名称上按RMB出现弹出菜单,选择Key Selected设置bullet的第一个关键帧,如图3.2.19所示

image043图3.2.19

设置当前帧为第50帧,沿X轴正方向移动marker球体至某一位置,在channelbox中用选择TranslateX、按RMB出现弹出菜单,选择Key Selected设置marker的第二个关键帧。

选择bullet炮弹,在channelbox中的SHAPES栏下将Marker W0设置为1、Base W1设置为0,同时选择Marker W0与Base W1两项,在名称上按RMB出现弹出菜单,选择Key Selected设置bullet的第二个关键帧,如图3.2.20所示

image045图3.2.20

播放动画。

眼睛的动画控制

在基本掌握了Set Driven Key和Constrain两个工具,并理解了约束动画的概念之后,我们开始进入正题,如何制作面部表情的动画。首先在下面的操作中,我们要先学会如何使用我们所学的工具来控制眼睛和眉毛的各种动作。

实例教程

1创建眼睑和眼球的控制。

为了方便操作,隐藏头部以外的其他部分。选择一侧的眼睑,查看右侧Channel Box中的属性,调整其中的一些参数:Rotate X为-180;Rotate Y为-55;Rotate Z为-90;INPUTS项目中的makeNurbSphere2,Start Sweep为5;End Sweep为300,如图所示3.2.21。

image047图3.2.21

另一侧眼睑也进行同样的调节。选择三毛左侧的眼球和眼睑,按键盘Ctrl+g键为其创建一个组,修改新建组的名称为Left_eye,选择三毛右侧的眼球和眼睑,按键盘Ctrl+g键为其创建一个组,修改新建组的名称为Right_eye。然后分别选择Left_eye组、Right_eye组后,选择主菜单Modify>Center Pivot将新建组的轴心调整到组的几何中心。

2创建Bend变形。

选择三毛的两条眉毛,按键盘的Ctrl+g键创建一个组,将新建组命名brow。选择brow后选择主菜单Deform>Create Nonlinear>Bend创建Bend弯曲变形控制。默认情况下创建的Bend平行于Y轴,这时需要调节ChannelBox中的RotateZ为90,使其平行于X轴。如图3.2.22所示

image049图3.2.22

3创建眼睛控制节点

以上都是调节表情动画时的具体控制,分别控制某个部位的某个动作。控制设置的目的是为了在调节动画时尽可能的简单方便,这一步我们将使用Driven Key工具将上面的调节控制集中到一个物体上。

选择主菜单Create>Locator创建一个Locator作为调节物体,将其命名为locator_face。将新建Locator移动到三毛头部的正前方,这样方便选择,如图3.2.23所示

image051图3.2.23

选择新建locator_face,选择主菜单Modify>Add Attribute弹出设置面板。Data Type选择为Float,然后为新建locator_face创建以下属性,每一属性设置后单击Add按钮完成创建。

  Attribute Name Minimum Maximum Default 说明
1

Left_blink

0

5 0

眨左眼

2

Right_blink

-5

5 0

眨右眼

3

Left_big

-5

5 0

睁左眼

4

Right_big

-5

5 0

睁右眼

5

Eye_move

-5

5 0

升降双眼

6

Eye_rotate

-5

5 0

旋转双眼

7

Brow_bend

0 5 0

弯曲眉毛

8

Brow_wide

0 5 0

扩展眉毛

9

Brow_high

0 5 0

扬起眉毛

这时在右侧ChannelBox中会多出上述的9个属性,对于这个Locator控制器,除了这9个新增属性外,其原有的属性暂时不需要,为了方便设置驱动帧,我们将其原有的属性从ChannelBox显示中去除。选择locator_face,选择主菜单Window>General Editors>Channel Control,弹出设置窗口,在左侧栏目中选择9个新增属性以外的属性,单击Move按钮,所选属性被去除,单击Close按钮关闭窗口。调整后的ChannelBox中只包含新增加的9个属性,如图3.2.24所示。

image053图3.2.24

4 使用驱动帧设置控制节点与眼睛的控制关系

①.现在通过Driven Key工具设置Locator_face的9个新建属性控制三毛眼睛眉毛部分的表情。选择主菜单Animate>Set Driven Key>Set>Option弹出设置窗口,选择Locator_face后单击设置窗口的Load Driver按钮,Locator_face出现在Driver栏目中;然后在视图中选择右侧眼睑,单击ChannleBox中的makeNurbSphere1项,此项作为被驱动的内容,在Set Driven Key设置窗口中单击Load Driven按钮,makeNurbSphere1与nurbsSphere1出现在Driven栏目中;如图3.2.25所示

image055图3.2.25

②.在makeNurbSphere1的属性中,startSweep和endSweep是控制作为眼睑的球体回转的角度,下面我们将使用Locator_face的Right_blink属性控制右眼睑——makeNurbSphere1的startSweep和endSweep的变化,从而实现眼睑的开闭。

在Set Driven Key窗口Driver栏左侧选择locator_face、在右侧选择Right_blink,这时ChannelBox中显示出locator_face的内容。查看ChannelBox中的Right_blink的数值应该为0。然后在Driven栏左侧选择makeNurbSphere1、在右侧选择starSweep,这时ChannelBox中显示出makeNurbSphere1的内容。查看ChannelBox中的startSweep数值设置为5。然后在Set Driven Key窗口中单击Key按钮设置第一个驱动帧,如图3.2.26所示

image057图3.2.26

③.保持在Driver栏目中的选择不变,在Driven栏左侧选择makeNurbSphere1、在右侧选择endSweep项,查看ChannelBox中的endSweep数值应该为300。这时单击Key按钮设置第二个驱动帧,这时ChannelBox中的startSweep和endSweep数值被黄色标记,说明这两项被设置了关键帧,如图3.2.27所示

image059图3.2.27

④.设置好右侧眼睑睁开时的状态,然后设置闭合的状态。在Driver栏左侧选择locator_face,在右侧选择Right_blink,在ChannelBox中将Right_blink设置为5,在Driven栏左侧选择makeNurbSphere1,在右侧选择startSweep,这时makeNurbSphere1出现在ChannelBox中,在ChannelBox中将startSweep设置为0,单击Key按钮设置关键帧。

⑤.保持Driver栏中的选项,在Driven栏左侧选择makeNurbSphere1,在右侧选择endSweep项,在ChannelBox中将endSweep项设置为360,单击Key按钮设置关键帧。如图3.2.28所示

image061图3.2.28

⑥.这时改变Locator_face的Right_blink的数值,可以看到右侧眼睑的开闭。按照同样的步骤设置左侧眼睑的开闭,不同的是在Load Driven的时候需要选择左侧眼睑的makeNurbSphere2项。Driver和Driven的数值关系如下:

Driver Right_blink   0 5
Driven makeNurbSphere1 startSweep 5 0
    endSweep 300 360

 

Driver Left_blink   0 5
Driven makeNurbSphere2 startSweep 5 0
    endSweep 300 360
5 控制眼睛的大小

在角色动画中,为了表现角色的情绪变化,有时需要使眼睛的大小跟随情绪的变化而变化。兴奋的时候眼睛会睁大,忧郁的时候眼睛会暗淡无光、甚至缩小。locatot_face的Left_big与Right_big属性用于控制眼睛大小的变化。设置方法与步骤与同STEP 4,具体设置参考下表:

Driver Locator_face(Left_big) 0 5 -5
Driven Left_eye(Scale Y) 1 1.5 0.6

 

Driver Locator_face(Left_big) 0 5 -5
Driven Right_eye(Scale Y) 1 1.5 0.6
6 控制眼睛的上下位移

在locator_face的属性中,Eye_move用于控制眼睛在垂直方向上的轻微移动,设置方法与步骤与同STEP 4,具体设置参考下表:

Driver

Locator_face(Eye_move)

0 5 -5
Driver Left_eye(Translate Y) 0 0.3 -0.3

 

Driver

Locator_face(Eye_move)

0 5 -5
Driver Right_eye(Translate Y) 0 0.3 -0.3
7 控制眼睛的转动

在locator_face的属性中,Eye_rotate用于控制眼睛在X轴方向上的轻微转动,设置方法与步骤与同STEP 4,具体设置参考下表:

Driver Locator_face(Eye_rotate) 0 5 -5
Driven Left_eye(Rotate X) 0 -30 30

 

Driver Locator_face(Eye_rotate) 0 5 -5
Driven Right_eye(Rotate X) 0 -30 30
8 控制眉毛的弯曲

在locator_face的属性中,Brow_bend用于控制眉毛的弯曲,被驱动的对象不是单个眉毛或是眉毛的组—Brow,而是控制Brow弯曲的变形器—bend1Handle的Curvature属性,设置方法与步骤与同STEP 4,具体设置参考下表:

Driver Locator_face(Brow_bend) 0 5 -5
Driven Bend1Handle(Curvature) 0 1 -1
9 控制眉毛的伸展

在locator_face的属性中,Brow_wide用于控制眉毛向两侧扩展,这时被驱动的对象是Brow组,设置方法与步骤与同STEP 4,具体设置参考下表:

Driver Locator_face(Brow_wide) 0 5 -5
Driven Brow(Scale X) 1 1.2 0.8
10 控制眉毛的扬起或下垂

在locator_face的属性中,Brow_high用于控制眉毛扬起或下垂,被驱动的对象是Brow组,设置方法与步骤与同STEP 4,具体设置参考下表:

Driver Locator_face(Brow_high) 0 5 -5
Driven Brow(Translate Y) 1 1 -1

到此为止,眼睛与眉毛的控制设置全部完成,根据不同情绪的需要,可以调节Locator_face的9个参数值搭配出相应的表情,通常的几种表情与参数设置如图3.2.29a~h所示:

image071

图3.2.29-a

Left_blink : 0 Right_blink : 0

Left_big : 0 Right_big : 0

Eye_move : 0 Eye_rotate : 0

Brow_bend : 0 Brow_wide : 0

Brow_high : 0

image067

图3.2.29-b

Left_blink : 0 Right_blink : 0

Left_big : 5 Right_big : 5

Eye_move : 0 Eye_rotate : 0

Brow_bend : 0 Brow_wide : 0

Brow_high : 0

image065

图3.2.29-c

Left_blink : 5 Right_blink : 5

Left_big : 0 Right_big : 0

Eye_move : 0 Eye_rotate : 0

Brow_bend : 0 Brow_wide : 0

Brow_high : 0

 

image069

图3.2.29-d

Left_blink : 0 Right_blink : 0

Left_big : 0 Right_big : 0

Eye_move : 0 Eye_rotate : 0

Brow_bend : 0 Brow_wide : -5

Brow_high : 0

image063

图3.2.29-e

Left_blink : 0 Right_blink : 0

Left_big : 0 Right_big : 0

Eye_move : 0 Eye_rotate : 0

Brow_bend : 0 Brow_wide : 0

Brow_high : 5

image075

图3.2.29-f

vLeft_blink : 4 Right_blink : 4

Left_big : -5 Right_big : -5

Eye_move : 0 Eye_rotate : 5

Brow_bend : -1 Brow_wide : 1

Brow_high : -4

image073

图3.2.29-g

Left_blink : 0.5 Right_blink : 0.5

Left_big : 5 Right_big : 5

Eye_move : 0 Eye_rotate : 0

Brow_bend : 1 Brow_wide : 5

Brow_high : 5

 

image077

图3.2.29-h

Left_blink : 0.7 Right_blink : 0.7

Left_big : -5 Right_big : -5

Eye_move : 0 Eye_rotate : -1

Brow_bend : -1 Brow_wide : -5

Brow_high : -5

11 将控制物体与头部建立父子关系

在设置表情动画中,增加了许多额外的控制器,例如:Locator、bend1Handle,这些控制器没有参与与骨骼的绑定,因此它们与骨骼是相对独立的,在角色身体运动以后,这些变形器仍然会停留在原地不动,这是不应该出现的现象,为了解决这个问题,需要在变形器与骨骼之间建立父子关系。

选择控制眼睛的Locator,按住Shift键增加选择bend1Handle,最后增加选择CenterHead1关节,按键盘“p”键,将所有控制表情的控制器成为头部关节的子物体,这样在角色进行整体活动时,控制器会随之一起运动。

另外对于头部不参加与骨骼绑定的部分,例如:Right_eye组、Left_eye组、Brow组,都需要与CenterHead1关节建立父子关系,这样才能跟随角色一起运动。

12 创建眼睛的目标约束

Locator_face除了作为驱动帧的属性集合外,还有一个重要的作用,那就是作为双眼看东西时的聚焦点,也就是应用目标约束时的目标点。为了方便选择,首先打开Outliner,在视图中选择locator_face后,配合ctrl键在outliner中增加选择Right_eye组,选择主菜单Animation>Constrain>Aim>Option打开设置窗口,勾选Maintain Offset选项后按Add键完成创建约束。同样方法创建locator_face于Left_eye之间的约束。这时移动locator_face,双眼会跟随其位置的变化而转动,这样一来,需要将locator_face的位移属性添加至ChannelBox中,方法与从ChannelBox中删除属性相反,结果如图3.2.30所示

image079图3.2.30

小结

约束工具(Constrain)主要应用于制作多个物体之间的运动约束关系的动画。其中包括位置约束、方向约束,目标约束等等。通过使用约束工具来控制眼睛的动作,又通过驱动帧将眼睛的多种动作行集中的管理,便于动画师对角色的表情进行调节。

本节工具解析
Driven Key

使用一个物体的某个属性驱动另一物体的某个属性,或者一个物体的多个属性分别驱动多个物体的多个属性。

Animation>Animate>Set Driven Key>Set>Option 如图3.2.31所示

image081图3.2.31

·Driver:执行驱动的物体及属性

·Driven:被驱动的物体及属性

·Key:设置关键帧

·Load Driver:加载执行驱动物体及属性

·Load Driven:加载被驱动物体及属性

·Close:关闭

Bend

Nonlinear变形的一种,通过变形曲线控制物体的弯曲变形,创建后可以在Channel Box中调节参数。

Deform>Create Nonlinear>Bend 如图3.2.32所示

image083图3.2.32

·Low Bound:物体底部的变形程度,为0时不发生弯曲

·High Bound:物体顶部的变形程度,为0时不发生弯曲

·Curvature:变形曲线的弯曲程度,为0时不发生弯曲

Add Attribute

为物体增加额外的属性。

Modify>Add Attribute 如图3.2.33

image085图3.2.33

·Attribute Name:新建属性名称

·Make Attribute Keyable:勾选时,新建属性可以设置关键帧

·Data Type:新建属性数据类型,缺省为Float

·Attribute Type:新建属性类型

·Numeric Attribute Properties:新建属性数值范围

·Minimum:新建属性数值的最小值

·Maximum:新建属性数值的最大值

·Default:新建属性数值的缺省值

·Enum Names:

Channel Control

编辑ChannelBox中的项目。

Window>General Editors>Channel Control 如图3.2.34所示

image087图3.2.34

·Keyable:当前ChannelBox项目

·Non Keyable:可添加至ChannelBox中的项目

·Change all selected objects of the same type:当勾选此项时,如果一次选择多个物体,Keyable栏目中只显示所选物体的相同属性

·Move:将当前栏目中的项目移到另一栏目

·Close:关闭窗口

Aim Constraint

目标约束

Animation>Constrain>Aim>Option 如图3.2.35所示

image089图3.2.35

·Maintain Offset:未选择时,保持目标物体与被约束物体当前的位移关系。选择时,按照offset选项后指定的X、Y、Z的数值指定两者间的位移关系。

·Offset :指定物体间的相对位移大小,包括X、Y、Z三个轴向上的数值。

·Aim Vector:设置目标物体的作用约束方向,包括X、Y、Z三个轴向的数值,0表示在该轴向上不产生约束影响,1表示对该轴的正方向产生作用,-1表示对该轴的负方向产生作用。

·Up Vector:设置被约束物体的作用约束方向,包括X、Y、Z三个轴向的数值,0表示在该轴向上不产生作用,1表示对该轴的正方向产生作用,-1表示对该轴的负方向产生作用。

·World Up Type:设置世界坐标系竖直向上轴的定义方式,缺省选项为Vecto r—按照World Up Vector项输入值定义,另有选项Object Up—按照所选择物体的竖直向上轴方向定义;Scene Up—场景竖直向上轴方向定义;None—不定义。

·World Up Vector:当World Up Type设置为Vector时可用,包括X、Y、Z三个轴向的数值,0表示该轴不起作用,1表示定义为该轴正方向,-1表示定义为该轴负方向。通常这里设置为与Maya缺省定义方式一至,即Y轴正方向。

·World Up Object:当World Up Type设置为Object Up时可用,在空格处指定选择物体。

·Constraint Axes:指定在某几个轴向上进行约束还是在所有轴向上进行约束。

·Weight:约束力量的权重,缺省值为1。

此文出自国际Maya认证教师:王之纲(我的老师),转载请注明出处以及撰写人!

回章目录选择

回第三章节选择

Leave a Reply