基于虚拟现实的控制方法和装置与流程

文档序号:17955743发布日期:2019-06-19 00:26阅读:161来源:国知局
基于虚拟现实的控制方法和装置与流程

本发明涉及虚拟现实技术领域,具体而言,涉及一种基于虚拟现实的控制方法和装置。



背景技术:

虚拟现实系统,强调用户在虚拟现实世界中的沉浸感,注重提升用户体验。而在虚拟的世界中,用户有着与在真实世界中相同的心理模型,即人与人之间需要存在一个安全距离,如果靠得太近,就会产生心理压迫感。例如,当其他用户走到你面前,阻挡你的可视范围,或者对你进行虚拟的人身攻击时,会对你产生一定的干扰,使你产生心理负担。

现有的技术方案为中,用户可以在虚拟的三维世界中随意走动,当用户在移动时,对其他用户造成干扰,会使其他用户产生心理负担,降低用户的体验。

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



技术实现要素:

本发明实施例提供了一种基于虚拟现实的控制方法和装置,以至少解决在虚拟现实系统中,对象移动时对其他对象造成干扰的技术问题。

根据本发明实施例的一个方面,提供了一种基于虚拟现实的控制方法,包括:虚拟现实终端检测第一对象发起的移动操作;所述虚拟现实终端根据所述移动操作向服务器发送移动请求;所述虚拟现实终端接收所述服务器根据所述移动请求生成的可移动区域,其中,所述可移动区域不包括第二对象的安全区域,所述安全区域为不允许所述第一对象移动的区域,所述第二对象为当前场景中预定区域内的任意一个对象;所述虚拟现实终端向所述第一对象提示所述可移动区域,其中,所述第一对象根据提示的所述可移动区域进行移动操作。

根据本发明实施例的另一方面,还提供了一种基于虚拟现实的控制装置,包括:检测单元,用于通过虚拟现实终端检测第一对象发起的移动操作;第一发送单元,用于通过所述虚拟现实终端根据所述移动操作向服务器发送移动请求;第一生成单元,用于通过所述虚拟现实终端接收所述服务器根据所述移动请求生成的可移动区域,其中,所述可移动区域不包括第二对象的安全区域,所述安全区域为不允许所述第一对象移动的区域,所述第二对象为当前场景中预定区域内的任意一个对象;第一提示单元,用于通过所述虚拟现实终端向所述第一对象提示所述可移动区域,其中,所述第一对象根据提示的所述可移动区域进行移动操作。

在本发明实施例中,采用虚拟现实终端检测检测第一对象发起的移动操作,根据移动操作向服务器发送移动请求,并接收服务器根据该移动请求和场景内其它对象的位置生成的可移动区域的方式,通过将可移动区域提示给第一对象,使第一对象按照该提示移动,达到了第一对象在当前场景内的可移动区域进行移动的目的,从而实现了在虚拟现实系统中,第一对象根据当前场景内的其他对象的位置进行移动的技术效果,进而解决了在虚拟现实系统中,对象移动时对其他对象造成干扰的技术问题。

附图说明

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

图1是根据本发明实施例的硬件系统的架构图;

图2是根据本发明实施例的一种可选的基于虚拟现实的控制方法的流程图;

图3是根据本发明实施例的根据安全区域进行移动的示意图;

图4是根据本发明实施例的在移动进入安全区域的示意图;

图5是根据本发明实施例的位置同步的流程图;

图6是根据本发明实施例的一种可选的基于虚拟现实的控制方法的流程图;

图7是根据本发明实施例的一种可选的基于虚拟现实的控制方法的流程图;

图8是根据本发明实施例的一种可选的基于虚拟现实的控制装置的示意图;

图9是根据本发明实施例的终端的示意图。

具体实施方式

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

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

实施例1

根据本发明实施例,提供了一种可以通过本申请装置实施例执行的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

根据本发明实施例,提供了一种基于虚拟现实的控制方法。

可选地,在本实施例中,上述基于虚拟现实的控制方法可以应用于如图1所示的终端102和服务器104所构成的硬件环境中。如图1所示,终端102通过网络与服务器104进行连接,上述网络包括但不限于:移动通信网络、广域网、城域网或局域网,终端102可以是虚拟现实终端,手机终端,也可以是PC终端、笔记本终端或平板电脑终端。

图1中示出的硬件环境系统的工作原理是:

以终端102为虚拟现实终端为例,第一对象与终端102相关联,即第一对象为终端102所示的虚拟现实终端的用户,在第一对象发起移动操作时,终端102检测到该移动操作,并向服务器104发送移动请求,服务器104根据该移动请求和当前场景下所有的对象的安全区域生成可移动区域,并将可移动区域返回给终端102,终端102根据可移动区域提示第一对象进行移动。

图2是根据本发明实施例的一种可选的基于虚拟现实的控制方法的流程图,以下结合图2对本发明实施例所提供的基于虚拟现实的控制方法做具体介绍,如图2所示,该基于虚拟现实的控制方法主要包括如下步骤S202至步骤S208:

步骤S202,虚拟现实终端检测第一对象发起的移动操作。

步骤S204,虚拟现实终端根据移动操作向服务器发送移动请求。

在第一对象需要进行移动时,发起移动操作,虚拟现实终端能够检测第一对象发起的移动操作,虚拟现实终端检测到该移动操作后,根据该移动操作向服务器发送移动请求。

例如:在第一对象将要移动时,通过操作控制器,如:操控杆、体感控制器等做出相应操作,或者根据预定义的语音或者手势等,进行语音或者手势控制,发起移动操作,表示第一对象将要进行移动;虚拟现实终端在检测到第一对象发起的移动操作之后,向服务器发送移动请求,请求对第一对象的位置进行移动。

步骤S206,虚拟现实终端接收服务器根据移动请求生成的可移动区域,其中,可移动区域不包括第二对象的安全区域,安全区域为不允许第一对象移动的区域,第二对象为当前场景中预定区域内的任意一个对象。

步骤S208,虚拟现实终端向第一对象提示可移动区域,其中,第一对象根据提示的可移动区域进行移动操作。

虚拟现实终端向服务器发送移动请求之后,接收服务器根据该移动请求生成的可移动区域。可移动区域是由服务器生成的,表示允许第一对象进行移动的区域。在当前场景下可能包括有多个对象,每个对象都有自己的安全区域,除自己以外的其它对象不得进入该安全区域,因此,第一对象的可移动区域不能包括其它对象的安全区域。虚拟现实终端将接收到的可移动区域提示给第一对象,第一对象根据提示的可移动区域选择移动位置进行移动。

在本发明实施例中,采用虚拟现实终端检测检测第一对象发起的移动操作,根据移动操作向服务器发送移动请求,并接收服务器根据该移动请求和场景内其它对象的位置生成的可移动区域的方式,通过将可移动区域提示给第一对象,使第一对象按照该提示移动,达到了第一对象在当前场景内的可移动区域进行移动的目的,从而实现了在虚拟现实系统中,第一对象根据当前场景内的其他对象的位置进行移动的技术效果,进而解决了在虚拟现实系统中,对象移动时对其他对象造成干扰的技术问题。

可选地,在虚拟现实终端向第一对象提示可移动区域之后,该方法还包括:虚拟现实终端接收第一对象发送的位置选择指令,其中,位置选择指令用于指示第一对象选择移动的目标位置;虚拟现实终端判断目标位置是否处于可移动区域;如果虚拟现实终端判断出目标位置处于可移动区域,则提示第一对象可移动至目标位置;如果虚拟现实终端判断出目标位置未处于可移动区域,则提示第一对象不可移动至目标位置。

在虚拟现实终端将服务器生成的可移动区域提示给第一对象之后,第一对象根据提示的可移动区域,选择移动的目标位置,在第一对象选择移动的目标位置后,将目标位置发送给虚拟现实终端,虚拟现实终端判断该目标位置是否在可移动区域内,并给出相应提示:当目标位置在可移动区域内时,提示第一对象可以移动到目标位置;当目标位置不在可移动区域内时,提示第一对象不可以移动到目标位置。其中,提示可以为多种形式,如:语音提示,视觉提示,感觉提示等。

如图3所示:第一对象为B,第二对象为A,安全距离是A针对B设置的安全距离,圆形区域为A针对B的安全区域,B此时选择其要移动的目标位置,并将该目标位置发送虚拟现实终端,虚拟现实终端对B的目标位置进行判断:如果目标位置在可移动区域内,则向B发出可以移动到目标位置的提示,如:播放预先定义的声音或者人性化的语音,或者在视觉系统中令该目标位置显示为绿色,或者使控制器按照预先定义的方式进行振动,或者采用多种方式结合来进行提示;如果目标位置在A的安全区域内,则向B发出不可以移动到目标位置的提示,相应的,该提示可以为:播放预先定义的其它声音或者人性化的语音,或者在视觉系统中令该目标位置显示为红色,或者使控制器按照预先定义的其它方式进行振动,同样地,也可以采用多种方式结合来进行提示。

在虚拟现实系统中,根据当前场景的不同,第一对象的移动方式可以为瞬间移动或者普通移动,其中,瞬间移动是指从初始位置直接移动到目标位置的位置变化;普通移动是指从初始位置去往目标位置的位置移动过程。当第一对象进行瞬间移动时,第一对象发起瞬间移动操作;虚拟现实终端检测到该瞬间移动操作后向服务器发送移动请求;服务器接收移动请求并生成可移动区域,将可移动区域返回给虚拟现实终端;虚拟现实终端将可移动区域提示给第一对象;此时,第一对象可以选择瞬间移动的目标位置,并将目标位置发送给虚拟现实终端;虚拟现实终端判断目标位置是否在可移动区域内:如果虚拟现实终端判断出目标位置不在可移动区域内,则向第一对象发出提示,不可以瞬间移动到目标位置,瞬间移动无法完成,第一对象需要重新选择瞬间移动的目标位置;如果虚拟现实终端判断出目标位置在可移动区域内,则向第一对象发出提示,可以瞬间移动到目标位置,并完成相应的瞬间移动。当第一对象进行普通移动时,第一对象发起普通移动操作;虚拟现实终端检测到该普通移动操作后向服务器发送移动请求;服务器接收移动请求并生成可移动区域,将可移动区域返回给虚拟现实终端;虚拟现实终端将可移动区域提示给第一对象;此时第一终端可以第一对象可以选择普通移动的目标位置,并将目标位置发送给虚拟现实终端;虚拟现实终端判断目标位置是否在可移动区域内:如果虚拟现实终端判断出目标位置不在可移动区域内,则向第一对象发出提示,不可以移动到目标位置,移动无法完成,第一对象需要重新选择普通移动的目标位置;如果虚拟现实终端判断出目标位置在可移动区域内,则向第一对象发出提示,可以移动到目标位置,并根据可移动区域自动规划出移动路径,第一对象按照该路径移动到目标位置。

可选地,移动操作包括第一对象选择移动的目标位置,在虚拟现实终端接收服务器根据移动请求生成的可移动区域之前,该方法还包括:虚拟现实终端接收服务器根据目标位置生成的第一提示信息,其中,第一提示信息用于指示目标位置处于安全区域,且提示不允许第一对象移动至目标位置;或者,虚拟现实终端接收服务器根据目标位置生成的第二提示信息,其中,第二提示信息用于指示目标位置处于安全区域以外,且提示允许第一对象移动至目标位置。

第一对象也可以先选定移动的目标位置,即在第一对象发起移动操作时,移动操作中包括有第一对象的目标移动位置,虚拟现实终端根据该移动操作向服务器发送移动请求。服务器在收到该移动请求后,获取请求中包括的目标移动位置,判断该目标移动位置是否在可移动区域内,并生成相应的提示信息,将提示信息发送给虚拟现实终端,即在虚拟现实终端接收到服务器生成的可移动区域之前,接收到服务器根据目标位置生成的提示信息,可选地,在目标位置不在可移动区域中时,接收到第一提示信息,第一提示信息指示目标位置在其它对象的安全区域,不允许第一对象移动到该目标位置;在目标位置在可移动区域中时,接收到第二提示信息,第二提示信息指示目标位置不在其它对象的安全区域,允许第一对象移动到该目标位置。

同样的,第一对象的移动方式可以为瞬间移动或者普通移动。当第一对象进行瞬间移动时,第一对象发起瞬间移动操作,该操作中包括有第一对象瞬间移动的目标位置;虚拟现实终端检测到瞬间移动操作后向服务器发送移动请求;服务器接收移动请求,生成可移动区域,并对目标位置进行判断生成提示信息:在服务器判断目标位置不在可移动区域内时,生成第一提示信息,提示目标位置在其他对象的安全区域内,第一对象不能瞬间移动到该目标位置;服务器将第一提示信息返回给虚拟现实终端,虚拟现实终端按照第一提示信息提示第一对象不能瞬间移动目标位置;在服务器判断目标位置在可移动区域内时,生成第二提示信息,提示目标位置不在其他对象的安全区域内,第一对象可以瞬间移动到该目标位置;服务器将第二提示信息发送给虚拟现实终端,虚拟现实终端按照第二提示信息提示第一对象可以瞬间移动到目标位置,第一对象完成瞬间移动。当第一对象进行普通移动时,第一对象发起普通移动操作,该操作中包括有第一对象移动的目标位置;虚拟现实终端检测到该移动操作后向服务器发送移动请求;服务器接收移动请求,生成可移动区域,并对目标位置进行判断生成提示信息:在服务器判断目标位置不在可移动区域内时,生成第一提示信息,提示目标位置在其他对象的安全区域内,第一对象不能移动到该目标位置;服务器将第一提示信息返回给虚拟现实终端,虚拟现实终端按照第一提示信息提示第一对象不能移动目标位置;在服务器判断目标位置在可移动区域内时,生成第二提示信息,提示目标位置不在其他对象的安全区域内,第一对象可以移动到该目标位置,同时服务器根据目标位置和可移动区域规划出移动路径;服务器将第二提示信息和移动路径发送给虚拟现实终端,虚拟现实终端提示第一对象可以移动到目标位置,第一对象按照该路径移动到目标位置。

当第一对象位置发生移动之后,虚拟现实终端会同时获取第一对象和其它对象的位置信息,并判断第一对象是否移动到了其它对象的安全区域内,如果第一对象移动进入到了其它对象的安全区域内,则虚拟现实终端向第一对象发出提示,提示第一对象离开其所在的其它对象的安全区域,即:在虚拟现实终端向第一对象提示可移动区域之后,该方法还包括:虚拟现实终端获取第一对象的实时位置和第二对象的实时位置;当第一对象的实时位置处于第二对象的安全区域时,虚拟现实终端提示第一对象离开第一对象当前所处的区域。如图4所示,第一对象为B,第二对象为A,安全距离为A针对B设置的安全距离,圆形区域为A针对B的安全区域,B经过移动后的位置在A的安全区域内,此时,虚拟现实终端获取到A和B的位置,并判断出B进入了A的安全区域,则虚拟现实终端向B发出提示,提示B离开A的安全区域,直到B离开A的安全区域后,停止向B发送提示。

可选地,在虚拟现实终端根据移动操作向服务器发送移动请求之后,该方法还包括:服务器获取第一对象所在的当前场景中每个对象的安全距离;服务器根据安全距离生成每个对象的安全区域,其中,在二维空间中安全区域为圆形区域,在三维空间中安全区域为球形区域;服务器从当前场景中删除每个对象的安全区域,得到可移动区域。

可选地,服务器获取第一对象所在的当前场景中每个对象的安全距离包括:服务器获取每个对象针对第一对象预先设置的安全距离或者默认安全距离,其中,预先设置的安全距离为每个对象根据其与第一对象的关联关系得到。

当前场景中可能包括有多个对象,每个对象有自己的安全区域,除自己以外的其它对象不得在该安全区域内移动。对象的安全区域是根据对象当前所处位置以及其针对其他对象的安全距离得到的。当场景为二维空间时,对象的安全区域是指,以该对象所在位置为圆心,以安全距离为半径的圆形区域;当场景为三维空间时,对象的安全区域是指,以该对象所在位置为球心,以安全距离为球半径的球形区域。第一对象只能在当前场景中除了其它对象安全区域以外的区域进行移动,即当前场景区域删除掉其它对象的安全区域后得到的区域为第一对象的安全区域。另外,在计算其它对象针对第一对象的安全区域时,安全距离是指其它对象针对第一对象所设置的安全距离,不同对象针对第一对象所设置的安全距离可以根据其与第一对象的关系设置进设置,例如:A对象与第一对象的关系为朋友关系,则A对象对于第一对象的安全距离可以设置为1个单位长度,B对象与第一对象的关系为敌人关系,则B对象对于第一对象的安全距离可以设置为3个单位长度,C对象和D对象与第一对象的关系为普通关系,则C对象和D对象对于第一对象的安全距离不用进行特别设置,默认为2个单位长度。

可选地,在虚拟现实终端检测第一对象发起的移动操作之前或者之后,该方法还包括:虚拟现实终端在位置改变时向服务器发送位置同步请求,其中,服务器根据位置同步请求更新存储的虚拟现实终端的位置;虚拟现实终端接收服务器发送的位置同步通知,其中,位置同步通知包括第一对象所处的当前场景中每个对象的当前位置。

服务器通过在当前场景的区域删除掉其它对象的安全区域,得到第一对象的可移动区域。在服务器中事先存储有所有对象位置,并且在对象的位置发生变化时,服务器与该对象进行位置同步,更新该对象的当前位置。例如:服务器中存储有当前场景下所有对象的位置信息(对象与虚拟现实终端相关联,对象的位置信息也即其关联的虚拟现实终端的位置信息)第一对象移动后位置发生变化,其关联的虚拟现实终端向服务器发送位置同步请求,请求服务器根据第一对象当前位置对其原位置进行更新;服务器接到同步请求后,根据第一对象的当前位置,对第一对象的位置进行更新,并将位置更新通知发送给第一对象,在位置更新通知中包括有第一对象更新后的位置,同时还包含有当前场景下所有其他对象的当前位置。同时,服务器也会将第一对象的位置更新通知发送给当前场景内的其他对象。

如图5所示,在同步服务器中事先存储有虚拟现实终端A和虚拟现实终端B的位置,其中,虚拟现实终端A与对象A相关联(对象A相当于第一对象),虚拟现实终端B与对象B相关联,当对象A的位置变化时,向服务器请求位置同步,主要包括如下步骤:

1、请求同步用户位置。对象A移动后,位置发生变化,虚拟现实终端A检测到对象A的位置发生变化,获取对象A的当前位置,向同步服务器发送位置同步请求,请求位置同步。

2、确认同步请求,以及同步所有用户位置。同步服务器根据位置同步请求,更新对象A的位置,并向虚拟现实终端发送更新通知,确认同步请求,更新通知中包括有对象A更新后的位置,同时还包含有当前场景下对象B的当前位置;同时同步服务器向虚拟现实终端B发送对象A的位置更新的通知,将对象A的当前位置通知对象B。

可选地,服务器为第一对象所处的当前场景中的目标虚拟现实终端,目标虚拟现实终端为当前场景中任一对象所关联的虚拟现实终端,虚拟现实终端根据移动操作向服务器发送移动请求包括:虚拟现实终端根据移动操作向目标虚拟现实终端发送移动请求。

当前场景中所有对象所关联的虚拟现实终端连接形成一个网络,可以在该网络中单独设置的一台服务器,也可以选择网络中任意一个对象所关联的虚拟现实终端作为服务器。网络中的某一对象所关联的虚拟现实终端作为服务器时,该虚拟现实终端作为当前场景中的目标虚拟现实终端。向服务器发送移动请求,也就是向该目标虚拟现实终端发送移动请求。

图6是根据本发明实施例的一种可选的基于虚拟现实的控制方法的流程图,在如图6所示的方法实施例中,当前场景下包括有终端用户(相当于第一对象),终端用户与虚拟现实终端相关联,其中,终端用户根据虚拟现实终端的提示选择移动位置进行移动,终端用户进行移动的具体步骤如下:

1、触发移动。终端用户通过操作控制器,如:操控杆、体感控制器等做出相应操作,或者根据预定义的语音或者手势等,进行语音或者手势控制,发起移动操作,虚拟现实终端检测到移动操作,触发移动。

2、触发可移动区域计算。虚拟现实终端根据检测到的移动操作,向同步服务器发送移动请求,触发可移动区域计算;同步服务器根据移动请求生成的可移动范围(相当于可移动区域),具体地:同步服务器事先存储的当前场景内的所有终端用户的位置以及终端用户的安全距离得到所有终端用户的安全区域,从当前场景的区域中删除所有终端用户的安全区域,即得到可移动范围。

3、返回可移动范围。同步服务器将生成的可移动范围返回给虚拟现实终端。

4、显示可移动范围。虚拟现实终端根据可移动范围对终端用户进行移动提示,向终端用户显示可移动范围,并在终端用户选择移动目标位置后对终端用户进行提示:若虚拟现实终端判断出移动目标位置处于可移动范围内,则提示终端用户可移动至目标位置;如果虚拟现实终端判断出目标位置处于可移动范围之外,则提示终端用户不可移动至目标位置。

图7是根据本发明实施例的一种可选的基于虚拟现实的控制方法的流程图,在如图7所示的方法实施例中,当前场景下包括有终端用户(相当于第一对象),终端用户与虚拟现实终端相关联,在终端用户移动的过程中,虚拟现实终端根据终端用户移动后的位置,对终端用户进行提示,终端用户进行移动的具体步骤如下:

1、选择移动位置。终端用户发起移动操作,选择移动的目标位置,并移动到该目标位置;虚拟现实终端检测到移动操作,并获取终端用户的移动后的位置。

2、同步移动位置。虚拟现实终端根据检测到的移动操作及终端用户移动后的位置,向同步服务器发送移动请求,同时请求同步服务器根据移动的位置对终端用户的位置进行更新。同步服务器根据移动请求生成的可移动区域,具体地:同步服务器事先存储的当前场景内的所有终端用户的位置以及终端用户的安全距离得到所有终端用户的安全区域,从当前场景的区域中删除所有终端用户的安全区域,即得到可移动区域;同步服务器判断该移动后的位置是否在可移动区域内。

3、触发用户离开提示。同步服务器判断出移动后的位置不在可移动区域内,则触发用户离开提示,并持续将用户离开提示发送给虚拟现实终端。

4、执行用户提示。虚拟现实终端接收到用户离开提示后,提示终端用户离开当前位置。

5、选择移动位置。终端用户根据提示,通过控制器发起移动操作,选择新的目标位置,离开当前位置,移动到新的目标位置;虚拟现实终端检测到移动操作,并获取终端用户移动后的新的位置。

6、同步移动位置。虚拟现实终端根据检测到的移动操作及终端用户新的位置,向同步服务器发送移动请求,同时请求同步服务器根据新的位置对终端用户的位置进行更新。同步服务器根据移动请求再次生成的可移动区域,判断该新的位置是否在可移动区域内。

7、停止用户离开提示。同步服务器判断出新的位置在可移动区域内,停止向虚拟现实终端发送用户离开提示,同时根据新的位置对终端用户位置进行更新。

8、停止用户提示。虚拟现实终端不再接收到用户离开提示后,停止对终端用户的提示。终端用户完成位置移动。

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

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

根据本发明实施例,还提供了一种用于实施上述基于虚拟现实的控制方法的基于虚拟现实的控制装置,该基于虚拟现实的控制装置主要用于执行本发明实施例上述内容所提供的基于虚拟现实的控制方法,以下对本发明实施例所提供的基于虚拟现实的控制装置做具体介绍:

图8是根据本发明实施例的一种可选的基于虚拟现实的控制装置的示意图,如图8所示,该基于虚拟现实的控制装置主要包括:

检测单元801,用于通过虚拟现实终端检测第一对象发起的移动操作;

第一发送单元802,用于通过虚拟现实终端根据移动操作向服务器发送移动请求;

在第一对象需要进行移动时,发起移动操作,虚拟现实终端能够检测第一对象发起的移动操作,虚拟现实终端检测到该移动操作后,根据该移动操作向服务器发送移动请求。

例如:在第一对象将要移动时,通过操作控制器,如:操控杆、体感控制器等做出相应操作,或者根据预定义的语音或者手势等,进行语音或者手势控制,发起移动操作,表示第一对象将要进行移动;虚拟现实终端在检测到第一对象发起的移动操作之后,向服务器发送移动请求,请求对第一对象的位置进行移动。

第一生成单元803,用于通过虚拟现实终端接收服务器根据移动请求生成的可移动区域,其中,可移动区域不包括第二对象的安全区域,安全区域为不允许第一对象移动的区域,第二对象为当前场景中预定区域内的任意一个对象;

第一提示单元804,用于通过虚拟现实终端向第一对象提示可移动区域,其中,第一对象根据提示的可移动区域进行移动操作。

虚拟现实终端向服务器发送移动请求之后,接收服务器根据该移动请求生成的可移动区域。可移动区域是由服务器生成的,表示允许第一对象进行移动的区域。在当前场景下可能包括有多个对象,每个对象都有自己的安全区域,除自己以外的其它对象不得进入该安全区域,因此,第一对象的可移动区域不能包括其它对象的安全区域。虚拟现实终端将接收到的可移动区域提示给第一对象,第一对象根据提示的可移动区域选择移动位置进行移动。

在本发明实施例中,采用虚拟现实终端检测检测第一对象发起的移动操作,根据移动操作向服务器发送移动请求,并接收服务器根据该移动请求和场景内其它对象的位置生成的可移动区域的方式,通过将可移动区域提示给第一对象,使第一对象按照该提示移动,达到了第一对象在当前场景内的可移动区域进行移动的目的,从而实现了在虚拟现实系统中,第一对象根据当前场景内的其他对象的位置进行移动的技术效果,进而解决了在虚拟现实系统中,对象移动时对其他对象造成干扰的技术问题。

可选地,装置还包括:第一接收单元,用于在虚拟现实终端向第一对象提示可移动区域之后,通过虚拟现实终端接收第一对象发送的位置选择指令,其中,位置选择指令用于指示第一对象选择移动的目标位置;判断单元,用于通过虚拟现实终端判断目标位置是否处于可移动区域;第二提示单元,用于在虚拟现实终端判断出目标位置处于可移动区域,提示第一对象可移动至目标位置;第三提示单元,用于在虚拟现实终端判断出目标位置未处于可移动区域,提示第一对象不可移动至目标位置。

在虚拟现实终端将服务器生成的可移动区域提示给第一对象之后,第一对象根据提示的可移动区域选择移动的目标位置,在第一对象选择移动的目标位置后,将目标位置发送给虚拟现实终端,虚拟现实终端判断该目标位置是否在可移动区域内,并给出相应提示:当目标位置在可移动区域内时,提示第一对象可以移动到目标位置;当目标位置不在可移动区域内时,提示第一对象不可以移动到目标位置。其中,提示可以为多种形式,如:语音提示,视觉提示,感觉提示等。

如图3所示:第一对象为B,第二对象为A,安全距离是A针对B设置的安全距离,圆形区域为A针对B的安全区域,B此时选择其要移动的目标位置,并将该目标位置发送虚拟现实终端,虚拟现实终端对B的目标位置进行判断:如果目标位置在可移动区域内,则向B发出可以移动到目标位置的提示,如:播放预先定义的声音或者人性化的语音,或者在视觉系统中令该目标位置显示为绿色,或者使控制器按照预先定义的方式进行振动,或者采用多种方式结合来进行提示;如果目标位置在A的安全区域内,则向B发出不可以移动到目标位置的提示,相应的,该提示可以为:播放预先定义的其它声音或者人性化的语音,或者在视觉系统中令该目标位置显示为红色,或者使控制器按照预先定义的其它方式进行振动,同样地,也可以采用多种方式结合来进行提示。

在虚拟现实系统中,根据当前场景的不同,第一对象的移动方式可以为瞬间移动或者普通移动,其中,瞬间移动是指从初始位置直接移动到目标位置的位置变化;普通移动是指从初始位置去往目标位置的位置移动过程。当第一对象进行瞬间移动时,第一对象发起瞬间移动操作;虚拟现实终端检测到该瞬间移动操作后向服务器发送移动请求;服务器接收移动请求并生成可移动区域,将可移动区域返回给虚拟现实终端;虚拟现实终端将可移动区域提示给第一对象;此时,第一对象可以选择瞬间移动的目标位置,并将目标位置发送给虚拟现实终端;虚拟现实终端判断目标位置是否在可移动区域内:如果虚拟现实终端判断出目标位置不在可移动区域内,则向第一对象发出提示,不可以瞬间移动到目标位置,瞬间移动无法完成,第一对象需要重新选择瞬间移动的目标位置;如果虚拟现实终端判断出目标位置在可移动区域内,则向第一对象发出提示,可以瞬间移动到目标位置,并完成相应的瞬间移动。当第一对象进行普通移动时,第一对象发起普通移动操作;虚拟现实终端检测到该普通移动操作后向服务器发送移动请求;服务器接收移动请求并生成可移动区域,将可移动区域返回给虚拟现实终端;虚拟现实终端将可移动区域提示给第一对象;此时第一终端可以第一对象可以选择普通移动的目标位置,并将目标位置发送给虚拟现实终端;虚拟现实终端判断目标位置是否在可移动区域内:如果虚拟现实终端判断出目标位置不在可移动区域内,则向第一对象发出提示,不可以移动到目标位置,移动无法完成,第一对象需要重新选择普通移动的目标位置;如果虚拟现实终端判断出目标位置在可移动区域内,则向第一对象发出提示,可以移动到目标位置,并根据可移动区域自动规划出移动路径,第一对象按照该路径移动到目标位置。

可选地,移动操作包括第一对象选择移动的目标位置,该装置还包括:第二接收单元,用于通过虚拟现实终端接收服务器根据目标位置生成的第一提示信息,其中,第一提示信息用于指示目标位置处于安全区域,且提示不允许第一对象移动至目标位置;以及,第三接收单元,用于通过虚拟现实终端接收服务器根据目标位置生成的第二提示信息,其中,第二提示信息用于指示目标位置处于安全区域以外,且提示允许第一对象移动至目标位置。

第一对象也可以先选定移动的目标位置,即在第一对象发起移动操作时,移动操作中包括有第一对象的目标移动位置,虚拟现实终端根据该移动操作向服务器发送移动请求。服务器在收到该移动请求后,获取请求中包括的目标移动位置,判断该目标移动位置是否在可移动区域内,并生成相应的提示信息,将提示信息发送给虚拟现实终端,即在虚拟现实终端接收到服务器生成的可移动区域之前,接收到服务器根据目标位置生成的提示信息,并且,在目标位置不在可移动区域中时,接收到第一提示信息,第一提示信息指示目标位置在其它对象的安全区域,不允许第一对象移动到该目标位置;在目标位置在可移动区域中时,接收到第二提示信息,第二提示信息指示目标位置不在其它对象的安全区域,允许第一对象移动到该目标位置。

同样的,第一对象的移动方式可以为瞬间移动或者普通移动。当第一对象进行瞬间移动时,第一对象发起瞬间移动操作,该操作中包括有第一对象瞬间移动的目标位置;虚拟现实终端检测到瞬间移动操作后向服务器发送移动请求;服务器接收移动请求,生成可移动区域,并对目标位置进行判断生成提示信息:在服务器判断目标位置不在可移动区域内时,生成第一提示信息,提示目标位置在其他对象的安全区域内,第一对象不能瞬间移动到该目标位置;服务器将第一提示信息返回给虚拟现实终端,虚拟现实终端按照第一提示信息提示第一对象不能瞬间移动目标位置;在服务器判断目标位置在可移动区域内时,生成第二提示信息,提示目标位置不在其他对象的安全区域内,第一对象可以瞬间移动到该目标位置;服务器将第二提示信息发送给虚拟现实终端,虚拟现实终端按照第二提示信息提示第一对象可以瞬间移动到目标位置,第一对象完成瞬间移动。当第一对象进行普通移动时,第一对象发起普通移动操作,该操作中包括有第一对象移动的目标位置;虚拟现实终端检测到该移动操作后向服务器发送移动请求;服务器接收移动请求,生成可移动区域,并对目标位置进行判断生成提示信息:在服务器判断目标位置不在可移动区域内时,生成第一提示信息,提示目标位置在其他对象的安全区域内,第一对象不能移动到该目标位置;服务器将第一提示信息返回给虚拟现实终端,虚拟现实终端按照第一提示信息提示第一对象不能移动目标位置;在服务器判断目标位置在可移动区域内时,生成第二提示信息,提示目标位置不在其他对象的安全区域内,第一对象可以移动到该目标位置,同时服务器根据目标位置和可移动区域规划出移动路径;服务器将第二提示信息和移动路径发送给虚拟现实终端,虚拟现实终端提示第一对象可以移动到目标位置,第一对象按照该路径移动到目标位置。

可选地,装置还包括:获取单元,用于在虚拟现实终端向第一对象提示可移动区域之后,通过虚拟现实终端获取第一对象的实时位置和第二对象的实时位置;第四提示单元,用于当第一对象的实时位置处于第二对象的安全区域时,通过虚拟现实终端提示第一对象离开第一对象当前所处的区域。

当第一对象位置发生移动之后,虚拟现实终端会同时获取第一对象和其它对象的位置信息,并判断第一对象是否移动到了其它对象的安全区域内,如果第一对象移动进入到了其它对象的安全区域内,则虚拟现实终端向第一对象发出提示,提示第一对象离开其所在的其它对象的安全区域。

如图4所示,第一对象为B,第二对象为A,安全距离为A针对B设置的安全距离,圆形区域为A针对B的安全区域,B经过移动后的位置在A的安全区域内,此时,虚拟现实终端获取到A和B的位置,并判断出B进入了A的安全区域,则虚拟现实终端向B发出提示,提示B离开A的安全区域,直到B离开A的安全区域后,停止向B发送提示。

可选地,第一生成单元包括:获取模块,用于在虚拟现实终端根据移动操作向服务器发送移动请求之后,通过服务器获取第一对象所在的当前场景中每个对象的安全距离;生成模块,用于通过服务器根据安全距离生成每个对象的安全区域,其中,在二维空间中安全区域为圆形区域,在三维空间中安全区域为球形区域;删除模块,用于通过服务器从当前场景中删除每个对象的安全区域,得到可移动区域。

可选地,获取模块包括:获取子模块,用于通过服务器获取每个对象针对第一对象预先设置的安全距离或者默认安全距离,其中,预先设置的安全距离为每个对象根据其与第一对象的关联关系得到。

当前场景中可能包括有多个对象,每个对象有自己的安全区域,除自己以外的其它对象不得在该安全区域内移动。对象的安全区域是根据对象当前所处位置以及其针对其他对象的安全距离得到的。当场景为二维空间时,对象的安全区域是指,以该对象所在位置为圆心,以安全距离为半径的圆形区域;当场景为三维空间时,对象的安全区域是指,以该对象所在位置为球心,以安全距离为球半径的球形区域。第一对象只能在当前场景中除了其它对象安全区域以外的区域进行移动,即当前场景区域删除掉其它对象的安全区域后得到的区域为第一对象的安全区域。另外,在计算其它对象针对第一对象的安全区域时,安全距离是指其它对象针对第一对象所设置的安全距离,不同对象针对第一对象所设置的安全距离可以根据其与第一对象的关系设置进设置,例如:A对象与第一对象的关系为朋友关系,则A对象对于第一对象的安全距离可以设置为1个单位长度,B对象与第一对象的关系为敌人关系,则B对象对于第一对象的安全距离可以设置为3个单位长度,C对象和D对象与第一对象的关系为普通关系,则C对象和D对象对于第一对象的安全距离不用进行特别设置,默认为2个单位长度。

可选地,装置还包括:第二发送单元,用于通过虚拟现实终端在位置改变时向服务器发送位置同步请求,其中,服务器根据位置同步请求更新存储的虚拟现实终端的位置;第四接收单元,用于通过虚拟现实终端接收服务器发送的位置同步通知,其中,位置同步通知包括第一对象所处的当前场景中每个对象的当前位置。

服务器通过在当前场景的区域删除掉其它对象的安全区域,得到第一对象的可移动区域。在服务器中事先存储有所有对象位置,并且在对象的位置发生变化时,服务器与该对象进行位置同步,更新该对象的当前位置。例如:服务器中存储有当前场景下所有对象的位置信息(对象与虚拟现实终端相关联,对象的位置信息也即其关联的虚拟现实终端的位置信息)第一对象移动后位置发生变化,其关联的虚拟现实终端向服务器发送位置同步请求,请求服务器根据第一对象当前位置对其原位置进行更新;服务器接到同步请求后,根据第一对象的当前位置,对第一对象的位置进行更新,并将位置更新通知发送给第一对象,在位置更新通知中包括有第一对象更新后的位置,同时还包含有当前场景下所有其他对象的当前位置。同时,服务器也会将第一对象的位置更新通知发送给当前场景内的其他对象。

如图5所示,在同步服务器中事先存储有虚拟现实终端A和虚拟现实终端B的位置,其中,虚拟现实终端A与对象A相关联(对象A相当于第一对象),虚拟现实终端B与对象B相关联,当对象A的位置变化时,向服务器请求位置同步,主要包括如下步骤:

1、请求同步用户位置。对象A移动后,位置发生变化,虚拟现实终端A检测到对象A的位置发生变化,获取对象A的当前位置,向同步服务器发送位置同步请求,请求位置同步。

2、确认同步请求,以及同步所有用户位置。同步服务器根据位置同步请求,更新对象A的位置,并向虚拟现实终端发送更新通知,确认同步请求,更新通知中包括有对象A更新后的位置,同时还包含有当前场景下对象B的当前位置;同时同步服务器向虚拟现实终端B发送对象A的位置更新的通知,将对象A的当前位置通知对象B。

可选地,服务器为第一对象所处的当前场景中的目标虚拟现实终端,目标虚拟现实终端为当前场景中任一对象所关联的虚拟现实终端,第一发送单元包括:发送模块,用于通过虚拟现实终端根据移动操作向目标虚拟现实终端发送移动请求。

当前场景中所有对象所关联的虚拟现实终端连接形成一个网络,可以在该网络中单独设置的一台服务器,也可以选择网络中任意一个对象所关联的虚拟现实终端作为服务器。网络中的某一对象所关联的虚拟现实终端作为服务器时,该虚拟现实终端作为当前场景中的目标虚拟现实终端。向服务器发送移动请求,也就是向该目标虚拟现实终端发送移动请求。

实施例3

根据本发明实施例,还提供了一种用于实施上述基于虚拟现实的控制方法的终端,如图9所示,该终端主要包括处理器901、显示器902、数据接口903、存储器904和网络接口905,其中:

数据接口903则主要通过数据传输的方式将第一对象发起的移动请求以及第一对象所选择的移动目标位置传输给处理器901。

存储器905主要用于存储虚拟现实终端接收到的可移动区域以及当前场景内其他对象的位置信息。

网络接口906主要用于与服务器进行网络通信,发送移动请求和进行位置同步。

显示器903主要用于显示当前的场景以及场景内的其他对象。

处理器901主要用于执行如下操作:

通过虚拟现实终端检测第一对象发起的移动操作;通过虚拟现实终端根据移动操作向服务器发送移动请求;通过虚拟现实终端接收服务器根据移动请求生成的可移动区域,其中,可移动区域不包括第二对象的安全区域,安全区域为不允许第一对象移动的区域,第二对象为当前场景中预定区域内的任意一个对象;通过虚拟现实终端向第一对象提示可移动区域,其中,第一对象根据提示的可移动区域进行移动操作。

处理器901还用于接收第一对象发送的位置选择指令,其中,位置选择指令用于指示第一对象选择移动的目标位置;判断目标位置是否处于可移动区域;在判断出目标位置处于可移动区域,提示第一对象可移动至目标位置;在判断出目标位置未处于可移动区域,提示第一对象不可移动至目标位置。

处理器901还用于接收服务器根据目标位置生成的第一提示信息,其中,第一提示信息用于指示目标位置处于安全区域,且提示不允许第一对象移动至目标位置;或者接收服务器根据目标位置生成的第二提示信息,其中,第二提示信息用于指示目标位置处于安全区域以外,且提示允许第一对象移动至目标位置。

处理器901还用于获取第一对象的实时位置和第二对象的实时位置;当第一对象的实时位置处于第二对象的安全区域时,提示第一对象离开第一对象当前所处的区域。

处理器901还用于获取第一对象所在的当前场景中每个对象的安全距离;根据安全距离生成每个对象的安全区域,其中,在二维空间中安全区域为圆形区域,在三维空间中安全区域为球形区域;从当前场景中删除每个对象的安全区域,得到可移动区域。

处理器901还用于获取每个对象针对第一对象预先设置的安全距离或者默认安全距离,其中,预先设置的安全距离为每个对象根据其与第一对象的关联关系得到。

处理器901还用于在虚拟现实终端位置改变时向服务器发送位置同步请求,其中,服务器根据位置同步请求更新存储的虚拟现实终端的位置;接收服务器发送的位置同步通知,其中,位置同步通知包括第一对象所处的当前场景中每个对象的当前位置。

处理器901还用于根据移动操作向目标虚拟现实终端发送移动请求。

可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。

实施例4

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于存储本发明实施例的基于虚拟现实的控制方法的程序代码。

可选地,在本实施例中,上述存储介质可以位于移动通信网络、广域网、城域网或局域网的网络中的多个网络设备中的至少一个网络设备。

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

S1,虚拟现实终端检测第一对象发起的移动操作;

S2,虚拟现实终端根据移动操作向服务器发送移动请求;

S3,虚拟现实终端接收服务器根据移动请求生成的可移动区域,其中,可移动区域不包括第二对象的安全区域,安全区域为不允许第一对象移动的区域,第二对象为当前场景中预定区域内的任意一个对象;

S4,虚拟现实终端向第一对象提示可移动区域,其中,第一对象根据提示的可移动区域进行移动操作。

可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码接收第一对象发送的位置选择指令,其中,位置选择指令用于指示第一对象选择移动的目标位置;判断目标位置是否处于可移动区域;在判断出目标位置处于可移动区域,提示第一对象可移动至目标位置;在判断出目标位置未处于可移动区域,提示第一对象不可移动至目标位置。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码接收服务器根据目标位置生成的第一提示信息,其中,第一提示信息用于指示目标位置处于安全区域,且提示不允许第一对象移动至目标位置;接收服务器根据目标位置生成的第二提示信息,其中,第二提示信息用于指示目标位置处于安全区域以外,且提示允许第一对象移动至目标位置。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码获取第一对象的实时位置和第二对象的实时位置;当第一对象的实时位置处于第二对象的安全区域时,提示第一对象离开第一对象当前所处的区域。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码获取第一对象所在的当前场景中每个对象的安全距离;根据安全距离生成每个对象的安全区域,其中,在二维空间中安全区域为圆形区域,在三维空间中安全区域为球形区域;从当前场景中删除每个对象的安全区域,得到可移动区域。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码获取每个对象针对第一对象预先设置的安全距离或者默认安全距离,其中,预先设置的安全距离为每个对象根据其与第一对象的关联关系得到。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码在虚拟现实终端位置改变时向服务器发送位置同步请求,其中,服务器根据位置同步请求更新存储的虚拟现实终端的位置;接收服务器发送的位置同步通知,其中,位置同步通知包括第一对象所处的当前场景中每个对象的当前位置。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码根据移动操作向目标虚拟现实终端发送移动请求。

可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。

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

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

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

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

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

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

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

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