娃娃模型之间配合运动的方法、装置、终端设备及存储介质与流程

文档序号:14228358阅读:170来源:国知局
娃娃模型之间配合运动的方法、装置、终端设备及存储介质与流程

本发明涉及虚拟技术领域,尤其涉及一种娃娃模型之间配合运动的方法、装置、终端设备及存储介质。



背景技术:

抓娃娃机,又称选物贩卖,为一种源于日本的电子游戏,是大型游戏机里面较为简单的一种。在现实中,实体抓娃娃机的真实机台中会有很多公仔娃娃,当其中一个公仔娃娃被移动时,可能会碰撞到相邻的公仔娃娃。

随着电子技术的发展,很多机械构造的实体游戏都被制作成虚拟游戏,以供玩家娱乐。在目前的虚拟娃娃机游戏中,当其中一个娃娃模型从娃娃模型堆中被夹起来时,相邻娃娃模型之间发生碰撞之后仍然维持原状不动,也没有产生任何碰撞效果,缺乏真实感,降低了玩家的游戏体验感。



技术实现要素:

针对上述问题,本发明的目的在于提供一种娃娃模型之间配合运动的方法、装置、终端设备及存储介质,当娃娃模型被移动后碰撞到其他娃娃模型时,相互之间能够产生作用,模拟出娃娃模型之间的物理碰撞效果,实现了娃娃模型之间配合运动,增强游戏的真实感,能够有效地提升玩家的游戏体验感。

为解决以上技术问题,本发明提供了一种相邻娃娃模型之间配合运动的方法,包括以下步骤:

监听对位于娃娃模型堆中的娃娃模型的操作事件;其中,每个娃娃模型上配置有刚体组件及碰撞器组件;所述每个娃娃模型上配置的刚体组件设置有重力属性;

根据每个娃娃模型上的刚体组件检测所述每个娃娃模型的运动状态的变化;

当检测到所述娃娃模型堆中的第一娃娃模型被移动时,根据所述第一娃娃模型的碰撞器组件及与所述第一娃娃相邻的其他娃娃模型的碰撞器组件,对所述第一娃娃模型和所述其他娃娃模型进行碰撞检测;

当检测到所述第一娃娃模型与所述其他娃娃模型之间发生碰撞时,根据所述第一娃娃模型与所述其他娃娃模型的重力属性获得碰撞响应结果。

优选地,所述根据所述第一娃娃模型的碰撞器组件及与所述第一娃娃相邻的其他娃娃模型的碰撞器组件,对所述第一娃娃模型和所述其他娃娃模型进行碰撞检测,具体包括:

根据所述第一娃娃模型的碰撞器组件及与所述其他娃娃模型的碰撞器组件,判断所述第一娃娃模型被移动后所需占用的空间与所述其他娃娃模型所占用的空间是否相交或者重叠;

若检测到所述第一娃娃模型被移动后所需占用的空间与所述其他娃娃模型所占用的空间相交,则确定所述第一娃娃模型与所述其他娃娃模型之间发生了碰撞;

若检测到所述第一娃娃模型被移动后所需占用的空间与所述其他娃娃模型所占用的空间不相交,则确定所述第一娃娃模型与所述其他娃娃模型之间没有发生碰撞。

优选地,所述根据所述第一娃娃模型与所述其他娃娃模型的重力属性获得碰撞响应结果,具体包括:

根据所述重力属性模拟所述第一娃娃模型与所述其他娃娃模型的重力和它们相互间的作用力;

根据所述重力和所述作用力完成对所述其他娃娃模型的运动模拟,获得所述其他娃娃模型的运动状态的改变结果。

进一步地,所述根据所述重力属性模拟所述第一娃娃模型与所述其他娃娃模型的重力和它们相互间的作用力,具体包括:

当检测到所述第一娃娃模型与其他娃娃模型之间发生碰撞时,计算出碰撞点;

根据所述碰撞点、所述娃娃模型的重力属性得到所述第一娃娃模型与所述其他娃娃模型的重力和它们相互间的作用力。

优选地,所述每个娃娃模型的碰撞器组件设置有材质属性,则所述娃娃模型之间配合运动的方法还包括:

根据所述材质属性实现所述第一娃娃模型与所述其他娃娃模型发生碰撞后的效果。

本发明还提供了一种娃娃模型之间配合运动的装置,包括:

监听模块,用于监听对位于娃娃模型堆中的娃娃模型的操作事件;其中,每个娃娃模型上配置有刚体组件及碰撞器组件;所述每个娃娃模型上配置的刚体组件设置有重力属性;

状态检测模块,用于根据每个娃娃模型上的刚体组件检测所述每个娃娃模型的运动状态的变化;

碰撞检测模块,用于当检测到所述娃娃模型堆中的第一娃娃模型被移动时,根据所述第一娃娃模型的碰撞器组件及与所述第一娃娃相邻的其他娃娃模型的碰撞器组件,对所述第一娃娃模型和所述其他娃娃模型进行碰撞检测;

获得响应模块,用于当检测到所述第一娃娃模型与所述其他娃娃模型之间发生碰撞时,根据所述第一娃娃模型与所述其他娃娃模型的重力属性获得碰撞响应结果。

优选地,所述碰撞检测模块具体包括:

判断单元,用于根据所述第一娃娃模型的碰撞器组件及与所述其他娃娃模型的碰撞器组件,判断所述第一娃娃模型被移动后所需占用的空间与所述其他娃娃模型所占用的空间是否相交或者重叠;

第一确定单元,用于若检测到所述第一娃娃模型被移动后所需占用的空间与所述其他娃娃模型所占用的空间相交,则确定所述第一娃娃模型与所述其他娃娃模型之间发生了碰撞;

第二确定单元,用于若检测到所述第一娃娃模型被移动后所需占用的空间与所述其他娃娃模型所占用的空间不相交,则确定所述第一娃娃模型与所述其他娃娃模型之间没有发生碰撞。

优选地,所述获得响应模块具体包括:

力模拟单元,用于根据所述重力属性模拟所述第一娃娃模型与所述其他娃娃模型的重力和它们相互间的作用力;

运动模拟单元,用于根据所述重力和所述作用力完成对所述其他娃娃模型的运动模拟,获得所述其他娃娃模型的运动状态的改变结果。

本发明还提供了一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现上述中任意一项所述的娃娃模型之间配合运动的方法。

本发明还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述中任意一项所述的娃娃模型之间配合运动的方法。

本发明的目的在于提供一种娃娃模型之间配合运动的方法、装置、终端设备及存储介质,当检测到第一娃娃模型被移动后,若检测到所述第一娃娃模型与所述其他娃娃模型之间发生碰撞,根据所述第一娃娃模型与所述其他娃娃模型的重力属性获得碰撞响应结果,模拟出娃娃模型之间的物理碰撞效果,使得娃娃模型之间能够产生作用,增强了游戏的真实感,能够有效地提升玩家的游戏体验感。

附图说明

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

图1是本发明第一实施例提供的娃娃模型之间配合运动的方法的流程示意图。

图2是本发明第一实施例提供的娃娃模型之间配合运动的方法的刚体组件示意图。

图3是本发明第一实施例提供的娃娃模型之间配合运动的方法的碰撞器组件示意图。

图4是本发明第五实施例提供的娃娃模型之间配合运动的装置的结构示意图。

具体实施方式

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

请参阅图1,本发明第一实施例提供了一种娃娃模型之间配合运动的方法,其包括以下步骤:

s10,监听对位于娃娃模型堆中的娃娃模型的操作事件;其中,每个娃娃模型上配置有刚体组件及碰撞器组件;所述每个娃娃模型上配置的刚体组件设置有重力属性。

本发明实施例可基于游戏引擎来实现,其中,游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由零开始。大部分都支持多种操作平台,如linux、macosx、微软windows。游戏引擎包含以下系统:渲染引擎(即“渲染器”,含二维图像引擎和三维图像引擎)、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理。

在本发明实施例中,在虚拟娃娃机中,每个娃娃模型都可能会受到力的作用,因此需要先给每个娃娃模型添加刚体组件。作为示例,在游戏引擎上建立娃娃模型的游戏对象,在所述游戏对象上添加刚体组件,添加的刚体组件如图2所示。通过所述游戏对象的刚体组件上的属性,设置所述游戏对象的重力,就能够通过游戏引擎模拟重力和游戏对象之间的相互作用力。

在本发明实施例中,在虚拟娃娃机中,当娃娃模型堆中的其中一个娃娃模型被夹起的时候,可能会碰撞到相邻的其他娃娃模型,因此需要先给每个娃娃模型添加碰撞器组件。作为示例,在游戏引擎的游戏组成对象列表中,找到上述创建的娃娃模型的游戏对象,选中所述游戏对象并添加碰撞器组件,添加的其中一种碰撞器组件如图3所示。所述碰撞器组件可以是以下其中一种或多种的组合:盒碰撞器、球形碰撞器、胶囊碰撞器、网格碰撞器、车轮碰撞器。

在本发明实施例中,所述对位于娃娃模型堆中的娃娃模型的操作事件可以是用户操作虚拟娃娃机的抓取器抓取娃娃模型堆中的一个或者多个娃娃模型。

s20,根据每个娃娃模型上的刚体组件检测所述每个娃娃模型的运动状态的变化。

在本发明实施例中,添加了刚体组件的游戏对象可以接受外力,并且能够像真实的物体一样接受摩擦力和重力。作为示例,假设在娃娃模型堆里的第一娃娃模型处于静止状态,此时给添加了刚体的所述第一娃娃模型施加一个力,在力的作用下所述第一娃娃模型会产生运动行为,即从静止到运动。而没有添加刚体组件的游戏对象不能接受外力,从而不能模拟一个物体在现实世界中受到力后的行为,即不能在游戏引擎下进行运动。可以理解的是,可以通过脚本来对所述第一娃娃模型施加一个力。

s30,当检测到所述娃娃模型堆中的第一娃娃模型被移动时,根据所述第一娃娃模型的碰撞器组件及与所述第一娃娃相邻的其他娃娃模型的碰撞器组件,对所述第一娃娃模型和所述其他娃娃模型进行碰撞检测。

在本发明实施例中,在没有碰撞检测的情况下,碰撞物体会穿过对方,产生穿透现象而未触发碰撞。为避免此类问题的发生,碰撞检测工作是必须做的。

在本发明实施例中,没有添加碰撞器组件的刚体不会发生碰撞事件而是会彼此相穿而过,即如果两个配置有刚体组件的游戏对象相互碰撞在一起,只有在两个游戏对象上都设置有碰撞器组件的情况下,游戏引擎才会计算碰撞。作为示例,当所述第一娃娃模型开始运动时,即检测到所述第一娃娃模型被移动时,将所述第一娃娃模型的碰撞器与所述其他娃娃模型的碰撞器进行碰撞检测。

在本发明实施例中,每个娃娃模型的所述刚体组件中的碰撞检测模式默认为不连续模式,使用不连续碰撞检测模式将所述第一娃娃模型的碰撞器与其他娃娃模型的碰撞器进行碰撞检测,当然,其他娃娃模型与所述第一娃娃模型的碰撞检测,也会应用这种模式。

s40,当检测到所述第一娃娃模型与所述其他娃娃模型之间发生碰撞时,根据所述第一娃娃模型与所述其他娃娃模型的重力属性获得碰撞响应结果。

在本发明实施例中,碰撞是由于游戏对象运动而产生的,碰撞响应结果是处理由碰撞引起的游戏对象运动状态的改变。例如第一娃娃模型被夹起来的时候碰撞到相邻的其他娃娃模型,游戏引擎根据所述第一娃娃模型和所述其他娃娃模型的重力属性来模拟所述第一娃娃模型和所述其他娃娃模型的重力和所述第一娃娃模型和所述其他娃娃模型之间的相互作用力,从而实现所述其他娃娃模型被碰撞后的运动状态的改变。

综上所述,本发明的目的在于提供一种娃娃模型之间配合运动的方法,当检测到第一娃娃模型被移动后,若检测到所述第一娃娃模型与所述其他娃娃模型之间发生碰撞,获得碰撞响应结果,模拟出娃娃模型之间的物理碰撞效果,使得娃娃模型之间能够产生作用,实现相邻娃娃模型之间的配合运动,增强了游戏的真实感,能够有效地提升玩家的游戏体验感。

本发明第二实施例:

在第一个实施例的基础上,还包括:

所述根据所述第一娃娃模型的碰撞器组件及与所述第一娃娃相邻的其他娃娃模型的碰撞器组件,对所述第一娃娃模型和所述其他娃娃模型进行碰撞检测,具体包括:

根据所述第一娃娃模型的碰撞器组件及与所述其他娃娃模型的碰撞器组件,判断所述第一娃娃模型被移动后所需占用的空间与所述其他娃娃模型所占用的空间是否相交或者重叠;

若检测到所述第一娃娃模型被移动后所需占用的空间与所述其他娃娃模型所占用的空间相交,则确定所述第一娃娃模型与所述其他娃娃模型之间发生了碰撞;

若检测到所述第一娃娃模型被移动后所需占用的空间与所述其他娃娃模型所占用的空间不相交,则确定所述第一娃娃模型与所述其他娃娃模型之间没有发生碰撞。

在本发明实施例中,作为示例,当第一娃娃模型被移动时,所述第一娃娃模型所占据的空间会随之发生改变,此时,所述第一娃娃模型将释放原来占用的空间,并需要占用新的空间(以下称为所需新空间)。如果所述所需新空间已经被第二娃娃模型占用了,则所述第一娃娃模型和所述第二娃娃模型将会发生碰撞。如果所述所需新空间未被其他娃娃模型占用,则所述第一娃娃将不与任何物体发生碰撞。

需要说明的是,碰撞是由运动的刚体发起的,即处于静止状态的娃娃模型不发起碰撞,可以避免所述处于静止状态的娃娃模型对其他娃娃模型的碰撞检测。

本发明第三实施例:

在第一个实施例的基础上,还包括:

所述根据所述第一娃娃模型与所述其他娃娃模型的重力属性获得碰撞响应结果,具体包括:

根据所述重力属性模拟所述第一娃娃模型与所述其他娃娃模型的重力和它们相互间的作用力;

具体地,当检测到所述第一娃娃模型与其他娃娃模型之间发生碰撞时,计算出碰撞点;根据所述碰撞点、所述娃娃模型的重力属性得到所述第一娃娃模型与所述其他娃娃模型的重力和它们相互间的作用力;

根据所述重力和所述作用力完成对所述其他娃娃模型的运动模拟,获得所述其他娃娃模型的运动状态的改变结果。

在本发明实施例中,作为示例,要模拟两个娃娃模型之间的碰撞响应效果,可以在进行两个所述娃娃模型的碰撞检测的同时,求解出所述两个娃娃模型发生碰撞时的碰撞点,游戏引擎根据所述碰撞点和所述两个娃娃模型的重力属性来求解出所述两个娃娃模型的重力和所述两个娃娃模型之间的相互作用力。

在本发明实施例中,作为示例,游戏引擎可以将所述两个娃娃模型所述重力和所述相互作用力结合刚体的一般运动模拟完成对所述两个娃娃模型的运动模拟。

本发明第四实施例:

在第一个实施例的基础上,还包括:

所述每个娃娃模型的碰撞器组件设置有材质属性,则所述娃娃模型之间配合运动的方法还包括:

根据所述材质属性实现所述第一娃娃模型与所述其他娃娃模型发生碰撞后的效果。

在本发明实施例中,每个娃娃模型配置的碰撞器组件里设置有材质属性,根据实际情况可以选择不同的物理材质,该物理材质决定了每个娃娃模型与其他娃娃模型如何作用,比如金属之间的碰撞与石头之间的碰撞效果肯定是不一样的。还可以通过改变所述物理材质里的物理参数来模拟更真实的碰撞效果,作为示例,当给一个娃娃模型施加一个力的时候,发现所述娃娃模型并不移动,其原因可能是作用于所述娃娃模型的力太小,无法使所述娃娃模型产生运动,此时,可以改变所述娃娃模型碰撞器组件的材质的物理参数,比如将摩擦力参数设置为0进行尝试。

请参阅图4,本发明第五实施例还提供了一种娃娃模型之间配合运动的装置,包括:

监听模块10,用于监听对位于娃娃模型堆中的娃娃模型的操作事件;其中,每个娃娃模型上配置有刚体组件及碰撞器组件;所述每个娃娃模型上配置的刚体组件设置有重力属性;

状态检测模块20,用于根据每个娃娃模型上的刚体组件检测所述每个娃娃模型的运动状态的变化;

碰撞检测模块30,用于当检测到所述娃娃模型堆中的第一娃娃模型被移动时,根据所述第一娃娃模型的碰撞器组件及与所述第一娃娃相邻的其他娃娃模型的碰撞器组件,对所述第一娃娃模型和所述其他娃娃模型进行碰撞检测;

获得响应模块40,用于当检测到所述第一娃娃模型与所述其他娃娃模型之间发生碰撞时,根据所述第一娃娃模型与所述其他娃娃模型的重力属性获得碰撞响应结果。

优选地,所述碰撞检测模块30具体包括:

判断单元,用于根据所述第一娃娃模型的碰撞器组件及与所述其他娃娃模型的碰撞器组件,判断所述第一娃娃模型被移动后所需占用的空间与所述其他娃娃模型所占用的空间是否相交或者重叠;

第一确定单元,用于若检测到所述第一娃娃模型被移动后所需占用的空间与所述其他娃娃模型所占用的空间相交,则确定所述第一娃娃模型与所述其他娃娃模型之间发生了碰撞;

第二确定单元,用于若检测到所述第一娃娃模型被移动后所需占用的空间与所述其他娃娃模型所占用的空间不相交,则确定所述第一娃娃模型与所述其他娃娃模型之间没有发生碰撞。

优选地,所述获得响应模块40具体包括:

力模拟单元,用于根据所述重力属性模拟所述第一娃娃模型与所述其他娃娃模型的重力和它们相互间的作用力;

运动模拟单元,用于根据所述重力和所述作用力完成对所述其他娃娃模型的运动模拟,获得所述其他娃娃模型的运动状态的改变结果。

进一步地,所述力模拟单元具体包括:

第一计算单元,用于当检测到所述第一娃娃模型与其他娃娃模型之间发生碰撞时,计算出碰撞点;

第二计算单元,用于根据所述碰撞点、所述娃娃模型的重力属性得到所述第一娃娃模型与所述其他娃娃模型的重力和它们相互间的作用力。

优选地,所述每个娃娃模型的碰撞器组件设置有材质属性,则所述获得响应模块40还用于:

根据所述材质属性实现所述第一娃娃模型与所述其他娃娃模型发生碰撞后的效果。

本发明第六实施例还提供了一种娃娃模型之间配合运动的终端设备。该实施例的娃娃模型之间配合运动的终端设备包括:处理器、显示器、存储器以及存储在所述存续乎其中并可在所述处理器上运行的计算机程序,例如娃娃模型之间配合运动的程序。所述处理器执行所述计算机程序时实现上述各个娃娃模型之间配合运动的方法的实施例中的步骤,例如图1所示的步骤s10。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各单元的功能,例如图4所示的监听模块10。

示例性的,所述计算机程序可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述娃娃模型之间配合运动的终端设备中的执行过程。

所述娃娃模型之间配合运动的终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述娃娃模型之间配合运动的终端设备可包括,但不仅限于,处理器、存储器、显示器。本领域技术人员可以理解,所述示意图仅仅是娃娃模型之间配合运动的终端设备的示例,并不构成对娃娃模型之间配合运动的终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述娃娃模型之间配合运动的终端设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述娃娃模型之间配合运动的终端设备的控制中心,利用各种接口和线路连接整个所述娃娃模型之间配合运动的终端设备的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述娃娃模型之间配合运动的终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、文字转换功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、文字消息数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

其中,所述娃娃模型之间配合运动的终端设备集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一个计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

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