虚拟现实环境下的控制方法、装置、设备和存储介质与流程

文档序号:17473242发布日期:2019-04-20 05:57阅读:126来源:国知局
虚拟现实环境下的控制方法、装置、设备和存储介质与流程

本发明涉及计算机技术领域,特别是涉及一种虚拟现实环境下的控制方法、装置、设备和存储介质。



背景技术:

随着科学技术的飞速发展,虚拟现实(vr,virtualreality)技术凭借其逼真的体验和良好的互动性,越来越受到广大用户的青睐。

目前,在虚拟现实环境下的交互控制,是通过在虚拟现实环境的三维空间中显示二维的交互菜单界面,然后通过手柄发射射线来对二维交互菜单界面中的各个菜单进行选择,其中,射线与二维交互菜单界面的交点即为所希望交互的菜单,然后利用手柄的按键对选中的交互菜单进一步地进行点击等,来实现交互控制。

上述控制方式,没有一种虚拟现实环境下的真实交互感,与基于二维电脑屏幕进行鼠标点击操作的交互控制方式基本上类似,用户仍然需要通过类似鼠标的操作进行瞄准选择,并需要进行按键进一步点击等多步骤的操作来实现交互控制,控制效率低。



技术实现要素:

基于此,有必要针对目标基于虚拟现实环境下的二维操作菜单界面进行交互操作导致控制效率低的问题,提供一种虚拟现实环境下的控制方法、装置、计算机设备和存储介质。

一种虚拟现实环境下的控制方法,所述方法包括:

在虚拟现实环境中,显示包括活动部件和固定部件的三维交互物件;

监测虚拟操作体在所述虚拟现实环境中的移动;

当所述虚拟操作体移动至与所述活动部件接触后,控制所述活动部件相对于所述固定部件并跟随所述虚拟操作体运动;

按照所述活动部件相对于所述固定部件的相对位置,输出与所述三维交互物件对应的控制指令。

一种虚拟现实环境下的控制装置,所述装置包括:

显示模块,用于在虚拟现实环境中,显示包括活动部件和固定部件的三维交互物件;

移动监测模块,用于监测虚拟操作体在所述虚拟现实环境中的移动;

控制模块,用于当所述虚拟操作体移动至与所述活动部件接触后,控制所述活动部件相对于所述固定部件并跟随所述虚拟操作体运动;

指令输出模块,用于按照所述活动部件相对于所述固定部件的相对位置,输出与所述三维交互物件对应的控制指令。

一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被处理器执行时,使得所述处理器执行如下步骤:

在虚拟现实环境中,显示包括活动部件和固定部件的三维交互物件;

监测虚拟操作体在所述虚拟现实环境中的移动;

当所述虚拟操作体移动至与所述活动部件接触后,控制所述活动部件相对于所述固定部件并跟随所述虚拟操作体运动;

按照所述活动部件相对于所述固定部件的相对位置,输出与所述三维交互物件对应的控制指令。

一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如下步骤:

在虚拟现实环境中,显示包括活动部件和固定部件的三维交互物件;

监测虚拟操作体在所述虚拟现实环境中的移动;

当所述虚拟操作体移动至与所述活动部件接触后,控制所述活动部件相对于所述固定部件并跟随所述虚拟操作体运动;

按照所述活动部件相对于所述固定部件的相对位置,输出与所述三维交互物件对应的控制指令。

上述虚拟现实环境下的控制方法、装置、计算机设备和存储介质,通过将进行交互的功能菜单界面虚拟为三维交互物件,在虚拟现实环境中,通过虚拟操作体与三维交互物件的活动部件接触,移动虚拟操作体就可以直接控制活动部件跟随虚拟操作体运动,根据运动的活动部件相对于固定部件的相对位置,就可以直接输出与三维交互物件对应的控制命令,通过移动虚拟操作体就可以实现交互控制,不需要基于二维菜单界面进行瞄准选择并按键点击等繁琐的步骤来进行交互,提高了虚拟现实环境下的控制效率。

附图说明

图1为一个实施例中虚拟现实环境下的控制方法的应用环境图;

图2为一个实施例中设备的内部结构示意图;

图3为一个实施例中虚拟现实环境下的控制方法的流程示意图;

图4为一个实施例中三维交互物件的示意图;

图5a至图5b为一个实施例中控制活动部件运动的示意图;

图6为一个实施例中三维交互物件显示步骤的流程示意图;

图7为一个实施例中活动部件控制步骤的流程示意图;

图8为一个实施例中活动部件运动步骤的流程示意图;

图9为一个实施例中活动部件运动的示意图;

图10为另一个实施例中虚拟现实环境下的控制方法的流程示意图;

图11为一个实施例中虚拟现实环境下的控制装置的框图;

图12为另一个实施例中虚拟现实环境下的控制装置的框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1为一个实施例中虚拟现实环境下的控制方法的应用环境图。参照图1,该应用环境包括应用环境包括通过网络进行连接通信的真实操作装置110和计算机设备120。其中,计算机设备120中安装有虚拟现实应用程序(可简称为虚拟现实应用),虚拟现实应用可以实现虚拟现实场景。真实操作装置110,是位于真实环境中对计算机设备110中的虚拟现实应用进行操作控制的装置,真实操作装置110可以包括操作手柄或其它具有输入操作功能的输入装置,比如捕捉人手动作的传感器等。计算机设备120可以是台式计算机或移动终端,移动终端可以包括手机、平板电脑、个人数字助理和穿戴式设备等中的至少一种。

计算机设备120可以通过计算机设备120上运行的虚拟现实应用实现虚拟现实场景,并在虚拟现实场景中显示包括活动部件和固定部件的三维交互物件120a,其中,三维交互物件120a是将二维功能菜单界面中的各个功能菜单进行可视觉化处理得到的三维模型,三维交互物件120a具备相应功能菜单的交互功能,即通过对三维交互物件120a进行操作可以实现相应功能菜单所对应的功能。计算机设备120可以通过运行的虚拟现实应用生成虚拟操作体120b,其中,虚拟操作体120b是用于对三维交互物件进行操作控制的虚拟执行主体。虚拟操作体120b在虚拟现实环境中的全局空间位置可以是由真实操作装置110的物理空间位置映射得到。用户可以在真实环境中通过移动真实操作装置110的物理空间位置,来实现虚拟现实环境中相应的虚拟操作体120b的移动。当虚拟操作体120b与三维交互物件120a中的活动部件接触后,计算机设备120可以控制活动部件相对于固定部件并跟随虚拟操作体运动。计算机设备120可以按照活动部件相对于固定部件的相对位置,输出与三维交互物件120a对应的控制指令。

图2为一个实施例中计算机设备的内部结构示意图。该计算机设备可以是图1中的计算机设备120。参照图2,该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、内存储器、网络接口和显示屏。其中,该计算机设备的非易失性存储介质可存储操作系统和计算机可读指令,该计算机可读指令被执行时,可使得处理器执行一种虚拟现实环境下的控制方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该内存储器中可储存有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种虚拟现实环境下的控制方法。计算机设备的网络接口用于进行网络通信。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏。

本领域技术人员可以理解,图2中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

图3为一个实施例中虚拟现实环境下的控制方法的流程示意图。本实施例主要以该虚拟现实环境下的控制方法应用于上述图2中的计算机设备来举例说明。参照图3,该方法具体包括如下步骤:

s302,在虚拟现实环境中,显示包括活动部件和固定部件的三维交互物件。

其中,三维交互物件,是将二维功能菜单界面中的各个功能菜单进行可视化处理得到的三维模型。三维交互物件具备相应功能菜单的交互功能,即通过对三维交互物件进行操作可以实现相应功能菜单所对应的功能。比如,三维交互物件可以具备实现音量调节、进度调节、位置移动或方向调节等各种交互功能。

在一个实施例中,三维交互物件的表现形式可以是三维的按钮、滑动条和拉杆等。比如,可以通过移动滑动条上的滑块来实现音量调节、进度调节和位置移动等交互功能。

活动部件,是三维交互物件中的、且在三维交互物件的局部空间中能够产生运动的部件。固定部件,是三维交互物件中的、且在三维交互物件的局部空间中固定不产生运动的部件。其中,三维交互物件的局部空间,是以三维交互物件的中心为原点建立的局部空间坐标系和三维交互物件的该中心组合起来,所构成的属于三维交互物件自身的空间。可以理解,每个物体都拥有自身的局部空间坐标系和局部空间,每个物体自身的局部空间坐标系与该物体的相对位置始终保持不变。

现结合图4对三维交互物件进行举例说明,如图4所示,按钮、拉杆和滑动条分别为三个不同的三维交互物件,其中,按钮中的402a、拉杆中的404a以及滑动条中的406a就属于活动部件,按钮中的402b、拉杆中的404b以及滑动条中的406b就属于固定部件。

s304,监测虚拟操作体在虚拟现实环境中的移动。

其中,虚拟操作体,是用于对三维交互物件进行操作控制的虚拟执行主体。虚拟操作体在虚拟现实环境中的全局空间位置可以是由真实操作装置的物理空间位置映射得到。比如,真实操作装置为操作手柄时,操作手柄于真实环境中所处的物理空间位置在虚拟现实环境中的映射位置即为该虚拟操作体在虚拟现实环境中的全局空间位置。其中,全局空间,是指该虚拟现实环境下的整体三维空间,真实操作装置可以包括操作手柄或其它具有输入操作功能的输入装置(例如捕捉人手动作的传感器等)。

具体地,计算机设备可以接收真实操作装置的物理空间位置,并根据该物理空间位置映射得到虚拟现实环境中的虚拟操作体的全局空间位置。用户可以通过移动真实操作装置的物理空间位置,来实现对虚拟操作体在虚拟现实环境中的全局空间位置的移动。计算机设备可以监测虚拟操作体在虚拟现实环境中的移动。

s306,当虚拟操作体移动至与活动部件接触后,控制活动部件相对于固定部件并跟随虚拟操作体运动。

当监测到虚拟操作体与虚拟现实环境中的三维交互物体中的活动部件接触后,计算机设备可以控制活动部件相对于三维交互物体中的固定部件、且跟随虚拟操作体的运动而运动。可以理解,三维交互物体的固定部件是三维交互物体的局部空间中处于固定不产生运动的部件,活动部件相对于固定部件运动则是指活动部件仅在三维交互物体的局部空间内运动,而并不是整个三维交互物体在虚拟现实环境中的全局空间位置发生变化。

此外,活动部件跟随虚拟操作体运动,是指虚拟操作体与活动部件接触时,若虚拟操作体运动,活动部件也随之运动,以实现虚拟操作体直接作用于固定部件上进行运动。

图5a至图5b为一个实施例中控制活动部件运动的示意图。图5a中的虚拟手模型502为虚拟操作体,按钮为三维交互物件,其中,504a为活动部件,504b为固定部件,虚拟手模型502接触按钮的活动部件504a后,往虚线箭头方向运动,图5b则表示按钮504a相对于固定部件504b、并且跟随虚拟手模型502的运动而向虚线箭头方向运动后的状态。

s308,按照活动部件相对于固定部件的相对位置,输出与三维交互物件对应的控制指令。

其中,活动部件相对于固定部件的相对位置,是指在所属三维交互物件的局部空间中,活动部件所处的位置与固定部件所处的位置之间的相对关系。与三维交互物件对应的控制指令,是用于实现三维交互物件所具备的功能的控制指令。比如,三维交互物件所具备的功能是调节音量,则计算机设备可以按照活动部件相对于固定部件的相对位置,输出调节音量的控制指令。

具体地,计算机设备可以按照活动部件在跟随虚拟操作体运动的过程中相对于固定部件的相对位置,输出与三维交互物件对应的控制指令。计算机设备还可以根据虚拟操作体在离开活动部件时,活动部件所处的部件位置确定该活动部件相对于固定部件的相对位置,输出与三维交互物件对应的控制指令。

在一个实施例中,活动部件相对于固定部件的相对位置不同,所输出的与所述三维交互物件对应的控制指令不同。

具体地,三维交互物件所具备的功能包括至少一个的子功能,所有子功能组合起来构成三维交互物件所具备的功能,各子功能分别对应不同的控制指令,子功能所对应的控制指令在被触发时可以实现该子功能。

计算机设备可以预先设置活动部件相对于固定部件的相对位置(以下简称相对位置)与三维交互物件所具备的各子功能(以下简称子功能)之间的对应关系。其中,可以将相对位置与子功能一一对应设置,相对位置不同所对应的子功能可以不同。也可以是根据相对位置所属的预设范围设置对应的子功能,属于不同预设范围内的相对位置所对应的子功能不同,属于相同预设范围内的相对位置所对应的子功能相同。

计算机设备可以按照活动部件相对于固定部件的相对位置,输出用于实现三维交互物件中相应子功能的控制指令。比如,三维交互物件所具备的功能是位置移动,其中就包括前进、后退或转身的子功能,则计算机设备可以按照活动部件相对于固定部件的相对位置,输出前进、后退或转身等控制指令。

在一个实施例中,活动部件相对于固定部件的相对位置,是活动部件在局部空间所处的位置。本实施例中,计算机设备可以输出活动部件所处的位置数值,根据该位置数值生成与三维交互物件对应的控制指令。

具体地,计算机设备可以根据位置数值与控制指令间的预设映射关系,根据该位置数值映射得到相应的控制指令。比如,位置数值为0时,所对应的音量为0,位置数值变为1时,则输出将音量调大至50的控制指令。

上述虚拟现实环境下的控制方法,通过将进行交互的功能菜单界面虚拟为三维交互物件,在虚拟现实环境中,通过虚拟操作体与三维交互物件的活动部件接触,移动虚拟操作体就可以直接控制活动部件跟随虚拟操作体运动,根据运动的活动部件相对于固定部件的相对位置,就可以直接输出与三维交互物件对应的控制命令,通过移动虚拟操作体就可以实现交互控制,不需要基于二维菜单界面进行瞄准选择并按键点击等繁琐的步骤来进行交互,提高了虚拟现实环境下的控制效率。

如图6所示,在一个实施例中,步骤s302(简称三维交互物件显示步骤),具体包括以下步骤:

s602,在虚拟现实环境中,确定用于构建三维交互物件的中心。

其中,用于构建三维交互物件的中心,为需构建的三维交互物件的中心点。

可以理解,在虚拟现实环境中,预先设置构建三维交互物件的中心点的位置,计算机设备可以获取预先设置的中心点的位置。

s604,根据中心建立需构建的三维交互物件的局部空间的坐标系。

具体地,以三维交互物件的中心点为原点,建立需构建的三维交互物件的局部空间的坐标系。可以理解,每个三维交互物件都具有自身的局部空间的坐标系。每个三维交互物件的局部空间的坐标系与该三维交互物件的相对位置始终保持不变。

s606,确定组成三维交互物件的活动部件和固定部件各在坐标系中的坐标。

其中,三维交互物件包括活动部件和固定部件。可以理解,这里并不限定三维交互物件仅包括活动部件和固定部件这两个部分。

具体地,计算机设备可以获取组成该三维交互部件的活动部件和固定部件在该三维交互部件的局部空间的坐标系中的预设坐标。

s608,根据确定的坐标,构建活动部件和固定部件得到三维交互物件。

具体地,计算机设备可以根据确定的坐标,在所建立的局部空间的坐标系中找到该确定的坐标所对应的位置,进而根据确定位置构建活动部件和固定部件,从而得到三维交互物件。

上述实施例中,通过在虚拟现实环境中,构建包括活动部件和固定部件的三维交互物件,该三维交互物件是能够实现二维的功能菜单所具备功能的三维模型,使得在虚拟现实环境中的控制操作更加的便捷、直观,从而使得控制效率更高。

如图7所示,在一个实施例中,步骤s306(简称活动部件控制步骤)具体包括以下步骤:

s702,获取活动部件在三维交互物件的局部空间中的部件初始位置。

其中,部件初始位置,是活动部件尚未跟随操作体运动时在三维交互物件的局部空间中的位置。

s704,当虚拟操作体移动至与所述活动部件接触时,确定虚拟操作体相对于三维交互物件的局部空间的运动初始位置。

其中,运动初始位置,是虚拟操作体在恰好与活动部件接触时,虚拟操作体在三维交互物件的局部空间所处的位置。

具体地,计算机设备可以在虚拟操作体与活动部件接触时,获取虚拟操作体在虚拟现实环境的全局空间中的位置,将该全局空间中的位置转换为三维交互物件的局部空间中的位置,得到运动初始位置。

s706,当虚拟操作体与活动部件接触并运动时,获取虚拟操作体在局部空间中的当前运动位置。

其中,虚拟操作体与活动部件接触并运动,是指虚拟操作体与活动部件保持接触时进行运动。当前运动位置,是虚拟操作体在与活动部件接触并运动时在三维交互物件的局部空间中所处的位置。

具体地,计算机设备可以在虚拟操作体与活动部件接触并运动时,获取虚拟操作体在全局空间中的当前位置,并将全局空间中的当前位置转换为三维交互物件的局部空间中的位置,得到当前运动位置。

s708,根据运动初始位置到当前运动位置的变化,控制活动部件从部件初始位置起相对于固定部件运动。

具体地,计算机设备可以按照虚拟操作体的运动初始位置到当前运动位置的变化,确定活动部件的运动路径,并控制活动部件从部件初始位置起按照所确定运动路径相对于固定部件运动。

在一个实施例中,计算机设备可以将虚拟操作体由运动初始位置到当前运动位置的路径,作为活动部件的运动路径。在另一个实施例中,计算机设备也可以确定虚拟操作体的运动初始位置和当前运动位置各在目标方向上的位置,将从虚拟操作体的运动初始位置在目标方向的位置沿着目标方向到达当前运动位置在目标方向上的位置所形成的路径,作为活动部件的运动路径。

在一个实施例中,计算机设备可以以预设帧数为一个统计周期,确定每隔预设帧数时虚拟操作体在局部空间中的当前运动位置。具体地,计算机设备可以以一帧为一个统计周期,确定产生每一帧图像时虚拟操作体在局部空间中的当前运动位置,从而得到虚拟操作体从运动初始位置起,沿着每一帧图像所统计的当前运动位置的运动轨迹,从而按照该运动轨迹来控制活动部件从部件初始位置起相对于固定部件运动。

在一个实施例中,在步骤s708之前,计算机设备还可以监测运动初始位置到当前运动位置的变化是否在预设范围内,若是,则执行步骤s708,若否,则将活动部件停留在对应于预设范围的边界值的部件位置。其中,对应于预设范围的边界值的部件位置,是指虚拟操作体刚好运动至预设范围的边界值时,活动部件所处的位置。

比如,运动初始位置到当前运动位置的预设范围为5米,则针对虚拟操作体的运动初始位置到5米内的当前运动位置,计算机设备可以控制活动部件从部件初始位置起相对于固定部件运动,如果虚拟操作体运动超过5米,则将活动部件停留在虚拟操作体运动至刚好5米时该活动部件所处的部件位置,而不跟随虚拟操作体运动。

上述实施例中,通过虚拟操作体在局部空间的运动初始位置到当前运动位置的变化,控制活动部件从部件初始位置起相对于固定部件运动,能够实现活动部件相对于固定部件并跟随虚拟操作体的运动而运动,从而通过控制活动部件运动,来触发与三维交互物件对应的控制指令,即通过虚拟操作体直接控制活动部件的操作实现交互控制,提高了虚拟现实环境下的控制效率。

如图8所示,在一个实施例中,步骤708(简称活动部件运动步骤)具体包括以下步骤:

s802,获取当前运动位置和运动初始位置各在局部空间中目标坐标轴上的坐标值。

其中,局部空间中的目标坐标轴,是指三维交互物件的局部空间的坐标系中的目标坐标轴。可以理解,目标坐标轴所处的方向,是活动部件相对于固定部件能够运动的方向,即活动部件可以相对于固定部件在目标坐标轴方向上运动。

s804,根据当前运动位置和运动初始位置在目标坐标轴上的坐标值之间的差值,确定活动部件需运动的第一长度和方向。

其中,活动部件需运动的方向,是指活动部件需要沿着目标坐标轴运动的方向,包括沿着目标坐标轴背离局部空间的坐标系的原点运动的方向、沿着目标坐标轴向着局部空间的坐标系的原点运动的方向,以及沿着目标坐标轴先向着局部空间的坐标系的原点运动再背离局部空间的坐标系的原点运动的方向。

具体地,计算机设备可以将当前运动位置在目标坐标轴上的坐标值减去运动初始位置在目标坐标轴上的坐标值,得到两者之间的差值,根据得到的差值确定活动部件需运动的第一长度和方向。可以理解,计算机设备也可以将运动初始位置在目标坐标轴上的坐标值减去当前运动位置在目标坐标轴上的坐标值,得到两者之间的差值。

s806,控制活动部件从部件初始位置起,沿着相对于固定部件固定的目标坐标轴,并朝该方向移动第一长度。

可以理解,局部空间的坐标系与三维交互物件的相对位置是固定的,而三维交互物件的固定部件也是在三维交互物件的局部空间中的位置是固定的,所以,目标坐标轴相对于固定部件是固定的。

图9为一个实施例中活动部件运动的示意图,如图9所示,三维交互物件为滑动条,滑块为活动部件b,滑杆为固定部件,该滑动条的局部空间的坐标系中的目标坐标轴为x轴,虚拟操作体a的当前运动位置在目标坐标轴x轴上的坐标值为x2,虚拟操作体a的运动初始位置在目标坐标轴x轴上的坐标值为x1。两个坐标值的差值为x2-x1,则可确定活动部件b需运动的第一长度为|x2-x1|,方向为背向三维交互物件的原点o,则计算机设备可以控制活动部件b从部件初始位置起,沿着目标坐标轴x,并朝背向原点o的方向移动第一长度|x2-x1|。

上述实施例中,当前运动位置和运动初始位置在目标坐标轴上的坐标值之间的差值,确定活动部件需运动的第一长度和方向。并控制活动部件从部件初始位置起,沿着相对于固定部件固定的目标坐标轴,并朝该方向移动第一长度。实现了活动部件相对于固定部件并随着虚拟操作体运动,从而通过控制活动部件运动,来触发与三维交互物件对应的控制指令,以实现交互控制。此外,沿着相对于固定部件固定的目标坐标轴并朝该方向移动第一长度,可以使得活动部件的运动更加的准确,剔除了一些干扰运动,从而使得触发生成的控制指令更加的准确。

在一个实施例中,在步骤s308之前,该方法还包括:当虚拟操作体离开活动部件时,确定活动部件在局部空间中的部件当前位置;根据部件当前位置,确定活动部件在局部空间中的部件停止位置;将活动部件停留于部件停止位置。

其中,部件当前位置,是虚拟操作体离开活动部件的瞬间,活动部件在局部空间中所处的实时位置。部件停止位置,是活动部件停止运动时需要在局部空间中处于的位置。

在一个实施例中,计算机设备可以根据游戏碰撞系统的事件触发机制来监测虚拟操作体离开活动部件的瞬间。当虚拟操作体离开活动部件时,计算机设备可以通过监测活动部件在局部空间的坐标系中所处的坐标位置,确定活动部件在局部空间中的部件当前位置。

在另一个实施例中,计算机设备也可以根据控制活动部件随虚拟操作体运动时两者间的运动位置间的关系,得到表示虚拟操作体的运动位置和活动部件的运动位置之间关系的函数。计算机设备可以获取虚拟操作体在离开活动部件前最后接触活动部件时所处的位置。计算机设备将虚拟操作体最后接触活动部件时所处的位置作为入参代入上述得到的函数,得到活动部件的在局部空间中的部件当前位置。

需要说明的是,部件当前位置与部件停止位置可以是相同的位置,也可以是不同的位置,当两者是不同的位置时,则计算机设备需要控制活动部件从部件当前位置起运动到部件停止位置。

本实施例中,当虚拟操作体离开活动部件时,确定活动部件在局部空间中的部件停止位置;并将活动部件停留于部件停止位置,以根据停留于部件停止位置的活动部件相对于固定部件的相对位置,来输出与三维交互物件对应的控制指令,避免了在活动部件运动过程中就频繁的生成控制指令造成系统压力过大的问题,同时节省了处理资源。

在一个实施例中,根据部件当前位置,确定活动部件在局部空间中的部件停止位置包括:确定三维交互物件的类型;当三维交互物件的类型为无状态类型时,则将部件当前位置作为活动部件在局部空间中的部件停止位置。

其中,三维交互物件的类型包括无状态类型和有状态类型。无状态类型的三维交互物件,是指当虚拟操作体离开后所包括的活动部件就立即停止运动的三维交互物件。有状态类型的三维交互物件,是指在虚拟操作体离开后,所包括的活动部件仍然会运动至根据位置匹配逻辑所匹配出的目标停止位置的三维交互物件。

比如,三维交互物件为按钮,针对属于无状态类型的按钮,则虚拟操作体离开该按钮的活动部件后,该按钮的活动部件就会停止运动。而针对属于有状态类型的按钮,该按钮所具备的功能为开关。假如需要将按钮按压至少一半才能够打开开关,则虚拟操作体离开该按钮的活动部件后,如果该按钮的活动部件未被按照至少一半,则不能够打开开关,那么该按钮的活动部件就会自动运动返回至未被按压前的位置。

在一个实施例中,针对无状态的类型的三维交互物件,活动部件在局部空间位置所对应的部件停止位置是连续型的浮点数值。比如,0-1内的浮点数值。针对有状态的类型的三维交互物件,活动部件在局部空间位置所对应的部件停止位置为离散的预设位置数值。比如,预设位置数值为0、0.5和1,则需要将在虚拟操作体离开后,所包括的活动部件的位置与这3个预设位置数值匹配,根据匹配结果从这3个数值中选取目标停止位置。

具体地,计算机设备会确定三维交互物件的类型,当三维交互物件的类型为无状态类型时,则说明该三维交互物件所包括的活动部件在虚拟操作体离开后需要立即停止运动,计算机设备则可以直接将部件当前位置作为该活动部件在局部空间中的部件停止位置。

在一个实施例中,当三维交互物件的类型为有状态类型时,则计算机设备可以根据活动部件的部件当前位置,为活动部件匹配出目标停止位置,作为该活动部件最终的部件停止位置。

在一个实施例中,活动部件相对于固定部件的相对位置,是活动部件在局部空间所处的位置。本实施例中,计算机设备可以输出活动部件所处的部件停止位置数值,根据该部件停止位置数值生成与三维交互物件对应的控制指令。

具体地,计算机设备可以根据位置数值与控制指令间的预设映射关系,根据该部件停止位置数值映射得到相应的控制指令。比如,部件初始位置数值为0时,所对应的音量为0,部件停止位置数值变为1时,则输出将音量调大至50的控制指令。

上述实施例中,通过对三维交互物件的类型的判断,来确定活动部件在局部空间中的部件停止位置,当三维交互物件的类型为无状态类型时,则将部件当前位置作为活动部件在局部空间中的部件停止位置,使得所确定的部件停止位置更准确。而且使得虚拟操作体对活动部件的运动具有绝对控制权,从而使得对活动部件的控制更加的灵活。

在一个实施例中,根据部件当前位置,确定活动部件在局部空间中的部件停止位置包括:确定三维交互物件的类型;当三维交互物件的类型为有状态类型时,则获取活动部件在局部空间中所对应的至少一个预设停止位置;选取距离部件当前位置最近的预设停止位置,作为活动部件在局部空间中的部件停止位置。

其中,有状态类型的三维交互物件,是指在虚拟操作体离开后,所包括的活动部件仍然会运动至根据位置匹配逻辑所匹配出的目标停止位置的三维交互物件。

具体地,计算机设备中针对有状态类型的三维交互物件的活动部件,在局部空间中预先设置了至少一个预设停止位置。计算机设备会确定三维交互物件的类型。当三维交互物件的类型为有状态类型时,计算机设备则可以获取该活动部件在局部空间中所对应的至少一个预设停止位置。计算机设备可以将部件当前位置与所获取的至少一个预设停止位置进行匹配,选取距离部件当前位置最近的预设停止位置,作为活动部件在局部空间中的部件停止位置。

上述实施例中,当三维交互物件的类型为有状态类型时,选取距离部件当前位置最近的预设停止位置,作为活动部件在局部空间中的部件停止位置,即当虚拟操作体对活动部件的运动控制存在一些误差时,也能够准确地确定出活动部件的目标停止位置,从而使得输出的控制指令更准确。

在一个实施例中,将活动部件停留于部件停止位置包括:获取部件当前位置和部件停止位置各在局部空间中目标坐标轴上的坐标值;根据部件当前位置和部件停止位置在目标坐标轴上的坐标值之间的差值,确定活动部件需运动的第二长度;控制活动部件由部件当前位置起,沿着目标坐标轴运动第二长度,以到达部件停止位置。

其中,局部空间中的目标坐标轴,是指三维交互物件的局部空间的坐标系中的目标坐标轴。可以理解,目标坐标轴所处的方向,是活动部件相对于固定部件能够运动的方向,即活动部件可以相对于固定部件在目标坐标轴方向上运动。

具体地,计算机设备可以将部件当前位置在目标坐标轴上的坐标值减去部件停止位置在目标坐标轴上的坐标值,得到两者之间的差值。计算机设备可以根据得到的差值确定活动部件需运动的第二长度。可以理解,计算机设备也可以将部件停止位置在目标坐标轴上的坐标值减去部件当前位置在目标坐标轴上的坐标值,得到两者之间的差值。进一步地,计算机设备可以控制活动部件由部件当前位置起,沿着目标坐标轴运动第二长度,以到达部件停止位置。

上述实施例中,通过控制活动部件沿着目标坐标轴运动第二长度以从部件当前位置到达部件停止位置,使得活动部件以最短路径到达部件停止位置,提高了控制效率。

如图10所示,在一个实施例中,提供了另一种虚拟现实环境下的控制方法,该方法具体包括以下步骤:

s1002,在虚拟现实环境中,显示包括活动部件和固定部件的三维交互物件。

在一个实施例中,步骤s1002包括:在虚拟现实环境中,确定用于构建三维交互物件的中心,根据中心建立需构建的三维交互物件的局部空间的坐标系,确定组成三维交互物件的活动部件和固定部件各在坐标系中的坐标,根据确定的坐标,构建活动部件和固定部件得到三维交互物件。

s1004,获取活动部件在三维交互物件的局部空间中的部件初始位置。

s1006,当虚拟操作体与活动部件接触时,确定虚拟操作体相对于三维交互物件的局部空间的运动初始位置。

在一个实施例中,步骤s1006之前,该方法还包括:监测虚拟操作体在虚拟现实环境中的移动。

s1008,当虚拟操作体与活动部件接触并运动时,获取虚拟操作体在局部空间中的当前运动位置。

s1010,获取当前运动位置和运动初始位置各在局部空间中目标坐标轴上的坐标值。

s1012,根据当前运动位置和运动初始位置在目标坐标轴上的坐标值之间的差值,确定活动部件需运动的第一长度和方向。

s1014,控制活动部件从部件初始位置起,沿着相对于固定部件固定的目标坐标轴,并朝该方向移动第一长度。

s1016,当虚拟操作体离开活动部件时,确定活动部件在局部空间中的部件当前位置。

s1018,确定三维交互物件的类型。当三维交互物件的类型为有状态类型时,则进入步骤s1020,当三维交互物件的类型为无状态类型时,则进入步骤s1030。

s1020,获取活动部件在局部空间中所对应的至少一个预设停止位置。

s1022,选取距离部件当前位置最近的预设停止位置,作为活动部件在局部空间中的部件停止位置。

s1024,获取部件当前位置和部件停止位置各在局部空间中目标坐标轴上的坐标值。

s1026,根据部件当前位置和部件停止位置在目标坐标轴上的坐标值之间的差值,确定活动部件需运动的第二长度。

s1028,控制活动部件由部件当前位置起,沿着目标坐标轴运动第二长度,以到达部件停止位置。

s1030,将部件当前位置作为活动部件在局部空间中的部件停止位置。

s1032,按照活动部件相对于固定部件的相对位置,输出与三维交互物件对应的控制指令。

上述虚拟现实环境下的控制方法,通过将进行交互的功能菜单界面虚拟为三维交互物件,在虚拟现实环境中,通过虚拟操作体与三维交互物件的活动部件接触,移动虚拟操作体就可以直接控制活动部件跟随虚拟操作体运动,根据运动的活动部件相对于固定部件的相对位置,就可以直接输出与三维交互物件对应的控制命令,通过移动虚拟操作体就可以实现交互控制,不需要基于二维菜单界面进行瞄准选择并按键点击等繁琐的步骤来进行交互,提高了虚拟现实环境下的控制效率。

其次,通过虚拟操作体在局部空间的运动初始位置到当前运动位置的变化,控制活动部件从部件初始位置起相对于固定部件运动,能够实现活动部件相对于固定部件并跟随虚拟操作体的运动而运动,从而通过控制活动部件运动,来触发与三维交互物件对应的控制指令,以实现交互控制。

然后,沿着相对于固定部件固定的目标坐标轴和方向移动第一长度,可以使得活动部件的运动更加的准确,剔除了一些干扰运动,从而使得触发生成的控制指令更加的准确。

此外,当三维交互物件的类型为有状态类型时,选取距离部件当前位置最近的预设停止位置,作为活动部件在局部空间中的部件停止位置,即当虚拟操作体对活动部件的运动控制存在一些误差时,也能够准确地确定出活动部件的目标停止位置,从而使得输出的控制指令更准确。

如图11所示,在一个实施例中,提供了一种虚拟现实环境下的控制装置1100,该装置1100包括显示模块1102、移动监测模块1104、控制模块1106以及指令输出模块1108,其中:

显示模块1102,用于在虚拟现实环境中,显示包括活动部件和固定部件的三维交互物件。

移动监测模块1104,用于监测虚拟操作体在虚拟现实环境中的移动。

控制模块1106,用于当虚拟操作体移动至与所述活动部件接触后,控制所述活动部件相对于所述固定部件并跟随所述虚拟操作体运动。

指令输出模块1108,用于按照所述活动部件相对于所述固定部件的相对位置,输出与所述三维交互物件对应的控制指令。

在一个实施例中,显示模块1102还用于在虚拟现实环境中,确定用于构建三维交互物件的中心;根据所述中心建立需构建的三维交互物件的局部空间的坐标系;确定组成三维交互物件的活动部件和固定部件各在所述坐标系中的坐标;根据确定的坐标,构建所述活动部件和固定部件得到三维交互物件。

如图12所示,在一个实施例中,所述控制模块1106包括:

位置确定模块1106a,用于获取所述活动部件在所述三维交互物件的局部空间中的部件初始位置;当虚拟操作体移动至与所述活动部件接触时,确定所述虚拟操作体相对于所述三维交互物件的局部空间的运动初始位置;当所述虚拟操作体与所述活动部件接触并运动时,获取所述虚拟操作体在所述局部空间中的当前运动位置。

运动控制模块1106b,用于根据所述运动初始位置到所述当前运动位置的变化,控制所述活动部件从所述部件初始位置起相对于所述固定部件运动。

在一个实施例中,所述运动控制模块1106b还用于获取所述当前运动位置和所述运动初始位置各在所述局部空间中目标坐标轴上的坐标值;根据所述当前运动位置和所述运动初始位置在目标坐标轴上的坐标值之间的差值,确定所述活动部件需运动的第一长度和方向;控制所述活动部件从所述部件初始位置起,沿着相对于所述固定部件固定的所述目标坐标轴,并朝所述方向移动所述第一长度。

在一个实施例中,所述控制模块1106还用于当所述虚拟操作体离开所述活动部件时,确定所述活动部件在所述局部空间中的部件当前位置;根据所述部件当前位置,确定所述活动部件在所述局部空间中的部件停止位置;将所述活动部件停留于所述部件停止位置。

在一个实施例中,所述控制模块1106还用于确定所述三维交互物件的类型;当所述三维交互物件的类型为无状态类型时,则将所述部件当前位置作为所述活动部件在所述局部空间中的部件停止位置。

在一个实施例中,所述控制模块1106还用于确定所述三维交互物件的类型;当所述三维交互物件的类型为有状态类型时,则获取所述活动部件在所述局部空间中所对应的至少一个预设停止位置;选取距离所述部件当前位置最近的预设停止位置,作为所述活动部件在所述局部空间中的部件停止位置。

在一个实施例中,所述控制模块1106还用于获取所述部件当前位置和所述部件停止位置各在所述局部空间中目标坐标轴上的坐标值;根据所述部件当前位置和所述部件停止位置在目标坐标轴上的坐标值之间的差值,确定所述活动部件需运动的第二长度;控制所述活动部件由所述部件当前位置起,沿着所述目标坐标轴运动所述第二长度,以到达所述部件停止位置。

在一个实施例中,本申请提供的虚拟现实环境下的控制装置可以实现为一种计算机程序的形式,所述计算机程序可在如图2所示的计算机设备上运行,所述计算机设备的非易失性存储介质可存储组成该虚拟现实环境下的控制装置的各个程序模块,比如,图11所示的显示模块1102、移动监测模块1104、控制模块1106、及指令输出模块1108。各个程序模块中包括计算机可读指令,所述计算机可读指令用于使所述计算机设备执行本说明书中描述的本申请各个实施例的虚拟现实环境下的控制方法中的步骤,例如,所述计算机设备可以通过如图11所示的交互数据处理装置1100中的显示模块1102在虚拟现实环境中,显示包括活动部件和固定部件的三维交互物件,通过移动监测模块1104监测虚拟操作体在虚拟现实环境中的移动,并通过控制模块1106当虚拟操作体移动至与所述活动部件接触后,控制所述活动部件相对于所述固定部件并跟随所述虚拟操作体运动。计算机设备可以通过指令输出模块1108按照所述活动部件相对于所述固定部件的相对位置,输出与所述三维交互物件对应的控制指令。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被处理器执行时,使得所述处理器执行如下步骤:在虚拟现实环境中,显示包括活动部件和固定部件的三维交互物件;监测虚拟操作体在所述虚拟现实环境中的移动;当虚拟操作体移动至与所述活动部件接触后,控制所述活动部件相对于所述固定部件并跟随所述虚拟操作体运动;按照所述活动部件相对于所述固定部件的相对位置,输出与所述三维交互物件对应的控制指令。

在一个实施例中,所述在虚拟现实环境中,显示包括活动部件和固定部件的三维交互物件,包括:在虚拟现实环境中,确定用于构建三维交互物件的中心;根据所述中心建立需构建的三维交互物件的局部空间的坐标系;确定组成三维交互物件的活动部件和固定部件各在所述坐标系中的坐标;根据确定的坐标,构建所述活动部件和固定部件得到三维交互物件。

在一个实施例中,所述当虚拟操作体移动至与所述活动部件接触后,控制所述活动部件相对于所述固定部件并跟随所述虚拟操作体运动包括:获取所述活动部件在所述三维交互物件的局部空间中的部件初始位置;当虚拟操作体移动至与所述活动部件接触时,确定所述虚拟操作体相对于所述三维交互物件的局部空间的运动初始位置;当所述虚拟操作体与所述活动部件接触并运动时,获取所述虚拟操作体在所述局部空间中的当前运动位置;根据所述运动初始位置到所述当前运动位置的变化,控制所述活动部件从所述部件初始位置起相对于所述固定部件运动。

在一个实施例中,所述根据所述运动初始位置到所述当前运动位置的变化,控制所述活动部件从所述部件初始位置起相对于所述固定部件运动,包括:获取所述当前运动位置和所述运动初始位置各在所述局部空间中目标坐标轴上的坐标值;根据所述当前运动位置和所述运动初始位置在目标坐标轴上的坐标值之间的差值,确定所述活动部件需运动的第一长度和方向;控制所述活动部件从所述部件初始位置起,沿着相对于所述固定部件固定的所述目标坐标轴,并朝所述方向移动所述第一长度。

在一个实施例中,在所述按照所述活动部件相对于所述固定部件的相对位置,输出与所述三维交互物件对应的控制指令之前,计算机可读指令还使得处理器执行以下步骤:当所述虚拟操作体离开所述活动部件时,确定所述活动部件在所述局部空间中的部件当前位置;根据所述部件当前位置,确定所述活动部件在所述局部空间中的部件停止位置;将所述活动部件停留于所述部件停止位置。

在一个实施例中,所述根据所述部件当前位置,确定所述活动部件在所述局部空间中的部件停止位置包括:确定所述三维交互物件的类型;当所述三维交互物件的类型为无状态类型时,则将所述部件当前位置作为所述活动部件在所述局部空间中的部件停止位置。

在一个实施例中,所述根据所述部件当前位置,确定所述活动部件在所述局部空间中的部件停止位置包括:确定所述三维交互物件的类型;当所述三维交互物件的类型为有状态类型时,则获取所述活动部件在所述局部空间中所对应的至少一个预设停止位置;选取距离所述部件当前位置最近的预设停止位置,作为所述活动部件在所述局部空间中的部件停止位置。

在一个实施例中,所述将所述活动部件停留于所述部件停止位置包括:获取所述部件当前位置和所述部件停止位置各在所述局部空间中目标坐标轴上的坐标值;根据所述部件当前位置和所述部件停止位置在目标坐标轴上的坐标值之间的差值,确定所述活动部件需运动的第二长度;控制所述活动部件由所述部件当前位置起,沿着所述目标坐标轴运动所述第二长度,以到达所述部件停止位置。

在一个实施例中,提供了一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如下步骤:在虚拟现实环境中,显示包括活动部件和固定部件的三维交互物件;监测虚拟操作体在所述虚拟现实环境中的移动;当虚拟操作体移动至与所述活动部件接触后,控制所述活动部件相对于所述固定部件并跟随所述虚拟操作体运动;按照所述活动部件相对于所述固定部件的相对位置,输出与所述三维交互物件对应的控制指令。

在一个实施例中,所述在虚拟现实环境中,显示包括活动部件和固定部件的三维交互物件,包括:在虚拟现实环境中,确定用于构建三维交互物件的中心;根据所述中心建立需构建的三维交互物件的局部空间的坐标系;确定组成三维交互物件的活动部件和固定部件各在所述坐标系中的坐标;根据确定的坐标,构建所述活动部件和固定部件得到三维交互物件。

在一个实施例中,所述当虚拟操作体移动至与所述活动部件接触后,控制所述活动部件相对于所述固定部件并跟随所述虚拟操作体运动包括:获取所述活动部件在所述三维交互物件的局部空间中的部件初始位置;当虚拟操作体移动至与所述活动部件接触时,确定所述虚拟操作体相对于所述三维交互物件的局部空间的运动初始位置;当所述虚拟操作体与所述活动部件接触并运动时,获取所述虚拟操作体在所述局部空间中的当前运动位置;根据所述运动初始位置到所述当前运动位置的变化,控制所述活动部件从所述部件初始位置起相对于所述固定部件运动。

在一个实施例中,所述根据所述运动初始位置到所述当前运动位置的变化,控制所述活动部件从所述部件初始位置起相对于所述固定部件运动,包括:获取所述当前运动位置和所述运动初始位置各在所述局部空间中目标坐标轴上的坐标值;根据所述当前运动位置和所述运动初始位置在目标坐标轴上的坐标值之间的差值,确定所述活动部件需运动的第一长度和方向;控制所述活动部件从所述部件初始位置起,沿着相对于所述固定部件固定的所述目标坐标轴,并朝所述方向移动所述第一长度。

在一个实施例中,在所述按照所述活动部件相对于所述固定部件的相对位置,输出与所述三维交互物件对应的控制指令之前,计算机可读指令还使得处理器执行以下步骤:当所述虚拟操作体离开所述活动部件时,确定所述活动部件在所述局部空间中的部件当前位置;根据所述部件当前位置,确定所述活动部件在所述局部空间中的部件停止位置;将所述活动部件停留于部件停止位置。

在一个实施例中,所述根据所述部件当前位置,确定所述活动部件在所述局部空间中的部件停止位置包括:确定所述三维交互物件的类型;当所述三维交互物件的类型为无状态类型时,则将所述部件当前位置作为所述活动部件在所述局部空间中的部件停止位置。

在一个实施例中,所述根据所述部件当前位置,确定所述活动部件在所述局部空间中的部件停止位置包括:确定所述三维交互物件的类型;当所述三维交互物件的类型为有状态类型时,则获取所述活动部件在所述局部空间中所对应的至少一个预设停止位置;选取距离所述部件当前位置最近的预设停止位置,作为所述活动部件在所述局部空间中的部件停止位置。

在一个实施例中,所述将所述活动部件停留于所述部件停止位置包括:获取所述部件当前位置和所述部件停止位置各在所述局部空间中目标坐标轴上的坐标值;根据所述部件当前位置和所述部件停止位置在目标坐标轴上的坐标值之间的差值,确定所述活动部件需运动的第二长度;控制所述活动部件由所述部件当前位置起,沿着所述目标坐标轴运动所述第二长度,以到达所述部件停止位置。

可以理解,本申请说明书中的“计算机设备”即为本申请发明名称中的“设备”。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)等非易失性存储介质,或随机存储记忆体(randomaccessmemory,ram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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