虚拟角色控制方法和装置、存储介质及电子装置与流程

文档序号:18461034发布日期:2019-08-17 02:01阅读:183来源:国知局
虚拟角色控制方法和装置、存储介质及电子装置与流程

本发明涉及计算机领域,具体而言,涉及一种虚拟角色控制方法和装置、存储介质及电子装置。



背景技术:

相关技术中,一局游戏中的虚拟人物与虚拟人物所配置的武器为一个整体。若要对虚拟人物的武器进行切换,如将第一武器切换为第二武器,则需要准备虚拟人物持有不同武器的整体,在切换时,将虚拟人物切换第一武器的整体切换为虚拟人物持有第二武器的整体。

然而,若是采用上述方法,不仅在开始游戏之前,需要准备虚拟人物持有各种武器的整体,造成准备工作量大,而且在游戏运行时需要同时准备各种有可能切换到的整体处于待切换状态,造成系统运算量大,降低了游戏过程中切换武器的效率。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种虚拟角色控制方法和装置、存储介质及电子装置,以至少解决在游戏过程中切换武器效率低的技术问题。

根据本发明实施例的一个方面,提供了一种虚拟角色控制方法,包括:在一局游戏的运行过程中,在显示界面上显示上述一局游戏的虚拟场景中的虚拟角色;接收与上述虚拟角色相关的部件调整指令;响应于上述部件调整指令将上述虚拟角色的第一部件由第一状态调整为第二状态,其中,上述第一状态为隐藏状态或显示状态中的一种,上述第二状态为上述隐藏状态或上述显示状态中的另一种,上述虚拟角色在上述一局游戏中被允许使用的部件为包括上述第一部件在内的多个部件,在调整上述第一部件的状态时,维持上述虚拟角色的状态不变。

根据本发明实施例的另一方面,还提供了一种虚拟角色控制装置,包括:显示单元,用于在一局游戏的运行过程中,在显示界面上显示上述一局游戏的虚拟场景中的虚拟角色;接收单元,用于接收与上述虚拟角色相关的部件调整指令;第一调整单元,用于响应于上述部件调整指令将上述虚拟角色的第一部件由第一状态调整为第二状态,其中,上述第一状态为隐藏状态或显示状态中的一种,上述第二状态为上述隐藏状态或上述显示状态中的另一种,上述虚拟角色在上述一局游戏中被允许使用的部件为包括上述第一部件在内的多个部件,在调整上述第一部件的状态时,维持上述虚拟角色的状态不变。

作为一种可选的实施方式,上述装置还包括:配置单元,用于在上述显示界面上显示上述一局游戏的虚拟场景中的虚拟角色之前,为上述虚拟角色配置上述多个部件以及上述多个部件的状态,其中,上述多个部件中的每一个部件的状态包括上述第一状态与上述第二状态。

根据本发明实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述虚拟角色控制方法。

根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的虚拟角色控制方法。

在本发明实施例中,采用了在运行一局游戏的过程中,在上述显示界面上显示上述一局游戏的虚拟场景中的虚拟角色;在上述接收到与上述虚拟角色相关的部件调整指令的情况下,响应于上述部件调整指令将上述虚拟角色的第一部件由第一状态调整为第二状态的方法。由于本方案中的虚拟角色与虚拟角色的部件为不同的部分,因此,在对虚拟角色的部件进行切换时,仅根据相关的指令调整对应的部件即可,无需对虚拟角色与部件的整体进行切换,从而提高了对虚拟角色的部件进行调整的效率,进而解决了在游戏过程中切换武器效率低的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种可选的虚拟角色控制方法的应用环境的示意图;

图2是根据本发明实施例的一种可选的虚拟角色控制方法的流程示意图;

图3是根据本发明实施例的一种可选的虚拟角色控制方法的示意图;

图4是根据本发明实施例的另一种可选的虚拟角色控制方法的示意图;

图5是根据本发明实施例的又一种可选的虚拟角色控制方法的示意图;

图6是根据本发明实施例的又一种可选的虚拟角色控制方法的示意图;

图7是根据本发明实施例的又一种可选的虚拟角色控制方法的示意图;

图8是根据本发明实施例的另一种可选的虚拟角色控制方法的流程示意图;

图9是根据本发明实施例的一种可选的虚拟角色控制装置的结构示意图;

图10是根据本发明实施例的另一种可选的虚拟角色控制装置的结构示意图;

图11是根据本发明实施例的又一种可选的虚拟角色控制装置的结构示意图;

图12是根据本发明实施例的又一种可选的虚拟角色控制装置的结构示意图;

图13是根据本发明实施例的又一种可选的虚拟角色控制装置的结构示意图;

图14是根据本发明实施例的又一种可选的虚拟角色控制装置的结构示意图;

图15是根据本发明实施例的又一种可选的虚拟角色控制装置的结构示意图;

图16是根据本发明实施例的一种可选的电子装置的结构示意图。

具体实施方式

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

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明实施例的一个方面,提供了一种虚拟角色控制方法,可选地,作为一种可选的实施方式,上述虚拟角色控制方法可以但不限于应用于如图1所示的环境中。

图1中用户102与用户设备104之间可以进行人机交互。用户设备104中包含有存储器106,用于存储交互数据、处理器108,用于处理交互数据。用户设备104可以通过网络110与服务器112之间进行数据交互。服务器112中包含有数据库114,用于存储交互数据、处理引擎116,用于处理交互数据。在用户设备104运行一局游戏的过程中,在用户设备104上显示有虚拟场景中的虚拟角色。在用户设备104接收到部件调整指令后,对部件进行调整,将部件由第一状态调整为第二状态,如将图1中104-4中右侧虚拟人物的武器由显示状态调整为104-2中的隐藏状态。或者,在接收到部件调整指令后,将虚拟人物的武器由隐藏状态调整为显示状态。

需要说明的是,相关技术中,在对游戏中的虚拟角色的武器进行调整的过程中,通常需要在开始游戏之前,准备虚拟人物持有各种武器的整体,造成准备工作量大,而且在游戏运行时需要同时准备各种有可能切换到的整体处于待切换状态,造成系统运算量大,降低了游戏过程中切换武器的效率。而本实施例中在一局游戏中切换虚拟角色的部件时,由于虚拟角色与虚拟角色的部件为不同的整体,因此可以通过调整指令灵活地调整虚拟角色的任意一个或多个部件,并维持虚拟角色的状态不变,从而提高了切换虚拟角色的部件的效率。

可选地,上述用户设备104可以但不限于为可以计算数据的终端,例如手机、平板电脑、笔记本电脑、pc机等终端,上述网络可以包括但不限于无线网络或有线网络。其中,该无线网络包括wifi及其他实现无线通信的网络。上述有线网络可以包括但不限于:广域网、城域网、局域网。上述服务器112可以包括但不限于任何可以进行计算的硬件设备。

需要说明的是,上述虚拟角色控制方法同样可以运用在上述用户设备104所安装的客户端上,或者应用在客户端运行的小程序中。

可选地,作为一种可选的实施方式,如图2所示,上述虚拟角色控制方法包括:

s202,在一局游戏的运行过程中,在显示界面上显示一局游戏的虚拟场景中的虚拟角色;

s204,接收与虚拟角色相关的部件调整指令;

s206,响应于部件调整指令将虚拟角色的第一部件由第一状态调整为第二状态,其中,第一状态为隐藏状态或显示状态中的一种,第二状态为隐藏状态或显示状态中的另一种,虚拟角色在一局游戏中被允许使用的部件为包括第一部件在内的多个部件,在调整第一部件的状态时,维持虚拟角色的状态不变。

可选地,上述虚拟角色控制方法可以但不限于应用于游戏领域,如手机游戏、电脑游戏、虚拟现实游戏等。或者可以但不限于应用于其他包含为虚拟角色更换部件的领域,如在购物应用中为虚拟角色更换衣服等过程中。

以将上述虚拟角色控制方法应用到游戏领域为例,在运行一局游戏的过程中,虚拟角色可以使用多个部件中的一个或多个。当接收到部件调整指令时,响应部件调整指令将虚拟角色可以使用的第一部件由显示状态调整为隐藏状态或者由隐藏状态调整为显示状态,从而实现一帧对虚拟角色的部件进行调整,同时又保证虚拟角色的状态不变。

可选地,上述保持虚拟角色的状态不变可以为保持虚拟角色的显示状态不变。如在一帧动画中,虚拟角色正处于奔跑状态,而虚拟角色持有第一部件,而在下一帧动画中,虚拟角色仍处于奔跑状态不变,但是虚拟角色的第一部件隐藏了。

需要说明的是,在对虚拟角色的第一部件的状态进行更改之后,虚拟角色的属性信息可以发生改变。如将第一部件由显示状态切换为隐藏状态后,虚拟角色的攻击力降低等。

可选地,在根据调整指令将第一部件由第一状态调整为第二状态时,还可以响应部件调整指令将第二部件由第二状态调整为第一状态。

可选地,上述第一部件与第二部件可以为外形相同的部件或者为不同的部件。例如,以上述第一部件与第二部件为武器为例,如图3与图4所示,图3中虚拟角色302背上背有武器304,手中未持有武器。(手中持有武器但是处于隐藏状态,手中持有的武器与背上的武器外形相同)。当接收到对武器304的部件调整指令时,响应部件调整指令将图3中的武器304由显示状态调整为如图4所示的隐藏状态,而将虚拟角色手中持有的未显示的武器则由图3的隐藏状态调整为图4的显示状态如图4中虚拟角色402手中持有武器404。在调整过程中一帧即可完成切换,图3与图4中的虚拟角色在外在显示上未发生改变。

可选地,上述第一部件与第二部件也可以为不同的部件。例如,以第一部件为剑,第二部件为刀为例,结合图4与图5所示进行说明。如图4所示,图4中已经显示有虚拟角色402与虚拟角色所持有的剑404(虚拟角色还持有武器刀,但是刀并未显示),而在接收到调整指令时,响应调整指令将图4中的剑404隐藏,同时将未显示的武器刀进行显示。如图5所示,虚拟角色502持有武器刀504。上述切换一帧即可完成,图4与图5中虚拟角色的外在显示上并未发生改变。

可选地,上述对第一部件或者对第二部件进行调整的过程中,将部件由隐藏状态调整为显示状态可以但不限于为将部件的尺寸进行放大,将部件由显示状态调整为隐藏状态可以但不限于为将部件的尺寸进行缩小。

例如,若是将部件由隐藏状态调整为显示状态,则初始情况下,部件处于隐藏状态时,尺寸可以小于第一阈值,小于第一阈值的部件是肉眼不可见的。而将部件调整为显示状态可以为将部件的尺寸放大,放大到预先设定的第二阈值,从而使部件可见。而若是将部件由显示状态调整到隐藏状态,则部件的初始尺寸可以为第二阈值,尺寸为第二阈值的部件肉眼可见。将部件的尺寸调整为小于第一阈值,则部件如肉眼不可见,实现将部件由显示状态调整到隐藏状态。

需要说明的是上述第二阈值可以根据部件的不同而不同。例如,刀剑等各种武器的尺寸不同,在调整的过程中,第二阈值也不相同。巨剑的第二阈值可以大一些,匕首的第二阈值可以小一些,上述数值可以根据具体情况灵活确定。

可选地,上述对第一部件或者对第二部件进行调整的过程中,将部件由隐藏状态调整为显示状态还可以对部件的图层进行更改。例如,虚拟人物处于第一图层上,在第一图层之外,还包括第二图层。需要隐藏的部件位于第二图层上,需要显示的部件位于第一图层上。当需要将虚拟角色的可使用的部件例如衣服进行调整时,将第一图层的衣服调整到第二图层上,将第二图层的衣服调整到第一图层上,从而实现一帧更换虚拟角色的衣服等部件。

可选地,可选地,上述对第一部件或者对第二部件进行调整的过程中,将部件由隐藏状态调整为显示状态还可以对部件的透明度进行修改。例如,需要隐藏的部件的透明度设置为百分之百,则肉眼不可见,而需要显示的部件透明度可以设置为小于百分之百,则肉眼可见。在将虚拟角色的部件如发饰由隐藏调整为显示时,可以将发饰的透明度由百分之百降低到百分之百以下,从而实现一帧对发饰进行调整。

可选地,在运行依据游戏之前,需要为虚拟角色配置一个或多个可使用的部件以及每个可使用的部件的状态。状态包括第一状态与第二状态。如虚拟角色为一名剑客,则虚拟角色可能使用到的三把剑都需要预先配置,并为每把剑都配置隐藏状态与显示状态。

可选地,在运行一局游戏之前,需要获取虚拟角色与虚拟角色的所有可使用的部件。而虚拟角色上设置有多个骨骼点,骨骼点用于与每个可使用的部件进行绑定。例如,如图6所示,图6为一个可选的虚拟角色的样式图,虚拟角色的身上选取有多个骨骼点,如骨骼点602与骨骼点604等。骨骼点可以选取在虚拟角色的任何位置,图6仅为示例。而虚拟角色的所有的可使用的部件需要与骨骼点绑定。如骨骼点602绑定有一把剑,骨骼点604绑定有一把刀。在将部件绑定到虚拟角色的骨骼点上时,还需要设置各个部件的显示状态,显示状态为隐藏或显示。如,将图6中骨骼点绑定的604绑定的刀隐藏,则在界面显示时只能看到虚拟角色手持一把剑,而看不到手持的刀。

可选地,部件同样需要设置绑定点。如图7所示。图7中的一把刀设置有绑定点702,在绑定刀与虚拟角色时,将刀的绑定点702绑定刀虚拟角色的骨骼点上。图7中的绑定点仅为示例,部件上可以设置多个绑定点,用于绑定不同的骨骼点。

可选地,一个部件可以与多个骨骼点绑定。如一把刀与虚拟角色背上的骨骼点绑定,同时与虚拟角色手上的骨骼点绑定。此时,通过控制背上的刀与手上的刀的隐藏与显示即可实现一帧切换刀的位置(从背上切换到手上或从手上切换到背上)。另一方面,一个骨骼点也可以与多个部件绑定。通过不同的标识区分一个骨骼点上的多个部件。例如,不同的部件有不同的编号等。

可选地,虚拟角色的骨骼点在虚拟角色身上的位置可以重合,但是重合的骨骼点需要有不同的标识,如编号等。以对虚拟角色的部件进行调整时,可以根据骨骼点对部件进行调整。

可选地,在部件调整指令中可以携带有所要调整的骨骼点的标识,在接收到部件调整指令后,根据部件调整指令中携带的骨骼点的标识查找虚拟角色的骨骼点,找到匹配的骨骼点之后,更改与骨骼点绑定的部件的状态,如从隐藏状态调整为显示状态。

可选地,在接收到部件调整指令后,若是检测虚拟角色的骨骼点时,未能检测到虚拟角色的骨骼点,说明虚拟角色不包括可调整的部件,仅有显示的一个部件。此时,仍保持虚拟角色所显示的部件状态不变。如虚拟角色手持一把刀,则说明虚拟角色不能持有其他武器。此时,接收到部件调整指令后,仍显示虚拟角色手持的刀,而不做其他改变。或者,此时可以发出相应的提示信息,以提示虚拟角色仍持有刀的原因。

以下结合图8的步骤s802到s814对上述虚拟角色的控制方法进行说明。在对虚拟角色的骨骼点进行控制之前需要获取并缓存虚拟角色的骨骼点与绑定在骨骼点上的部件的状态。而在获取虚拟角色的骨骼点之前,在游戏开始之前需要为虚拟角色预设骨骼点与绑定在骨骼点上的部件的状态。作为一种示例,fbx文件通常为用于在不同的软件之间实现游戏的模型、材质、动作与摄影机信息的互导的fbx格式的文件。上述互导为从一个软件中导出,导入到另一个软件中。例如,在一个软件上设计好虚拟角色的动作信息,然后导出虚拟角色的动作信息为一个fbx格式的文件,在其他软件上调用该fbx格式的文件可以实现虚拟角色执行上述动作信息所指示的动作。在具体实现中,将虚拟角色所在的fbx文件与各个部件所在的fbx文件合并为一个fbx文件,使一个fbx文件中保存有虚拟角色本体的信息与虚拟角色可使用的各个部件的信息。并且通过脚本将合并后的fbx文件导出成为游戏运行时读取的prefab文件,并在prefab文件上挂在状态机animator等信息。最终通过游戏中的逻辑帧脚本控制对应骨骼绑点的缩放信息。在获取骨骼点与绑定在骨骼点上的部件的状态时,需要使用预先制作的工具导出fbx文件生成的prefab文件中的状态信息,并保存到animationclips文件中。在获取并缓存虚拟角色的骨骼点与绑定在骨骼点上的部件的状态后,在运行一局游戏的过程中,运行帧脚本。检测部件调整指令。在检测到部件调整指令后,检测是否有与部件调整指令对应的骨骼点。若是检测到与部件调整指令对应的骨骼点,则骨骼点上绑定的部件的状态。在具体实现中,因为在maya等软件输出的fbx动作文件中,会保存关于骨骼点的状态信息,如果在游戏运行过程中仍然保存这一信息会导致脚本在更改了对应骨骼点的状态信息后的下一帧(1/30秒)中,保存的状态信息会被重新覆盖,导致无法长期控制想要的模型变化效果。相当于骨骼点的状态信息被锁定,无法改变。此时,需要制作一个动作优化插件,动作优化插件用于检测到锁定的骨骼点的状态信息。如图8中的步骤s808,检测到骨骼点?若是检测到了锁定的骨骼点,则利用动作优化插件对锁定的骨骼点的状态信息进行解锁,提出从fbx文件中导出到animationclips文件中的的骨骼点的状态信息并根据部件调整指令进行调整与骨骼点绑定的部件的状态。

通过本实施例,通过在客户端运行一局游戏的过程中,在客户端上显示一局游戏的虚拟场景中的虚拟角色;在客户端上接收到与虚拟角色相关的部件调整指令;响应于部件调整指令将虚拟角色的第一部件由第一状态调整为第二状态的方法,从而在对虚拟角色的部件进行切换时,仅根据相关的指令调整对应的部件即可,无需对虚拟角色与部件的整体进行切换,提高了对虚拟角色的部件进行切换的效率。

作为一种可选的实施方案,在响应于部件调整指令将虚拟角色的第一部件由第一状态调整为第二状态时,方法还包括:

响应于部件调整指令将虚拟角色的第二部件由第二状态调整为第一状态,其中,多个部件包括第二部件。

可选地,上述第二部件可以与上述第一部件为相同的部件或者为不同的部件。若是第二部件与第一部件相同,如为一把刀,则第二部件与第一部件位于虚拟角色的位置不同。如第一部件被虚拟角色拿在手中,第二部件被虚拟角色背在背上。而第一部件与第二部件的状态一个为隐藏一个为显示。此时在对第一部件与第二部件的状态进行更改之后,如第一部件由隐藏调整为显示,第二部件由显示调整为隐藏,则在外观显示上,虚拟角色由背上背着刀变为手上持着刀。

通过本实施例,通过在对第一部件进行调整时,响应部件调整指令对第二部件进行调整,从而提高了对虚拟角色的部件进行调整的调整效率。

作为一种可选的实施方案,在第一状态为显示状态、第二状态为隐藏状态的情况下,将第一部件由第一状态调整为第二状态包括:将第一部件的尺寸缩小到第一阈值,其中,缩小到第一阈值的第一部件不可见;

在第一状态为隐藏状态、第二状态为显示状态的情况下,将第一部件由第一状态调整为第二状态包括:将第一部件的尺寸增大到第二阈值,其中,增大到第二阈值的第一部件可见。

例如,以第一阈值为一个很小的数值如1个像素的大小为例,则在将第一部件缩小到的一个像素的大小后,在显示界面上肉眼并不可见,由此可以实现对第一部件的隐藏。而第二阈值可以为正常显示大小,如500个像素大小,则将第一部件由一个像素大小保持纵横比增大到500个像素大小,实现将第一部件由隐藏调整到显示。

通过本实施例,通过在调整第一部件时,将第一部件调整为不可见或者由不可见调整为可见,从而实现了对第一部件的隐藏与显示的灵活调整,提高了游戏过程中对第一部件的调整效率。

作为一种可选的实施方案,在一局游戏运行之前,还包括:

获取虚拟角色与虚拟角色的多个部件,其中,虚拟角色包含多个骨骼点,多个骨骼点为在虚拟角色上选取的点;

将多个部件中的第一部件绑定在虚拟角色的第一骨骼点上,第一骨骼点为多个骨骼点中的一个骨骼点,第一部件为多个部件中的一个部件。

例如,如图6所示,图6为一个可选的虚拟角色的样式图,虚拟角色的身上选取有多个骨骼点,如骨骼点602与骨骼点604等。骨骼点可以选取在虚拟角色的任何位置。

需要说明的是,一个虚拟角色可以包括多个骨骼点,每一个骨骼点与一个虚拟角色的部件绑定,一个虚拟角色的一个部件可以绑定多个不同的骨骼点。多个骨骼点的位置可以重合,但是重合的骨骼点有不同的标识以区分。

通过本实施例,通过在虚拟角色上选取多个骨骼点并绑定虚拟角色的部件,从而实现通过骨骼点对虚拟角色的部件的状态的调整,提高了对虚拟角色的部件进行调整的效率。

作为一种可选的实施方案,在一局游戏的运行过程中,还包括:

在接收到部件调整指令的情况下,获取部件调整指令中所携带的第一骨骼点;

将第一骨骼点所绑定的部件的状态由第一状态调整为第二状态。

可选地,由于在游戏运行的过程中,在执行脚本时,可以获取到部件调整指令,而部件调整指令中携带有所要调整的骨骼点的信息。例如,携带有需要调整的骨骼点的编号,如001、002等。根据上述编号,可以查找到虚拟角色的骨骼点,并获取骨骼点所绑定的部件以及部件的状态。若是部件为隐藏状态,则修改为显示状态,若是部件为显示状态,则修改为隐藏状态。

通过本实施例,通过根据部件调整指令中携带的骨骼点调整虚拟角色的可使用的部件的状态,从而实现对虚拟角色的部件的灵活调整,提高了调整虚拟角色的部件的效率。

作为一种可选的实施方案,在显示界面上显示一局游戏的虚拟场景中的虚拟角色之前,还包括:

为虚拟角色配置多个部件以及多个部件的状态,其中,多个部件中的每一个部件的状态包括第一状态与第二状态。

可选地,在进行一局游戏之前,需要预先配置虚拟角色的多个部件以及多个部件的状态。例如,虚拟角色可以使用的部件为刀、剑,可以携带的配饰包括帽子、衣服,则需要预先将刀、剑、帽子、衣服与虚拟角色的身体上的骨骼点进行绑定,并设定好刀、剑、帽子、衣服的状态。如刀为隐藏状态,剑为显示状态,帽子、衣服都为显示状态。在游戏的过程中可以对刀、剑、帽子、衣服的状态进行修改,以实现部件的切换。

通过本实施例,通过预先配置多个部件与多个部件的状态,从而实现了可以对虚拟角色的部件进行灵活的调整,提高了虚拟角色的部件的调整效率。

作为一种可选的实施方案,在客户端接收到修改指令的情况下,将虚拟角色的第一部件由第一状态修改为第二状态包括:

在未检测到虚拟角色的角色本体的骨骼点的情况下,在客户端上显示虚拟角色的第一部件维持第一状态不变。

可选地,由于虚拟角色可能仅仅包含一个可使用的部件,如刀,刀位于虚拟角色的手上,则此时,虚拟角色无法更换部件。此时,若是接收到部件调整指令,则不对虚拟角色的部件:刀的状态进行改变。

通过本实施例,通过在未检测到虚拟角色的骨骼点的情况下,保持虚拟角色的第一部件的第一状态不变,从而避免了在调整虚拟角色部件时出现错误,提高了对虚拟角色的部件进行调整的准确性。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

根据本发明实施例的另一个方面,还提供了一种用于实施上述虚拟角色控制方法的虚拟角色控制装置。如图9所示,该装置包括:

(1)显示单元902,用于在一局游戏的运行过程中,在显示界面上显示一局游戏的虚拟场景中的虚拟角色;

(2)接收单元904,用于接收与虚拟角色相关的部件调整指令;

(3)第一调整单元906,用于响应于部件调整指令将虚拟角色的第一部件由第一状态调整为第二状态,其中,第一状态为隐藏状态或显示状态中的一种,第二状态为隐藏状态或显示状态中的另一种,虚拟角色在一局游戏中被允许使用的部件为包括第一部件在内的多个部件,在调整第一部件的状态时,维持虚拟角色的状态不变。

可选地,上述虚拟角色控制装置可以但不限于应用于游戏领域,如手机游戏、电脑游戏、虚拟现实游戏等。或者可以但不限于应用于其他包含为虚拟角色更换部件的领域,如在购物应用中为虚拟角色更换衣服等过程中。

以将上述虚拟角色控制方法应用到游戏领域为例,在运行一局游戏的过程中,虚拟角色可以使用多个部件中的一个或多个。当接收到部件调整指令时,响应部件调整指令将虚拟角色可以使用的第一部件由显示状态调整为隐藏状态或者由隐藏状态调整为显示状态,从而实现一帧对虚拟角色的部件进行调整,同时又保证虚拟角色的状态不变。

可选地,上述保持虚拟角色的状态不变可以为保持虚拟角色的显示状态不变。如在一帧动画中,虚拟角色正处于奔跑状态,而虚拟角色持有第一部件,而在下一帧动画中,虚拟角色仍处于奔跑状态不变,但是虚拟角色的第一部件隐藏了。

需要说明的是,在对虚拟角色的第一部件的状态进行更改之后,虚拟角色的属性信息可以发生改变。如将第一部件由显示状态切换为隐藏状态后,虚拟角色的攻击力降低等。

可选地,在根据调整指令将第一部件由第一状态调整为第二状态时,还可以响应部件调整指令将第二部件由第二状态调整为第一状态。

可选地,上述第一部件与第二部件可以为外形相同的部件或者为不同的部件。例如,以上述第一部件与第二部件为武器为例,如图3与图4所示,图3中虚拟角色302背上背有武器304,手中未持有武器。(手中持有武器但是处于隐藏状态,手中持有的武器与背上的武器外形相同)。当接收到对武器304的部件调整指令时,响应部件调整指令将图3中的武器304由显示状态调整为如图4所示的隐藏状态,而将虚拟角色手中持有的未显示的武器则由图3的隐藏状态调整为图4的显示状态如图4中虚拟角色402手中持有武器404。在调整过程中一帧即可完成切换,图3与图4中的虚拟角色在外在显示上未发生改变。

可选地,上述第一部件与第二部件也可以为不同的部件。例如,以第一部件为剑,第二部件为刀为例,结合图4与图5所示进行说明。如图4所示,图4中已经显示有虚拟角色402与虚拟角色所持有的剑404(虚拟角色还持有武器刀,但是刀并未显示),而在接收到调整指令时,响应调整指令将图4中的剑404隐藏,同时将未显示的武器刀进行显示。如图5所示,虚拟角色502持有武器刀504。上述切换一帧即可完成,图4与图5中虚拟角色的外在显示上并未发生改变。

可选地,上述对第一部件或者对第二部件进行调整的过程中,将部件由隐藏状态调整为显示状态可以但不限于为将部件的尺寸进行放大,将部件由显示状态调整为隐藏状态可以但不限于为将部件的尺寸进行缩小。

例如,若是将部件由隐藏状态调整为显示状态,则初始情况下,部件处于隐藏状态时,尺寸可以小于第一阈值,小于第一阈值的部件是肉眼不可见的。而将部件调整为显示状态可以为将部件的尺寸放大,放大到预先设定的第二阈值,从而使部件可见。而若是将部件由显示状态调整到隐藏状态,则部件的初始尺寸可以为第二阈值,尺寸为第二阈值的部件肉眼可见。将部件的尺寸调整为小于第一阈值,则部件如肉眼不可见,实现将部件由显示状态调整到隐藏状态。

需要说明的是上述第二阈值可以根据部件的不同而不同。例如,刀剑等各种武器的尺寸不同,在调整的过程中,第二阈值也不相同。巨剑的第二阈值可以大一些,匕首的第二阈值可以小一些,上述数值可以根据具体情况灵活确定。

可选地,上述对第一部件或者对第二部件进行调整的过程中,将部件由隐藏状态调整为显示状态还可以对部件的图层进行更改。例如,虚拟人物处于第一图层上,在第一图层之外,还包括第二图层。需要隐藏的部件位于第二图层上,需要显示的部件位于第一图层上。当需要将虚拟角色的可使用的部件例如衣服进行调整时,将第一图层的衣服调整到第二图层上,将第二图层的衣服调整到第一图层上,从而实现一帧更换虚拟角色的衣服等部件。

可选地,可选地,上述对第一部件或者对第二部件进行调整的过程中,将部件由隐藏状态调整为显示状态还可以对部件的透明度进行修改。例如,需要隐藏的部件的透明度设置为百分之百,则肉眼不可见,而需要显示的部件透明度可以设置为小于百分之百,则肉眼可见。在将虚拟角色的部件如发饰由隐藏调整为显示时,可以将发饰的透明度由百分之百降低到百分之百以下,从而实现一帧对发饰进行调整。

可选地,在运行依据游戏之前,需要为虚拟角色配置一个或多个可使用的部件以及每个可使用的部件的状态。状态包括第一状态与第二状态。如虚拟角色为一名剑客,则虚拟角色可能使用到的三把剑都需要预先配置,并为每把剑都配置隐藏状态与显示状态。

可选地,在运行一局游戏之前,需要获取虚拟角色与虚拟角色的所有可使用的部件。而虚拟角色上设置有多个骨骼点,骨骼点用于与每个可使用的部件进行绑定。例如,如图6所示,图6为一个可选的虚拟角色的样式图,虚拟角色的身上选取有多个骨骼点,如骨骼点602与骨骼点604等。骨骼点可以选取在虚拟角色的任何位置,图6仅为示例。而虚拟角色的所有的可使用的部件需要与骨骼点绑定。如骨骼点602绑定有一把剑,骨骼点604绑定有一把刀。在将部件绑定到虚拟角色的骨骼点上时,还需要设置各个部件的显示状态,显示状态为隐藏或显示。如,将图6中骨骼点绑定的604绑定的刀隐藏,则在界面显示时只能看到虚拟角色手持一把剑,而看不到手持的刀。

可选地,部件同样需要设置绑定点。如图7所示。图7中的一把刀设置有绑定点702,在绑定刀与虚拟角色时,将刀的绑定点702绑定刀虚拟角色的骨骼点上。图7中的绑定点仅为示例,部件上可以设置多个绑定点,用于绑定不同的骨骼点。

可选地,一个部件可以与多个骨骼点绑定。如一把刀与虚拟角色背上的骨骼点绑定,同时与虚拟角色手上的骨骼点绑定。此时,通过控制背上的刀与手上的刀的隐藏与显示即可实现一帧切换刀的位置(从背上切换到手上或从手上切换到背上)。

可选地,虚拟角色的骨骼点在虚拟角色身上的位置可以重合,但是重合的骨骼点需要有不同的标识,如编号等。以对虚拟角色的部件进行调整时,可以根据骨骼点对部件进行调整。

可选地,在部件调整指令中可以携带有所要调整的骨骼点的标识,在接收到部件调整指令后,根据部件调整指令中携带的骨骼点的标识查找虚拟角色的骨骼点,找到匹配的骨骼点之后,更改与骨骼点绑定的部件的状态,如从隐藏状态调整为显示状态。

可选地,在接收到部件调整指令后,若是检测虚拟角色的骨骼点时,未能检测到虚拟角色的骨骼点,说明虚拟角色不包括可调整的部件,仅有显示的一个部件。此时,仍保持虚拟角色所显示的部件状态不变。如虚拟角色手持一把刀,则说明虚拟角色不能持有其他武器。此时,接收到部件调整指令后,仍显示虚拟角色手持的刀,而不做其他改变。或者,此时可以发出相应的提示信息,以提示虚拟角色仍持有刀的原因。

以下结合图8的步骤s802到s814对上述虚拟角色的控制方法进行说明。在对虚拟角色的骨骼点进行控制之前需要获取并缓存虚拟角色的骨骼点与绑定在骨骼点上的部件的状态。而在获取虚拟角色的骨骼点之前,在游戏开始之前需要为虚拟角色预设骨骼点与绑定在骨骼点上的部件的状态。作为一种示例,fbx文件通常为用于在不同的软件之间实现游戏的模型、材质、动作与摄影机信息的互导的文件。上述互导为从一个软件中导出,导入到另一个软件中。例如,在一个软件上设计好虚拟角色的动作信息,然后导出虚拟角色的动作信息为一个fbx格式的文件,在其他软件上调用该fbx格式的文件可以实现虚拟角色执行上述动作信息所指示的动作。在具体实现中,将虚拟角色所在的fbx文件与各个部件所在的fbx文件合并为一个fbx文件,一个fbx文件中即保存有虚拟角色本体的信息与虚拟角色可使用的各个部件的信息。并且通过脚本将合并后的fbx文件导出成为游戏运行时读取的prefab文件,并在prefab文件上挂在状态机animator等信息。最终通过游戏中的逻辑帧脚本控制对应骨骼绑点的缩放信息。在获取骨骼点与绑定在骨骼点上的部件的状态时,需要使用预先制作的工具导出fbx文件生成的prefab文件中的状态信息,并保存到animationclips文件中。在获取并缓存虚拟角色的骨骼点与绑定在骨骼点上的部件的状态后,在运行一局游戏的过程中,运行帧脚本。检测部件调整指令。在检测到部件调整指令后,检测是否有与部件调整指令对应的骨骼点。若是检测到与部件调整指令对应的骨骼点,则骨骼点上绑定的部件的状态。在具体实现中,因为在maya等软件输出的fbx动作文件中,会保存关于骨骼点的状态信息,如果在游戏运行过程中仍然保存这一信息会导致脚本在更改了对应骨骼点的状态信息后的下一帧(1/30秒)中,保存的状态信息会被重新覆盖,导致无法长期控制想要的模型变化效果。相当于骨骼点的状态信息被锁定,无法改变。此时,需要制作一个动作优化插件,动作优化插件用于检测到锁定的骨骼点的状态信息。如图8中的步骤s808,检测到骨骼点?若是检测到了锁定的骨骼点,则利用动作优化插件对锁定的骨骼点的状态信息进行解锁,提出从fbx文件中导出到animationclips文件中的的骨骼点的状态信息并根据部件调整指令进行调整与骨骼点绑定的部件的状态。

通过本实施例,通过在客户端运行一局游戏的过程中,在客户端上显示一局游戏的虚拟场景中的虚拟角色;在客户端上接收到与虚拟角色相关的部件调整指令;响应于部件调整指令将虚拟角色的第一部件由第一状态调整为第二状态的方法,从而在对虚拟角色的部件进行切换时,仅根据相关的指令调整对应的部件即可,无需对虚拟角色与部件的整体进行切换,提高了对虚拟角色的部件进行切换的效率。

作为一种可选的实施方案,如图10所示,上述装置还包括:

(1)第二调整单元1002,用于在响应于部件调整指令将虚拟角色的第一部件由第一状态调整为第二状态时,响应于部件调整指令将虚拟角色的第二部件由第二状态调整为第一状态,其中,多个部件包括第二部件。

可选地,上述第二部件可以与上述第一部件为相同的部件或者为不同的部件。若是第二部件与第一部件相同,如为一把刀,则第二部件与第一部件位于虚拟角色的位置不同。如第一部件被虚拟角色拿在手中,第二部件被虚拟角色背在背上。而第一部件与第二部件的状态一个为隐藏一个为显示。此时在对第一部件与第二部件的状态进行更改之后,如第一部件由隐藏调整为显示,第二部件由显示调整为隐藏,则在外观显示上,虚拟角色由背上背着刀变为手上持着刀。

通过本实施例,通过在对第一部件进行调整时,响应部件调整指令对第二部件进行调整,从而提高了对虚拟角色的部件进行调整的调整效率。

作为一种可选的实施方案,如图11所示,上述第一调整单元906包括:

(1)第一调整模块1102,用于在第一状态为显示状态、第二状态为隐藏状态的情况下,将第一部件的尺寸缩小到第一阈值,其中,缩小到第一阈值的第一部件不可见;

(2)第二调整模块1104,用于在第一状态为隐藏状态、第二状态为显示状态的情况下,将第一部件的尺寸增大到第二阈值,其中,增大到第二阈值的第一部件可见。

例如,以第一阈值为一个很小的数值如1个像素的大小为例,则在将第一部件缩小到的一个像素的大小后,在显示界面上肉眼并不可见,由此可以实现对第一部件的隐藏。而第二阈值可以为正常显示大小,如500个像素大小,则将第一部件由一个像素大小保持纵横比增大到500个像素大小,实现将第一部件由隐藏调整到显示。

通过本实施例,通过在调整第一部件时,将第一部件调整为不可见或者由不可见调整为可见,从而实现了对第一部件的隐藏与显示的灵活调整,提高了游戏过程中对第一部件的调整效率。

作为一种可选的实施方案,如图12所示,上述装置还包括:

(1)第一获取单元1202,用于在一局游戏运行之前,获取虚拟角色与虚拟角色的多个部件,其中,虚拟角色包含多个骨骼点,多个骨骼点为在虚拟角色上选取的点;

(2)绑定单元1204,用于将多个部件中的第一部件绑定在虚拟角色的第一骨骼点上,第一骨骼点为多个骨骼点中的一个骨骼点,第一部件为多个部件中的一个部件。。

例如,如图6所示,图6为一个可选的虚拟角色的样式图,虚拟角色的身上选取有多个骨骼点,如骨骼点602与骨骼点604等。骨骼点可以选取在虚拟角色的任何位置。

需要说明的是,一个虚拟角色可以包括多个骨骼点,每一个骨骼点与一个虚拟角色的部件绑定,一个虚拟角色的一个部件可以绑定多个不同的骨骼点。多个骨骼点的位置可以重合,但是重合的骨骼点有不同的标识以区分。

通过本实施例,通过在虚拟角色上选取多个骨骼点并绑定虚拟角色的部件,从而实现通过骨骼点对虚拟角色的部件的状态的调整,提高了对虚拟角色的部件进行调整的效率。

作为一种可选的实施方案,如图13所示,上述装置还包括:

(1)第二获取单元1302,用于在一局游戏的运行过程中,在接收到部件调整指令的情况下,获取部件调整指令中所携带的第一骨骼点;

(2)第三调整单元1304,用于将第一骨骼点所绑定的部件的状态由第一状态调整为第二状态。

可选地,由于在游戏运行的过程中,在执行脚本时,可以获取到部件调整指令,而部件调整指令中携带有所要调整的骨骼点的信息。例如,携带有需要调整的骨骼点的编号,如001、002等。根据上述编号,可以查找到虚拟角色的骨骼点,并获取骨骼点所绑定的部件以及部件的状态。若是部件为隐藏状态,则修改为显示状态,若是部件为显示状态,则修改为隐藏状态。

通过本实施例,通过根据部件调整指令中携带的骨骼点调整虚拟角色的可使用的部件的状态,从而实现对虚拟角色的部件的灵活调整,提高了调整虚拟角色的部件的效率。

作为一种可选的实施方案,如图14所示,上述装置还包括:

(1)配置单元1402,用于在显示界面上显示一局游戏的虚拟场景中的虚拟角色之前,为虚拟角色配置多个部件以及多个部件的状态,其中,多个部件中的每一个部件的状态包括第一状态与第二状态。

可选地,在进行一局游戏之前,需要预先配置虚拟角色的多个部件以及多个部件的状态。例如,虚拟角色可以使用的部件为刀、剑,可以携带的配饰包括帽子、衣服,则需要预先将刀、剑、帽子、衣服与虚拟角色的身体上的骨骼点进行绑定,并设定好刀、剑、帽子、衣服的状态。如刀为隐藏状态,剑为显示状态,帽子、衣服都为显示状态。在游戏的过程中可以对刀、剑、帽子、衣服的状态进行修改,以实现部件的切换。

通过本实施例,通过预先配置多个部件与多个部件的状态,从而实现了可以对虚拟角色的部件进行灵活的调整,提高了虚拟角色的部件的调整效率。

作为一种可选的实施方案,如图15所示,上述第一调整单元906包括:

(1)维持模块1502,用于在未检测到虚拟角色的角色本体的骨骼点的情况下,在客户端上显示虚拟角色的第一部件维持第一状态不变。

可选地,由于虚拟角色可能仅仅包含一个可使用的部件,如刀,刀位于虚拟角色的手上,则此时,虚拟角色无法更换部件。此时,若是接收到部件调整指令,则不对虚拟角色的部件:刀的状态进行改变。

通过本实施例,通过在未检测到虚拟角色的骨骼点的情况下,保持虚拟角色的第一部件的第一状态不变,从而避免了在调整虚拟角色部件时出现错误,提高了对虚拟角色的部件进行调整的准确性。

根据本发明实施例的又一个方面,还提供了一种用于实施上述虚拟角色控制方法的电子装置,如图16所示,该电子装置包括存储器1602和处理器1604,该存储器1602中存储有计算机程序,该处理器1604被设置为通过计算机程序执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

s1,在一局游戏的运行过程中,在显示界面上显示一局游戏的虚拟场景中的虚拟角色;

s2,接收与虚拟角色相关的部件调整指令;

s3,响应于部件调整指令将虚拟角色的第一部件由第一状态调整为第二状态,其中,第一状态为隐藏状态或显示状态中的一种,第二状态为隐藏状态或显示状态中的另一种,虚拟角色在一局游戏中被允许使用的部件为包括第一部件在内的多个部件,在调整第一部件的状态时,维持虚拟角色的状态不变。

可选地,本领域普通技术人员可以理解,图16所示的结构仅为示意,电子装置也可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图16其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图16中所示更多或者更少的组件(如网络接口等),或者具有与图16所示不同的配置。

其中,存储器1602可用于存储软件程序以及模块,如本发明实施例中的虚拟角色控制方法和装置对应的程序指令/模块,处理器1604通过运行存储在存储器1602内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的虚拟角色控制方法。存储器1602可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1602可进一步包括相对于处理器1604远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1602具体可以但不限于用于存储虚拟角色的各个部件的状态等信息。作为一种示例,如图16所示,上述存储器1602中可以但不限于包括上述虚拟角色控制装置中的显示单元902、接收单元904与第一调整单元906。此外,还可以包括但不限于上述虚拟角色控制装置中的其他模块单元,本示例中不再赘述。

可选地,上述的传输装置1606用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1606包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1606为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

此外,上述电子装置还包括:显示器1608,用于显示上述第一虚拟角色与第一虚拟角色的各个可使用的部件;和连接总线1610,用于连接上述电子装置中的各个模块部件。

根据本发明的实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,在一局游戏的运行过程中,在显示界面上显示一局游戏的虚拟场景中的虚拟角色;

s2,接收与虚拟角色相关的部件调整指令;

s3,响应于部件调整指令将虚拟角色的第一部件由第一状态调整为第二状态,其中,第一状态为隐藏状态或显示状态中的一种,第二状态为隐藏状态或显示状态中的另一种,虚拟角色在一局游戏中被允许使用的部件为包括第一部件在内的多个部件,在调整第一部件的状态时,维持虚拟角色的状态不变。

可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

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

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