CN113393561B - 虚拟角色的肢体动作表情包生成方法、装置及存储介质 - Google Patents

虚拟角色的肢体动作表情包生成方法、装置及存储介质 Download PDF

Info

Publication number
CN113393561B
CN113393561B CN202110578668.4A CN202110578668A CN113393561B CN 113393561 B CN113393561 B CN 113393561B CN 202110578668 A CN202110578668 A CN 202110578668A CN 113393561 B CN113393561 B CN 113393561B
Authority
CN
China
Prior art keywords
joint
data
model
virtual character
space
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
CN202110578668.4A
Other languages
English (en)
Other versions
CN113393561A (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.)
Perfect World Beijing Software Technology Development Co Ltd
Original Assignee
Perfect World Beijing Software Technology Development Co Ltd
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 Perfect World Beijing Software Technology Development Co Ltd filed Critical Perfect World Beijing Software Technology Development Co Ltd
Priority to CN202110578668.4A priority Critical patent/CN113393561B/zh
Publication of CN113393561A publication Critical patent/CN113393561A/zh
Application granted granted Critical
Publication of CN113393561B publication Critical patent/CN113393561B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明提供了一种虚拟角色的肢体动作表情包生成方法、装置及存储介质,该方法包括获取人物的肢体骨骼数据;获取预先创建的虚拟角色模型,利用肢体骨骼数据驱动虚拟角色模型的肢体产生动作;基于虚拟角色模型的肢体动作生成虚拟角色的肢体动作表情包。本发明实施例能够利用获取的人物肢体骨骼数据驱动虚拟角色模型做出复杂多样的运动和姿势,既增加了用户与虚拟角色之间的互动,也可以做出更多的虚拟角色个性化的肢体动作表情包。

Description

虚拟角色的肢体动作表情包生成方法、装置及存储介质
技术领域
本发明涉及计算机技术领域,特别是一种虚拟角色的肢体动作表情包生成方法、装置及存储介质。
背景技术
目前,虚拟角色模型在执行动作时,通常可以根据预先配置的程序执行对应的动作,这些方式需要通过程序提前设置动作内容,不能有效地控制虚拟角色模型依据真实用户肢体动作执行个性化的动作,如无法利用真实人物的自身姿势动作控制虚拟角色模型执行相应的动作内容,从而无法更加灵活地控制虚拟角色模型执行复杂多样的运动和姿势,更无法通过控制虚拟角色模型生成个性化的肢体动作表情包,从而无法为玩家提供更好的玩法和用户体验。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的虚拟角色的肢体动作表情包生成方法、装置及存储介质,能够增加用户与虚拟角色之间的互动,也可以做出更多的虚拟角色个性化的肢体动作表情包,为玩家提供更丰富的玩法和良好的用户体验。
根据本发明实施例的一方面,提供了一种虚拟角色的肢体动作表情包生成方法,该方法包括:
获取人物的肢体骨骼数据;
获取预先创建的虚拟角色模型,利用所述肢体骨骼数据驱动所述虚拟角色模型的肢体产生动作;
基于所述虚拟角色模型的肢体动作生成所述虚拟角色的肢体动作表情包。
可选地,获取人物的肢体骨骼数据,包括:
调用增强现实平台接口获取人物的肢体骨骼数据;
其中,所述肢体骨骼数据通过增强现实平台对终端设备采集的人物肢体动作数据转换得到。
可选地,调用的所述肢体骨骼数据包括:
通过所述增强现实平台初始化绑定姿态空间得到的骨骼矩阵数据集合;及
通过所述增强现实平台将终端设备采集的肢体动作数据映射到人体模型空间得到的骨骼矩阵数据集合。
可选地,获取预先创建的虚拟角色模型,利用所述肢体骨骼数据驱动所述虚拟角色模型的肢体产生动作,包括:
获取预先创建的虚拟角色模型;
将所述肢体骨骼数据转换为引擎中关节的绑定姿态空间数据,所述绑定姿态空间数据包含绑定姿态空间位置数据和绑定姿态空间旋转数据;
基于所述绑定姿态空间数据按照预设算法计算虚拟角色模型的各个关节对应的模型空间数据;
利用所述模型空间数据驱动所述虚拟角色模型的肢体产生动作。
可选地,所述模型空间数据包含模型空间位置数据,基于所述绑定姿态空间数据按照预设算法计算虚拟角色模型的各个关节对应的模型空间数据,包括:
从所述虚拟角色模型的骨骼根节点开始,依次遍历虚拟角色模型的所有关节名,并采用公式1:pos=rotp*poslocal+posp计算虚拟角色模型的各个关节对应的模型空间位置数据;
其中,若任一关节为父关节,rotp表示单位四元数,poslocal表示所述任一关节的绑定姿态空间位置数据,posp为(0,0,0);若所述任一关节为子关节,rotp表示所述任一关节的父关节按公式1计算后的模型空间旋转数据,poslocal表示所述任一关节在绑定姿态下,在其父关节空间下的相对位置,posp表示任一关节的父关节按照公式1计算后的模型空间位置数据。
可选地,所述模型空间数据包含模型空间旋转数据,基于所述绑定姿态空间数据按照预设算法计算虚拟角色模型的各个关节对应的模型空间数据,包括:
从所述虚拟角色模型的骨骼根节点开始,依次遍历虚拟角色模型的所有关节名,判断各关节名是否出现于绑定姿态空间数据中;
若所述关节名出现于绑定姿态空间数据中,基于所出现关节名的绑定姿态空间旋转数据计算对应关节的模型空间旋转数据;
若所述关节名未出现于绑定姿态空间数据中,基于未出现关节名对应的父关节名的绑定姿态空间旋转数据计算对应关节的模型空间旋转数据。
可选地,所述绑定姿态空间数据还包含关节的绑定姿态矩阵和关节的当前帧姿态矩阵,基于所出现关节名的绑定姿态空间旋转数据计算对应关节的模型空间旋转数据,包括:
依据所出现关节名对应关节的绑定姿态矩阵的逆矩阵乘以对应关节的当前帧姿态矩阵得到新的当前帧姿态矩阵;
将新的当前帧姿态矩阵中的旋转数据保留并删除位置数据得到旋转矩阵,对所述旋转矩阵按照四元数转换方式计算得到中间旋转数据;
将所述中间旋转数据与所述绑定姿态空间旋转数据相乘得到对应关节的模型空间旋转数据。
可选地,基于未出现关节名的绑定姿态空间旋转数据计算对应关节的模型空间旋转数据,包括:
按照公式2:rot=rotp*rotlocal计算对应关节的模型空间旋转数据,其中,若任一关节为父关节,rotp表示单位四元数,rotlocal表示所述任一关节的绑定姿态空间旋转数据;若所述任一关节为子关节,rotp表示所述任一关节的父关节按公式2计算后的模型空间旋转数据,rotlocal表示所述任一关节在绑定姿态下,在其父关节空间下的相对旋转。
可选地,基于所述绑定姿态空间数据按照预设算法计算虚拟角色模型的各个关节对应的模型空间数据之后,还包括:
获取计算模型空间数据后的关节对应的上一帧模型空间数据;
将同一关节的当前帧模型空间数据和所述上一帧模型空间数据进行线性插值计算。
可选地,利用所述模型空间数据驱动所述虚拟角色模型的肢体产生动作,包括:
将所述模型空间数据转换为所述虚拟角色模型的对应关节空间中的骨骼动画数据;
利用转换后的骨骼动画数据驱动所述虚拟角色模型的肢体产生动作。
可选地,基于所述虚拟角色模型的肢体动作生成所述虚拟角色的肢体动作表情包,包括:
从所述虚拟角色模型的肢体动作中截取连续的部分肢体动作内容或至少一帧肢体动作图片;
依据截取的部分肢体动作内容或至少一帧肢体动作图片生成所述虚拟角色的肢体动作表情包。
根据本发明实施例的另一方面,还提供了一种虚拟角色的肢体动作表情包生成装置,包括:
获取模块,适于获取人物的肢体骨骼数据;
驱动模块,适于获取预先创建的虚拟角色模型,利用所述肢体骨骼数据驱动所述虚拟角色模型的肢体产生动作;
生成模块,适于基于所述虚拟角色模型的肢体动作生成所述虚拟角色的肢体动作表情包。
根据本发明实施例的另一方面,还提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行上文任意实施例的虚拟角色的肢体动作表情包生成方法。
根据本发明实施例的另一方面,还提供了一种计算设备,包括:处理器;存储有计算机程序代码的存储器;当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行上文任意实施例的虚拟角色的肢体动作表情包生成方法。
本发明实施例中,在获取人物的肢体骨骼数据后,可以利用肢体骨骼数据驱动虚拟角色模型的肢体产生动作,并生成虚拟角色的肢体动作表情包。本发明实施例能够利用肢体骨骼数据驱动虚拟角色模型做出复杂多样的运动和姿势,既增加了用户与虚拟角色之间的互动,也可以做出更多的虚拟角色个性化的肢体动作表情包,为玩家提供了更丰富的玩法和良好的用户体验。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了根据本发明一实施例的虚拟角色的肢体动作表情包生成方法的流程示意图;
图2示出了根据本发明一实施例的驱动所述虚拟角色模型的肢体产生动作的过程示意图;
图3示出了根据本发明一实施例的虚拟角色的肢体动作表情包生成装置的结构示意图;
图4示出了根据本发明另一实施例的虚拟角色的肢体动作表情包生成装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
为解决上述技术问题,本发明实施例提供了一种虚拟角色的肢体动作表情包生成方法。图1示出了根据本发明一实施例的虚拟角色的肢体动作表情包生成方法的流程示意图。参见图1,该方法包括步骤S102至步骤S106。
步骤S102,获取人物的肢体骨骼数据。
步骤S104,获取预先创建的虚拟角色模型,利用肢体骨骼数据驱动虚拟角色模型的肢体产生动作。
在本发明实施例中,获取预先创建的虚拟角色模型之前,还可由用户选择喜欢的虚拟角色,用户能够与自己选择的虚拟角色模型进行互动,并能够根据用户的喜好制作不同虚拟角色的肢体动作表情包。该实施例中预先创建的虚拟角色模型是引擎中使用的自定义模型,预先由美术设计创建产出。
步骤S106,基于虚拟角色模型的肢体动作生成虚拟角色的肢体动作表情包。
本发明实施例能够利用获取的人物肢体骨骼数据驱动虚拟角色模型做出复杂多样的运动和姿势,既增加了用户与虚拟角色之间的互动和乐趣,也可以做出更多的虚拟角色个性化的肢体动作表情包,为玩家提供了更丰富的玩法和良好的用户体验。
参见上文步骤S102,在本发明实施例中,获取人物的肢体骨骼数据的方式可以是通过调用增强现实平台接口获取人物的肢体骨骼数据,其中,肢体骨骼数据可以通过增强现实平台对终端设备采集的人物肢体动作数据转换得到。终端设备采集人体的肢体动作数据后,将肢体动作数据传输至增强现实平台,由增强现实平台将接收到的肢体动作数据转换为肢体骨骼数据。进而,移动设备的游戏客户端的引擎可通过增强现实平台接口(Application Programming Interface,API)调用肢体骨骼数据。
本发明实施例的增强现实平台可以采用ARKit平台,开发人员可以使用ARKit平台创建增强现实应用程序。增强现实平台通过实时抓取终端设备所采集人体的肢体动作,从而可以将人体的肢体动作和虚拟角色结合在一起,动作捕获可以是用户或技术人员适时使用移动和姿势作为AR(Augmented Reality,增强现实)体验的输入方式,使用终端设备的摄像头可实时捕捉人体的肢体动作,身***置和运动可理解为一系列关节和骨骼动作,这些运动和姿势作为AR体验的输入,肢体动作数据转换得到的肢体骨骼数据成为AR的中心素材。
该实施例可以配置增强现实平台中提供的ARBodyTrackingConfiguration配置项目,并通过终端设备的摄像头捕获人体的肢体动作数据。该实施例中的终端设备可以是移动终端,也可以是PC终端,本发明实施例对此不作具体限定。肢体动作可以是一个简单的肢体动作,也可以是一组连贯的肢体动作,此处不作具体的限定。并且,做出肢体动作的人员包括但不限于游戏开发人员、测试人员和用户等。
在本发明实施例中,调用的肢体骨骼数据可以包括通过增强现实平台初始化绑定姿态空间(ART-Pose空间)得到的各个骨骼矩阵数据集合Data-Skeleton T,还可以包括增强现实平台将终端设备采集的肢体动作数据映射到人体模型空间得到的各个骨骼矩阵数据集合Data-Skeleton L。另外,本发明实施例的引擎可以采用EAR引擎,增强现实平台的接口能够与EAR引擎的EAR1.5引擎接口相连,从增强现实平台调用的骨骼矩阵数据集合Data-Skeleton L和Data-Skeleton T,可通过EAR1.5引擎接口传入引擎中。
在本发明实施例中,绑定姿态指的是引擎中骨骼的初始姿态,是3D建模的通用术语。引擎和增强现实平台各有一套人体骨骼描述,且关节定义有所不同,一个人体骨骼有多个关节。引擎的人体骨骼描述由美术制作人员决定,增强现实平台则是有一套固定的骨骼描述。并且,引擎和增强现实平台的数据空间不同,其中,引擎的每个关节都有位置数据和旋转数据,位置数据和旋转数据均在模型空间。增强现实平台的每个关节都有位置数据和旋转数据,位置数据和旋转数据在增强现实平台的自定义空间,并且还有一帧绑定姿态“T-Pose”的位置数据和旋转数据,也在增强现实平台的自定义空间。
由于引擎和增强现实平台定义的数据空间不同,并且增强现实平台也未提供其自定义空间与模型空间的转换,因此在制作模型时需要采用“T-Pose”作为绑定姿态,该绑定姿态与增强现实平台中的“T-Pose”保持一致,后续算法依赖于这个前提条件。
参见上文步骤S104,在本发明一实施例中,获取预先创建的虚拟角色模型,利用肢体骨骼数据驱动虚拟角色模型的肢体产生动作的具体过程可以包含步骤S1041至步骤S1044,如图2所示。
步骤S1041,获取预先创建的虚拟角色模型。
步骤S1042,将肢体骨骼数据转换为引擎中关节的绑定姿态空间数据,绑定姿态空间数据包含绑定姿态空间位置数据和绑定姿态空间旋转数据。
在该步骤中,肢体骨骼数据为上文实施例的骨骼矩阵数据集合Data-Skeleton T和骨骼矩阵数据集合Data-Skeleton L。本发明实施例能够将骨骼矩阵数据集合Data-Skeleton T转换为绑定姿态空间数据MT,并将骨骼矩阵数据集合Data-Skeleton L转换为绑定姿态空间数据Mm。其中,绑定姿态空间数据MT可以表示某个关节的“T-Pose”姿态矩阵(4*4),绑定姿态空间数据Mm可以表示某个关节的当前帧的姿态矩阵。MT和Mm都可以表示某个关节的当前帧的姿态矩阵,MT和Mm在增强现实平台的自定义空间下,分别包含了旋转数据和位置数据。
步骤S1043,基于绑定姿态空间数据按照预设算法计算虚拟角色模型的各个关节对应的模型空间数据。
在该步骤中,模型空间数据可以包含模型空间位置数据和模型空间旋转数据。计算虚拟角色模型的各个关节对应的模型空间数据的过程中,可以分别计算各个关节对应的模型空间位置数据和模型空间旋转数据,具体计算过程可以参见后文介绍。
步骤S1044,利用模型空间数据驱动虚拟角色模型的肢体产生动作。
本发明实施例的步骤S1043,在计算虚拟角色模型的各个关节对应的模型空间位置数据时,可以从虚拟角色模型的骨骼根节点开始,依次遍历虚拟角色模型的所有关节名,并采用公式1:pos=rotp*poslocal+posp计算虚拟角色模型的各个关节对应的模型空间位置数据pos。
其中,若任一关节为父关节,rotp表示单位四元数。poslocal表示任一关节的绑定姿态空间位置数据posm(即关节在绑定姿态下,在模型空间中的位置),posp为(0,0,0)。若任一关节为子关节,rotp表示任一关节的父关节按公式1计算后的模型空间旋转数据,poslocal表示任一关节在绑定姿态下,在其父关节空间下的相对位置,posp表示任一关节的父关节按照公式1计算后的模型空间位置数据。
在该实施例中,单位四元数为(1,0,0,0),可以分别对应(w,x,y,z),表示为没有旋转(或者理解为旋转为0)的情况下的旋转状态,一般作为默认的起始旋转。
在本发明一实施例中,在计算当前任一关节的模型空间位置数据时,poslocal为任一关节相对于该关节的父节点的位置偏移量。假设,关节的位置偏移记为posOffset,当前关节的父关节记为parentBone。当前关节记为bone。如果有父关节(即root节点),则posOffset=parentBone旋转矩阵的逆*(bone位移矩阵-parentBone位移矩阵),如果没有父关节(即root节点),则posOffset=bone位移矩阵。
通过上文介绍的计算虚拟角色模型的各个关节对应的模型空间位置数据pos的过程可知,本发明实施例计算得到的模型空间位置数据pos不仅是对应关节的最终计算结果,还需要作为参数传入该关节的子关节,并作为子关节的posp进行计算。即递归任一关节对应的各子关节,传入任一关节对应的模型空间位置数据至模型空间中,从而可以将任一关节对应的模型空间位置数据作为对应子关节的父关节模型空间位置数据。
继续参见步骤S1043,在计算虚拟角色模型的各个关节对应的模型空间旋转数据时,从虚拟角色模型的骨骼根节点开始,依次遍历虚拟角色模型的所有关节名,判断各关节名是否出现于绑定姿态空间数据中,基于判断结果按照不同方式计算对应关节的模型空间旋转数据。
在本发明一可选实施例中,若关节名未出现于绑定姿态空间数据中,基于未出现关节名对应的父关节名的绑定姿态空间旋转数据计算对应关节的模型空间旋转数据。
在该步骤中,若关节名未出现于绑定姿态空间数据中,则表示该关节名对应的关节没有来自增强现实平台的AR数据,这种情况下可以采用公式2:rot=rotp*rotlocal计算对应关节的模型空间旋转数据rot。
其中,若任一关节为父关节,rotp表示单位四元数,rotlocal表示任一关节的绑定姿态空间旋转数据rotm(即关节在绑定姿态下,在模型空间中的旋转)。若任一关节为子关节,rotp表示任一关节的父关节按公式2计算后的模型空间旋转数据,rotlocal表示任一关节在绑定姿态下,在其父关节空间下的相对旋转。
在本发明另一可选实施例中,若关节名出现于绑定姿态空间数据中,基于所出现关节名的绑定姿态空间旋转数据计算对应关节的模型空间旋转数据。
在该步骤中,若关节名出现于绑定姿态空间数据中,则表示该关节名对应的关节有来自增强现实平台的AR数据。
这种情况下在计算对应关节的模型空间旋转数据的过程中,首先依据所出现关节名对应关节的绑定姿态矩阵MT的逆矩阵乘以对应关节的当前帧姿态矩阵Mm得到新的当前帧姿态矩阵M,即然后将新的当前帧姿态矩阵M中的旋转数据保留并删除位置数据得到旋转矩阵,对旋转矩阵按照四元数转换方式计算得到中间旋转数据rotar。最后,将中间旋转数据rotar与绑定姿态空间旋转数据rotm相乘得到对应关节的模型空间旋转数据rot,即rot=rotar*rotm
在本发明一实施例中,在计算当前任一关节的模型空间旋转数据时,rotlocal即任一关节相对于该关节的父节点的旋转偏移量。假设,关节的旋转偏移记为rotOffset,当前关节的父关节记为parentBone,当前关节记为bone。如果有父关节(即root节点),则rotOffset=parentBone旋转矩阵的逆*bone旋转矩阵,如果没有父关节(即root节点),则rotOffset=bone旋转矩阵。
通过计算虚拟角色模型的各个关节对应的模型空间旋转数据rot的过程可知,本发明实施例计算得到的模型空间旋转数据rot不仅是对应关节的最终计算结果,还需要作为参数传入该关节的子关节,并对应作为子关节的rotp进行计算。即递归任一关节对应的各子关节,传入任一关节对应的模型空间旋转数据至模型空间中,从而可以将任一关节对应的模型空间旋转数据作为对应子关节的父关节模型空间旋转数据。
本发明实施例可通过获取增强现实平台的人体Scene(场景)空间root节点(根节点)的矩阵数据(记为Data-Skeleton S),以利用Data-Skeleton S来调整虚拟角色模型的Transform(改变形态),即root节点用于调节虚拟角色模型的整***置和旋转,其他子节点用来控制虚拟角色模型的每个关节的位置和旋转。
本发明实施例采用先序遍历的方式遍历虚拟角色模型的骨骼中的所有关节,从而可以有效地保证根节点的模型空间位置数据pos和模型空间旋转数据rot先于子节点被计算。
由于增强现实平台所采集的AR数据存在一定程度的抖动,为保证得到更加平滑的数据结果,在本发明一实施例中,还可以对关节的当前帧的模型空间数据和上一帧该关节的模型空间数据做插值。因此,在执行步骤S1043基于绑定姿态空间数据按照预设算法计算虚拟角色模型的各个关节对应的模型空间数据之后,首先,获取计算模型空间数据后的关节对应的上一帧模型空间数据。然后,将同一关节的当前帧模型空间数据和上一帧模型空间数据进行线性插值计算。模型空间数据包含模型空间位置数据pos和模型空间旋转数据rot,本发明实施例分别对同一关节的模型空间位置数据的当前帧数据和上一帧数据进行线性插值计算,并对同一关节的模型空间旋转数据的当前帧数据和上一帧数据进行线性插值计算,从而可以有效防止模型空间数据出现抖动,以得到更加平滑的模型空间数据。
在本发明一实施例中,在执行步骤S1044,利用模型空间数据驱动虚拟角色模型的肢体产生动作时,还可以将模型空间数据转换为虚拟角色模型的对应关节空间(bone空间)下,得到骨骼动画数据(animation数据),然后利用转换后的骨骼动画数据驱动虚拟角色模型的肢体产生动作。
参见上文步骤S106,在本发明一实施例中,基于虚拟角色模型的肢体动作生成的虚拟角色的肢体动作表情包可以是动态表情包,也可以是静态表情包。例如,在生成虚拟角色的动态表情包时,可以从虚拟角色模型的肢体动作中截取连续的部分肢体动作内容,然后依据截取的部分肢体动作内容生成虚拟角色的动态的肢体动作表情包。当然,也可以根据肢体骨骼数据驱动虚拟角色模型产生的完整的肢体动作生成动态的肢体动作表情包。
假设终端设备采集的用户的肢体动作为连贯的抬起双手并鼓掌的动作,增强现实平台对终端设备采集的该肢体动作转换为肢体骨骼数据后,采用本发明实施例方案利用获取的肢体骨骼数据生成虚拟角色的肢体动作表情包可以是截取的鼓掌动作部分,也可以是完整的抬起双手并鼓掌的动作。
再例如,在生成虚拟角色的静态表情包时,可以从虚拟角色模型的肢体动作中截取至少一帧肢体动作图片,然后依据截取的至少一帧肢体动作图片生成虚拟角色的静态的肢体动作表情包。
在本发明实施例中,用户还可以将生成的肢体动作表情包通过社交软件分享给好友,从而可以与好友共享拟角色的肢体动作表情包,进而增加好友之间的互动。
本发明一实施例中,在游戏场景中用户还可以邀请好友一起参与表情包的生成过程。
本发明实时例可以针对不同的游戏场景,结合各游戏场景中的内容(如人物角色、植物、建筑等实物)设置不同站位模板,各站位模板对应设置有动作关键词,各动作关键词对应不同人物站位,因此,可以根据用户和好友所选动作关键词为用户和好友的虚拟角色模型安排位置。
例如,一个游戏场景中包含“樱花树”,针对该游戏场景设置的一个站位模板为“樱花树”左右两侧各一个人物位置,即2人的站位模板,该站位模板的动作关键词包括单腿动作、半蹲动作,且单腿动作对应“樱花树”左侧位置,半蹲动作对应“樱花树”右侧位置。另一个站位模板为“樱花树”下一个人物位置,“樱花树”左右两侧各一个人物位置,即3人的站位模板,该站位模板的动作关键词包括单腿动作、半蹲动作、跳起动作,且单腿动作对应“樱花树”左侧位置,跳起动作对应“樱花树”左侧位置,半蹲动作对应“樱花树”下的位置。
针对一个游戏场景的站位模板可以包含多个,用户可以根据需要邀请的好友数量选择合适的站位模板。例如,用户需要邀请两个好友一起参与表情包的生成,则可以选择2人的站位模板,用户需要邀请三个好友一起参与表情包的生成,则可以选择3人的站位模板。其中,2人的站位模板、3人的站位模板也可以分别包含多个。
用户在游戏场景中选择好目标站位模板后,可直接向好友发送请求参与生成表情包的消息,好友反馈同意的消息后,被邀请好友的虚拟角色模型可进入用户虚拟角色模型所在的游戏场景,好友可以自主从站位模板选择动作关键词,好友选择动作关键词后,好友的虚拟角色模型便可以直接出现在与相应动作关键词对应的位置,用户和好友分别做出与所选关键词对应的肢体动作后,可以分别控制各自的虚拟角色模型产生肢体动作,以生成用户和好友共同的肢体动作表情包。
基于同一发明构思,本发明实施例还提供了一种虚拟角色的肢体动作表情包生成装置。图3示出了根据本发明一实施例的虚拟角色的肢体动作表情包生成装置的结构示意图。参见图3,虚拟角色的肢体动作表情包生成装置包括获取模块310、驱动模块320和生成模块330
获取模块310,适于获取人物的肢体骨骼数据。
驱动模块320,适于获取预先创建的虚拟角色模型,利用肢体骨骼数据驱动虚拟角色模型的肢体产生动作。
生成模块330,适于基于虚拟角色模型的肢体动作生成虚拟角色的肢体动作表情包。
在本发明一实施例中,获取模块310,适于调用增强现实平台接口获取人物的肢体骨骼数据;其中,所述肢体骨骼数据通过增强现实平台对终端设备采集的人物肢体动作数据转换得到。
在本发明一实施例中,调用的肢体骨骼数据包括通过增强现实平台初始化绑定姿态空间得到的骨骼矩阵数据集合;及通过增强现实平台将终端设备采集的肢体动作数据映射到人体模型空间得到的骨骼矩阵数据集合。
在本发明一实施例中,驱动模块320还适于,获取预先创建的虚拟角色模型;将肢体骨骼数据转换为引擎中关节的绑定姿态空间数据,绑定姿态空间数据包含绑定姿态空间位置数据和绑定姿态空间旋转数据;基于绑定姿态空间数据按照预设算法计算虚拟角色模型的各个关节对应的模型空间数据;利用模型空间数据驱动虚拟角色模型的肢体产生动作。
在本发明一实施例中,模型空间数据包含模型空间位置数据,驱动模块320还适于,从虚拟角色模型的骨骼根节点开始,依次遍历虚拟角色模型的所有关节名,并采用公式1:pos=rotp*poslocal+posp计算虚拟角色模型的各个关节对应的模型空间位置数据。其中,若任一关节为父关节,rotp表示单位四元数,poslocal表示任一关节的绑定姿态空间位置数据,posp为(0,0,0);若任一关节为子关节,rotp表示任一关节的父关节按公式1计算后的模型空间旋转数据,poslocal表示任一关节在绑定姿态下,在其父关节空间下的相对位置,posp表示任一关节的父关节按照公式1计算后的模型空间位置数据。
在本发明一实施例中,模型空间数据包含模型空间旋转数据,驱动模块320还适于,从虚拟角色模型的骨骼根节点开始,依次遍历虚拟角色模型的所有关节名,判断各关节名是否出现于绑定姿态空间数据中;若关节名出现于绑定姿态空间数据中,基于所出现关节名的绑定姿态空间旋转数据计算对应关节的模型空间旋转数据;若关节名未出现于绑定姿态空间数据中,基于未出现关节名对应的父关节名的绑定姿态空间旋转数据计算对应关节的模型空间旋转数据。
在本发明一实施例中,绑定姿态空间数据还包含关节的绑定姿态矩阵和关节的当前帧姿态矩阵,驱动模块320还适于,依据所出现关节名对应关节的绑定姿态矩阵的逆矩阵乘以对应关节的当前帧姿态矩阵得到新的当前帧姿态矩阵;将新的当前帧姿态矩阵中的旋转数据保留并删除位置数据得到旋转矩阵,对旋转矩阵按照四元数转换方式计算得到中间旋转数据;将中间旋转数据与绑定姿态空间旋转数据相乘得到对应关节的模型空间旋转数据。
在本发明一实施例中,驱动模块320还适于,按照公式2:rot=rotp*rotlocal计算对应关节的模型空间旋转数据,其中,若任一关节为父关节,rotp表示单位四元数,rotlocal表示任一关节的绑定姿态空间旋转数据;若任一关节为子关节,rotp表示任一关节的父关节按公式2计算后的模型空间旋转数据,rotlocal表示任一关节在绑定姿态下,在其父关节空间下的相对旋转。
参见图4,在本发明一实施例中,图3所示虚拟角色的肢体动作表情包生成装置还包括获取模块340和计算模块350。
获取模块340,适于获取计算模型空间数据后的关节对应的上一帧模型空间数据。
计算模块350,适于将同一关节的当前帧模型空间数据和上一帧模型空间数据进行线性插值计算。
在本发明一实施例中,驱动模块320还适于,将模型空间数据转换为虚拟角色模型的对应关节空间中的骨骼动画数据;利用转换后的骨骼动画数据驱动虚拟角色模型的肢体产生动作。
在本发明一实施例中,生成模块330还适于,从虚拟角色模型的肢体动作中截取连续的部分肢体动作内容或至少一帧肢体动作图片;依据截取的部分肢体动作内容或至少一帧肢体动作图片生成虚拟角色的肢体动作表情包。
基于同一发明构思,本发明实施例还提供了一种计算机存储介质,计算机存储介质存储有计算机程序代码,当计算机程序代码在计算设备上运行时,导致计算设备执行上文任意实施例的虚拟角色的肢体动作表情包生成方法。
基于同一发明构思,本发明实施例还提供了一种计算设备,包括:处理器;存储有计算机程序代码的存储器;当计算机程序代码被处理器运行时,导致计算设备执行上文任意实施例的虚拟角色的肢体动作表情包生成方法。
所属领域的技术人员可以清楚地了解到,上述描述的***、装置、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,为简洁起见,在此不另赘述。
另外,在本发明各个实施例中的各功能单元可以物理上相互独立,也可以两个或两个以上功能单元集成在一起,还可以全部功能单元都集成在一个处理单元中。上述集成的功能单元既可以采用硬件的形式实现,也可以采用软件或者固件的形式实现。
本领域普通技术人员可以理解:集成的功能单元如果以软件的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,其包括若干指令,用以使得一台计算设备(例如个人计算机,服务器,或者网络设备等)在运行指令时执行本发明各实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM)、随机存取存储器(RAM),磁碟或者光盘等各种可以存储程序代码的介质。
或者,实现前述方法实施例的全部或部分步骤可以通过程序指令相关的硬件(诸如个人计算机,服务器,或者网络设备等的计算设备)来完成,程序指令可以存储于一计算机可读取存储介质中,当程序指令被计算设备的处理器执行时,计算设备执行本发明各实施例方法的全部或部分步骤。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:在本发明的精神和原则之内,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案脱离本发明的保护范围。

Claims (12)

1.一种虚拟角色的肢体动作表情包生成方法,其特征在于,包括:
获取人物的肢体骨骼数据;
获取预先创建的虚拟角色模型,利用所述肢体骨骼数据驱动所述虚拟角色模型的肢体产生动作,包括:获取预先创建的虚拟角色模型;将所述肢体骨骼数据转换为引擎中关节的绑定姿态空间数据,所述绑定姿态空间数据包含绑定姿态空间位置数据和绑定姿态空间旋转数据;基于所述绑定姿态空间数据按照预设算法计算虚拟角色模型的各个关节对应的模型空间数据;利用所述模型空间数据驱动所述虚拟角色模型的肢体产生动作;
基于所述虚拟角色模型的肢体动作生成所述虚拟角色的肢体动作表情包;
其中,所述模型空间数据包含模型空间位置数据,基于所述绑定姿态空间数据按照预设算法计算虚拟角色模型的各个关节对应的模型空间数据,包括:
从所述虚拟角色模型的骨骼根节点开始,依次遍历虚拟角色模型的所有关节名,并采用公式1:pos=rotp*poslocal+posp计算虚拟角色模型的各个关节对应的模型空间位置数据;
其中,若任一关节为父关节,rotp表示单位四元数,poslocal表示所述任一关节的绑定姿态空间位置数据,posp为(0,0,0);若所述任一关节为子关节,rotp表示所述任一关节的父关节按公式1计算后的模型空间旋转数据,poslocal表示所述任一关节在绑定姿态下,在其父关节空间下的相对位置,posp表示任一关节的父关节按照公式1计算后的模型空间位置数据。
2.根据权利要求1所述的方法,其特征在于,获取人物的肢体骨骼数据,包括:
调用增强现实平台接口获取人物的肢体骨骼数据;
其中,所述肢体骨骼数据通过增强现实平台对终端设备采集的人物肢体动作数据转换得到。
3.根据权利要求2所述的方法,其特征在于,调用的所述肢体骨骼数据包括:
通过所述增强现实平台初始化绑定姿态空间得到的骨骼矩阵数据集合;及
通过所述增强现实平台将终端设备采集的肢体动作数据映射到人体模型空间得到的骨骼矩阵数据集合。
4.根据权利要求1所述的方法,其特征在于,所述模型空间数据包含模型空间旋转数据,基于所述绑定姿态空间数据按照预设算法计算虚拟角色模型的各个关节对应的模型空间数据,包括:
从所述虚拟角色模型的骨骼根节点开始,依次遍历虚拟角色模型的所有关节名,判断各关节名是否出现于绑定姿态空间数据中;
若所述关节名出现于绑定姿态空间数据中,基于所出现关节名的绑定姿态空间旋转数据计算对应关节的模型空间旋转数据;
若所述关节名未出现于绑定姿态空间数据中,基于未出现关节名对应的父关节名的绑定姿态空间旋转数据计算对应关节的模型空间旋转数据。
5.根据权利要求4所述的方法,其特征在于,所述绑定姿态空间数据还包含关节的绑定姿态矩阵和关节的当前帧姿态矩阵,基于所出现关节名的绑定姿态空间旋转数据计算对应关节的模型空间旋转数据,包括:
依据所出现关节名对应关节的绑定姿态矩阵的逆矩阵乘以对应关节的当前帧姿态矩阵得到新的当前帧姿态矩阵;
将新的当前帧姿态矩阵中的旋转数据保留并删除位置数据得到旋转矩阵,对所述旋转矩阵按照四元数转换方式计算得到中间旋转数据;
将所述中间旋转数据与所述绑定姿态空间旋转数据相乘得到对应关节的模型空间旋转数据。
6.根据权利要求4所述的方法,其特征在于,基于未出现关节名的绑定姿态空间旋转数据计算对应关节的模型空间旋转数据,包括:
按照公式2:rot=rotp*rotlocal计算对应关节的模型空间旋转数据;其中,若任一关节为父关节,rotp表示单位四元数,rotlocal表示所述任一关节的绑定姿态空间旋转数据;若所述任一关节为子关节,rotp表示所述任一关节的父关节按公式2计算后的模型空间旋转数据,rotlocal表示所述任一关节在绑定姿态下,在其父关节空间下的相对旋转。
7.根据权利要求1所述的方法,其特征在于,基于所述绑定姿态空间数据按照预设算法计算虚拟角色模型的各个关节对应的模型空间数据之后,还包括:
获取计算所述模型空间数据后的关节对应的上一帧模型空间数据;
将同一关节的当前帧模型空间数据和所述上一帧模型空间数据进行线性插值计算。
8.根据权利要求1所述的方法,其特征在于,利用所述模型空间数据驱动所述虚拟角色模型的肢体产生动作,包括:
将所述模型空间数据转换为所述虚拟角色模型对应关节空间中的骨骼动画数据;
利用转换后的骨骼动画数据驱动所述虚拟角色模型的肢体产生动作。
9.根据权利要求1-3中任一项所述的方法,其特征在于,基于所述虚拟角色模型的肢体动作生成所述虚拟角色的肢体动作表情包,包括:
从所述虚拟角色模型的肢体动作中截取连续的部分肢体动作内容或至少一帧肢体动作图片;
依据截取的部分肢体动作内容或至少一帧肢体动作图片生成所述虚拟角色的肢体动作表情包。
10.一种虚拟角色的肢体动作表情包生成装置,其特征在于,包括:
获取模块,适于获取人物的肢体骨骼数据;
驱动模块,适于获取预先创建的虚拟角色模型,利用所述肢体骨骼数据驱动所述虚拟角色模型的肢体产生动作,包括:获取预先创建的虚拟角色模型;将所述肢体骨骼数据转换为引擎中关节的绑定姿态空间数据,所述绑定姿态空间数据包含绑定姿态空间位置数据和绑定姿态空间旋转数据;基于所述绑定姿态空间数据按照预设算法计算虚拟角色模型的各个关节对应的模型空间数据;利用所述模型空间数据驱动所述虚拟角色模型的肢体产生动作,所述模型空间数据包含模型空间位置数据;
生成模块,适于基于所述虚拟角色模型的肢体动作生成所述虚拟角色的肢体动作表情包;
所述驱动模块,适于从所述虚拟角色模型的骨骼根节点开始,依次遍历虚拟角色模型的所有关节名,并采用公式1:pos=rotp*poslocal+posp计算虚拟角色模型的各个关节对应的模型空间位置数据;
其中,若任一关节为父关节,rotp表示单位四元数,poslocal表示所述任一关节的绑定姿态空间位置数据,posp为(0,0,0);若所述任一关节为子关节,rotp表示所述任一关节的父关节按公式1计算后的模型空间旋转数据,poslocal表示所述任一关节在绑定姿态下,在其父关节空间下的相对位置,posp表示任一关节的父关节按照公式1计算后的模型空间位置数据。
11.一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行权利要求1-9中任一项所述的虚拟角色的肢体动作表情包生成方法。
12.一种计算设备,包括:处理器;存储有计算机程序代码的存储器;当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行权利要求1-9中任一项所述的虚拟角色的肢体动作表情包生成方法。
CN202110578668.4A 2021-05-26 2021-05-26 虚拟角色的肢体动作表情包生成方法、装置及存储介质 Active CN113393561B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110578668.4A CN113393561B (zh) 2021-05-26 2021-05-26 虚拟角色的肢体动作表情包生成方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110578668.4A CN113393561B (zh) 2021-05-26 2021-05-26 虚拟角色的肢体动作表情包生成方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN113393561A CN113393561A (zh) 2021-09-14
CN113393561B true CN113393561B (zh) 2024-06-21

Family

ID=77619279

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110578668.4A Active CN113393561B (zh) 2021-05-26 2021-05-26 虚拟角色的肢体动作表情包生成方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN113393561B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107274466A (zh) * 2017-05-31 2017-10-20 珠海金山网络游戏科技有限公司 一种实时全身动作捕捉的方法、装置和***
CN109671141A (zh) * 2018-11-21 2019-04-23 深圳市腾讯信息技术有限公司 图像的渲染方法和装置、存储介质、电子装置
CN110472497A (zh) * 2019-07-08 2019-11-19 西安工程大学 一种融合旋转量的动作特征表示方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109000633A (zh) * 2017-06-06 2018-12-14 大连理工大学 基于异构数据融合的人体姿态动作捕捉算法设计
CN115631305A (zh) * 2018-12-29 2023-01-20 深圳市瑞立视多媒体科技有限公司 一种虚拟人物的骨骼模型的驱动方法、插件及终端设备
RU2019125602A (ru) * 2019-08-13 2021-02-15 Общество С Ограниченной Ответственностью "Тексел" Комплексная система и способ для дистанционного выбора одежды
CN112348933B (zh) * 2020-11-18 2023-10-31 北京达佳互联信息技术有限公司 动画生成方法、装置、电子设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107274466A (zh) * 2017-05-31 2017-10-20 珠海金山网络游戏科技有限公司 一种实时全身动作捕捉的方法、装置和***
CN109671141A (zh) * 2018-11-21 2019-04-23 深圳市腾讯信息技术有限公司 图像的渲染方法和装置、存储介质、电子装置
CN110472497A (zh) * 2019-07-08 2019-11-19 西安工程大学 一种融合旋转量的动作特征表示方法

Also Published As

Publication number Publication date
CN113393561A (zh) 2021-09-14

Similar Documents

Publication Publication Date Title
CN109003301B (zh) 一种基于OpenPose和Kinect的人体姿态估计方法及康复训练***
Chen et al. KinÊtre: animating the world with the human body
CN106780681B (zh) 一种角色动作生成方法和装置
CN109671141B (zh) 图像的渲染方法和装置、存储介质、电子装置
EP3818530A1 (en) Methods and systems for interpolation of disparate inputs
CN107533356A (zh) 头像控制***
JP2007527556A (ja) オブジェクトのための行動トランスレータ
CN108961367A (zh) 三维虚拟偶像直播中角色形象变形的方法、***及装置
CN110178158A (zh) 信息处理装置、信息处理方法和程序
CN110163938B (zh) 动画的控制方法、装置、存储介质和电子装置
WO2023088041A1 (zh) 虚拟角色的行走动画生成方法、装置、设备及存储介质
CN111530088B (zh) 一种生成游戏角色的实时表情图片的方法和装置
CN113705520A (zh) 动作捕捉方法、装置及服务器
WO2023216646A1 (zh) 三维虚拟模型的驱动处理方法、装置、设备和存储介质
KR20230148239A (ko) 신경망을 사용하는 비디오로부터의 로버스트 얼굴 애니메이션
WO2019144346A1 (zh) 虚拟场景中的对象处理方法、设备及存储介质
KR101996973B1 (ko) 비디오 생성 시스템 및 방법
CN114758108A (zh) 虚拟对象驱动方法、装置、存储介质及计算机设备
CN113393561B (zh) 虚拟角色的肢体动作表情包生成方法、装置及存储介质
KR20240055025A (ko) 실용 3d 에셋을 위한 추론된 골격 구조
Lin et al. PuppetTalk: Conversation between glove puppetry and internet of things
CN115526967A (zh) 虚拟模型的动画生成方法、装置、计算机设备及存储介质
Lin et al. Temporal IK: Data-Driven Pose Estimation for Virtual Reality
JP6876072B2 (ja) ビデオゲーム処理プログラム、ビデオゲーム処理装置、ビデオゲーム処理方法及び学習用プログラム
Roth et al. Avatar Embodiment, Behavior Replication, and Kinematics in Virtual Reality.

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20210914

Assignee: Beijing Xuanguang Technology Co.,Ltd.

Assignor: Perfect world (Beijing) software technology development Co.,Ltd.

Contract record no.: X2022990000514

Denomination of invention: Method, device and storage medium for generating body action expression package of virtual character

License type: Exclusive License

Record date: 20220817

EE01 Entry into force of recordation of patent licensing contract
GR01 Patent grant