一种动画生成方法、装置、设备

文档序号:1923230 发布日期:2021-12-03 浏览:21次 >En<

阅读说明:本技术 一种动画生成方法、装置、设备 (Animation generation method, device and equipment ) 是由 张迎凯 何文峰 于 2020-05-15 设计创作,主要内容包括:本发明实施例提供一种动画生成方法、装置、设备,该方法应用于服务程序,服务程序中加载有目标场景,该方法包括:触发目标场景中的动作执行指令,该动作执行指令用于指示虚拟角色在目标场景中执行一组目标动作;响应于动作执行指令,获取一组目标动作与目标场景之间的第一关联数据;基于该第一关联数据生成由虚拟角色执行一组目标动作的一组目标图像,以得到包括一组目标图像的目标动画。该方法中,通过获取第一关联数据,并将第一关联数据应用于目标动画的生成过程,使得目标动作能够自适应地匹配于目标动画中的各种场景,提高动画生成效率,提升动作轨迹平滑度,为用户带来更加真实自然的视觉效果。(The embodiment of the invention provides an animation generation method, an animation generation device and animation generation equipment, wherein the method is applied to a service program, a target scene is loaded in the service program, and the method comprises the following steps: triggering an action execution instruction in the target scene, wherein the action execution instruction is used for instructing the virtual role to execute a group of target actions in the target scene; responding to the action execution instruction, and acquiring first association data between a group of target actions and a target scene; a set of target images for performing a set of target actions by the virtual character is generated based on the first associated data to arrive at a target animation including the set of target images. According to the method, the first associated data are obtained and applied to the generation process of the target animation, so that the target action can be adaptively matched with various scenes in the target animation, the animation generation efficiency is improved, the action track smoothness is improved, and a more real and natural visual effect is brought to a user.)

一种动画生成方法、装置、设备

技术领域

本发明涉及图像技术领域,尤其涉及一种动画生成方法、装置、设备。

背景技术

目前,为了虚拟角色的动作具有更加真实自然的视觉效果,虚拟角色的动作通常是由动画师配合虚拟角色所处场景制作的。

以攀爬动作为例,动画师可以根据虚拟角色所处场景制作出一段包含攀爬动作的动画。如果虚拟角色所处场景发生变化,就可能使得之前制作的动画与变化后的场景出现不匹配的问题。传统动画制作方案中由动画师根据变化后的场景重新制作动画,但这种方案导致动画师的工作量大,新动画生成效率低。而采用反向运动学(Inverse Kinematics,IK)技术对之前制作的动画进行分析,虽然可以基于分析结果生成虚拟角色在变化后的场景中的新动画,但这种方案生成的新动画中动作抖动明显,动作轨迹不平滑,视觉效果不佳。

综上,如何使新动画中虚拟角色的动作匹配于变化后的景物,以提高动画生成效率,改善新动画的视觉效果,成为亟待解决的技术问题。

发明内容

本发明实施例提供一种动画生成方法、装置、设备,用以使虚拟角色的动作能够适配于各种场景。

第一方面,本发明实施例提供一种动画生成方法,该方法应用于服务程序,该服务程序中加载有目标场景,该方法包括:

触发目标场景中的动作执行指令,该动作执行指令用于指示虚拟角色在目标场景中执行一组目标动作;

响应于动作执行指令,获取一组目标动作与目标场景之间的第一关联数据;

基于第一关联数据生成由虚拟角色执行一组目标动作的一组目标图像,以得到包括一组目标图像的目标动画。

第二方面,本发明实施例提供一种动画生成装置,该动画生成装置中加载有目标场景,该动画生成装置包括:

触发模块,用于触发目标场景中的动作执行指令,该动作执行指令用于指示虚拟角色在目标场景中执行一组目标动作;

第一获取模块,用于响应于动作执行指令,获取一组目标动作与目标场景之间的第一关联数据;

生成模块,用于基于第一关联数据生成由虚拟角色执行一组目标动作的一组目标图像,以得到包括一组目标图像的目标动画。

第三方面,本发明实施例提供一种电子设备,其中包括处理器和存储器,其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器至少可以实现第一方面中的动画生成方法。

本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现第一方面中的动画生成方法。

在本发明实施例中,首先触发服务程序加载的目标场景中的动作执行指令,该动作执行指令用于指示虚拟角色在目标场景中执行一组目标动作。进而,触发目标场景中的动作执行指令后,服务程序响应于该动作执行指令,获取虚拟角色执行的一组目标动作与该目标场景之间的第一关联数据。由于该第一关联数据能够体现执行该一组目标动作的虚拟角色与目标场景的内在关联,故而,通过该第一关联数据可以生成由该虚拟角色执行一组目标动作的一组目标图像,使得该虚拟角色执行的一组目标动作能够准确地匹配于目标图像中的目标场景,最终得到包括该一组目标图像的目标动画。本发明实施例中,触发目标场景中的动作执行指令后,通过获取虚拟角色执行的一组目标动作与目标场景之间的第一关联数据,并将该第一关联数据体现出的虚拟角色与目标场景的内在关联应用于目标动画的生成过程,使得目标动作能够匹配于目标动画中的目标场景,有效提升动作轨迹平滑度,为用户带来更加真实自然的视觉效果,并且无需人工重新制作虚拟角色的动作即可实现目标动作与目标场景的匹配过程,大大提高了动画生成效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一实施例提供的一种动画生成方法的流程图;

图2a为本发明一实施例提供的一种参考图像的示意图;

图2b为本发明一实施例提供的另一种参考图像的示意图;

图3为本发明一实施例提供的一种动画生成过程的原理示意图;

图4为本发明一实施例提供的另一种动画生成过程的原理示意图;

图5为本发明一实施例提供的再一种动画生成过程的原理示意图;

图6为本发明实施例提供的一种动画生成装置的结构示意图;

图7为与图6所示实施例提供的动画生成装置对应的电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种。

取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。

另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。

本发明实施例提供的动画生成方案可以由一电子设备来执行,该电子设备可以是诸如智能手机、平板电脑、PC机、笔记本电脑等终端设备。在一可选实施例中,该电子设备上可以安装有用于执行动画生成方案的服务程序。

本发明实施例提供的动画生成方案适用于制造包含各种动作的动画的场景。各种动作比如是攀爬动作、跳跃动作、跑步动作。在一可选实施例中,各种动作由动画中的虚拟角色执行。

下面以虚拟角色执行的动作为攀爬动作为例,说明本发明实施例提供的技术方案实际要解决的技术问题:

动画师可以根据虚拟角色所处场景中的景物制作出一段包含攀爬动作的动画。如果虚拟角色所处场景中发生变化,就可能使得之前制作的动画与变化后的场景出现不匹配的问题。比如,虚拟角色所处场景中梯子的横木间距增大,此情况下可能会使得虚拟角色攀爬过程中四肢穿入横木中或四肢悬空。若仍由动画师根据变化后的场景重新制作动画,会导致动画师的工作量大,新动画生成效率低。而采用IK技术对之前制作的动画进行分析,确定虚拟角色骨骼位置,虽然可以基于分析结果将原动画中的动作直接迁移到变化后的场景中生成新动画,但新动画中造成虚拟角色的动作抖动明显,动作轨迹不平滑,视觉效果不佳。

综上,如何使新动画中虚拟角色的动作匹配于变化后的景物,以提高动画生成效率,改善新动画的视觉效果,成为亟待解决的技术问题。

针对于上面提到的技术问题,本发明实施例提供了一种动画生成方法、装置、设备。概括来说,本发明实施例提供的动画生成方案的解决思路是:

首先本方案触发服务程序中加载的目标场景中的动作执行指令,该动作执行指令用于指示虚拟角色在目标场景中执行一组目标动作。进而,触发目标场景中的动作执行指令后,服务程序响应于该动作执行指令,获取虚拟角色执行的一组目标动作与该目标场景之间的关联数据,为区分本文中称为第一关联数据。该第一关联数据能够体现执行该一组目标动作的虚拟角色与目标场景的内在关联,比如执行该一组目标动作的虚拟角色与目标场景中关联景物的相对位置关系,为区分本文中目标场景中关联景物称为目标关联对象。故而,通过该第一关联数据可以生成由该虚拟角色执行一组目标动作的一组目标图像,使得该虚拟角色执行的一组目标动作能够准确地匹配于目标图像中的目标场景,最终得到包括该一组目标图像的目标动画。

在本方案中,触发目标场景中的动作执行指令后,通过获取虚拟角色执行的一组目标动作与目标场景之间的第一关联数据,并将该第一关联数据体现出的内在关联应用于目标动画的生成过程,使得目标动作能够自适应地匹配于各种目标动画中的不同场景,不仅能提升动作轨迹平滑度,为用户带来更加真实自然的视觉效果。并且,通过将该第一关联数据应用于目标动画的生成过程,还有助于减少了因传统动画制作方案而带来的工作量,提高动画生成效率。

在介绍了动画生成方案的基本思路之后,下面具体介绍本发明的各种非限制性实施例。

下面结合以下实施例对该动画生成方法的执行过程进行说明。

图1为本发明实施例提供的一种动画生成方法的流程图,如图1所示,该动画生成方法包括如下步骤:

101、触发目标场景中的动作执行指令,该动作执行指令用于指示虚拟角色在目标场景中执行一组目标动作;

102、响应于该动作执行指令,获取一组目标动作与目标场景之间的第一关联数据;

103、基于第一关联数据生成由虚拟角色执行一组目标动作的一组目标图像,以得到包括一组目标图像的目标动画。

本发明实施例中的动画生成方法应用于服务程序,该服务程序中加载有目标场景。

其中,目标动画即最终生成的动画。本文中将虚拟角色所处的场景(也即目标动画中所展示的场景)称为目标场景,并将虚拟角色需要执行的动作称为目标动作。目标动作比如包括攀爬动作、跳跃动作、跑步动作。

首先,触发目标场景中的动作执行指令。该动作执行指令的作用是指示虚拟角色在目标场景中执行一组目标动作。

在一可选实施例中,可以通过在服务程序中设置控制项来控制目标场景中的动作执行指令。如用户选中该控制项时,可以触发该动作执行指令。控制项的具体实现形式比如是服务程序中的按键或滑动条。

或者,另一可选实施例中,也可通过在服务程序中设置触发条件来控制目标场景中的动作执行指令。如服务程序为游戏客户端,并且触发条件为虚拟角色完成某一预设任务,则虚拟角色完成该某一预设任务时可视为达到触发条件,继而触发该动作执行指令。

在触发目标场景中的动作执行指令之后,服务程序响应于该动作执行指令,需要获取一组目标动作与目标场景之间的第一关联数据。

实际应用中,触发动作执行指令后,即可对虚拟角色需要执行的动作进行实时计算。可选地,可以调取预先生成的一组目标动作与目标场景之间的第一关联数据。

具体来说,获取一组目标动作与目标场景之间的第一关联数据,可以实现为:

确定在执行一组目标动作时虚拟角色的多个身体关键点,获取虚拟角色的多个身体关键点相对目标场景中目标关联对象的位移轨迹作为第一关联数据。

通过上述第一关联数据的获取方式可知,第一关联数据实际上体现的是执行一组目标动作时虚拟角色的多个身体关键点与目标场景中关联对象的相对位置关系,因而,第一关联数据可以反映出一组目标动作与目标场景的内在关联。这种内在关联有助于确定虚拟角色执行目标动作时的实际姿势,故而可以应用于后文中的目标动画生成过程。

其中,目标场景中关联对象是指在虚拟角色执行一组目标动作时接触到的目标场景中的物体,比如梯子、岩石、椅子。为区分,本文中将目标场景中的关联对象称为目标关联对象。

本发明实施例中,虚拟角色的多个身体关键点包括四肢。四肢包括手和脚。在一可选实施例中,四肢可以由手腕、脚踝等关节来表示。以多个身体关键点包括四肢为例,第一关联数据包括四肢相对目标场景对象的位移轨迹。

对于不同类型的虚拟角色,可以预先设置虚拟角色在执行一组目标动作时对应的多个身体关键点。比如,对于人形虚拟角色而言,可以预先设置虚拟角色的手腕、脚踝等关节作为多个身体关键点。

为便于理解第一关联数据的含义,下面首先结合附图具体说明如何获取虚拟角色的多个身体关键点相对目标场景中目标关联对象的位移轨迹作为第一关联数据:

首先,在获取虚拟角色的多个身体关键点相对目标场景中目标关联对象的位移轨迹作为第一关联数据之前,还需要获取由虚拟角色在参考场景中执行一组目标动作的一组参考图像。可选地,参考图像中执行一组目标动作的虚拟角色与上文所述的目标场景中的虚拟角色可以为同一虚拟角色。

其中,参考图像还应该具有较佳的图像质量,比如图像的清晰度、亮度应该都比较好。实际应用中,为保证目标动作的连续性和完整性,一组目标动作为一个动作周期。故而,为了捕捉到更多动作细节,以期最终能够更大程度上提升目标动画的视觉效果,上述一组参考图像应当为一个动作周期对应的动画片段。若上述一组参考图像包括多帧图像,则各帧图像之间的间隔应尽量小。

可以理解的是,一组目标动作实质上能够表示一个具有明确界定的完整动作,比如一个攀爬动作、一个跳跃动作。

为了便于理解上述一组目标动作和一组参考图像的含义,举例来说,假设参考场景中的参考关联对象为一个梯子。假设参考图像为某一动画,该某一动画中包括由虚拟角色在该梯子上执行一个攀爬动作。假设该动画包括的两个图像帧分别为图2a和图2b。本示例中虚拟角色的四肢接触横木即可视为虚拟角色攀爬到对应横木上。基于此,若上述一组目标动作包括虚拟角色从该梯子的横木2攀爬到横木1的动作周期,则上述一组参考图像可以是从上述动画中截取的以图2a为起始帧、并且以图2b为最后一帧的一段动画片段。

当然,除了从动画中截取一组参考图像之外,在一些可选实施例中,还可以根据实际应用中可能需要生成的目标动作,预先设置对应于某种目标动作的图像质量较佳的一段动画片段作为参考图像,从而,针对当前需要生成的某种目标动作,直接使用预先设置的与该目标动作对应的一组参考图像。

进而,在获取一组参考图像之后,需要从该一组参考图像中,提取一组目标动作与参考场景之间的关联数据。为区分,本文中将一组目标动作与参考场景之间的关联数据称为第二关联数据。其中,该第二关联数据包括虚拟角色的多个身体关键点相对参考场景中关联对象的位移轨迹。本文中将参考场景中虚拟角色执行一组目标动作时接触到的参考场景中的物体称为参考关联对象。

具体来说,从上述一组参考图像中,提取一组目标动作与参考场景之间的关联数据,可以具体实现为:

标定参考关联对象上与一组攀爬动作对应的多个接触点;从一组参考图像中,获取虚拟角色执行一组攀爬动作时四肢相对参考关联对象上的多个接触点的位移轨迹。

为了便于理解第二关联数据的含义,此处结合附图举例说明如何从一组参考图像中提取一组目标动作与参考场景之间的第二关联数据:

假设一组参考图像中虚拟角色在参考场景中执行的一组目标动作包括一组攀爬动作。假设虚拟角色的多个身体关键点包括四肢,参考场景中参考关联对象包括一个梯子,为区分,本文中将参考场景中的梯子称为第一梯子。可选地,第一梯子中各横木间距相等,即第一梯子中的多个横木呈均匀分布。

基于上述假设,标定第一梯子上与一组攀爬动作对应的多个横木形成的多个接触点。具体地,虚拟角色执行一组攀爬动作时四肢会各自与多个横木形成多个接触点,分别对这些接触点进行标定。进而,从一组参考图像中,获取虚拟角色执行一组攀爬动作时四肢相对上述多个接触点的位移轨迹。可选地,虚拟角色的四肢相对多个接触点的位移轨迹包括:虚拟角色的四肢各自对应的多个接触点、以及各自在各接触点之间的位移轨迹。

举例来说,对虚拟角色执行一组攀爬动作时左手接触到的第一梯子上的3个横木进行标定,得到如图3示出的横木a1、横木b1、横木c1。从一组参考图像中,提取出如图3示出的左手相对上述3个横木的位移轨迹t1。需要注意的是,实际应用中,由于虚拟角色的左手会与上述3个横木接触,因此,图3示意的位移轨迹t1与横木a1、横木b1、横木c1都存在接触点,这些接触点在图3中并未示意。类似的,下文中涉及的图4和图5中也未示意类似的接触点。

经过对一组参考图像的上述处理,可以得到第二关联数据中包括的虚拟角色的四肢各自相对参考场景中参考关联对象的位移轨迹,该位移轨迹也将是后续生成虚拟角色在所处目标场景中执行的一组目标动作的基础之一,也即该位移轨迹将是后续生成一组目标图像的基础之一。

需要注意的是,第一关联数据和第二关联数据的命名仅用于区分一组目标动作与不同场景之间的关联数据,并不代表两种关联数据产生的先后顺序。

除四肢之外,还可以通过上述步骤获取其他身体关键点相对参考关联对象的位移轨迹,此处并不限定。

最终,在提取一组目标动作与参考场景之间的第二关联数据之后,获取多个身体关键点相对目标场景中目标关联对象的位移轨迹作为第一关联数据,可以具体实现为:

基于参考关联对象与目标关联对象的对应关系,对第二关联数据进行变换,得到第一关联数据。

其中,参考关联对象与目标关联对象的对应关系包括参考关联对象上各接触点与目标关联对象上各接触点的对应关系。

具体来说,基于参考关联对象与目标关联对象的对应关系,对第二关联数据进行变换,得到第一关联数据,可以实现为:

基于参考关联对象上各接触点与目标关联对象上各接触点的对应关系,确定目标关联对象上各接触点间距与对应的参考关联对象上各接触点间距的比值,从而,基于该比值对第二关联数据进行缩放变换,得到一组攀爬动作与目标关联对象之间的第一关联数据。

通过第一关联数据的上述生成过程可知,通过将虚拟角色的多个身体关键点与参考场景中参考关联对象的相对位置关系(即第二关联数据),转换为虚拟角色的多个身体关键点与目标场景中目标关联对象的相对位置关系(即第一关联数据),使得虚拟角色执行的一组目标动作能够匹配于目标场景中的目标关联对象,即让目标动作能够适配于各种场景,有助于为用户带来更加真实自然的视觉效果。

本发明实施例中,目标场景中的目标关联对象是由参考场景中的参考关联对象变形得到的,因而两者某些属性上存在一定差别。某些属性比如是形状、材质。针对不同物体,变形方式也有所不同。

在一可选实施例中,假设参考场景中的参考关联对象是海绵垫a,通过将该海绵垫a的材质从材质1更改为材质2,可以得到以材质2构成的海绵垫b,该海绵垫b即是目标场景中的目标关联对象。若一组目标动作为在海绵垫上进行的跳跃动作,则基于海绵垫a与海绵垫b在弹性模量上的对应关系,对虚拟角色的双脚在海绵垫a上跳跃时的运动轨迹进行变换,可以得到虚拟角色的双脚在海绵垫b上跳跃时的运动轨迹。假设材质2的弹性模量比材质1的弹性模量更大,则虚拟角色的双脚陷入海绵垫b的深度更大。

另一可选实施中,假设参考场景中的参考关联对象是第一梯子,通过将该第一梯子的横木间距分布从均匀分布更改为不均匀分布,可以得到梯子横木间距分布不均匀的第二梯子,该第二梯子即是目标场景中的目标关联对象。

下面举例说明如何基于参考关联对象与目标关联对象的对应关系,对第二关联数据进行变换,得到第一关联数据:

假设一组目标动作包括一组攀爬动作。假设虚拟角色的多个身体关键点包括四肢。假设参考场景中的参考关联对象是第一梯子。假设目标场景中的目标关联对象是第二梯子。

基于上述假设,参考关联对象上各接触点与目标关联对象上各接触点的对应关系包括:第二梯子中各横木与第一梯子中各横木的对应关系,即第二梯子中各横木与第一梯子中各横木一一对应。可选地,第二梯子中各横木与第一梯子中各横木的对应关系至少包括:第一梯子中与虚拟角色的四肢各自接触的各横木对应于第二梯子中虚拟角色的四肢各自接触的各横木。

可选地,第二梯子中各横木与第一梯子中各横木的对应关系的获取方法有多种,其中一种获取方法可以实现为:在标定第一梯子上与一组攀爬动作对应的多个横木之后,对于第一梯子上被标定的横木i,确定第二梯子上与该横木i排列顺序相同的横木j,并建立第二梯子上横木j与第一梯子上横木i的对应关系。其中,横木i为第一梯子上被标定的多个横木中的任一个。排列顺序是指各梯子上所有横木的排列顺序,比如第二梯子上所有横木从低到高的排列顺序。针对第二梯子中其他横木与第一梯子中其他横木的对应关系的获取过程,与第二梯子中横木j与第一梯子中横木i的对应关系的获取过程一致,不再赘述。

进而,基于上述假设,两个梯子的横木间距即可视为各接触点间距。故目标关联对象上各接触点间距与对应的参考关联对象上各接触点间距的比值,具体为第二梯子中各横木间距与对应的第一梯子中各横木间距的比值。进而,基于第二梯子(即目标关联对象)中各横木间距与对应的第一梯子(即参考关联对象)中各横木间距的比值,对第二关联数据进行缩放变换,得到一组攀爬动作与第二梯子之间的第一关联数据。

继续基于上面的假设,举例来说,第一梯子中虚拟角色的左手接触到的横木依次被标记为如图3示出的横木a1、横木b1、横木c1。基于第二梯子中各横木与第一梯子中各横木的对应关系,可以得到第二梯子中与上述3个横木对应的3个横木依次分别为如图3示出的横木a2、横木b2、横木c2。进而,确定第二梯子中横木a2和横木b2的间距Hab2与对应的第一梯子中横木a1和横木b1的间距Hab1的比值Hab2/Hab1,以及确定第二梯子中横木b2和横木c2的间距Hbc2与对应的第一梯子中横木b1和横木c1的间距Hbc1的比值Hbc2/Hbc1

进而,若Hab2/Hab1以及Hbc2/Hbc1都小于1,则对图3示出的虚拟角色的左手相对横木a1、b1、c1的位移轨迹t1进行缩小变换,得到如图4示出的虚拟角色的左手相对横木a2、b2、c2的位移轨迹t2。

或者,若Hab2/Hab1大于1,而Hbc2/Hbc1小于1,则对如图3示出的虚拟角色的左手相对横木a1、b1的位移轨迹t1的上半部分进行放大变换,对如图3示出的虚拟角色的左手相对横木b1、c1的位移轨迹t1的下半部分进行缩小变换,最后合并变换后的位移轨迹得到如图5示出的虚拟角色的左手相对横木a2、b2、c2的位移轨迹t3。

类似于虚拟角色的左手相对多个横木的位移轨迹的获取过程,获取虚拟角色的右手、左脚、右脚各自相对多个横木的位移轨迹,从而,以虚拟角色的左手、右手、左脚、右脚各自相对多个横木的位移轨迹作为第一关联数据。

以上介绍了基于参考关联对象与目标关联对象的对应关系,对第二关联数据进行变换得到第一关联数据的过程。

实际应用中,针对不同动作,并非都需要关注虚拟角色的四肢相对目标关联对象的位移轨迹。比如,在跳跃动作中,就主要关注虚拟角色的双脚相对目标关联对象的位移轨迹,即两个脚踝关节。

除了上文描述的四肢之外,本发明实施例中虚拟角色的多个身体关键点还包括根关节。在一可选实施例中,从虚拟角色的多个关节中指定一个关节作为根关节。指定的根关节可以是除上述手腕、脚踝等关节以外的任一关节。

可选地,获取多个身体关键点相对目标场景中目标关联对象的位移轨迹作为第一关联数据,还可以具体实现为:

获取根关节相对目标关联对象的位移速度或位移距离作为第一关联数据。

其中,第一关联数据还包括根关节相对目标场景中目标关联对象的移动轨迹,即根关节相对目标关联对象的位移速度、根关节相对目标关联对象的位移距离。根关节相对目标场景中目标关联对象的移动轨迹可以反映出虚拟角色整体的移动轨迹。针对不同场景中的目标关联对象,根关节的位移轨迹的计算方法不同。

下面仍以目标关联对象为第二梯子为例,说明如何获取根关节相对目标关联对象的位移速度或位移距离作为第一关联数据:

在一可选实施例中,获取根关节相对目标关联对象的位移速度作为第一关联数据,可以实现为:

确定目标关联对象上与一组攀爬动作对应的多个接触点,进而,若目标关联对象中各接触点间距相等,则多个接触点的总间距与一组攀爬动作对应的时长之比,作为根关节相对目标关联对象的位移速度。

下面仍以目标关联对象为第二梯子为例,假设第二梯子中各横木间距相等,即第二梯子中多个横木呈均匀分布。那么,目标关联对象上与一组攀爬动作对应的多个接触点即第二梯子的多个横木,即:

上述多个横木的总间距与上述一组攀爬动作对应的时长之比,作为虚拟角色的根关节相对第二梯子的位移速度。用于获取虚拟角色的根关节相对第二梯子的位移速度Vroot的公式如下:

Vroot=Hrung*2/Tladder

其中,Hrung*2表示一组目标动作对应的总横木间距。Tladder为一组攀爬动作对应的时长,即执行一组目标动作对应的时间长度。

另一可能的实施例中,获取根关节相对目标关联对象的位移距离作为第一关联数据,可以实现为:

确定目标关联对象上与一组攀爬动作对应的多个接触点,进而,若目标关联对象中存在多个接触点间距不相等,则对于一组攀爬动作对应的两帧图像,以两帧图像中虚拟角色的四肢距离差的平均值,作为两帧图像中根关节相对目标关联对象的位移距离。

可以理解的是,位移距离可以是横向距离,也可以是纵向距离。例如,根关节相对梯子的位移距离,实际上,根关节相对梯子的位移高度。

下面仍以目标关联对象为第二梯子为例,假设第二梯子中各横木间距不相等,即第二梯子中多个横木呈不均匀分布。那么,目标关联对象上与一组攀爬动作对应的多个接触点即第二梯子的多个横木,即:

对于一组攀爬动作对应的两帧图像,以两帧图像中虚拟角色的四肢距离差的平均值,作为两帧图像中虚拟角色的根关节相对第二梯子的位移距离。用于获取两帧图像中虚拟角色的根关节相对第二梯子的位移距离⊿Hroot的公式如下:

⊿Hroot=(⊿Hleftfoot+⊿Hrightfoot+⊿Hlefthand+⊿Hrighthand)/4

其中,⊿Hleftfoot、⊿Hrightfoot、⊿Hlefthand、⊿Hrighthand分别为左脚踝、右脚踝、左手腕、右手腕在两帧图像中各自对应的距离差。

通过将两帧图像中虚拟角色的四肢距离差的平均值作为这两帧图像中虚拟角色的根关节相对第二梯子的位移距离,使得虚拟角色的根关节可以配合于虚拟角色的四肢进行位移,实现了对虚拟角色的根关节位移轨迹的动态调节。

以上介绍了如何获取根关节相对目标关联对象的位移轨迹作为第一关联数据的两种过程。

需要理解的是,虚拟角色的多个身体关键点包括四肢和根关节的情况下,若目标场景中目标关联对象发生变化,则第一关联数据中四肢相对目标关联对象的位移轨迹,与根关节相对目标关联对象的位移轨迹是同步变化的。当然,实际应用中,若第一关联数据还包括虚拟角色的其他身体关键点对应的关联数据亦需要同步变化。

在获取第一关联数据后,基于第一关联数据生成由虚拟角色执行一组目标动作的一组目标图像,以得到包括一组目标图像的目标动画。

其中,由于实际应用中为保证目标动作的连续性和完整性,通常以一组目标动作为一个动作周期,因而,类似于一组参考图像,上述一组目标图像应当为一个动作周期对应的动画片段,以使目标动画具有更加自然、平滑的视觉效果。若上述一组目标图像包括多帧图像,则各帧图像之间的间隔应尽量小。

可以理解的是,实际应用中,目标动作中可以包括多组目标动作。这多组目标动作可以依据目标场景的变化而进行变化。比如,虚拟角色执行攀爬动作的过程中,目标场景中梯子的间距发生多次变化,则可以将攀爬动作分为多组,并获取各组攀爬动作与目标场景之间的第一关联数据,从而基于各组攀爬动作各自对应的第一关联数据生成各组目标图像,以得到包括一组目标图像的目标动画。

基于上文对第一关联数据的描述可知,能够体现出执行一组目标动作的虚拟角色与目标场景之间的内在关联,因而,基于第一关联数据可以使得目标图像中的虚拟角色匹配于目标场景,从而有助于提高动画生成效率,提升目标图像中虚拟角色的动作轨迹的平滑度,让目标动画具有更加自然真实的视觉效果,大大改善用户的视觉体验。

并且,由于上述获取第一关联数据的过程、以及基于第一关联数据生成目标动画的过程中均无需采用人工重新制作虚拟角色的动作,因而,能够减少传统方案中因采用人工重新制作新动画而带来的工作量,从而有效提高动画生成效率。

综合上文对图1示出的动画生成方法的介绍,为便于更直观地理解上述动画生成方法的执行过程,结合以下实施例来示例性的说明如何为生成目标动画。

在一可选实施例中,假设了这样的一种实际应用场景:生成一段在梯子a上执行攀爬动作的动画(即目标动画)。

通过选取客户端中的动作执行选项,触发该客户端加载的目标场景中的动作执行指令,该动作执行指令用于指示虚拟攀爬者(即虚拟角色)在目标场景中的梯子a上执行一组攀爬动作。进而,客户端响应于该动作执行指令,针对虚拟攀爬者当前在梯子a的横木1至横木2之间执行的一组子攀爬动作,获取执行该组攀爬动作时虚拟攀爬者四肢与梯子a之间的位移轨迹(即第一关联数据)。基于该位移轨迹,生成该虚拟攀爬者在梯子a的横木2至横木3之间执行攀爬动作的一组图像(即目标图像)。依次类推,实时生成该虚拟攀爬在梯子a上各横木间执行攀爬动作时对应的各组图像,从而组合得到一段虚拟攀爬者在梯子a上执行攀爬动作的动画。

另一可选实施例中,还假设了这样的一种实际应用场景:生成一段在河面露出的岩石间跳跃的动画(即目标动画)。

客户端中用户控制的角色m执行完指定任务后,触发该客户端加载的目标场景中的动作执行指令,该动作执行指令用于指示角色m(即虚拟角色)在河边岩石上执行一组跳跃动作。客户端响应于该动作执行指令,针对角色m当前在岩石1至岩石2之间执行的一组跳跃动作,获取执行该组跳跃动作时角色m双脚与上述两个岩石之间的位移轨迹(即第一关联数据)。基于该位移轨迹,生成角色m在岩石2至岩石3之间执行跳跃动作的一组图像(即目标图像)。依次类推,实时生成该角色m在河面露出的各岩石间执行跳跃动作时对应的各组图像,从而组合得到一段角色m在河面露出的岩石上执行跳跃动作的动画。

图1示出的动画生成方法的执行过程中,通过获取虚拟角色执行的一组目标动作与目标场景之间的第一关联数据,并将该第一关联数据体现出的虚拟角色与目标场景的内在关联应用于目标动画的生成过程,使得目标动作能够匹配于目标动画中的目标场景,有助于提高动画生成效率,提升动作轨迹平滑度,为用户带来更加真实自然的视觉效果。并且,由于该动画生成方法的执行过程无需采用人工重新制作虚拟角色的动作即可实现目标动作与目标场景的匹配过程,因而有效减少了因传统动画制作方案而带来的工作量,也有助于提高动画生成效率。

以下将详细描述本发明的一个或多个实施例的动画生成装置。本领域技术人员可以理解,这些动画生成装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。

图6为本发明实施例提供的一种动画生成装置的结构示意图。该动画生成装置中加载有目标场景,如图6所示,该动画生成装置包括:触发模块11、第一获取模块12、生成模块13。

触发模块11,用于触发所述目标场景中的动作执行指令,所述动作执行指令用于指示虚拟角色在所述目标场景中执行一组目标动作;

第一获取模块12,用于响应于所述动作执行指令,获取所述一组目标动作与所述目标场景之间的第一关联数据;

生成模块13,用于基于所述第一关联数据生成由所述虚拟角色执行所述一组目标动作的一组目标图像,以得到包括所述一组目标图像的目标动画。

可选地,所述第一获取模块12具体用于:确定在执行所述一组目标动作时所述虚拟角色的多个身体关键点;获取所述多个身体关键点相对所述目标场景中目标关联对象的位移轨迹作为所述第一关联数据。

可选地,所述动画生成装置还包括第二获取模块。

所述第二获取模块具体用于:在所述第一获取模块获取所述多个身体关键点相对所述目标场景中目标关联对象的位移轨迹作为所述第一关联数据之前,获取由虚拟角色在参考场景中执行一组目标动作的一组参考图像;从所述一组参考图像中,提取所述一组目标动作与所述参考场景之间的第二关联数据,其中,所述第二关联数据包括所述虚拟角色的多个身体关键点相对所述参考场景中参考关联对象的位移轨迹。

所述第一获取模块12在获取所述多个身体关键点相对所述目标场景中目标关联对象的位移轨迹作为所述第一关联数据时,具体用于:基于所述参考关联对象与所述目标关联对象的对应关系,对所述第二获取模块提取的所述第二关联数据进行变换,得到所述第一关联数据。

可选地,所述多个身体关键点包括四肢,所述第一关联数据包括四肢相对所述目标场景对象的位移轨迹。

可选地,所述一组目标动作包括一组攀爬动作。

所述第二获取模块在从所述一组参考图像中,提取所述一组目标动作与所述参考场景之间的第二关联数据时,具体用于:标定所述参考关联对象上与所述一组攀爬动作对应的多个接触点;从所述一组参考图像中,获取所述虚拟角色执行所述一组攀爬动作时四肢相对所述参考关联对象上的多个接触点的位移轨迹。

可选地,所述参考关联对象与所述目标关联对象的对应关系包括所述参考关联对象上各接触点与所述目标关联对象上各接触点的对应关系。

所述第一获取模块12在基于所述参考关联对象与所述目标关联对象的对应关系,对所述第二关联数据进行变换,得到所述第一关联数据时,具体用于:基于所述参考关联对象上各接触点与所述目标关联对象上各接触点的对应关系,确定所述目标关联对象上各接触点间距与对应的所述参考关联对象上各接触点间距的比值;基于所述比值对所述第二关联数据进行缩放变换,得到所述一组攀爬动作与所述目标关联对象之间的第一关联数据。

可选地,所述多个身体关键点还包括根关节。

所述第一获取模块12在获取所述多个身体关键点相对所述目标场景中目标关联对象的位移轨迹作为所述第一关联数据时,具体用于:获取所述根关节相对所述目标关联对象的位移速度或位移距离作为所述第一关联数据。

可选地,所述一组目标动作包括一组攀爬动作。

所述第一获取模块12在获取所述根关节相对所述目标关联对象的位移速度作为所述第一关联数据时,具体用于:确定所述目标关联对象上与所述一组攀爬动作对应的多个接触点;若所述目标关联对象中各接触点间距相等,则所述多个接触点的总间距与所述一组攀爬动作对应的时长之比,作为所述根关节相对所述目标关联对象的位移速度。

可选地,所述一组目标动作包括一组攀爬动作。

所述第一获取模块12在获取所述根关节相对所述目标关联对象的位移距离作为所述第一关联数据时,具体用于:确定所述目标关联对象上与所述一组攀爬动作对应的多个接触点;若所述目标关联对象中存在多个接触点间距不相等,则对于所述一组攀爬动作对应的两帧图像,以所述两帧图像中所述虚拟角色的四肢距离差的平均值,作为所述两帧图像中所述根关节相对所述目标关联对象的位移距离。

图6所示动画生成装置可以执行前述各实施例中提供的方法,本实施例未详细描述的部分,可参考前述实施例的相关说明,在此不再赘述。

在一个可能的设计中,上述图6所示的动画生成装置的结构可实现为一电子设备。

如图7所示,该电子设备可以包括:处理器21、存储器22。其中,所述存储器22上存储有可执行代码,当所述可执行代码被所述处理器21执行时,至少使所述处理器21可以实现如前述实施例中提供的动画生成方法。其中,该电子设备的结构中还可以包括通信接口23,用于与其他设备或通信网络通信。

另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被无线路由器的处理器执行时,使所述处理器执行前述各实施例中提供的动画生成方法。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的各个模块可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

19页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于表情驱动的3D虚拟形象生成方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!