虚拟对象的实时互动控制方法及装置转让专利

申请号 : CN201510282095.5

文献号 : CN104866101B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 丁文龙

申请人 : 世优(北京)科技有限公司

摘要 :

本发明提供了一种虚拟对象的实时互动控制方法,该方法包括:检测是否接收到第一远程动作驱动数据,其中,第一远程动作驱动数据包括以下至少之一:表情数据,动作数据,特效数据,控制指令;在接收到第一远程动作驱动数据的情况下,根据第一远程动作驱动数据实时驱动并渲染虚拟对象,生成并播放第一动画影像数据;在没有接收到第一远程动作驱动数据的情况下,根据用户的互动指令驱动并渲染虚拟对象,生成并播放第二动画影像数据。通过本发明,解决了相关技术中虚拟对象的实时互动性较差、用户体验不好的问题,进而达到了较好的实时互动性、较高的用户体验度的效果。

权利要求 :

1.一种虚拟对象的实时互动控制方法,其特征在于,包括:

检测是否接收到第一远程动作驱动数据,其中,所述第一远程动作驱动数据包括以下至少之一:表情数据,动作数据,特效数据,控制指令;

在接收到所述第一远程动作驱动数据的情况下,根据所述第一远程动作驱动数据实时驱动并渲染虚拟对象,生成并播放第一动画影像数据;

在没有接收到所述第一远程动作驱动数据的情况下,根据用户的互动指令驱动并渲染所述虚拟对象,生成并播放第二动画影像数据;

其中,生成并播放所述第一动画影像数据之后,所述方法还包括:将所述用户的互动信息发送给采集所述第一远程动作驱动数据的采集现场,其中,所述互动信息包括所述用户的至少以下之一的信息:语音信息,图像信息,动作信息,文字信息,互动指令;接收根据所述互动信息生成的第三远程动作驱动数据;根据所述第三远程动作驱动数据驱动并渲染所述虚拟对象,生成并显示第三动画影像数据。

2.根据权利要求1所述的方法,其特征在于,根据所述互动指令驱动并渲染所述虚拟对象包括:检测所述互动指令的指令类型;

在所述指令类型是表情指令的情况下,驱动并渲染所述虚拟对象模仿所述用户的当前表情,或者,根据识别的情绪控制所述虚拟对象执行相应的动作,其中,所述情绪根据所述用户的表情识别;

在所述指令类型是语音指令的情况下,控制所述虚拟对象与所述用户进行语音交流,或者,驱动并渲染所述虚拟对象按照所述语音指令执行相应的动作;

在所述指令类型是动作指令的情况下,驱动并渲染所述虚拟对象模仿所述用户的当前动作,或者,驱动并渲染所述虚拟对象执行与所述动作指令相应的动作;

在所述指令类型是文字指令的情况下,驱动并渲染所述虚拟对象根据所述文字指令进行相应的动作。

3.根据权利要求2所述的方法,其特征在于,在所述指令类型是语音指令或所述文字指令的情况下,将所述第二动画影像数据发送给所述用户指定的对象,在所述指令类型是所述表情指令或所述动作指令的情况下,将所述第二动画影像数据或者所述互动指令发送给所述用户指定的对象,其中,所述互动指令是预定义数据结构的、包含所述用户的动作参数的数据。

4.根据权利要求1至3中任一项所述的方法,其特征在于,检测是否接收到所述第一远程动作驱动数据之前,所述方法还包括:接收所述用户的定制指令;

根据所述定制指令设置所述虚拟对象的属性参数,其中,所述属性参数包括以下至少之一:用于配置所述虚拟对象的形象的参数,用于配置所述虚拟对象的道具的参数,用于配置所述虚拟对象所处场景的参数,用于配置所述虚拟对象的特效的参数;

根据所述属性参数驱动并渲染所述虚拟对象。

5.一种虚拟对象的实时互动控制装置,其特征在于,包括:

检测模块,用于检测是否接收到第一远程动作驱动数据,其中,所述第一远程动作驱动数据包括以下至少之一:表情数据,动作数据,特效数据,控制指令;

第一驱动渲染模块,用于在接收到所述第一远程动作驱动数据的情况下,根据所述第一远程动作驱动数据实时驱动并渲染虚拟对象,生成并播放第一动画影像数据;

第二驱动渲染模块,用于在没有接收到所述第一远程动作驱动数据的情况下,根据用户的互动指令驱动并渲染所述虚拟对象,生成并播放第二动画影像数据;

其中,所述装置还包括:采集模块和接收模块,其中,所述采集模块,用于将所述用户的互动信息发送给采集所述第一远程动作驱动数据的采集现场,其中,所述互动信息包括所述用户的至少以下之一的信息:语音信息,图像信息,动作信息,文字信息,互动指令;所述接收模块,用于接收根据所述互动信息生成的第三远程动作驱动数据;所述第一驱动渲染模块,还用于根据所述第三远程动作驱动数据驱动并渲染所述虚拟对象,生成并显示第三动画影像数据。

6.根据权利要求5所述的装置,其特征在于,所述第一驱动渲染模块还包括:

指令检测单元,用于检测所述互动指令,其中,所述互动指令包括至少以下之一:语音指令,表情指令,动作指令,文字指令;

控制单元,用于检测所述互动指令的指令类型;在所述指令类型是表情指令的情况下,驱动并渲染所述虚拟对象模仿所述用户的当前表情,或者,根据识别的情绪控制所述虚拟对象执行相应的动作,其中,所述情绪根据所述用户的表情识别;在所述指令类型是语音指令的情况下,控制所述虚拟对象与所述用户进行语音交流,或者,驱动并渲染所述虚拟对象按照所述语音指令执行相应的动作;在所述指令类型是动作指令的情况下,驱动并渲染所述虚拟对象模仿所述用户的当前动作,或者,驱动并渲染所述虚拟对象执行与所述动作指令相应的动作;在所述指令类型是文字指令的情况下,驱动并渲染所述虚拟对象根据所述文字指令进行相应的动作。

7.根据权利要求6所述的装置,其特征在于,所述装置还包括共享模块,用于在所述指令类型是语音指令或所述文字指令的情况下,将所述第二动画影像数据发送给所述用户指定的对象;在所述指令类型是所述表情指令或所述动作指令的情况下,将所述第二动画影像数据或者所述互动指令发送给所述用户指定的对象,其中,所述互动指令是预定义数据结构的、包含所述用户的动作参数的数据。

说明书 :

虚拟对象的实时互动控制方法及装置

技术领域

[0001] 本发明涉及计算机通信领域,具体而言,涉及一种虚拟对象的实时互动控制方法及装置。

背景技术

[0002] 当前手机电视节目中仍然是传统主持人的模式,虚拟动画形象很难加入到节目中。即使将虚拟动画形象加入到节目中,也是需要费力费时的后期制作和动画渲染过程,而不能做到实时与现场主持人互动和实时动画渲染录制。
[0003] 因此,在相关技术中,无法实现与虚拟对象的实时互动,从而影响到虚拟对象的全面应用。

发明内容

[0004] 本发明提供了一种虚拟对象的实时互动控制方法及装置,解决了相关技术中虚拟对象的实时互动性较差、用户体验不好的问题。
[0005] 根据本发明的一方面,提供了一种虚拟对象的实时互动控制方法,该方法包括:检测是否接收到第一远程动作驱动数据,其中,所述第一远程动作驱动数据包括以下至少之一:表情数据,动作数据,特效数据,控制指令;在接收到所述第一远程动作驱动数据的情况下,根据所述第一远程动作驱动数据实时驱动并渲染虚拟对象,生成并播放第一动画影像数据;在没有接收到所述第一远程动作驱动数据的情况下,根据用户的互动指令驱动并渲染所述虚拟对象,生成并播放第二动画影像数据。
[0006] 优选地,生成并播放所述第一动画影像数据之后,所述方法还包括:将所述用户的互动信息发送给采集所述第一远程动作驱动数据的采集现场,其中,所述互动信息包括所述用户的至少以下之一的信息:语音信息,图像信息,动作信息,文字信息,互动指令;接收根据所述互动信息生成的第三远程动作驱动数据;根据所述第三远程动作驱动数据驱动并渲染所述虚拟对象,生成并显示第三动画影像数据。
[0007] 优选地,根据所述用户的所述互动指令驱动并渲染所述虚拟对象包括:检测所述互动指令,其中,所述互动指令包括至少以下之一:语音指令,表情指令,动作指令,文字指令;根据所述互动指令驱动并渲染所述虚拟对象。
[0008] 优选地,根据所述互动指令驱动并渲染所述虚拟对象包括:检测所述互动指令的指令类型;在所述指令类型是表情指令的情况下,驱动并渲染所述虚拟对象模仿所述用户的当前表情,或者,根据识别的情绪控制所述虚拟对象执行相应的动作,其中,所述情绪根据所述用户的表情识别;在所述指令类型是语音指令的情况下,控制所述虚拟对象与所述用户进行语音交流,或者,驱动并渲染所述虚拟对象按照所述语音指令执行相应的动作;在所述指令类型是动作指令的情况下,驱动并渲染所述虚拟对象模仿所述用户的当前动作,或者,驱动并渲染所述虚拟对象执行与所述动作指令相应的动作;在所述指令类型是文字指令的情况下,驱动并渲染所述虚拟对象根据所述文字指令进行相应的动作。
[0009] 优选地,在所述指令类型是语音指令或所述文字指令的情况下,将所述第二动画影像数据发送给所述用户指定的对象,在所述指令类型是所述表情指令或所述动作指令的情况下,将所述第二动画影像数据或者所述互动指令发送给所述用户指定的对象,其中,所述互动指令是预定义数据结构的、包含所述用户的动作参数的数据。
[0010] 优选地,检测是否接收到所述第一远程动作驱动数据之前,所述方法还包括:接收所述用户的定制指令;根据所述定制指令设置所述虚拟对象的属性参数,其中,所述属性参数包括以下至少之一:用于配置所述虚拟对象的形象的参数,用于配置所述虚拟对象的道具的参数,用于配置所述虚拟对象所处场景的参数,用于配置所述虚拟对象的特效的参数;根据所述属性参数驱动并渲染所述虚拟对象。
[0011] 根据本发明的还一方面,提供了一种虚拟对象的实时互动控制装置,该装置包括检测模块,用于检测是否接收到第一远程动作驱动数据,其中,所述第一远程动作驱动数据包括以下至少之一:表情数据,动作数据,特效数据,控制指令;第一驱动渲染模块,用于在接收到所述第一远程动作驱动数据的情况下,根据所述第一远程动作驱动数据实时驱动并渲染虚拟对象,生成并播放第一动画影像数据;第二驱动渲染模块,用于在没有接收到所述第一远程动作驱动数据的情况下,根据用户的互动指令驱动并渲染所述虚拟对象,生成并播放第二动画影像数据。
[0012] 优选地,所述装置还包括:采集模块和接收模块,其中,所述采集模块,用于将所述用户的互动信息发送给采集所述第一远程动作驱动数据的采集现场,其中,所述互动信息包括所述用户的至少以下之一的信息:语音信息,图像信息,动作信息,文字信息,互动指令;所述接收模块,用于接收根据所述互动信息生成的第三远程动作驱动数据;所述第一驱动渲染模块,还用于根据所述第三远程动作驱动数据驱动并渲染所述虚拟对象,生成并显示第三动画影像数据。
[0013] 优选地,所述第二驱动渲染模块还包括:指令检测单元,用于检测所述互动指令,其中,所述互动指令包括至少以下之一:语音指令,表情指令,动作指令,文字指令;控制单元,用于检测所述互动指令的指令类型;在所述指令类型是表情指令的情况下,驱动并渲染所述虚拟对象模仿所述用户的当前表情,或者,根据识别的情绪控制所述虚拟对象执行相应的动作,其中,所述情绪根据所述用户的表情识别;在所述指令类型是语音指令的情况下,控制所述虚拟对象与所述用户进行语音交流,或者,驱动并渲染所述虚拟对象按照所述语音指令执行相应的动作;在所述指令类型是动作指令的情况下,驱动并渲染所述虚拟对象模仿所述用户的当前动作,或者,驱动并渲染所述虚拟对象执行与所述动作指令相应的动作;在所述指令类型是文字指令的情况下,驱动并渲染所述虚拟对象根据所述文字指令进行相应的动作。
[0014] 优选地,共享模块,用于在所述指令类型是语音指令或所述文字指令的情况下,将所述第二动画影像数据发送给所述用户指定的对象;在所述指令类型是所述表情指令或所述动作指令的情况下,将所述第二动画影像数据或者所述互动指令发送给所述用户指定的对象,其中,所述互动指令是预定义数据结构的、包含所述用户的动作参数的数据。
[0015] 在本发明中,检测是否接收到第一远程动作驱动数据,其中,第一远程动作驱动数据包括以下至少之一:表情数据,动作数据,特效数据,控制指令;在接收到第一远程动作驱动数据的情况下,根据第一远程动作驱动数据实时驱动并渲染虚拟对象,生成并播放第一动画影像数据;在没有接收到第一远程动作驱动数据的情况下,根据用户的互动指令驱动并渲染虚拟对象,生成并播放第二动画影像数据,解决了相关技术中虚拟对象的实时互动性较差、用户体验不好的问题的问题,进而达到了较好的实时互动性、较高的用户体验度的效果。

附图说明

[0016] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0017] 图1是根据本发明第一实施例的虚拟对象的实时互动控制方法的流程图;
[0018] 图2是根据本发明第二实施例的虚拟对象的实时互动控制方法的流程图;
[0019] 图3是根据本发明第三实施例的虚拟对象的实时互动控制方法的流程图;
[0020] 图4是根据本发明第四实施例的虚拟对象的实时互动控制方法的流程图;
[0021] 图5是根据本发明第五实施例的虚拟对象的实时互动控制方法的流程图;
[0022] 图6是根据本发明实施例的虚拟对象的实时互动控制装置的流程图;以及[0023] 图7是根据本发明优选实施例的虚拟对象的实时互动控制装置的流程图。

具体实施方式

[0024] 下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0025] 在本实施例中提供了一种虚拟对象的实时互动控制方法,图1是根据本发明第一实施例的虚拟对象的实时互动控制方法的流程图,如图1所示,该流程包括如下步骤S102至S106。
[0026] 步骤S102,检测是否接收到第一远程动作驱动数据,其中,第一远程动作驱动数据包括以下至少之一:表情数据,动作数据,特效数据,控制指令。
[0027] 步骤S104,在接收到第一远程动作驱动数据的情况下,根据第一远程动作驱动数据实时驱动并渲染虚拟对象,生成并播放第一动画影像数据。
[0028] 步骤S106,在没有接收到第一远程动作驱动数据的情况下,根据用户的互动指令驱动并渲染虚拟对象,生成并播放第二动画影像数据。
[0029] 通过上述步骤,在存在远程动作驱动数据的情况下,可以根据远程动作驱动数据实时驱动并渲染虚拟对象,在不存在远程动作驱动数据的情况下,可以根据用户的互动指令实时驱动并渲染虚拟对象,解决了相关技术中虚拟对象的实时互动性较差、用户体验不好的问题,进而达到了较好的实时互动性、可玩性强、并改进了当前节目的制作生产流程、提高用户对节目的粘度、具有较高的用户体验度的效果。
[0030] 图2是根据本发明第二实施例的虚拟对象的实时互动控制方法的流程图,如图2所示,该流程包括如下步骤S202至S210。
[0031] 步骤S202,检测用户选择的虚拟对象,在移动终端上驱动并渲染所选虚拟对象。
[0032] 移动终端检测到用户选择的虚拟对象之后,提供定制属性,供用户定制该虚拟对象。移动终端接收到用户的定制指令,根据该定制指令设置虚拟对象的属性参数,其中,该属性参数包括以下至少之一:用于配置虚拟对象的形象的参数,用于配置虚拟对象的道具的参数,用于配置虚拟对象所处场景的参数,用于配置虚拟对象的特效的参数;根据用户配置的上述属性参数驱动并渲染虚拟对象。比如,假设检测到用户选择的虚拟对象是公主,并进一步检测到形象参数设置的是粉色公主裙,道具参数设置的是魔法棒,场景参数设置的王宫,那么根据这些属性参数就可以渲染出一位身处王宫、穿着粉色公主裙、拿着魔法棒的公主的动画影像。当然,用户也可以不选择虚拟对象,不对虚拟对象进行配置,而是系统默认一个虚拟对象,并且可以根据默认的属性参数驱动并渲染虚拟对象,生成并播放第一动画影像数据。
[0033] 步骤S204,检测是否有第一远程动作驱动数据。
[0034] 检测是否有第一远程动作驱动数据。用户可以设置是否连接到远程,当然也可以是系统默认设置是否连接到远程。在检测到当前模式是连接到远程、并从远程获取到第一远程动作驱动数据的情况下,执行步骤S206,否则,执行步骤S210。
[0035] 在一个实施例中,第一远程动作驱动数据是具有第一预定义数据结构的数据,并且,该第一预定义数据结构中的数据元素的个数小于第一数量阈值,其中,数据元素用于定义所捕捉的采集对象的动作参数。比如,在捕捉表情数据时,数据元素用于定义采集对象面部运动单元的运动变化量;在捕捉动作数据时,数据元素用于定义采集对象的动作运动轨迹和旋转角度。这样,传输第一远程动作驱动数据时占用的带宽将远小于传统的视频流的传送方式。
[0036] 步骤S206,根据第一远程动作驱动数据实时驱动并渲染所选虚拟对象,生成并播放第一动画影像数据。
[0037] 步骤S208,实时互动。
[0038] 检测到用户的互动信息,将该互动信息发送给采集第一远程动作驱动数据的采集现场,其中,该互动信息包括至少以下之一的信息:语音信息,图像信息,动作信息,文字信息,互动指令。
[0039] 接收根据互动信息生成的第三远程动作驱动数据,根据第三远程动作驱动数据驱动并渲染虚拟对象,生成并显示第三动画影像数据。
[0040] 步骤S210,根据用户的互动指令驱动并渲染虚拟对象,生成并播放第二动画影像数据。
[0041] 检测互动指令,其中,该互动指令包括至少以下之一:语音指令,表情指令,动作指令,文字指令。
[0042] 检测互动指令的指令类型。在指令类型是表情指令的情况下,驱动并渲染虚拟对象模仿用户的当前表情,或者,根据识别的情绪控制虚拟对象执行相应的动作,其中,情绪识别是根据用户的当前表情进行的;在指令类型是语音指令的情况下,控制虚拟对象与用户进行语音交流,或者,驱动并渲染虚拟对象按照语音指令执行相应的动作;在指令类型是动作指令的情况下,驱动并渲染虚拟对象模仿用户的当前动作,或者,驱动并渲染虚拟对象执行与动作指令相应的动作;在指令类型是文字指令的情况下,驱动并渲染虚拟对象根据文字指令进行相应的动作。
[0043] 在指令类型是语音指令或文字指令的情况下,还可以将生成的第二动画影像数据发送给用户指定的对象;在指令类型是表情指令或动作指令的情况下,可以将第二动画影像数据或者互动指令发送给所述用户指定的对象,其中,互动指令是预定义数据结构的、包含所述用户的动作参数的数据。当然,在指令类型是语音指令或文字指令的情况下,也可以直接将语音指令或文字指令发送给用户指定的对象。
[0044] 在指令类型是表情指令或动作指令的情况下,互动指令可以是具有第二预定义数据结构的数据,并且,该第二预定义数据结构中的数据元素的个数小于第二数量阈值,其中,数据元素用于定义用户的动作参数。比如,在捕捉表情数据时,数据元素用于定义采集对象面部运动单元的运动变化量;在捕捉动作数据时,数据元素用于定义采集对象的动作运动轨迹和旋转角度即动作参数。这样,传输互动指令时占用的带宽将远小于传统的视频流的传送方式。
[0045] 用户指定的对象在接收到第二动画影像数据的情况下,可以直接播放第二动画影像数据;在接收到语音指令或文字指令的情况下,可以根据语音指令或文字指令驱动渲染本机的虚拟对象,其中,本机的虚拟对象可以是用户指定的,也可以是用户指定的对象自身选择的;在接收到互动指令的情况下,根据互动指令的数据结构中的动作参数驱动并渲染本机的虚拟对象。比如,用户发送的语音指令是跳舞,将语音指令和用户选定的虚拟对象灰姑娘的虚拟对象ID发送给用户指定的对象,用户指定的对象将驱动并渲染出灰姑娘跳舞的动画影像;再比如,在互动指令是表情指令的情况下,将用户的面部各运动单元的运动变化量等动作参数设置到互动指令对应的数据结构中,然后将该互动指令发送给用户指定的对象,用户指定的对象根据该数据结构中的动作参数驱动并渲染虚拟对象。
[0046] 图3是根据本发明第三实施例的虚拟对象的实时互动控制方法的流程图,如图3所示,该流程包括如下步骤S302至S308。
[0047] 本实施例针对的是检测到第一远程动作驱动数据的情形。
[0048] 步骤S302,实时捕捉采集对象的第一远程动作驱动数据。
[0049] 实时捕捉采集对象的第一远程动作驱动数据可以有很多种方式。
[0050] 比如,可以通过下述方法获取采集对象的表情数据:在采集对象是人或动物的情况下,运动捕捉设备可以拍摄包含采集对象面部的图像,并分析该图像,定位该图像上采集对象的面部特征位置,然后根据面部特征位置确定采集对象各表情运动单元的运动幅度即表情数据。其中,面部特征位置可以包括以下至少之一:面部整体轮廓的位置,眼睛的位置,瞳孔的位置,鼻子的位置,嘴的位置,眉毛的位置。
[0051] 再比如,可以通过下述方法获取采集对象的动作数据:在采集对象上设置至少一个传感装置,采集传感装置输出的传感数据,根据该传感数据解算出采集对象的动作数据,其中,动作数据包括采集对象的当前动作的世界坐标的位置和旋转角度。
[0052] 又比如,可以通过下述方法获取用于控制虚拟对象运动的控制指令:在采集对象是外部设备比如摇杆或游戏杆的情况下,采集外部设备输出的脉冲数据,并将脉冲数据转换成控制指令。
[0053] 另外,为了节目的需要或者为了效果的需要,在获取第一远程动作驱动数据的同时,还可以采集与采集对象相关的音频数据。
[0054] 步骤S304,对第一远程动作驱动数据进行时间同步处理和/或均匀帧率的处理。
[0055] 在播放根据第一远程动作驱动数据生成的第一动画影像数据时,为了互动的需要或者为了效果的需要,还需要播放采集的音频数据,而为了使第一远程动作驱动数据与采集的音频数据同步,还需要对第一远程动作驱动数据进行时间同步处理。另外,为了更好地显示第一动画影像数据,还可以对第一远程动作驱动数据进行均匀帧率的处理。
[0056] 步骤S306,根据第一远程动作驱动数据驱动并渲染虚拟对象实时生成并播放第一动画影像数据。
[0057] 本实施例中,可以单屏显示或者全息模式显示。在单屏显示的情况下,生成的是单视口的第一动画影像数据。在全息模式显示的情况下,可以通过以下两种方式中的任一种驱动并渲染虚拟对象生成第一动画影像数据:
[0058] 方式一、采用在多个不同的方位上部署摄像机、同时渲染多个摄像机视口的渲染方式,根据第一远程动作驱动数据驱动并渲染对应于多个摄像机视口的不同视角的虚拟对象,并将渲染出的不同视角的虚拟对象合成多视口的第一动画影像数据;
[0059] 方式二、采用在不同的方位上复制多个虚拟对象的渲染方式,复制虚拟对象得到多个虚拟对象,将多个虚拟对象以不同的朝向部署在不同的方位上,并根据第一远程动作驱动数据分别驱动并渲染多个虚拟对象,生成单视口的第一动画影像数据。
[0060] 步骤S308,实时互动。
[0061] 采集设备实时采集用户的互动信息,并将互动信息发送到捕捉第一远程动作驱动数据的采集现场,其中,互动信息可以包括以下至少之一的信息:语音信息,图像信息,动作信息,文字信息,互动指令;采集设备可以是手机、PAD等移动终端。
[0062] 实时捕捉采集对象根据互动信息生成的第三远程动作驱动数据或特效数据,根据第三远程动作驱动数据驱动并渲染虚拟对象实时生成并播放第三动画影像数据。
[0063] 这样,便实现了用户和运动捕捉设备现场的采集对象之间的互动。
[0064] 图4是根据本发明第四实施例的虚拟对象的实时互动控制方法的流程图,如图4所示,该流程包括以下步骤S402至S412。
[0065] 本实施例针对的是检测到第一远程动作驱动数据的情形。
[0066] 步骤S402,运动捕捉,获取采集对象的第一远程动作驱动数据。
[0067] 确定运动捕捉的对象即采集对象。采集对象可以是自然界中能够运动的任何物体,比如,人,动物,机器人,甚至流动的水、摇摆的绳索、行驶中的汽车等。
[0068] 第一远程动作驱动数据是采集对象在多维空间中的运动数据,其可以包括以下至少之一:表情数据,动作数据,特效数据,控制指令。其中,表情数据是在采集对象是动物或人的情况下其面部各运动单元的运动幅度;动作数据是采集对象的运动轨迹和/或姿态,比如,在采集对象是人或动物的情况下,动作数据可以包括人或动物的肢体运动轨迹和/或姿态,在采集对象是流动的水的情况下,动作数据可以是水波纹的运动轨迹,在采集对象是摇摆的绳索的情况下,动作数据可以是绳索的运动轨迹;特效数据是与采集对象相关的特效的数据,比如,在采集对象是正在表演歌舞的演员的情况下,特效数据可以包括随着演员动作变换的粒子效果或舞台中释放的烟雾的相关数据;控制指令是摇杆或游戏杆输出的用于控制虚拟对象运动的脉冲数据,比如,可以向左拨动摇杆,控制虚拟对象向左转头。
[0069] 运动捕捉的实现方式可以有很多种,比如机械式、声学式、电磁式、光学式、惯性导航式等。
[0070] 其中,
[0071] 机械式运动捕捉装置依靠机械装置来跟踪和测量采集对象的运动轨迹。比如,在采集对象上的多个关节上安装角度传感器,可以测得关节转动角度的变化情况。当采集对象运动时,根据角度传感器所测得的角度变化,可以获取采集对象的肢体在空间中的位置和运动轨迹;
[0072] 声学式运动捕捉装置由发送器、接收器和处理单元组成。发送器是一个固定的超声波发生器,接收器一般由呈三角形排列的三个超声探头组成,设置在采集对象的各个关节上。通过测量声波从发送器到接收器的时间或者相位差,可以计算并确定接收器的位置和方向,从而获取采集对象的肢体在空间中的位置和运动轨迹;
[0073] 电磁式运动捕捉装置一般由发射源、接收传感器和数据处理单元组成。发射源在空间产生按一定时空规律分布的电磁场;接收传感器设置在采集对象的关键位置上,采集对象在电磁场内运动时,接收传感器将接收到的信号通过电缆或无线的方式传送给处理单元,根据这些接收到的信号可以解算出每个传感器的空间位置和方向,从而获取采集对象的肢体在空间中的位置和运动轨迹;
[0074] 光学式运动捕捉装置通常使用多个摄像机环绕采集对象排列,这些摄像机的视野重叠区域就是采集对象的动作范围。为了便于处理,通常要求采集对象穿上单色的服装,在身体的关键部位,如关节、髋部、肘、腕等位置贴上一些特制的标志或发光点,称为"Marker",视觉系统将识别和处理这些标志。系统定标后,摄像机连续拍摄采集对象的动作,并将图像序列保存下来,然后再进行分析和处理,识别其中的标志点,并计算其在每一瞬间的空间位置,进而得到其运动轨迹。
[0075] 惯性导航式运动捕捉装置在采集对象的主要关键点绑定至少一个惯性陀螺仪,通过分析惯性陀螺仪的姿态变化来得到采集对象的姿态和运动轨迹。
[0076] 另外,在无法设置传感装置的情况下,也可以通过直接识别采集对象的特征而确定采集对象的运动轨迹。
[0077] 在捕捉第一远程动作驱动数据的同时,运动捕捉设备还需要采集与第一远程动作驱动数据对应的音频数据。
[0078] 步骤S404,运动捕捉设备将捕捉的第一远程动作驱动数据和采集的音频数据发送给服务器。
[0079] 第一远程动作驱动数据对应的数据帧的数量小于等于预设的第一阈值,比如10帧。优选地,第一远程动作驱动数据对应的数据帧的数量为1,这样能够保证第一远程动作驱动数据传输的实时性。但是,在实时性要求并不是非常高的情况下,第一远程动作驱动数据对应的数据帧的数量也可以为几帧,十几帧或者几十帧。
[0080] 步骤S406,服务器对采集的第一远程动作驱动数据进行同步处理和/或均匀帧率处理。
[0081] 服务器接收并保存第一远程动作驱动数据和音频数据,同时将第一远程动作驱动数据和音频数据发送给驱动渲染装置(相当于实时互动动画的全息投影装置)。在发送第一远程动作驱动数据和音频数据之前,还需要对第一远程动作驱动数据进行同步处理。正常情况下,第一远程动作驱动数据可以按照设定的帧率发送数据,如每秒25帧就是40ms下发一次数据包。
[0082] 另外,同步处理的过程可以采用如下的实现方式:
[0083] 服务器根据设定帧率按照固定的时间间隔下发数据,在下发数据前,缓存前一个数据包和当前数据包之间接收到的数据,根据接收到的第一动作驱动数据的类型进行帧率均匀处理,也就是插值处理。比如,在第一动作驱动数据的数据类型是动作数据的情况下,对动作数据进行四元素球面插值处理;在第一动作驱动数据的数据类型是表情数据的情况下,对表情数据进行线性插值处理。然后,将第一动作驱动数据打上统一的时间戳,音频数据直接将前一个数据包和当前数据包间接收到的数据写入,封装成一个数据包下发,其中,该时间戳是驱动渲染装置同步的依据。
[0084] 步骤S408,驱动渲染装置实时处理第一远程动作驱动数据,生成第一运动驱动数据。
[0085] 驱动渲染装置接收到服务器发送的第一远程动作驱动数据后,对第一远程动作驱动数据进行坐标转换以及旋转次序转换,从世界坐标转换成驱动渲染装置对应的坐标以及其对应的旋转次序上,生成第一运动驱动数据。
[0086] 步骤S410,根据生成的第一运动驱动数据实时驱动并渲染虚拟对象,生成第一动画影像数据。
[0087] 虚拟对象是受控于第一运动驱动数据的动画模型,可以是任何角色,比如灰姑娘、蓝精灵、某位电影明星等,甚至可以是设计出的任何动画形象,比如石头、怪物等。虚拟对象不是明确地在背景中画出的对象,而是在第一运动驱动数据的驱动下不仅能够在屏幕上移动、而且在移动过程中栩栩如生的对象。例如,一个不仅能够水平方向、垂直方向移动、而且还能够移动其肢体、展现不同面部表情的动画模型。
[0088] 第一运动驱动数据包括以下至少之一:表情驱动数据,动作驱动数据,特效驱动数据,其中,表情驱动数据用于驱动并渲染虚拟对象的表情,动作驱动数据用于驱动并渲染虚拟对象的除表情外的运动,比如人的肢体运动,水流的动作等,特效驱动数据用于控制虚拟对象的特效动作触发或者场景中的特效触发。
[0089] 虚拟对象的模型预先存储在驱动渲染装置的存储器中,每一个模型都对应相应的多种属性。
[0090] 用户从多个预先存储的模型中选择一个或多个模型,根据第一运动驱动数据更新所选模型的多种属性,从而驱动并渲染所选模型即虚拟对象,生成并播放第一动画影像数据。渲染的方式如上所述,此处不再赘述。
[0091] 步骤S412,实时互动。
[0092] 检测到用户的互动信息,将该互动信息发送给采集第一远程动作驱动数据的采集现场,其中,该互动信息包括至少以下之一的信息:语音信息,图像信息,动作信息,文字信息,互动指令。
[0093] 接收根据互动信息生成的第三远程动作驱动数据,根据第三远程动作驱动数据驱动并渲染虚拟对象,生成并显示第三动画影像数据。
[0094] 比如,采集主持人(相当于采集对象)的第一远程动作驱动数据和音频数据,并根据第一远程动作驱动数据生成第一运动驱动数据后,用第一运动驱动数据驱动并渲染虚拟主持人(相当于虚拟对象),生成并播放第一动画影像数据,同时还播放音频数据。此时,如果用户想与主持人互动,可以通过移动终端采集用户的互动信息,并将该互动信息发送给主持人,主持人根据观众的互动信息进行节目内容的调整,运动捕捉设备捕捉主持人根据互动信息生成的第三动作驱动数据,并将第三动作驱动数据发送给驱动渲染装置,驱动渲染装置根据第三动作驱动数据驱动并渲染虚拟主持人,生成并播放第三动画影像数据,从而实现主持人和用户的互动。比如,可以通过移动终端点击献花的按钮,此时互动指令指示献花。献花的数量可以累计,并在超过第一阈值时,渲染一个鲜花雨场景的第三动画影像数据。
[0095] 图5是根据本发明第五实施例的虚拟对象的实时互动控制方法的流程图,如图5所示,该流程包括以下步骤S502至S504。
[0096] 本实施例针对的是没有检测到第一远程动作驱动数据的情形。
[0097] 步骤S502,获取用户的互动指令。
[0098] 获取互动指令的方式有很多种,比如动作捕捉、音频采集、文字录入、预设的指令等。
[0099] 在一个实施例中,可以在用户的控制下,采集任何对象(包括用户自身)在多维空间中的运动轨迹数据,其可以包括以下至少之一:表情数据,动作数据,特效数据,控制指令。其中,表情数据是在采集对象是动物或人的情况下其面部各运动单元的运动幅度;动作数据是采集对象的运动轨迹和/或姿态,比如,在采集对象是人或动物的情况下,动作数据可以包括人或动物的肢体运动轨迹和/或姿态,在采集对象是流动的水的情况下,动作数据可以是水波纹的运动轨迹,在采集对象是摇摆的绳索的情况下,动作数据可以是绳索摇摆的运动轨迹;特效数据是与采集对象相关特效的数据,比如,在采集对象是正在表演歌舞的演员的情况下,特效数据可以包括随着人物动作变换的粒子效果或者舞台中释放的烟雾的相关数据;控制指令是摇杆或游戏杆输出的用于控制虚拟对象运动的脉冲数据。
[0100] 分析这些运动轨迹数据,可以生成相应的互动指令。比如,如果检测到的用户的动作是睡觉的动作,那么互动指令指示的可以是睡觉动作;如果采集的是摇手机的动作,那么互动指令指示的可以是跳舞动作;如果检测到摇杆被向左拨动,那么互动指令指示的可以是向左转头的动作。
[0101] 运动捕捉的实现方式可以有很多种,比如机械式、声学式、电磁式、光学式、惯性导航式等。
[0102] 其中,
[0103] 机械式运动捕捉装置依靠机械装置来跟踪和测量采集对象的运动轨迹。比如,在采集对象上的多个关节上安装角度传感器,可以测得关节转动角度的变化情况。当采集对象运动时,根据角度传感器所测得的角度变化,可以获取采集对象的肢体在空间中的位置和运动轨迹;
[0104] 声学式运动捕捉装置由发送器、接收器和处理单元组成。发送器是一个固定的超声波发生器,接收器一般由呈三角形排列的三个超声探头组成,设置在采集对象的各个关节上。通过测量声波从发送器到接收器的时间或者相位差,可以计算并确定接收器的位置和方向,从而获取采集对象的肢体在空间中的位置和运动轨迹;
[0105] 电磁式运动捕捉装置一般由发射源、接收传感器和数据处理单元组成。发射源在空间产生按一定时空规律分布的电磁场;接收传感器设置在采集对象的关键位置上,采集对象在电磁场内运动时,接收传感器将接收到的信号通过电缆或无线的方式传送给处理单元,根据这些接收到的信号可以解算出每个传感器的空间位置和方向,从而获取采集对象的肢体在空间中的位置和运动轨迹;
[0106] 光学式运动捕捉装置通常使用多个摄像机环绕采集对象排列,这些摄像机的视野重叠区域就是采集对象的动作范围。为了便于处理,通常要求采集对象穿上单色的服装,在身体的关键部位,如关节、髋部、肘、腕等位置贴上一些特制的标志或发光点,称为"Marker",视觉系统将识别和处理这些标志。系统定标后,摄像机连续拍摄采集对象的动作,并将图像序列保存下来,然后再进行分析和处理,识别其中的标志点,并计算其在每一瞬间的空间位置,进而得到其运动轨迹。
[0107] 惯性导航式运动捕捉装置在采集对象的主要关键点绑定至少一个惯性陀螺仪,通过分析惯性陀螺仪的位移变化来得到采集对象的运动轨迹。
[0108] 另外,在无法设置传感装置的情况下,也可以通过直接识别采集对象的特征而确定采集对象的运动轨迹。
[0109] 上述采集的运动轨迹相关的数据可以统称为动作参数,将这些动作参数设置到预先定义的数据结构中,便生成互动指令。换句话说,在捕捉到用户表情或用户动作的情况下,可以预先为互动指令定义一个数据结构,该数据结构中可以定义属性不同的数据元素,这些数据元素用于承载所捕捉的运动参数。
[0110] 在另一个实施例中,还可以通过检测音频数据,生成互动指令。比如,在通过语音识别检测到用户说跳舞的情况下,互动指令指示的是跳舞动作;在检测到查询北京天气情况下,互动指令自动上网搜索天气状况,用语音播报出来。比如,还可以通过语音识别跟虚拟角色交流沟通。
[0111] 在又一个实施例中,还可以通过检测用户输入的文字,生成互动指令。比如,检测到用户输入唱歌两个字,则互动指令可以自动搜索歌曲及其自带的歌曲动作文件,播放歌曲和舞蹈动作以及唱歌时的表情动画。当然,还可以通过预设的指令,驱动并渲染虚拟对象;比如触摸虚拟角色的身体某个部位发出特定指令驱动虚拟角色运动。
[0112] 步骤S504,根据用户的互动指令驱动并渲染虚拟对象,生成并播放第二动画影像数据。
[0113] 虚拟对象是受控于互动指令的动画模型,可以是任何角色比如灰姑娘、蓝精灵、某位电影明星等,甚至可以是设计出的任何动画形象,比如石头、怪物等。虚拟对象不是明确地在背景中画出的对象,而是在互动指令的驱动下不仅能够在屏幕上移动、而且在移动过程中栩栩如生的对象。例如,一个不仅能够水平方向、垂直方向移动、而且还能够移动其肢体、展现不同面部表情的动画模型。
[0114] 虚拟对象的模型预先存储在驱动渲染装置的存储器中,每一个模型都对应相应的多种属性。
[0115] 用户从多个预先存储的模型中选择一个或多个模型,根据互动指令更新所选模型的多种属性,从而驱动并渲染所选模型即虚拟对象,生成并播放第二动画影像数据。渲染的方式如上所述,此处不再赘述。
[0116] 图6是根据本发明实施例的实时互动装置的结构示意图,如图6所示,该装置包括检测模块60,第一驱动渲染模块62和第二驱动渲染模块64。下面对该装置进行说明。
[0117] 检测模块60,用于检测是否接收到第一远程动作驱动数据,其中,第一远程动作驱动数据包括以下至少之一:表情数据,动作数据,特效数据,控制指令;
[0118] 第一驱动渲染模块62,用于在接收到第一远程动作驱动数据的情况下,根据第一远程动作驱动数据实时驱动并渲染虚拟对象,生成并播放第一动画影像数据;
[0119] 第二驱动渲染模块64,用于在没有接收到第一远程动作驱动数据的情况下,根据用户的互动指令驱动并渲染虚拟对象,生成并播放第二动画影像数据。
[0120] 图7是根据本发明实施例的实时互动装置的结构示意图,如图7所示,该装置包括检测模块60,第一驱动渲染模块62,第二驱动渲染模块64,采集模块66,接收模块68,共享模块69,其中,第二驱动渲染模块64包括指令检测单元642,控制单元644。下面对该装置进行说明。
[0121] 检测模块60,用于检测是否接收到第一远程动作驱动数据,其中,第一远程动作驱动数据包括以下至少之一:表情数据,动作数据,特效数据,控制指令。
[0122] 第一驱动渲染模块62,用于在接收到第一远程动作驱动数据的情况下,根据第一远程动作驱动数据实时驱动并渲染虚拟对象,生成并播放第一动画影像数据。
[0123] 在第一驱动渲染模块62播放第一动画影像数据的情况下,采集模块66,用于将采集用户的互动信息并发送给采集第一远程动作驱动数据的采集现场,其中,互动信息包括用户的至少以下之一的信息:语音信息,图像信息,动作信息,文字信息,互动指令;接收模块68,用于接收根据互动信息生成的第三远程动作驱动数据;第一驱动渲染模块62根据第三远程动作驱动数据驱动并渲染虚拟对象,生成并显示第三动画影像数据。
[0124] 第二驱动渲染模块64,用于在没有接收到第一远程动作驱动数据的情况下,根据用户的互动指令驱动并渲染虚拟对象,生成并播放第二动画影像数据。
[0125] 第二驱动渲染模块64还包括指令检测单元642和控制单元644。
[0126] 其中,指令检测单元642,用于检测互动指令,其中,互动指令包括至少以下之一:语音指令,表情指令,动作指令,文字指令;
[0127] 控制单元644,用于检测互动指令的指令类型;在指令类型是表情指令的情况下,驱动并渲染虚拟对象模仿该用户的当前表情,或者,根据识别的情绪控制该虚拟对象执行相应的动作,其中,情绪识别是根据用户的表情识别的;在指令类型是语音指令的情况下,控制该虚拟对象与用户进行语音交流,或者,驱动并渲染虚拟对象按照该语音指令执行相应的动作;在指令类型是动作指令的情况下,驱动并渲染虚拟对象模仿该用户的当前动作,或者,驱动并渲染虚拟对象执行与该动作指令相应的动作;在指令类型是文字指令的情况下,驱动并渲染该虚拟对象根据文字指令进行相应的动作。
[0128] 共享模块69,与第二驱动渲染模块64相连,用于在指令类型是语音指令或文字指令的情况下,将第二动画影像数据发送给用户指定的对象;在指令类型是表情指令或动作指令的情况下,将第二动画影像数据或者互动指令发送给所述用户指定的对象,其中,互动指令是预定义数据结构的、包含所述用户的动作参数的数据。
[0129] 本发明解决了相关技术中虚拟对象的实时互动性较差、用户体验不好的问题,进而达到了较好的实时互动性、可玩性强、并改进了当前节目的制作生产流程、提高用户对节目的粘度、具有较高的用户体验度的效果。
[0130] 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们需要分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0131] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。