首页> 中国专利> 一种源虚拟角色上的口形动画生成方法

一种源虚拟角色上的口形动画生成方法

摘要

本发明提供一种源虚拟角色上的口形动画生成方法,包括下列步骤:1)接收文本,将文本切分为单个字,将所述字拆分为文本的音素;2)根据音素口形对应库将音素转化为对应的口形命令,其中所述音素口形对应库设定了音素对应的起始口形和终止口形;3)根据音素时长表,缩放所述口形命令中的文本的音素对应口形,其中所述音素时长表包含口形幅度的标识;4)根据所述音素时长表,计算文本的音素对应的起始口形和终止口形分别对应的起始帧和结束帧,设置所述口形命令的执行时间,其中,所述音素时长表包括音素对应口形的时长;5)执行所述口形命令,生成所述源虚拟角色上的口形动画。该方法能够解决RBF神经网络在口形动画复制方面的适用性问题。

著录项

  • 公开/公告号CN101364309A

    专利类型发明专利

  • 公开/公告日2009-02-11

    原文格式PDF

  • 申请/专利权人 中国科学院计算技术研究所;

    申请/专利号CN200810223724.7

  • 申请日2008-10-09

  • 分类号G06T15/70(20060101);

  • 代理机构11280 北京泛华伟业知识产权代理有限公司;

  • 代理人王勇

  • 地址 100190 北京市海淀区中关村科学院南路6号

  • 入库时间 2023-12-17 21:27:57

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-05-04

    授权

    授权

  • 2009-04-08

    实质审查的生效

    实质审查的生效

  • 2009-02-11

    公开

    公开

说明书

技术领域

本发明涉及动画制作自动化领域,特别是涉及一种源虚拟角色上的口形动画生成方法。

背景技术

虚拟角色的话语口形动画是数字动画制作中的一个重要环节,现有的方法大多停留在手工制作的层面,需要耗费较多的人力和财力。为了提高口形动画和表情动画的制作效率和效果,许多研究机构和研究人员做了大量的尝试。但是,已有的方法大多局限于学术研究阶段,离实用还有较大的距离。

现有技术中关于在虚拟人物角色口形动画生成方面,主要有两类相关工作。一类方法主要包括:首先,通过对视频或图片分析和统计学习方法,获得口形运动规律;然后,利用这些规律驱动虚拟人物角色模型的口唇,产生口形动画。这种方法的不足在于需要对视频样本进行一定的训练;视频样本中的人物角色模型未必与目标人物角色模型对应,从而使目标角色的口形逼真度不高;而且这种方法仅适用于二维的虚拟人物角色,不适用于三维虚拟人物角色。

另一类方法是用语音信息驱动三维虚拟角色的口形运动,使得虚拟角色的口形运动反映语音中各词语的发音口形变化,从而产生相应的口形动画。该方法通用性不强,它依赖于特定的说话人的语音,也不支持话语口形动画的复制。

现有话语动画的主流制作方法是为每个角色单独创建一套话语库,话语动画数据被单个角色拥有,已有的动画数据无法在角色之间重用。如果可以重用已有动画数据,将一个角色的话语动画数据传递到一个新的角色上,即话语复制,例如,将图1左图角色1(男)的话语动画数据传递到图1右图所示的角色2(女)上,则可以实现动画数据的重用,大大降低动画师的工作量,简化话语动画的制作流程,提高生产力。

虽然在话语口形动画复制方面尚未有相关工作,但有学者利用径向基神经网络(也称RBF函数,简称RBF)变形实现虚拟角色表情的复制。但因为当源虚拟角色中的虚拟角色说话时,它的上嘴唇的点(或下嘴唇的点)可能被RBF神经网络复制到目标虚拟角色的下嘴唇的点(或上嘴唇的点),从而造成目标虚拟角色的上下嘴唇上点出现错乱;所以该方法不能直接用于话语口形动画复制。

因此,迫切需要一种口形动画的生成方法,使其能够解决RBF神经网络在口形动画复制方面的适用性问题,提高口形动画制作效率,为用户提供更多的选择和自由,使得该技术可以更好的被业界接受和运用,为更多的艺术家服务。

发明内容

本发明要解决的技术问题是提供一种源虚拟角色上的口形动画生成方法,使其能够解决RBF神经网络在口形动画复制方面的适用性问题。

为了实现上述发明目的,根据本发明的一个方面,提供了一种源虚拟角色上的口形动画生成方法,包括下列步骤:

1)接收文本输入,将所述文本切分为单个字,将所述字拆分为所述文本的音素;

2)根据音素口形对应库将所述文本的音素转化为Maya软件中对应的口形命令,其中所述音素口形对应库设定了音素对应的起始口形和终止口形;

3)根据音素时长表,缩放所述口形命令中的所述文本的音素对应口形,其中所述音素时长表包含口形幅度的标识;

4)根据所述音素时长表,计算所述文本的音素对应的起始口形和终止口形分别对应的起始帧和结束帧,根据所述起始帧和所述结束帧设置所述口形命令的执行时间,其中,所述音素时长表包括音素对应口形的时长;

5)执行所述口形命令,生成所述源虚拟角色上的口形动画。

其中,对于所述文本是中文文本,所述步骤2)中所述音素口形对应库包括单一口形韵母、复合口形韵母和声母,其中单一口形韵母对应的所述起始口形与终止口形相同,复合口形韵母和声母对应起始口形与终止口形不同。

其中,所述声母包括:开口呼声母、奇齿呼声母、合口呼声母和撮口呼声母。

其中,所述步骤3)还包括步骤:

31)对所述口形命令中重复口形命令的口形幅度进行缩放。

其中,所述步骤4)包括:

41)根据所述音素时长表和所述音素的声调,计算所述文本的音素对应的起始口形和终止口形分别对应的起始帧和结束帧。

其中,在所述文本的因素中添加自然口形音素。

其中,还包括步骤:6)将所述口形动画复制到目标虚拟角色上。

其中,所述步骤6)包括:

61)标注所述源虚拟角色和所述目标虚拟角色上的关联点对,根据所述关联点对,对所述源虚拟角色和所述目标虚拟角色进行匹配;

62)计算所述源虚拟角色关联点的运动向量;

63)根据所述运动向量计算所述目标虚拟角色上的关联点动作后的新位置,实现所述动画复制。

其中,所述步骤61)所述对所述源虚拟角色和所述目标虚拟角色进行匹配包括:

611)利用RBF神经网络进行粗糙匹配;

612)将根据所述粗糙匹配得到的目标虚拟角色上的源虚拟角色RBF对应点移动到距离最近的目标虚拟角色上的特征点的位置。

其中,所述关联点对包括嘴唇上的关联点对,所述步骤62)包括:

621)对源虚拟角色的非三角形面进行三角化;

622)计算所述目标虚拟角色嘴唇上关联点的虚拟角色上的映射点;

623)对于发生目标虚拟角色嘴唇上的关联点和所述虚拟角色上的映射点发生上下嘴唇错位的情况,则调整所述虚拟角色上的映射点的位置使其与所述目标虚拟角色嘴唇上的关联点位置一致;

624)根据所述新位置的所述虚拟角色上的映射点所在的三角面,计算所述新位置的所述虚拟角色上的映射点的运动向量。

本发明的技术效果在于,能够解决RBF神经网络在口形动画复制方面的适用性问题,本发明的实施例执行时间在秒级范围内,节省了大量手调口形的时间和劳动力,极大地提高了口形动画制作效率。

附图说明

图1是根据本发明一个具体实施例的两个虚拟角色示意图;

图2部分韵母、声母对应的BlendShape口形;

图3是根据本发明一个具体实施例的话语口形生成方法流程图;

图4是根据本发明一个具体实施例的使用Blind Data标注源虚拟角色和目标虚拟角色的对应点示意图;

图5是根据本发明一个具体实施例的局部坐标系示意图;

图6是根据本发明一个具体实施例的原局部坐标系、世界坐标系与变形后坐标系的示意图;

图7是根据本发明一个具体实施例的变形前后同一个点周围连接点所组成的包围盒变化示意图;

图8是根据本发明一个具体实施例的口形动画复制方法流程图;

图9是根据本发明一个具体实施例的源虚拟角色在目标虚拟角色上的对应点示意图;

图10是根据本发明一个具体实施例的过目标虚拟角色顶点P与源虚拟角色的一个三角面求交示意图;

图11是图1中角色1的话语“他不是裁缝”口形序列图;

图12是图1中角色2的话语“他不是裁缝”口形复制结果序列图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的一种源虚拟角色上的口形生成方法进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本发明基于MAYA软件实现虚拟角色的口形生成和复制。MAYA软件是三维动画软件的后起之秀,深受业界欢迎和钟爱。Maya集成了最先进的动画及数字效果技术,它不仅包括一般三维和视觉效果制作的功能,而且还结合了最先进的建模和运动匹配技术。MEL是Maya EmbeddedLanguage(Maya内置语言)的缩写,是一种强大的命令和脚本语言,通过MEL可直接控制Maya的特征、进程和工作流程。

根据本发明的一个输入为中文文本的具体实施例,首先将输入的文本切分为各个独立的字,再将每个字拆分成声母和韵母;通过查找发音基本单位——音素口形对应库,生成一段与输入文本相对应的口形函数序列串,也即一组MEL命令(也称为mel命令、mel语句、mel函数等)序列;最后将生成的MEL命令序列在MAYA中运行,实现从输入文本到三维虚拟角色的口形动画生成。其中音素包括汉语的声母、韵母,英语的辅音、元音以及其它语言的发音基本单位。

根据本发明的一个具体实施例,上述音素口形对应库可具体包括下列表格:

(1)音素口形分类表:对于汉语而言,音素主要包括声母和韵母。针对汉语音位、汉语发音基本单位声母和韵母的特点,以及汉语发音的习惯,总结真人发音口形与发音部位的对应关系,建立音素口形分类表,包括汉语声母口形分类表,如表1所示;汉语韵母口形分类表,如表2所示。

           表1  汉语声母口形分类表

           表2  汉语韵母口形分类表

(2)字-音节转换表,其中音节在本实施例中是拼音,该表格是用于将话语汉字转化为拼音的数据表格words_pinyin_lib.txt,该表格的第二列还标识了汉字的声调,如表3所示,其中以部分汉字为例示出了其拼音转换。

           表3  汉字-音节转换表

(3)音素时长表:mouth_time.txt,用于表示音素的发音口形持续时间和口形幅度,如表4所示,其中以部分音素为例标识了不同音素所对应的口形的发音时长和口形幅度的区别。发音时长的单位是帧。本领域技术人员可以理解,还可以将整个句子时长作为整体进行缩放调节,例如分为快速、正常和慢速等级别。在表4中,第三列的口形标识用于标识口形的幅度,其中,A为大口形,B为正常口形,C为小口形;具体实现上是对标准口形的大小进行相应比例的缩放。

  表4  部分音素时长表

 

韵母时长(帧)口形标识e1Ceng2Cer2Ca2Aang2A声母时长(帧)口形标识b1Bp1Bm1Bd1Bt1B

(4)音素口形对应库:针对选定的一个标准Maya人物模型source_model.ma,通过Maya软件包的BlendShape功能,根据音素口形分类表中声母和韵母的口形差别的分类,产生一个对应不同声母和韵母的声、韵母口形库,记为mouth_lib.txt,如表5所示。声、韵母口形库的作用是描述一个音素发音过程,主要是通过设定音素的起始口形和终止口形为关键帧口形来实现。表5中以部分音素为例,第三列示出了该音节的起始口形名,第四列示出了该音节的终止口形名。

     表5  部分音素对应的BlendShape口形库

以举例方式,对表5中口形命名规范解释如下:

(5.1)单一口形韵母:其对应的起始口形与终止口形相同,例如:blendShape7.fYunmu_9e9_9eng9

其中,blendShape7是Maya软件包中对应口形部分的blendShape名称;fYunmu是韵母标识符;9e9_9eng9是具体韵母标识,其中9*9是间隔符,例如blendShape7.fYunmu_9e9_9eng9就是指韵母中的e和eng。由于部分音节在发音口形上是没有区别的,仅存在发音时长区别,因此在口形描述上将其归为一类。

(5.2)复合口形韵母:其对应的起始口形与终止口形不同,例如:blendShape7.fYunmu_9ia_19和blendShape7.fYunmu_9ia_29

其中,blendShape7是Maya软件包中对应口形部分的blendShape名称;fYunmu是韵母标识符;9ia_19是具体韵母标识,9*9是间隔符,其中ia_1和ia_2是起始和终止口形不一致的韵母的标识,ia_1表示起始口形,ia_2表示终止口形。

(5.3)声母:其对应的起始口形与终止口形不同,blendShape7.fShengmu_9b_19_9p_19_9m_19和blendShape7.fShengmu_9b_29_9p_29_9m_29

其中,blendShape7是Maya软件包中对应口形部分的blendShape名称;fShengmu是声母标识符;9b_19_9p_19_9m_19是具体声母标识,9*9是间隔符,b_1和b_2是起始和终止口形不一致的声母的标识,b_1表示起始口形,b_2示终止口形。b、p、m表示因其在发音口形上没有太大区别的,故在口形描述上将其归为一类。

根据本发明的实施例,上述口形均定义在标准的源虚拟角色source_model.ma上,即在如图2左边所示的大纲上的mouth_resource群组中。本领域技术人员可理解,blendShape7的初始值设置为0,如图2的右边所示。在模型上还有多个blendShape控制器,其是点的集合,通过对这些控制器的属性的控制,实现不同的口形动画。

优选的,上述表格除了普通的音素外,还有一个特殊音素“ori”,其对应角色在自然状态下的口形。

根据本发明一个具体实施例,如图3的流程图所示,下面具体描述基于上述口形库生成虚拟角色的口形的方法的各个步骤。其中图3中示出了根据该实施例,所述方法的各个步骤的功能、输入和输出,以及实现该步骤的函数及其所述类。

接收一段汉字字符串输入,存储在文件words_input.txt中;将words_input中的汉字字符串切分为单个的汉字,形成一个一个的汉字,将中间结果记为words_input′.txt。例如汉字字符串是“他不是裁缝”,则words_input′.txt中内容为“他不是裁缝”。

根据words_pinyin_lib.txt中汉字-音节转换表(参见表3),将words_input′.txt中每个汉字转化为拼音,生成pinyi_input.txt作为输出。如“他不是裁缝”的例子,则pinyi_input.txt中的内容为“ta bu shi caifeng”。

根据words_pinyin_lib.txt中汉字-音节转换表(参见表3),找出pinyi_input.txt中的每个汉字拼音的声母和韵母,生成一个split_result.txt作为输出。如“他不是裁缝”的例子,则split_result.txt中的内容为“t ab u sh i c ai f eng”,优选的,在“t a b u sh i c ai feng”前后各增加一个音素“ori”,即将split_result.txt中的内容增加为“orit a b u sh i c ai f eng ori”,以使角色能够以自然口形开始,并以自然口形结束。

根据mouth_lib.txt库,将split_result.txt中的每个声母和韵母转化为Maya中对应的口形MEL命令,并存BlendShapeNeeded_Type.txt。

以BlendShapeNeeded_Type.txt为输入,根据mouth_time.txt库,缩放连续声母和韵母对应口形,产生的输出存入BlendShapeValuesSetted.txt,其中每行也是MEL命令。

对BlendShapeValuesSetted.txt中重复口形MEL命令行的口形幅度进行缩放,产生的输出记为StammerEraseOverlap.txt。对分解得到的音节串中相邻的相同音素,例如aaa:对第一个音素保持正常状态,对后续的相同音素,按比例逐个缩小口形幅度,直至相邻音素缩放结束或口形近似闭合。具体地,若有相同的音素位于连续的位置,则后面音素的口形幅度比前面音素的口形幅度小,根据一个具体实施例,相同音素口形(i)=相同音素口形(i—1)×缩小比例,其中缩小比例诸如或等。

根据音素时长表,设置StammerEraseOverlap.txt中每条MEL命令绝对执行时间,产生的输出存入ClearDemand.mel,该操作具体描述如下。

根据音素时长表中的各音素的发音时长,及用户初始输入设置的起始说话时间和说话语速,计算出每个音素的起始口形和终止口形分别对应的起始帧和结束帧。

优选的,考虑到对于汉字,根据相同汉字的不同声调发音时造成的持续时间不一致(比如ā(表示恍然大悟)明显要比(表示疑问)口形持续时间短);通过对音素时长表中的时长进行加权实现由于声调不同造成的时长变化。具体地,对于一声与四声的汉字,其实际时长等于表4中所示时长;对于二声与三声的汉字,其实际时长等于表4中所示时长加1。

将计算得到的各音素的发音起始帧和结束帧融合到各设置blendShape控制器执行时间的MEL命令中,得到ClearDemand.mel。

当按照上述步骤生成ClearDemand.mel后,执行其中的命令,在源虚拟角色上生成口形动画。优选的,在Maya软件包上载入AutoGenerateMouthAnimation.mll插件,调入Maya标准人物头模型source_model.ma(参见图2),在Maya软件包的Script Editor窗口载入ClearDemand.mel,然后运行AutoGenerateMouthAnimation命令,在source_model.ma的口部即可获得words_input.txt所对应的话语口形。

基于人工智能、计算机图形学、著名的Maya软件包三大领域知识,基于Maya BlindData关联点的标注、RBF变形技术、变换矩阵的构造、运动向量的传递等一系列核心技术,可以在不同虚拟角色之间实现根据上述方法生成的口形动画的复制。如果上述口形生成命令用Maya插件的形式实现,则此复制方法也可用插件形式实现。同时,结合Maya中的BlendShape技术,还可以调整角色的表情,使得虚拟角色可以带有表情地说话,如微笑地说“他不是裁缝”。

为具体说明本发明的虚拟角色的口形动画复制方法,首先对本发明一个具体实施例所涉及的相关概念进行说明。

(1)模型对应关联点:Maya软件包提供一种数据,叫Blind Data。在Maya中,可以对面、顶点、物体设置特定的Blind Data,当然也可以查询某个顶点、面、边的Blind Data值。Blind Data被设计用于游戏中,标注物体属性,例如增加或减少生命值、危险物、宝贝等。Blind Data便于游戏引擎的查询和调用。针对Blind Data的这种特性,本文用它来标注目标虚拟角色和源虚拟角色上对应的特征点。如源虚拟角色的鼻尖和目标虚拟角色的鼻尖对应,源虚拟角色的嘴唇与目标虚拟角色的嘴唇对应,其它点对也类似。设置对应的两个特征点具有相同的Blind Data,而且不为0,则该对应的特征点构成关联点对。每对关联点的Blind Data互不相同。设置所有非关联点的Blind Data为0。按照上述方法设定好目标虚拟角色和源虚拟角色各顶点的Blind Data之后,可以很容易的判断两个顶点是否是关联点。当两个模型上的顶点的Blind Data值相等而且不为0时,这两个顶点称为一个关联点对。例如:图4中所示blindData=.1处的源虚拟角色的下嘴唇顶点,目标虚拟角色上的对应点也是目标虚拟角色的下嘴唇顶点。

(2)源虚拟角色和目标虚拟角色的上、下嘴唇点集:由于源虚拟角色和目标虚拟角色的结构可能存在较大差异,例如源虚拟角色的嘴唇很大,目标虚拟角色的嘴唇较小,因此尽管通过上述的Blind Data方法可以建立两个模型之间的对应关系,但是在从源虚拟角色向目标虚拟角色传递运动信息时,源虚拟角色的上嘴唇上的点有可能对应到目标虚拟角色的下嘴唇上的点,或者源虚拟角色的下嘴唇上的点有可能对应到目标虚拟角色的上嘴唇上的点,从而造成嘴唇运动信息的传递错误。为此,在定义源虚拟角色和目标虚拟角色的关联点的同时,还标注出源虚拟角色的上嘴唇的K个点(称为SUL点集)和下嘴唇的L个点(称为SLL点集),同样也标注出目标虚拟角色上嘴唇的K’个点(称为TUL点集)和下嘴唇的L’个点(称为TLL点集)。其中,K和K’可能并不相等,L和L’也可能并不相等,只要SUL点集和SLL点集能分别代表源虚拟角色的上下嘴唇的点集,TUL点集和TLL点集能分别代表目标虚拟角色的上下嘴唇的点集即可。

(3)在多边形顶点建立局部坐标系:如图5所示,对于多边形的某个顶点V,定义X轴为该顶点的所有关联面的平均法线;Y轴为该顶点任意一条关联边在V的法平面上的投影;Z轴则由X轴与Y叉乘得到。这里XYZ都取单位向量。

(4)原局部坐标系(Original Local Space)和变形后的局部坐标系(Deformed Local Space):对源虚拟角色进行变形,使其与目标虚拟角色相匹配。使用前面介绍的构建局部坐标系的方法,为变形前的源虚拟角色上的某个顶点o建立局部坐标系,即原局部坐标系(Original Local Space);而为变形后的源虚拟角色上的某个顶点d建立局部坐标系,即变形后的局部坐标系(Deformed Local Space)。

(5)原局部坐标系(Original Local Space)到世界坐标系(World Space)的变换:如图6所示,设(xo,yo,zo)和(xw,yw,zw)分别为一个点在原局部坐标系和世界坐标系的三维坐标,则定义

Ro,w=(xo,yo,zo)T·(xw,yw,zw)。

(6)世界坐标系(World Space)到变形后的局部坐标系(DeformedLocal Space)的变换:如图6所示,设(xw,yw,zw)和(xd,yd,zd)分别为一个点在世界坐标系和变形后的局部坐标系的三维坐标,则定义

Rw,d=(xw,yw,zw)T·(xd,yd,zd)。

(7)原局部坐标系(Original Local Space)到变形后的局部坐标系(Deformed Local Space)的变换:定义为

R=Rw,d·Ro,w           (1)

(8)运动大小变换矩阵:源虚拟角色上某个顶点<<x,y,z>>在变形匹配前后,考察与它直接连接的顶点的变化,如图7所示。变形前,<<x,y,z>>周围的连接点组成一个包围盒(Bounding Box)。在变形后,这个包围盒大小会有变化,在X轴、Y轴、Z轴方向求出包围盒在变形前后的长度比值Sx、Sy、Sz,即可构造出一个变化矩阵S:

S=Sx000Sy000Sz---(2)

要进行口形动画复制,需要经过模型关联点对标注、RBF变形、精确匹配、构造变换矩阵、传递运动向量等步骤。如图8的流程图所示,话语口形动画复制的主要步骤如下:

调入Maya标准人物头模型source_model.ma作为源虚拟角色;调入Maya一个目标人物头模型target_model.ma作为目标虚拟角色。

在Maya中,手工标注出source_model.ma和target_model.ma之间的N个关联点对,参见图4。对于每个人物模型,通常选择点对的个数N=20即可保证复制的准确度。其中,点对中的第一个点和第二个点分别称为源虚拟角色特征点和目标虚拟角色特征点。

在Maya中,手工标注出源虚拟角色source_model.ma的上嘴唇的K个点(称为SUL点集)和下嘴唇的L个点(称为SLL点集),同样也标注出目标虚拟角色target_model.ma的上嘴唇的K’个点(称为TUL点集)和下嘴唇的L’个点(称为TLL点集)。其中,K和K’可能并不相等,L和L’也可能并不相等,只要SUL点集和SLL点集能分别代表源虚拟角色的上下嘴唇的点集,TUL点集和TLL点集能分别代表目标虚拟角色的上下嘴唇的点集即可。

根据上述关联点对,对源虚拟角色和目标虚拟角色采用RBF神经网络变形粗糙匹配。其中的步骤如下:将源虚拟角色上指定的N个特征点的坐标作为样本输入RBF神经网络,将目标虚拟角色上指定的N个特征点的坐标作为目标值,对RBF网络进行训练,直到稳定,得到一组权重值,由此训练出一个RBF神经网络;将源虚拟角色上所有顶点的坐标依次输入到训练出的RBF神经网络,则可得到它们在目标虚拟角色上的对应顶点。

经过RBF神经网络变形粗糙匹配后的源虚拟角色的大部分顶点可以很好的与目标虚拟角色相匹配了,但局部可能存在一定误差,参见图9。在图9中人面上浅色线段的交点为源虚拟角色上的所有的顶点经过RBF神经网络变形所得到的对应点,简称为目标虚拟角色上的源虚拟角色RBF对应点。精确匹配的目的就是对目标虚拟角色上的源虚拟角色RBF对应点进行移动,使之与目标虚拟角色的顶点能够精确的匹配,其中所述目标虚拟角色的顶点如图9中人面上深色线段的交点。具体步骤如下:对于某个目标虚拟角色上的源虚拟角色RBF对应点i,在目标虚拟角色上采用三维欧氏距离方法计算距离顶点i最近的目标虚拟角色上的顶点j,然后移动顶点i到j的位置上。同样的步骤,对所有目标虚拟角色上的源虚拟角色RBF对应点都执行一次,就可以完成源虚拟角色与目标虚拟角色的精确匹配。

源虚拟角色说话后,源虚拟角色上每个顶点都经过了一定的位移变换V。需要获取各顶点向量的变换矩阵,用于传递源虚拟角色顶点的运动向量到目标虚拟角色的顶点上。

优选的,为了避免目标虚拟角色的上下嘴唇上点出现错乱,对源虚拟角色的上下嘴唇的点集与目标虚拟角色的上下嘴唇的点集错位进行调整,该调整具体包括下列步骤:

对源虚拟角色上的所有非三角形的面进行三角化,三角面的三个顶点坐标分别为<<x1,y1,z1>>、<<x2,y2,z2>>、<<x3,y3,z3>>。

如图10所示,围绕目标虚拟角色建立一个圆柱,正交地从圆柱中心轴上发出一条射线,并穿过目标虚拟角色上某个面(如图10中的四边形)的一个顶点P,记P点的坐标为<<xt,yt,zt>>,该射线必与源虚拟角色的某个三角面相交(如图10中的三角面所示,记该三角面为),记交点的坐标为<<xo,yo,zo>>,称该交点为目标虚拟角色嘴唇上关联点的虚拟角色上的映射点。如果顶点P属于TUL点集,并且交点<<xo,yo,zo>>属于源虚拟角色的SLL点集所代表的区域,则存在源虚拟角色的下嘴唇的点集与目标虚拟角色的上嘴唇的点集错位,对上述所有错位的<<xt,yt,zt>>分别沿yt分量(即Y-坐标轴)进行向上微调δ,直至使得源虚拟角色上的交点<<xo,yo,zo>>出现在源虚拟角色上嘴唇的区域为止。类似地,如果顶点P属于TLL点集,并且交点<<xo,yo,zo>>属于源虚拟角色的SUL点集所代表的区域,则存在源虚拟角色的上下嘴唇的点集与目标虚拟角色的上下嘴唇的点集错位,对上述所有错位的<<xt,yt,zt>>分别沿yt分量(即Y-坐标轴)进行向下微调δ,直至使得源虚拟角色上的交点<<xo,yo,zo>>出现在源虚拟角色下嘴唇的区域为止。在每次微调中,根据经验,本发明将δ设置为0.01。记源虚拟角色上错位的交点<<xo,yo,zo>>微调后得到的顶点坐标为<<x,y,z>>,一般地,<<x,y,z>>所在的三角面的顶点坐标分别为<<x1,y1,z1>>、<<x2,y2,z2>>、<<x3,y3,z3>>。

在时刻t时,源虚拟角色上的点<<x1,y1,z1>>、<<x2,y2,z2>>、<<x3,y3,z3>>运动向量分别为V1,V2,V3,。则交点<<x,y,z>>的运动向量V的插值公式为:

V=aV1,+bV2,+cV3,          (3)

其中,

b=[(x-x1)(y3-y1)-(y-y1)(x3-x1)]/[(x2-x1)(y3-y1)-(y2-y1)(x3-x1)]

c=[(x-x1)(y2-y1)-(y-y1)(x2-x1)]/[(x3-x1)(y2-y1)-(y3-y1)(x2-x1)]

a=b-c

在时刻t,源虚拟角色上顶点的运动向量传导。对源虚拟角色上任意一个顶点i=<<x,y,z>>,设它在时刻t的运动向量为V;设<<x,y,z>>对应的目标虚拟角色上的顶点为j=<<x′,y′,z′>>,则j在时刻t的运动到达的新位置为<<x″,y″,z″>>:

<<x″,y″,z″>>=<<x′y′,z′>>+S·R·V          (4)

上述公式(4)揭示了源虚拟角色上任意一个顶点i=<<x,y,z>>的运动向量V,在时刻t,通过S和R传给顶点i在目标虚拟角色上的对应点j的过程,使得j在时刻t也按照类似于顶点i的运动而运动,从而实现源虚拟角色的口形动画向目标虚拟角色的口形动画的复制。

根据本发明的一个具体实施例,上述方法运行的系统环境参数如下:

CPU:P(R)4 3.6G

RAM:1G DDR2

主板芯片:Intel i945G/GZ

显卡:NVidia GeForce 6200

硬盘:WD 160G

系统所涉及的软件如下:

操作系统:Windows XP SP2

开发环境:Microsoft Visual Studio.NET2003

Maya 7.0

插件发布:Release版

为具体说明本发明的功效,我们使用话语口形动画生成和复制系统进行具体应用。图11给出了汉语口形生成方法所所产生的一个口形动画序列,它是以“他不是裁缝”为输入,在图1中的角色1口部产生的口形动画中的若干关键帧。这些关键帧基本分别对应着各个汉字的声母和韵母发音的开始帧。

在源虚拟角色上产生口形动画后,使用话语口形动画复制方法,可以在目标虚拟角色上产生很相近的口形动画。图12是图1中角色1的话语口形动画“他不是裁缝”到图1中角色2的口形动画复制结果。从图12的效果看,本发明的话语口形动画复制方法具有良好的准确性。

上述具体实施例以虚拟人物作为虚拟角色来解释本发明,但本领域技术人员可以理解,虚拟角色还可以包括动物、植物甚至拟人化的其它物品,例如著名影片《汽车总动员》中的汽车等。实施例中以汉语作为具体的话语,但是,可以理解虚拟角色如果说其它语言,也可以根据本发明的思想,实现虚拟角色的口形生成和复制。例如英语,将输入的文本切分为各个独立的单词,然后将每个单词拆分成辅音和元音;通过查找辅音和元音基本口形库,生成一段与输入文本相对应的口形MEL命令序列;最后将生成的MEL命令序列在MAYA中运行,实现从输入文本到三维虚拟角色的口形动画生成。生成的口形动画同样可以被复制给其它角色。

应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号