facial

更新时间:2022-11-25 03:24:40 阅读: 评论:0


2022年11月25日发(作者:cd封套设计)

facial_animation_toolt

(选自<<三维角色动画的艺术>>、清华大学出版社,作者:赖义德)

表情装配通常有两种方式:一种是在面部建立簇或者骨骼,通过这些骨骼或

簇来分区域控制面部的肌肉,再利用这些骨骼产生动画;另一种主要是依靠融合

变形,结合基本的骨骼来装配,基本骨骼是为了控制头部大的运动关系,比如头

部的移动和旋转,还有嘴巴的张与合,眼球的旋转等,融合变形调节笑、哭等细

微的表情变化,这是表情装配使用最多的方式。

使用融合变形要求学习者对角色表情有比较深入的研究,而大多数初学者缺

乏这方面的知识,很难制作较好的目标形状;同时,制作大量的目标形状,也是

一项繁琐的工作,需要花费大量的时间,所以初学者大都害怕进行表情装配,插

件“facial_animation_toolt”则可以帮助解决这些问题。

“facial_animation_toolt”,以下简称为“F-A-T”,其工作原理是在面部顺

着肌肉走向,合理地布置骨骼,然后通过这些骨骼绑定面部肌肉,控制面部表情

变化,更方便的是,“F-A-T”内置了各种各样的表情库,这些库文件可以直接被

套用,快速产生丰富的表情,相当于设定骨骼和调节表情库一次完成。下面具体

介绍这款插件的用法:

一安装

F-A-T插件安装比较简单,直接执行其安装文件即可,安装完毕,工具架上

会自动出现

Institute-of-Animation

的工具架,如图

4-1

图4-1

二导入表情对象

执行工具架快捷图标“ba”,打开原始范例文件,先将范例文件另存为一

个新文件,然后在左边的视图中删掉原来的范例模型,再导入需要设置表情的模

型,如图4-2:

图4-2

三定位。

1.

单击“

AFS

”图标,打开“

AFS

”控制面板,单击

GloblePositioning

「全

局位置」按钮,整体移动和缩放这些定位器,与导入的模型进行匹配。

对位大致完成后,再次单击

GloblePositioning

按钮,结束全局对位。(图

图4-3)

图4-3

2.

选择模型,执行

Modify/MakeLive

命令,冻结对象。

3.单击IndividualPositioning「个体定位」按钮,分别调整每个定位器的位

置。如图

4-4

:在场景中保持两个视图,左边是需要操作的模型对象,

右边是对位的参考对象。根据右边的参考对象,确定左边定位器的位置。

在调整定位器的时候,可以先调整一边,再通过

MirrorSelection

按钮,

镜像另一半定位器的位置。所有的定位器的位置调整结束后,再次单击

IndividualPositioning

「个体定位」按钮结束对位。

图4-4

四蒙皮绑定

1.

选择模型,再次执行

Modify/MakeLive

命令,反激活对象。

2.选择头部模型,并且在大纲视图中加选所有骨骼,执行平滑蒙皮「Smooth

Skin

」。(图

4-5

图4-5

五连接骨骼和动作库。

单击

ASF

图标,再执行

Data/LoadMotiondate

「导入动作数据库」,确定,

这时候大概要等上30秒,直到动作库数据完全载入。(图4-6)

图4-6

再执行Data/BuildConnections「创建连接」,等待直至连接完成。(图4-7)

图4-7

下面,可以通过旁边的控制面板来调节角色表情了。(图

4-8

图4-8

六分配权重

因为每个关节的权重不太合理,所以会出现图

4-8

所示那样很奇怪的表情,

根据每个关节所在的位置,灵活调整权重。凡是在表情变化时不会发生变形的部

分,尤其是脖子的最下面一圈点的权重,要完全分配给关节“

MarkerJoint_Stab

(图4-9);其次是上下嘴巴骨骼的权重、眼睑的权重要分配精确。权重刷好后,

表情基本上就自然了,具体请参考场景文件“

”。

图4-9

七纠正套用表情库的错误。

依次调节控制面板的每个表情,发现很多表情会出现穿插,小的问题可以调

整蒙皮权重来解决,大的问题可以依靠插件来校正,具体方法如下:

1.

如图

4-10

所示,拖动“

LidT

”上面的滑块,发现左眼的表情会出现穿

插。

4-10

2.选中该滑块,打开“AFS”面板,如图4-11所示:该滑块的动画数据

自动导入到“

AFS

”窗口中,拖动时间线,可以看到表情变化的过程。

图4-11

3.

面板中关于动画数据编辑的命令:

Load与Unload:载入与卸载,二者自动切换,选择动画滑块,执行该命令,

可以把相关动画数据载入进行编辑,同时

Load

会自动转换成

Unload

,编辑完毕,

单击Unload按钮,释放数据,使当前做的修改生效。

Mirror

:镜像,在修改了一侧的动画数据后,相应的另一侧可以直接执行镜

像命令来修改,比如控制左眼运动的滑块调节好之后,可以直接使用该命令镜像

动画数据到右眼的控制滑块。

MotionDataScale:动画数据缩放,这个滑块用来缩放控制骨骼位移的运动

系数,默认值为

1

,即完全执行导入的运动参数,如果值为

0.5

呢,则只执行原

来位移的一半,反之,值为2,所选关节的位移被扩大2倍。

AdaptationKey

:移动关键帧,对关节的移动增加关键帧。

RotationKey:旋转关键帧,对所选关节的旋转增加关键帧。

4.

4-10

所示的穿插主要是因为控制眼部的骨骼运动过大引起的,在通

道栏层窗口中把“FeaturePoints”层显示出来。依次选择如图4-12所

示的关节的相应轴向,拖动

MotionDataScale

滑块,缩小运动系数。拖

动时间线,可以发现问题已经被纠正了。修改完成之后,单击Unload

按钮,确认刚才所做的修改。(注意:鼠标单击则选中对象参数,再次

单击取消选择,插件不能自己取消选择。)

图4-12

5.

解决了左边的穿插后,可以使用

mirror

「镜像」按钮直接来编辑右边眼

睛的穿插,首先选择“LidT”下面的箭头滑块,单击打开“AFS”面板,

导入其动画数据,单击

mirror

按钮,上面左边的操作就被镜像到了右

边眼睛,单击Unload按钮,确认所做的操作。

6.

在两边眼睑的穿插都解决之后,移动

Eyesq

滑块下的夸张动作滑块,会

发现眼部也有较大的穿插,如图4-13:

4-13

7.同样选择该控制器,单击“AFS”快捷按钮,导入动画数据,单击““Query”

按钮,选择所有的骨骼参数,缩放动画系数至

0.11

,现在动画正常了,

单击Unload按钮确定。(图4-14)

图4-14

6

眼部控制设置

眼部没有现存的动画数据,需要自己设置。选择“Rlid”上面的滑块,单击

AFS

”快捷按钮,导入其动画数据。如图

4-15

:载入之后,发现没有现存的

动画数据,可以使用后面的AdaptationKey和RotationKey来达到目的。具体办

法是:拖动时间滑块到

-100

帧,然后选择

RLID

的所有轴向,移动控制器到如图

4-15位置,然后按下AdaptationKey按钮,再移动时间滑块到100帧,向下移动

眼睑控制器,再次按下

AdaptationKey

按钮,添加了两个关键帧,播放时间线,

可以看到,眼睑的在-100到100帧之间上下运动,单击Unload按钮确定。

4-15

同样方法为下眼睑控制器创造关键帧,设置完成如图4-16所示,当然,精

确的权重是好的动画的保证。

图4-16

同样办法设置好“

Llid

”控制器组。具体结果请参考场景文件“

(镜像只对MotionDataScale所做的修改有效,所以在制作左边的动画时,不能

使用镜像命令。)。

下面来设置眼球控制器Gaze_V和Gaze_H的动画,同样方法导入动画数据,

同时选择眼部的四个控制关节,向上移动到合适位置,按下

AdaptationKey

按钮,

再移动时间滑块到100帧,向下移动所有控制器,再次按下AdaptationKey按钮,

添加了两个关键帧,单击

Unload

确定。这样,就完成了眼球移动时眼睑的上下

跟随动画。(图4-17)

图4-17

Gaze_H

的动画需要应用到

RotationKey

,具体方法和前面一样。完成之后,

移动中间的小圆圈eyeShift,眼睑就做跟随运动了。

最后一个任务是把眼球的转动和中间的小圈——

eyeShift

控制器的移动关联

起来,可以使用驱动关键帧,也可以使用表达式,使用表达式效率更高。直接打

开表达式编辑器窗口,创建以下表达式:

eye_Y=ateX/3;

eye_X=-ateY/5;

eye_Y=ateX/3;

eye_X=-ateY/5;

这四行表达式很简单,意思就是眼球的X轴向的旋转=控制器Y轴上的反方

向的移动的三分之一,

Y

轴向的旋转

=

控制器

X

轴上的方向的移动的五分之一。

如图4-18所示:再移动中间的眼球控制器,发现没有问题了。

4-18

9所有的控制器都调节好之后,最好仔细认识一下这个插件细致的表情控

制,这个控制器做得非常细致,几乎包括了每个局部的调节,也包含了常用表情

的调节,还有基本元音的发声的口型特征,不足之处是控制器太多,不够直观。

10

在表情控制完成之后,这个文件很大,工作起来比较缓慢,可以对动画

文件进行简化,缩小文件大小,如图4-19:执行AFS/Tools/SimplifyAllMotion

Data

「简化动画数据」,默认操作即可。

图4-19

1.1快速创建融合变形目标形状

通过“

F-A-T

”创建制作的表情控制面板,可以满足大多数的动画要求,但

是,它毕竟是套用库文件,也有很大的局限性。

F-A-T

”最大的用处是能快速调节众多的融合变形的目标对象,下面实例

说明这个过程:

打开前面完成的场景文件

——

”,如图

4-20

:选择控制面板中

的“Joy「高兴」”滑块,滑动到最大,得到了笑的表情,同时,在层窗口中显示

面部的控制骨骼组“

FacialJoints

”,再轻轻移动相关的骨骼,使表情更加自然,

然后复制这个模型,并且为该模型解除移动属性的锁定,移动新模型到合理的位

置,这样,就制作了笑的目标形状。如果对结果不满意,还可以通过常规的调节

办法,继续调整这个模型,直至得到满意的结果。

图4-20

参照上面的方法,可以快速调出多个融合变形目标对象,如图4-21:

图4-21

单独提取某部分的融合变形目标形状

如果只需要鼻子或者眉毛某一个局部的运动,可以通过编辑融合变形权重来

实现,例如:如图4-22所示,要从这个笑的目标形状中,单独提取嘴角的运动,

这是制作表情装配经常遇到的问题。

图4-22

首先选择“joy”,再选择“headba”,执行CreateDeformers/BlendShape,

为“

headba

”创建融合变形,并设变形值为

1

,然后选择“

headba

”,执行

Edit

Deformers>PaintBlendShapeWeightsTool,在变形目标对象列表窗口中选中

joy

”,此时,模型完全显示为白色,表示“

joy

”的变形被完全应用在“

headba

上,修改权重如下图所示:复制“headba”,得到新的目标模型“joy-mouth”

图4-23

1.2

表情控制面板

1.2.1个性化表情控制面板

通过融合变形来制作表情是表情装配最重要的方法,但是通过融合形状编辑

窗口制作动画的效率比较低,其原因是这些融合形状彼此是孤立的,实际装配中

可以通过一个控制面板把这些表情库联系起来,重新组合,创造更加丰富的变化。

下面具体介绍怎样创建自己的表情控制面板。

1.

制作原理:利用曲线的位移来驱动融合变形的值。驱动的方式可以选择

驱动关键帧,属性连接,表达式等多种方式来实现,下面用一个简单例

子来说明这个过程。

2.制作控制曲线:如图4-24所示,创建控制滑块,并且选择控制滑块,

设置其滑动的取值范围为

0-2

之间。

图4-24

3.

如图

4-25

所示,为控制滑块添加滑动背景曲线和注释文字曲线,注意

锁定这些不需要滑动的曲线。

图4-25

4.

最后,将这些曲线一起打组,缩放和移动组,调整控制曲线的显示大小

和位置,最终完成曲线控制组。

5.

如图

4-26

所示:导入需要控制的表情。

图4-26

6.

把控制滑块的移动与融合表情的目标形状联系起来,驱动关键帧可以很

简单地实现这种连接:控制滑块值为0时,joy为0,控制滑块的值为2

时,

joy

值为

1

,这样就使用控制滑块的移动驱动了“

joy

”的表情变化;

但是使用表达式效率更高,为曲线滑块添加表达式:

=joy_ateY/2;

,得到相同结果,如图

4-27

所示:

图4-27

完整的表情控制面板是怎样的呢?如图

4-28

所示,左图为胖子表情的控制

面板,右上是融合变形桥,右下是最终动画对象,具体调控请参考场景文件

图4-28

这个控制面板里的融合形状的具体构成如下:

1.嘴巴的控制

第一组:嘴角的目标形状,如图4-29所示,这一组目标形状主要是调节嘴

角的上下变化,在调节笑和哭的表情时比较有用,通过控制器的一起运动,就可

以产生两边上和两边下的结果。

图4-29

控制方法:如图

4-30

所示,簇控制器“

mouth_L1

”上下移动,其取值范围

为-1到1,用它来驱动目标形状“左上”和“左下”,当它值为0时,二者均为0,

当它为

1

时,“左上”为

1

,当它为

-1

时,“左下”为

1

,同样方法使用簇控制器

“mouth_R1”驱动“右上”和“右下。

图4-30

第二组:口型收与扩,目标形状如图4-31所示:

图4-31

具体控制设置如图

4-32

所示:

图4-32

第三组:嘴巴的开合,可以通过融合形状来控制,但是,由于嘴巴需要讲话,

张合是最常见的运动,所以用骨骼控制更加灵活,本例采用了骨骼控制加融合变

形的办法,融合变形主要控制上唇的变化,骨骼主要控制下巴的运动。

如图

4-33

所示:上唇采取了五个融合形状,曲线

Y

轴的移动驱动上唇张开,

曲线X轴移动驱动左右上唇半张,曲线X轴的旋转驱动上下嘴唇的卷曲和内收,

这样使嘴唇产生了更多的组合变化。

图4-33

如图4-34所示:通过骨骼来控制下巴的运动,使用曲线的Y轴的移动来驱

动下颌骨上下转动,使用曲线

X

轴的移动来驱动下颌骨的左右转动。

图4-34

2.牙齿、舌头和口腔的控制

口腔

口腔比较容易,如图4-35所示:首先将口腔模型“gum”,添加5*5*5的晶

格(设置晶格属性eLattice为all),然后先选择晶格,再加选头部模型,将

晶格包裹给头部模型。

图4-35

牙齿

上齿一般是不运动的,直接父子关系(

p

)给头顶骨骼,下齿不是直接父子

关系给下颌骨,而是利用与下颌骨位置重合的子骨骼来单独控制,或者通过一个

定位器作为过渡,父子关系给下颌骨,这样可以通过定位器来单独控制下齿的位

移变化,更加灵活。

舌头

先使用曲线IK绑定舌头,再采用分配不同权重的簇来控制驱动曲线,其根

骨骼父子关系给下颌骨,如图

4-36

所示,控制曲线“

tougue_control

”的

X

轴和

Y轴的位移连接簇的移动,“Twist”连接IK的Twist属性,使舌头产生扭曲,“Out

Tongue

”连接

IK

Offt

(偏移)属性,使舌头整体产生了偏移,可以使舌头

伸出口腔,也可以使用拉伸IK,驱动簇在纵深方向的位移,如果需要单独对舌

头的旋转进行控制,可以旋转舌头的根骨骼,具体请参考场景文件

“”。

图4-36

3.鼻子的控制

鼻子的变化较少,如图

4-37

所示:其目标形状只有三个,分别是左上、右

上、和两边上,具体控制参考场景文件“”。

图4-37

4.眼睛的控制

眼睛的融合变形主要控制眼睑的张合,需要四个目标形状,分别如图

4-38

所示:

图4-38

5.眉毛的控制

眉的变化比较多除了左右两边上下四种变化外,还需要注意眉心的上下变

化,最少需要

6

个目标形状,图

4-39

所示的是眉心的上下变化:

图4-39

图4-40所示的是左眉和右眉的上下变化:

图4-40

笔者还在左眉和右眉的控制曲线上叠加了双眉同时上下的控制曲线,使眉毛

的最大运动可以增加一倍,一方面夸张了眉的运动,另一方面使控制更加方便。

眼球的拉伸变化

眼球的控制经常会出现一个问题,如图4-41所示,当眼睑过分拉伸的时候,

眼球会不合理地露出来,尤其在做卡通表情的时候就更明显,可以将眼球分别加

上5*5*5的晶格,再用头部模型包裹【Wrap】晶格,这样,眼球就会随着表情

的变化而变化了,然后调节包裹模型的“

smoothness

”和“

dropoff

”参数来控制

眼球的变形程度。

图4-41

无论多么复杂的表情控制面板,都是在驱动关键帧和融合形状变形的基础上

发展起来的,只要懂得了其制作的原理,就能够根据角色做出丰富而细腻的表情

控制来,读者可以参考光盘所带的场景文件,进一步了解具体细节。

选自<<三维角色动画的艺术>>,作者:赖义德

本文发布于:2022-11-25 03:24:40,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/16000.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:拉乔利纳
下一篇:incredibles
标签:facial
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图