虚拟对象运动控制方法与装置与流程

文档序号:12367287阅读:417来源:国知局
虚拟对象运动控制方法与装置与流程

本公开涉及计算机图形技术领域,具体而言,涉及一种虚拟对象运动控制方法以及应用该虚拟对象运动控制方法的虚拟对象运动控制装置。



背景技术:

随着移动通信技术的快速发展,移动终端上的娱乐方式也逐渐普及扩展,例如在移动终端上出现了越来越多的游戏应用。目前一种流行的在游戏应用中控制虚拟对象运动的方法是利用物理引擎为虚拟对象赋予真实的物理属性,并通过物理引擎模拟计算其运动参数,例如旋转和碰撞的加速度等。

这种利用物理引擎模拟计算虚拟对象运动参数的方法突破了传统帧动画按照预定脚本控制虚拟对象动作的局限性。但是,由于物理引擎计算游戏中多个虚拟对象的运动参数的运算量较大,需要依赖于优秀的硬件(例如CPU、GPU等),而且能耗较大,因此当需要将游戏应用移植到移动终端上时,会产生移动终端的硬件计算能力限制游戏应用所需的更真实物理效果的问题。

因此,解决在硬件计算能力有限的硬件例如移动终端上令游戏应用中的虚拟对象运动具有更真实物理效果的问题是十分必要的。

需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。



技术实现要素:

本公开的目的在于提供一种虚拟对象运动控制方法及虚拟对象运动控制装置,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。

根据本公开实施例的第一方面,提供一种虚拟对象运动控制方法。所述虚拟对象由多个相关联的虚拟物件构成;其特征在于,所述控制方法包括:通过物理引擎模拟计算在进行预定动作时,所述虚拟对象中各所述虚拟物件的运动参数;创建一骨架结构,所述骨架结构包括多个骨骼结构,每一所述骨骼结构包裹一所述虚拟物件;将模拟计算出的各所述虚拟物件的运动参数赋予对应的所述骨骼结构,以作为各所述骨骼结构执行所述预定动作时的运动参数。

在本公开的一种示例性实施例中,所述骨骼结构为盒装结构,包括基于一三维直角坐标系相互垂直连接的第一边、第二边和第三边。

在本公开的一种示例性实施例中,所述骨骼结构的第一边的尺寸为所述虚拟物件外轮廓在所述第一边所在方向的最长尺寸,第二边的尺寸为所述虚拟物件外轮廓在所述第二边所在方向的最长尺寸,第三边尺寸的为所述虚拟物件外轮廓在所述第三边所在方向的最长尺寸。

在本公开的一种示例性实施例中,所述虚拟物件为由三角面模型组成。

在本公开的一种示例性实施例中,所述控制方法还包括:将所述骨骼结构添加至所述虚拟对象的蒙皮中,并影响其中的所有顶点。

根据本公开实施例的第二方面,提供一种虚拟对象运动控制装置。所述虚拟对象由多个相关联的虚拟物件构成;其特征在于,所述控制装置包括:参数计算模块,用于通过物理引擎模拟计算在进行预定动作时,所述虚拟对象中各所述虚拟物件的运动参数;骨骼创建模块,用于创建一骨架结构,所述骨架结构包括多个骨骼结构,每一所述骨骼结构包裹一所述虚拟物件;参数赋值模块,用于将模拟计算出的各所述虚拟物件的运动参数赋予对应的所述骨骼结构,以作为各所述骨骼结构执行所述预定动作时的运动参数。

在本公开的一种示例性实施例中,所述骨骼结构为盒装结构,包括基于一三维直角坐标系相互垂直连接的第一边、第二边和第三边。

在本公开的一种示例性实施例中,所述骨骼结构的第一边的尺寸为所述虚拟物件外轮廓在所述第一边所在方向的最长尺寸,第二边的尺寸为所述虚拟物件外轮廓在所述第二边所在方向的最长尺寸,第三边尺寸的为所述虚拟物件外轮廓在所述第三边所在方向的最长尺寸。

在本公开的一种示例性实施例中,所述虚拟物件为由三角面模型组成。

在本公开的一种示例性实施例中,所述控制装置还包括皮肤映射模块,将所述骨骼结构添加至所述虚拟对象的一皮肤中,并影响其中的所有顶点。

本公开通过利用物理引擎计算出物理模型的动作轨迹参数,然后将该动作轨迹参数记录到物理模型对应的骨骼上作为骨骼动作的控制参数,从而得到骨骼动画。一方面,以骨骼动画的方式实现游戏应用中的虚拟对象的运动控制对于运行硬件的需求会大幅降低,可以在移动终端等硬件条件有限的实体上流畅运行;另一方面,由于骨骼动画的效果实际上是基于物理引擎模拟得到的,其视觉效果与物理引擎动画基本一致;再一方面,通过物理引擎直接获得骨骼的动作轨迹,也提高了骨骼动画的制作效率。

应当理解的是,以上的可以描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示意性示出本公开示例性实施例中一种虚拟对象运动控制方法的流程图;

图2A示意性示出本公开示例性实施例中由多个虚拟物件组成的虚拟对象的示意图;

图2B示意性示出本公开示例性实施例中对每个虚拟物件创建了骨骼结构后的虚拟对象的示意图;

图3示意性示出本公开示例性实施例中一种虚拟对象运动控制装置的方框图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。

此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

针对在移动终端中游戏应用的表现受制于移动终端硬件的运算能力,在一种技术方案中,可以使用骨骼动画的方式控制移动终端游戏应用中虚拟对象的运动。在骨骼动画中,虚拟对象具由有互相连接的“骨骼”组成的骨架结构,可以通过改变骨骼的朝向和位置来生成虚拟对象的动作。用骨骼动画表现运动具有比计算机物理引擎模拟运动运算量低的优势,使骨骼动画游戏应用能在多数移动终端上流畅运行。但是由于骨骼动画前期制作效率较低,且使用骨骼动画表现运动的视觉效果不及通过物理引擎模拟计算运动的视觉效果,骨骼动画这种在移动终端上控制虚拟对象运动的方式受到了制约。

基于此,本示例实施方式中首先提供了一种虚拟对象运动控制方法,可以由上述的骨骼动画实现。该虚拟对象运动控制方法可以应用在计算机、手机、平板电脑等载体中,例如,在游戏应用中,可以使用本方法控制虚拟角色的运动。参考图1中所示,本示例实施方式中的虚拟对象运动控制方法可以包括以下步骤:步骤S1,通过物理引擎模拟计算在进行预定动作时,所述虚拟对象中各所述虚拟物件的运动参数。

例如,如图2A所示的虚拟对象,当其发生爆炸或坍塌时,构成此虚拟对象的各虚拟物件的动作参数可以通过物理引擎模拟计算出来。此处提及的物理引擎例如可以为软件3DMAX自带的动力学Reactor或者动力学插件RayFire;当然,在本公开的其他示例性实施例中,也可以采用其他物理引擎,本示例性实施例中对此不做特殊限定。

各虚拟物件的运动可以由一控制器控制,此控制器记录虚拟对象的各虚拟物件的动作参数。所以,在进行步骤S1操作后,各虚拟物件在进行预定动作例如爆炸或坍塌过程中的动作参数均被记录在此控制器中。

步骤S2,创建一骨架结构,所述骨架结构包括多个骨骼结构,每一所述骨骼结构包裹一所述虚拟物件。

计算机三维动画中的虚拟对象(例如一个游戏角色模型)可以由包含若干数量的虚拟物件组成,例如一个游戏角色模型的肢体、躯干、服装、道具装备等,均为虚拟物件。这些虚拟物件可以为网格模型,即角色的多边形模型,该多边形模型可以由三角形面片组成,也称作三角面模型或者可以操作中所说的的MESH物体。当虚拟对象正在运动中,例如发生爆炸或坍塌时,所有或者部分三角面模型的位置会发生变化。当然,该多边形模型也可以由其他形状组成,例如矩形或菱形等,本公开对此不作限定。

而在骨骼动画中每一个角色主要是由两部分表示的,即骨架结构和皮肤。骨架结构是按照一定层次组织起来的骨骼结构的总称,骨骼结构按照虚拟对象的特点形成一个层次结构,即骨架结构。这些骨骼结构按照父子关系以树状结构组织起来,形成角色模型的整个骨骼框架。位于树根处的骨头称为根骨骼,它是形成骨骼结构的关键点。而其他所有的骨骼被称为子骨骼或者兄弟骨骼,它们都附属于根骨骼,都直接或间接连接到根骨骼上。

在本示例实施方式中,根据虚拟对象中的每一个虚拟物件的三角面模型创建其对应的骨骼,例如可以为盒状形态骨骼结构,以形成包裹各个虚拟物件的骨骼结构。图2A为由诸多虚拟物件组成的虚拟对象,图2B为对每个虚拟物件创建了盒装形态骨骼后的虚拟对象的示意图。在实际操作中,骨骼创建后会被设置为隐形状态以避免影响视觉效果。

具体操作中,首先创建一根骨骼,并将其一顶点(当然也可以是其他部位)的位置坐标设定在坐标原点。接下来创建虚拟对象各虚拟物件的骨骼结构,将这些骨骼结构按其对应虚拟物件的空间方位连接起来,直接或间接连接给根骨骼,即形成一对应该虚拟对象的骨架结构。

步骤S3,将模拟计算出的各所述虚拟物件的运动参数赋予对应的所述骨骼结构,以作为各所述骨骼结构执行所述预定动作时的运动参数。

在步骤S1获得了各个虚拟物件的动作参数后,我们需要将这些参数添加至对应的盒状形态骨骼作为骨骼动画中骨骼的动作参数,从而实现骨骼动画与物理模拟效果的映射。

在骨骼动画中可以每块骨骼都带有两个矩阵,一个是初始变换矩阵,又称相对矩阵,用于表示骨骼的初始位置;另一个是组合变换矩阵,又称绝对矩阵,它是骨骼的最终矩阵,可以通过相对矩阵和其父骨骼的绝对矩阵相乘计算得到,主要用于对骨骼位置进行变换。相邻的骨骼由关节连在一起,可以做相对的运动。因此,在上述有多个盒状形态骨骼的骨架结构中可以由其根骨骼的位置和各个子骨骼的相对运动来重新定位各个子骨骼的新位置。这些相对运动的运动参数被记录在一骨骼控制器中。因此,在步骤S3,通过将上述虚拟对象的控制器拷贝到其对应的骨架结构的骨骼控制器,实现了将虚拟对象的各虚拟物件在进行预定运动时物理模拟运动的效果映射到其对应的骨架结构的各骨骼结构中。举例来说,即当虚拟对象在物理引擎模拟中爆炸或坍塌时,其各虚拟物件在爆炸或坍塌中的运动状态被记录在其对应控制器中,映射到其对应的骨架结构时,该对应骨架结构在爆炸或坍塌时,各骨骼结构的运动状态将与其对应的虚拟物件的运动状态一致,具有更真实的物理效果。

在以上叙述中,创建的各骨骼结构可以为盒状结构,即骨骼结构包括基于一三维直角坐标系相互垂直连接的第一边、第二边和第三边。

在一种实施方式中,创建一虚拟物件对应的盒状结构骨骼时,可以令该骨骼结构的第一边的尺寸为虚拟物件外轮廓在所述第一边所在方向的最长尺寸,第二边的尺寸为虚拟物件外轮廓在所述第二边所在方向的最长尺寸,第三边尺寸的为虚拟物件外轮廓在所述第三边所在方向的最长尺寸。这样,创建后的盒状结构骨骼完全包裹该虚拟物件且不会比原有虚拟物件占用更多空间资源。在实际运用中,该盒状结构骨骼创建完后会被设置成隐形状态,以免影响视觉效果。当然,所述各骨骼结构也可以是其他结构,本公开对此不作限定。

此外,由于骨骼动画主要是由两部分表示的,即骨架结构和皮肤,因此,生成一骨架结构后,需对其做后期处理,将所述骨骼结构添加至所述虚拟对象的皮肤中,并影响其中的所有顶点,令该皮肤与骨架结构对应并关联。该骨骼动画的皮肤用于规定动画角色的外在形象,也是一种网格模型,拥有多个顶点,它是在骨骼运动影响下变化的一个可变形网格,组成皮肤的每一个顶点都会受到一个或多个骨骼的影响。将一骨架结构中的骨骼结构与其所对应的皮肤顶点一一对应的过程称为蒙皮。经过蒙皮后,该骨架结构中的各骨骼将会对应影响该皮肤的所有顶点,使骨骼动画在特定的外在形象下进行具有更真实物理效果的运动。

本公开通过对虚拟对象中的各虚拟部件创建骨骼结构,将这些骨骼结构构成一对应该虚拟对象的骨架结构,运用物理引擎模拟计算虚拟对象的各虚拟部件的运动参数并将此运动参数映射在其对应的骨骼结构中,实现了令骨骼动画的运动具有更真实的物理效果,同时因为使用运动参数映射,简化了骨骼动画的制作流程,提高了骨骼动画的制作效率。

此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。

进一步的,本示例实施方式中还提供了一种虚拟对象运动控制装置,应用于一移动终端。参考图3中所示,所述虚拟对象运动控制装置可以包括参数计算模块101、骨骼创建模块102以及参数赋值模块103。其中:参数计算模块101可以用于通过物理引擎模拟计算在进行预定动作时,所述虚拟对象中各所述虚拟物件的运动参数。

骨骼创建模块102可以用于创建一骨架结构,所述骨架结构包括多个骨骼结构,每一所述骨骼结构包裹一所述虚拟物件。

参数赋值模块103可以用于将模拟计算出的各所述虚拟物件的运动参数赋予对应的所述骨骼结构,以作为各所述骨骼结构执行所述预定动作时的运动参数。

此外,创建的各骨骼结构可以为盒装结构,包括基于一三维直角坐标系相互垂直连接的第一边、第二边和第三边。

在一种实施方式中,可以令骨骼结构的第一边的尺寸为所述虚拟物件外轮廓在所述第一边所在方向的最长尺寸,第二边的尺寸为所述虚拟物件外轮廓在所述第二边所在方向的最长尺寸,第三边尺寸的为所述虚拟物件外轮廓在所述第三边所在方向的最长尺寸。

此外,该控制装置还包括一皮肤映射模块104,用于将所述骨骼结构添加至所述虚拟对象的蒙皮中,并影响其中的所有顶点。

上述虚拟对象运动控制装置中各模块的具体细节已经在对应的虚拟对象运动控制方法中进行了详细描述,因此此处不再赘述。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1