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

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

Info

Publication number
CN101364309B
CN101364309B CN2008102237247A CN200810223724A CN101364309B CN 101364309 B CN101364309 B CN 101364309B CN 2008102237247 A CN2008102237247 A CN 2008102237247A CN 200810223724 A CN200810223724 A CN 200810223724A CN 101364309 B CN101364309 B CN 101364309B
Authority
CN
China
Prior art keywords
lip
rounding
degree
virtual role
phoneme
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2008102237247A
Other languages
English (en)
Other versions
CN101364309A (zh
Inventor
曹存根
李志豪
冯柏岚
岳小莉
马东嫄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN2008102237247A priority Critical patent/CN101364309B/zh
Publication of CN101364309A publication Critical patent/CN101364309A/zh
Application granted granted Critical
Publication of CN101364309B publication Critical patent/CN101364309B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Abstract

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

Description

一种源虚拟角色上的口形动画生成方法 
技术领域
本发明涉及动画制作自动化领域,特别是涉及一种源虚拟角色上的口形动画生成方法。 
背景技术
虚拟角色的话语口形动画是数字动画制作中的一个重要环节,现有的方法大多停留在手工制作的层面,需要耗费较多的人力和财力。为了提高口形动画和表情动画的制作效率和效果,许多研究机构和研究人员做了大量的尝试。但是,已有的方法大多局限于学术研究阶段,离实用还有较大的距离。 
现有技术中关于在虚拟人物角色口形动画生成方面,主要有两类相关工作。一类方法主要包括:首先,通过对视频或图片分析和统计学习方法,获得口形运动规律;然后,利用这些规律驱动虚拟人物角色模型的口唇,产生口形动画。这种方法的不足在于需要对视频样本进行一定的训练;视频样本中的人物角色模型未必与目标人物角色模型对应,从而使目标角色的口形逼真度不高;而且这种方法仅适用于二维的虚拟人物角色,不适用于三维虚拟人物角色。 
另一类方法是用语音信息驱动三维虚拟角色的口形运动,使得虚拟角色的口形运动反映语音中各词语的发音口形变化,从而产生相应的口形动画。该方法通用性不强,它依赖于特定的说话人的语音,也不支持话语口形动画的复制。 
现有话语动画的主流制作方法是为每个角色单独创建一套话语库,话语动画数据被单个角色拥有,已有的动画数据无法在角色之间重用。如果可以重用已有动画数据,将一个角色的话语动画数据传递到一个新的角色上,即话语复制,例如,将图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汉语声母口形分类表 
Figure G2008102237247D00051
表2汉语韵母口形分类表 
Figure G2008102237247D00052
Figure G2008102237247D00061
(2)字-音节转换表,其中音节在本实施例中是拼音,该表格是用于将话语汉字转化为拼音的数据表格words_pinyin_lib.txt,该表格的第二列还标识了汉字的声调,如表3所示,其中以部分汉字为例示出了其拼音转换。 
表3汉字-音节转换表 
  
拼音 声调 汉字
a 1 吖阿呵啊锕腌
a 2 啊嗄
a 3 阿啊
a 4 阿啊
a 0 呵啊
  
ai 1 哎哀埃挨唉娭诶嗳锿
ai 2 挨騃皑癌
ai 3 佁欸嗳矮蔼霭
an 2
ang 2 印仰昂
ang 4 枊盎醠
ao 1 凹熬爊
bai 4 呗败拜稗韛
ban 2 阪坂板版钣舨蝂魬
  
bei 0 呗臂
ben 1 奔贲锛
ben 3 本苯畚
ben 4 夯坌奔倴笨
beng 1 伻祊絣崩绷嘣
beng 2
beng 3 菶绷琫
beng 4 泵迸蚌绷甏镚蹦
bi 1 皀逼鲾鎞
bi 2 荸鼻
zui 1 脧羧咀
zui 3 觜嘴
zun 3 僔撙噂
zun 4
zuo 1 作嘬
zuo 3 左佐撮
(3)音素时长表:mouth_time.txt,用于表示音素的发音口形持续时间和口形幅度,如表4所示,其中以部分音素为例标识了不同音素所对应的口形的发音时长和口形幅度的区别。发音时长的单位是帧。本领域技术人员可以理解,还可以将整个句子时长作为整体进行缩放调节,例如分为快速、正常和慢速等级别。在表4中,第三列的口形标识用于标识口形的 幅度,其中,A为大口形,B为正常口形,C为小口形;具体实现上是对标准口形的大小进行相应比例的缩放。 
表4部分音素时长表 
  
韵母 时长(帧) 口形标识
e 1 C
eng 2 C
er 2 C
a 2 A
ang 2 A
声母 时长(帧) 口形标识
b 1 B
p 1 B
m 1 B
d 1 B
t 1 B
(4)音素口形对应库:针对选定的一个标准Maya人物模型source_model.ma,通过Maya软件包的BlendShape功能,根据音素口形分类表中声母和韵母的口形差别的分类,产生一个对应不同声母和韵母的声、韵母口形库,记为mouth_lib.txt,如表5所示。声、韵母口形库的作用是描述一个音素发音过程,主要是通过设定音素的起始口形和终止口形为关键帧口形来实现。表5中以部分音素为例,第三列示出了该音节的起始口形名,第四列示出了该音节的终止口形名。 
表5部分音素对应的BlendShape口形库 
Figure G2008102237247D00081
Figure G2008102237247D00091
Figure G2008102237247D00101
以举例方式,对表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。对分解得到的音节串中相邻的相同音素,例如a a a:对第一个音素保持正常状态,对后续的相同音素,按比例逐个缩小口形幅度,直至相邻音素缩放结束或口形近似闭合。具体地,若有相同的音素位于连续的位置,则后面音素的口形幅度比前面音素的口形幅度小,根据一个具体实施例,相同音素口形(i)=相同音素口形(i—1)×缩小比例,其中缩小比例诸如
Figure G2008102237247D0012112217QIETU
Figure G2008102237247D0012112224QIETU
等。 
根据音素时长表,设置StammerEraseOverlap.txt中每条MEL命令绝对执行时间,产生的输出存入ClearDemand.mel,该操作具体描述如下。 
根据音素时长表中的各音素的发音时长,及用户初始输入设置的起始说话时间和说话语速,计算出每个音素的起始口形和终止口形分别对应的起始帧和结束帧。 
优选的,考虑到对于汉字,根据相同汉字的不同声调发音时造成的持续时间不一致(比如α(表示恍然大悟)明显要比a(表示疑问)口形持续时间短);通过对音素时长表中的时长进行加权实现由于声调不同造成的时长变化。具体地,对于一声与四声的汉字,其实际时长等于表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值。BlindData被设计用于游戏中,标注物体属性,例如增加或减少生命值、危险物、宝贝等。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 = S x 0 0 0 S y 0 0 0 S z - - - ( 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中的三角面所示,记该三角面为 
Figure DEST_PATH_GSB00000089413800031
),记交点的坐标为<<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)43.6G 
RAM:1G DDR2 
主板芯片:Intel i945G/GZ 
显卡:NVidia GeForce6200 
硬盘:WD160G 
系统所涉及的软件如下: 
操作系统:Windows XP SP2 
开发环境:Microsoft Visual Studio.NET2003 
Maya7.0 
插件发布:Release版 
为具体说明本发明的功效,我们使用话语口形动画生成和复制系统进行具体应用。图11给出了汉语口形生成方法所所产生的一个口形动画序 列,它是以“他不是裁缝”为输入,在图1中的角色1口部产生的口形动画中的若干关键帧。这些关键帧基本分别对应着各个汉字的声母和韵母发音的开始帧。 
在源虚拟角色上产生口形动画后,使用话语口形动画复制方法,可以在目标虚拟角色上产生很相近的口形动画。图12是图1中角色1的话语口形动画“他不是裁缝”到图1中角色2的口形动画复制结果。从图12的效果看,本发明的话语口形动画复制方法具有良好的准确性。 
上述具体实施例以虚拟人物作为虚拟角色来解释本发明,但本领域技术人员可以理解,虚拟角色还可以包括动物、植物甚至拟人化的其它物品,例如著名影片《汽车总动员》中的汽车等。实施例中以汉语作为具体的话语,但是,可以理解虚拟角色如果说其它语言,也可以根据本发明的思想,实现虚拟角色的口形生成和复制。例如英语,将输入的文本切分为各个独立的单词,然后将每个单词拆分成辅音和元音;通过查找辅音和元音基本口形库,生成一段与输入文本相对应的口形MEL命令序列;最后将生成的MEL命令序列在MAYA中运行,实现从输入文本到三维虚拟角色的口形动画生成。生成的口形动画同样可以被复制给其它角色。 
应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。

Claims (10)

1.一种源虚拟角色上的口形动画生成方法,包括下列步骤:
1)接收文本输入,将所述文本切分为单个字,将所述字拆分为所述文本的音素;
2)根据音素口形对应库将所述文本的音素转化为Maya软件中对应的口形命令,其中所述音素口形对应库设定了音素对应的起始口形和终止口形;
3)根据音素时长表,缩放所述口形命令中的所述文本的音素对应口形,其中所述音素时长表包含口形幅度的标识;
4)根据所述音素时长表,计算所述文本的音素对应的起始口形和终止口形分别对应的起始帧和结束帧,根据所述起始帧和所述结束帧设置所述口形命令的执行时间,其中,所述音素时长表包括音素对应口形的时长;
5)执行所述口形命令,生成所述源虚拟角色上的口形动画。
2.根据权利要求1所述的方法,其特征在于,对于所述文本是中文文本,所述步骤2)中所述音素口形对应库包括单一口形韵母、复合口形韵母和声母,其中单一口形韵母对应的所述起始口形与终止口形相同,复合口形韵母和声母对应起始口形与终止口形不同。
3.根据权利要求2所述的方法,其特征在与,所述声母包括:开口呼声母、奇齿呼声母、合口呼声母和撮口呼声母。
4.根据权利要求1所述的方法,其特征在于,所述步骤3)还包括步骤:
31)对所述口形命令中重复口形命令的口形幅度进行缩放。
5.根据权利要求1所述的方法,其特征在于,所述步骤4)包括:
41)根据所述音素时长表和所述音素的声调,计算所述文本的音素对应的起始口形和终止口形分别对应的起始帧和结束帧。
6.根据权利要求1所述的方法,其特征在于,在所述文本的因素中添加自然口形音素。
7.根据权利要求1所述的方法,其特征在于,还包括步骤:
6)将所述口形动画复制到目标虚拟角色上。
8.根据权利要求7所述的方法,其特征在于,所述步骤6)包括:
61)标注所述源虚拟角色和所述目标虚拟角色上的关联点对,根据所 述关联点对,对所述源虚拟角色和所述目标虚拟角色进行匹配;
62)计算所述源虚拟角色关联点的运动向量;
63)根据所述运动向量计算所述目标虚拟角色上的关联点动作后的新位置,实现所述动画复制。
9.根据权利要求8所述的方法,其特征在于,所述步骤61)所述对所述源虚拟角色和所述目标虚拟角色进行匹配包括:
611)利用RBF神经网络进行粗糙匹配;
612)将根据所述粗糙匹配得到的目标虚拟角色上的源虚拟角色RBF对应点移动到距离最近的目标虚拟角色上的特征点的位置。
10.根据权利要求8所述的方法,其特征在于,所述关联点对包括所述源虚拟角色嘴唇上与所述目标虚拟角色嘴唇上的关联点对,所述步骤62)包括:
621)对源虚拟角色的非三角形面进行三角化;
622)计算所述目标虚拟角色嘴唇上的关联点所对应的所述源虚拟角色上的映射点;
623)对于发生所述目标虚拟角色嘴唇上的关联点所对应的所述源虚拟角色上的映射点在所述源虚拟角色上发生上下嘴唇错位的情况,则调整所述目标虚拟角色嘴唇上的关联点所对应的所述源虚拟角色上的映射点的位置,使其与所述目标虚拟角色嘴唇上的关联点所在上嘴唇或下嘴唇的位置一致;
624)根据所述调整后的新的所述目标虚拟角色嘴唇上的关联点所对应的所述源虚拟角色上的映射点所在的三角面,重新计算所述新的位于所述源虚拟角色上的映射点的运动向量。 
CN2008102237247A 2008-10-09 2008-10-09 一种源虚拟角色上的口形动画生成方法 Active CN101364309B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008102237247A CN101364309B (zh) 2008-10-09 2008-10-09 一种源虚拟角色上的口形动画生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008102237247A CN101364309B (zh) 2008-10-09 2008-10-09 一种源虚拟角色上的口形动画生成方法

Publications (2)

Publication Number Publication Date
CN101364309A CN101364309A (zh) 2009-02-11
CN101364309B true CN101364309B (zh) 2011-05-04

Family

ID=40390664

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008102237247A Active CN101364309B (zh) 2008-10-09 2008-10-09 一种源虚拟角色上的口形动画生成方法

Country Status (1)

Country Link
CN (1) CN101364309B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102819856A (zh) * 2012-07-10 2012-12-12 广东工业大学 一种根据中文对白生成连贯嘴型动画的方法
CN104216641B (zh) * 2013-06-03 2019-08-23 北京企鹅童话科技有限公司 一种界面控制方法、装置和终端设备
CN104574477B (zh) * 2014-12-22 2017-08-08 北京像素软件科技股份有限公司 动画角色汉语口型生成的方法及装置
CN104574478A (zh) * 2014-12-30 2015-04-29 北京像素软件科技股份有限公司 一种编辑动画人物口型的方法及装置
WO2018006369A1 (zh) * 2016-07-07 2018-01-11 深圳狗尾草智能科技有限公司 一种同步语音及虚拟动作的方法、系统及机器人
CN106447748B (zh) * 2016-09-14 2019-09-24 厦门黑镜科技有限公司 一种用于生成动画数据的方法和装置
CN106875947B (zh) * 2016-12-28 2021-05-25 北京光年无限科技有限公司 用于智能机器人的语音输出方法和装置
CN108597008B (zh) * 2017-12-13 2021-08-31 西安电子科技大学 基于自然文本的人机智能交互控制平台
CN108831463B (zh) * 2018-06-28 2021-11-12 广州方硅信息技术有限公司 唇语合成方法、装置、电子设备及存储介质
CN110853614A (zh) * 2018-08-03 2020-02-28 Tcl集团股份有限公司 虚拟对象口型驱动方法、装置及终端设备
CN109326151A (zh) * 2018-11-01 2019-02-12 北京智能优学科技有限公司 基于语义驱动虚拟形象的实现方法、客户端和服务器
CN110413841A (zh) * 2019-06-13 2019-11-05 深圳追一科技有限公司 多态交互方法、装置、系统、电子设备及存储介质
CN110503942A (zh) 2019-08-29 2019-11-26 腾讯科技(深圳)有限公司 一种基于人工智能的语音驱动动画方法和装置
CN111161755A (zh) * 2019-12-25 2020-05-15 新华智云科技有限公司 基于3d渲染引擎的中文唇音同步方法
CN110992926B (zh) * 2019-12-26 2022-06-10 标贝(北京)科技有限公司 语音合成方法、装置、系统和存储介质
CN112435318B (zh) * 2020-11-30 2022-11-18 上海米哈游天命科技有限公司 一种游戏中的防穿模方法、装置、电子设备及存储介质
CN112750187A (zh) * 2021-01-19 2021-05-04 腾讯科技(深圳)有限公司 一种动画生成方法、装置、设备及计算机可读存储介质
CN113035198B (zh) * 2021-02-26 2023-11-21 北京百度网讯科技有限公司 三维人脸的唇动控制方法、设备和介质
CN113284506A (zh) * 2021-05-20 2021-08-20 北京沃东天骏信息技术有限公司 信息映射方法、装置及存储介质和电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002058010A2 (en) * 2001-01-22 2002-07-25 Digital Animations Group Plc. Character animation system
CN1808519A (zh) * 2005-01-18 2006-07-26 无敌科技(西安)有限公司 同步播放语言音节发音及其口形图片的装置及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002058010A2 (en) * 2001-01-22 2002-07-25 Digital Animations Group Plc. Character animation system
CN1808519A (zh) * 2005-01-18 2006-07-26 无敌科技(西安)有限公司 同步播放语言音节发音及其口形图片的装置及方法

Also Published As

Publication number Publication date
CN101364309A (zh) 2009-02-11

Similar Documents

Publication Publication Date Title
CN101364309B (zh) 一种源虚拟角色上的口形动画生成方法
CN103650002B (zh) 基于文本的视频生成
US6813607B1 (en) Translingual visual speech synthesis
CN103218842B (zh) 一种语音同步驱动三维人脸口型与面部姿势动画的方法
CN110544218B (zh) 一种图像处理方法、装置及存储介质
CN109960453A (zh) 根据被引导的用户会话移除和替换图像中的对象
CN105654939B (zh) 一种基于音向量文本特征的语音合成方法
CN105551071A (zh) 一种文本语音驱动的人脸动画生成方法及系统
CN107452379A (zh) 一种方言语言的识别技术及虚拟现实教学方法和系统
CN102203852B (zh) 语音转换方法
CN105390133A (zh) 藏语ttvs系统的实现方法
CN110335331B (zh) 教学动画制作方法
CN113096242A (zh) 虚拟主播生成方法、装置、电子设备及存储介质
CN114969282B (zh) 基于富媒体知识图谱多模态情感分析模型的智能交互方法
CN117058286B (zh) 一种文字驱动数字人生成视频的方法和装置
CN109119064A (zh) 一种适用于翻转课堂的英语口语教学系统的实现方法
He et al. LLMs Meet Multimodal Generation and Editing: A Survey
CN117315102A (zh) 虚拟主播处理方法、装置、计算设备及存储介质
Zhu Metaaid 2.0: An extensible framework for developing metaverse applications via human-controllable pre-trained models
CN115905513A (zh) 一种基于去噪式问答的对话摘要方法
CN113066473A (zh) 一种语音合成方法、装置、存储介质及电子设备
CN112331184A (zh) 语音口型同步方法、装置、电子设备及存储介质
Allen et al. Computer Aided Design: Past, Present, Future
Arikan et al. Qualitative Study of Text-to-Image AI Generators and their Relationship with NFTs
CN108241760A (zh) 一种3d工艺文件的生成方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant