虚拟对象控制方法、装置、电子装置及存储介质与流程

文档序号:14876594发布日期:2018-07-07 07:14阅读:169来源:国知局

本发明涉及计算机技术领域,特别涉及一种虚拟对象控制方法、装置、电子装置及存储介质。



背景技术:

随着计算机技术的发展,人们可以通过模拟技术模拟现实生活中的场景,其中,模拟技术是指利用相似原理,建立研究对象的模型,并通过模型间接地研究原型规律性的实验方法。例如,在游戏应用中,人们可以通过在虚拟场景中控制虚拟对象,使得该虚拟对象进行跑动、跳跃、射击、跳伞等动作,来模拟现实中人的动作。

目前,虚拟对象控制方法通常是设置虚拟摇杆区域,通过检测用户对该虚拟摇杆区域的触控操作,来确定该虚拟对象的移动方向,该移动方向通常是上、下、左、右,控制该虚拟对象向该移动方向进行移动,并以固定视角显示所述虚拟对象的位置变化。

在实现本发明的过程中,发明人发现现有技术至少存在以下问题:

现有技术中只能在有限的轴向上改变虚拟对象的位置,不能改变该虚拟对象的移动速度,且视角固定,因而,不能真实模拟现实中人的动作。



技术实现要素:

本发明实施例提供了一种虚拟对象控制方法、装置、电子装置及存储介质,可以解决现有技术中不能真实模拟虚拟对象的动作的问题。所述技术方案如下:

第一方面,提供了一种虚拟对象控制方法,所述方法包括:

当检测到对控制区域的触控操作时,确定三维虚拟场景的视角,所述控制区域用于对所述三维虚拟场景中的虚拟对象的移动方式进行控制;

基于所述控制区域的触控操作、所述视角以及重力加速度,获取所述虚拟对象在下落过程中的加速度;

控制所述虚拟对象在所述三维虚拟场景中根据所述加速度进行下落。

第二方面,提供了一种虚拟对象控制装置,所述装置包括:

确定模块,用于当检测到对控制区域的触控操作时,确定三维虚拟场景的视角,所述控制区域用于对所述三维虚拟场景中的虚拟对象的移动方式进行控制;

获取模块,用于基于所述控制区域的触控操作、所述视角以及重力加速度,获取所述虚拟对象在下落过程中的加速度;

控制模块,用于控制所述虚拟对象在所述三维虚拟场景中根据所述加速度进行下落。

第三方面,提供了一种电子装置,所述电子装置包括:处理器;用于存放计算机程序的存储器;其中,所述处理器用于执行存储器上所存放的计算机程序,实现第一方面所述的方法步骤。

第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的方法步骤。

本发明实施例提供的技术方案带来的有益效果是:

本发明通过检测到虚拟摇杆区域的触控操作,结合触控操作、视角以及重力加速度等因素,确定虚拟对象的加速度,实现对虚拟对象的移动控制,该加速度的方向不固定,大小不为零,使得该虚拟对象可以向任意方向移动,还可以使得该虚拟对象加速或者减速移动,从而能够真实模拟真实人物的动作。

附图说明

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

图1是本发明实施例提供的一种终端页面示意图;

图2是本发明实施例提供的一种虚拟对象的朝向示意图;

图3是本发明实施例提供的一种虚拟对象的朝向示意图;

图4是本发明实施例提供的一种虚拟对象控制方法流程图;

图5是本发明实施例提供的一种虚拟对象的身体姿态的示意图;

图6是本发明实施例提供的一种虚拟对象的身体姿态的示意图;

图7是本发明实施例提供的一种虚拟对象的身体姿态的示意图;

图8是本发明实施例提供的一种虚拟对象的身体姿态的示意图;

图9是本发明实施例提供的一种虚拟对象控制方法流程图;

图10是本发明实施例提供的一种虚拟对象控制装置的结构示意图;

图11是本发明实施例提供的一种电子装置1100的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

在本发明实施例中,终端可以基于获取的场景数据,模拟三维虚拟场景,该三维虚拟场景可以为虚拟现实、电子游戏场景,也可以为国防科普、物理教学等领域的模拟场景。以电子游戏场景为例,用户可以在终端上进行触控操作,该终端可以根据检测到的触控操作,确定该触控操作所对应的游戏数据,并对该游戏数据进行渲染显示,该游戏数据可以包括三维虚拟场景数据、该虚拟场景中虚拟对象的行为数据等。

本发明涉及到的三维虚拟场景可以用于模拟一个三维虚拟空间,该三维虚拟空间可以是一个开放空间,用户可以控制虚拟对象在该三维虚拟场景中进行移动,该虚拟对象可以是该三维虚拟场景中的一个虚拟的用于代表用户的虚拟形象,该虚拟形象可以是任一种形态,例如,人、动物等,本发明对此不限定。

为了模拟实际场景,该三维虚拟空间可以包括天空区域和非天空区域,该非天空区域可以是陆地区域和海洋区域,当该虚拟对象位于天空区域时,由于重力的作用,该虚拟场景的移动过程是下落过程,该用户可以在该虚拟对象的下落过程中进行触控操作,改变该虚拟对象的下落速度和下落过程中的偏移方向,从而可以选择在不同的落点降落。当然,该方法还可以用于在海洋区域内进行下潜的过程中,则此时虚拟对象可以基于触控操作来调整其下潜时的加速度,从而改变下潜的速度以及移动方向等。

其中,终端确定该虚拟对象位于天空区域的方法可以采用射线检测方法,终端可以从该虚拟对象的指定部位垂直向下发射一条射线,检测该虚拟对象与该虚拟对象垂直向下方向的物体之间的距离,当该距离不为零时,终端可以确定该虚拟对象位于天空区域。具体地,该终端可以调用射线检测函数,进行上述射线检测步骤,从而根据该射线检测是否与地面或地面上的物体发生碰撞,来确定该虚拟对象是否与地面或地面上的物体接触,如果该虚拟对象没有与地面或地面上的物体接触,则可以确定该虚拟对象位于天空区域。在一种可能实现方式中,该终端还可以通过射线检测该虚拟对象垂直向下方向的物体在世界坐标系中的坐标,并基于该物体的坐标以及该虚拟对象的坐标,来确定该虚拟对象是否与该物体接触,从而确定该虚拟对象是否位于天空区域。在另一种可能实现方式中,该终端还可以通过从该虚拟对象出发至地面或地面上的物体之间的射线矢量的大小是否为零,来确定该虚拟对象是否位于天空区域,当该射线矢量的大小不为零时,可以确定该虚拟对象位于天空区域。当然,该终端还可以通过射线检测到地面上的物体或地面后,对该物体或地面以及虚拟对象在一个平面上进行投影,计算虚拟对象与该物体或地面之间的距离,本发明实施例对如何具体采用哪种射线检测方法确定虚拟对象位于天空区域不作具体限定。

而当该虚拟对象位于非天空区域时,该虚拟场景在垂直方向上除了重力还可以有地面的支持力,或者在海洋中由垂直向上的浮力,则虚拟对象不再下落,用户可以控制该虚拟对象在陆地上做走动、跑动、跳跃、匍匐前进等动作,或者在海洋中漂浮、游泳等动作。相应地,当该虚拟对象在该三维虚拟场景中的位置不同时,终端如何基于触控操作对虚拟对象进行控制以模拟上述动作的方式也可以不同,具体终端如何基于触控操作,控制虚拟对象进行移动可以参见图4所示实施例。

用户既可以通过触控操作控制虚拟对象的移动速度,也可以通过触控操作来控制虚拟对象的移动方向。由于该虚拟对象为用户的一个虚拟化身,以第一人称视角为例,用户看到的虚拟场景通常是通过该虚拟对象的视角观察到的虚拟场景,且现实中人在移动时通常视角为人的前方,则可以提供一种控制方式:通过调整三维虚拟场景的视角来改变虚拟对象的移动方向。终端还可以提供一种控制区域,该控制区域用于对该三维虚拟场景中的虚拟对象的移动方式进行控制,则终端可以结合三维虚拟场景的视角以及该控制区域的触控操作来确定虚拟对象的移动方向以及移动速度。

具体实施时,该控制区域可以是虚拟摇杆区域,也可以是一个虚拟控制区域,当然,该控制区域也可以是真实摇杆设备中的摇杆控件所在区域,本发明对此不作具体限定。相应地,当该控制区域是虚拟摇杆区域时,用户对该控制区域的触控操作可以是滑动操作,也可以是点击操作,本发明对此不作限定。当该控制区域是虚拟控制区域时,该虚拟控制区域为摄像头可采集的区域,用户对该虚拟控制区域的触控操作可以是手势操作,则终端可以根据摄像头采集到的手势操作,控制虚拟对象进行移动。当该控制区域是摇杆控件所在区域时,用户对该控制区域的触控操作可以是按压操作、拨动操作等。

对于虚拟摇杆区域,该虚拟摇杆区域的形状可以为圆形,也可以为半圆形,本发明实施例对此不作具体限定。该虚拟摇杆区域中可以有一个原点,该原点可以位于该虚拟摇杆区域的中心,也可以位于其他指定位置,本发明实施例对此不作具体限定。终端可以根据用户的触控操作的结束点与该原点之间的相对位置确定用户想要控制虚拟对象移动的方向和速度。

图1是本发明实施例提供的一种终端页面示意图,如图1所示,以该虚拟摇杆区域的形状为圆形,用户对该虚拟摇杆区域的触控操作为滑动操作为例,在该虚拟摇杆区域可以有四个方向箭头图标,该四个方向箭头图标分别为上、下、左、右,它们分别用于表示向前、向后、向左、向右,该四个方向箭头图标仅用于使得该虚拟摇杆区域的方向指向更直观,从而引导用户如何确定用户操作所对应的方向。当然,该虚拟摇杆区域中也可以不显示该四个方向箭头图标,用户可以根据实际操作情况,慢慢熟悉对该虚拟摇杆区域的触控操作。当用户的触控操作的结束点位于该四个方向箭头图标所指示的方向上时,可以将该触控操作分别称为第一、第二、第三以及第四触控操作。

在一种可能实现方式中,终端可以根据触控操作的结束点与该虚拟摇杆区域的原点之间的距离大小,确定该触控操作所对应的加速度的大小,该加速度是指由该触控操作触发而对虚拟对象施加的加速度,该加速度用于控制该虚拟对象的移动方向和移动速度,例如,当该触控操作与虚拟摇杆区域的原点位置之间的距离越大,该触控操作所对应的加速度越大。当然,该终端也可以根据该触控操作的压力值等,来确定该触控操作所对应的加速度的大小,该触控操作所对应的加速度的大小可以与该触控操作的压力值正相关,本发明实施例对此不作具体限定。

需要说明的是,当终端检测到的触控操作的结束点位于两个相邻的方向箭头图标所指示的方向之间时,终端可以确定该触控操作包括两个子触控操作。例如,当终端检测到的触控操作的结束点位于第一触控操作所在方向与第三触控操作所在方向之间时,也即是当该触控操作的结束点位于该虚拟摇杆区域的原点的左上方时,终端可以认为该触控操作包括第一触控操作和第三触控操作,可选地,还可以根据该触控操作的结束点与虚拟摇杆区域的原点之间的相对位置,确定该触控操作所对应的第一触控操作和第三触控操作分别对应的加速度大小,当然实际应用中,终端也可以直接根据该触控操作与虚拟摇杆区域的原点之间的相对位置,确定该触控操作所对应的加速度的方向和大小。上述为该虚拟摇杆区域的操作设置的一种示例性说明,在实际应用中,该虚拟摇杆区域的具体形状、操作设置可以根据实际操作需求进行调整,本发明实施例对此不作具体限定。

对于三维虚拟场景的视角,该视角是用户观看三维虚拟场景的视角,终端可以根据不同的视角显示同一个三维虚拟场景中不同的角度所对应的区域。在该三维虚拟场景的最初始,终端可以提供默认视角以及虚拟对象的默认朝向。该虚拟对象的朝向可以包括第一朝向和第二朝向,该第一朝向是指该虚拟对象的姿态角中的偏航角,该第二朝向是指该虚拟对象的姿态角中的俯仰角。该偏航角与该俯仰角为以该虚拟对象的中心为原点的预设卡笛尔坐标系中的pitch坐标与yaw坐标,该pitch坐标范围为-90°至0°,该yaw坐标范围为-180°至180°。

在一种可能实现方式中,当该虚拟对象的初始位置可以位于该三维虚拟场景中的天空区域时,终端可以提供第一默认视角,该第一默认视角可以是该虚拟对象的前下方45°。当该虚拟对象的初始位置位于该三维虚拟场景中的非天空区域时,终端可以提供第二默认视角,该第二默认视角为该虚拟对象处于站立姿态时的正前方。该默认视角仅为一种示例性说明,在具体实施中本发明对该默认视角的设置不作具体限定。例如,如图2所示,该虚拟对象的默认第一朝向可以是-90°,如图3所示,该虚拟对象的默认第二朝向可以是-90°。相应地,该第一默认视角的偏航角可以是-90°,俯仰角可以是-45°。

图4是本发明实施例提供的一种虚拟对象控制方法流程图。在本发明实施例中,仅以该虚拟对象控制方法应用于电子游戏场景,控制区域为虚拟摇杆区域为例进行说明。参见图4,该虚拟对象控制方法包括以下步骤:

401、当检测到虚拟摇杆区域的触控操作时,终端确定三维虚拟场景的视角。

为了使得用户可以通过简单操作即可控制虚拟对象移动,且能够自由控制虚拟对象加速、减速或改变移动方向等,终端可以提供上述虚拟摇杆区域以及三维虚拟场景的视角,用户可以通过调整该视角改变虚拟对象的移动方向,则终端在检测到虚拟摇杆区域的触控操作时,需要确定三维虚拟场景的视角,从而确定用户想要控制该虚拟对象如何进行移动。

在实际应用中,用户可以在终端上进行视角调整操作来调整视角,当终端检测到视角调整操作时,终端可以根据该视角调整操作对视角进行调整。该视角调整操作可以为滑动操作或点击操作,以该视角调整操作为滑动操作为例,用户可以在终端屏幕上进行滑动操作,当终端检测到该滑动操作时,可以根据该滑动操作的滑动方向,对视角进行调整,使得该视角的移动方向与该滑动方向相同。可选地,该视角移动的角度可以与该滑动操作的滑动距离成正比。在一种可能实现方式中,该用户也可以设置另一种虚拟摇杆区域,该另一种虚拟摇杆区域用于终端检测该用户的触控操作,以实现对视角的调整步骤。当终端检测到该虚拟摇杆区域内的触控操作时,根据该虚拟摇杆区域内的触控操作的结束点与该虚拟摇杆区域的原点的相对位置,确定该触控操作所对应的视角调整方向以及调整角度。可选地,该触控操作的结束点相对于该虚拟摇杆区域的原点的方向与视角调整方向相同,该触控操作的结束点与该虚拟摇杆区域的原点之间的距离与视角调整角度正相关。

终端在检测到上述视角调整操作时,除了对视角进行调整之外,还可以根据调整后的视角,调整该虚拟对象的第一朝向,使得该虚拟对象的偏航角与该视角的偏航角相同,来模拟真实人物在天空区域中调整滑翔方向后,视角也跟着发生变化的场景。例如,当终端检测到视角调整操作时,终端将该视角的偏航角从-90°调整至-45°,并将该虚拟对象的第一朝向也调整至-45°,使得虚拟对象仍然保持面向当前所展示的三维虚拟场景的状态。

为了用户在下落过程中更好地观察周边环境,从而可以基于周边环境选择落点,或者观察周边环境中是否有其它虚拟对象,终端还可以提供一个观察视角功能按钮,当该终端检测到对该观察视角功能按钮的触控操作时,终端可以根据该对观察视角功能按钮的触控操作的操作方向对视角进行调整,而该终端可以不根据对该观察视角功能按钮的触控操作调整虚拟对象的第一朝向。该触控操作可以是为该观察视角功能按钮为中心的指定区域,该指定区域的形状可以是圆形,也可以是其它形状,本发明对该指定区域的形状以及大小不作具体限定。需要说明的是,当该终端检测到对该观察视角功能按钮的触控操作消失时,可以将视角调整回对该观察视角功能按钮进行触控操作前的视角。在一种可能实现方式中,用户对该观察视角功能按钮的具体操作可以为:先按住该观察视角功能按钮,在该观察视角功能按钮附近进行滑动或者拖动。终端在检测到用户对该观察视角功能按钮的触控操作时,可以基于用户操作调整视角,并根据调整后的视角提供三维虚拟场景,以使得用户可以观察该虚拟对象的周边环境,方便用户基于当前的周边环境进行落点选择,进行下一步操作。

需要说明的是,该步骤401中终端确定的三维虚拟场景的视角并不是通过对该观察视角功能按钮的触控操作调整的视角,如果该终端检测到虚拟摇杆区域的触控操作的同时,终端正在根据对该观察视角功能按钮的触控操作进行视角调整,终端确定的三维虚拟场景的视角为根据对该观察视角功能按钮的触控操作进行视角调整前的视角。

在一种可能实现方式中,该终端在检测到该触控操作时,可以检测虚拟对象在该三维虚拟场景中的位置,当检测到该虚拟对象位于该三维虚拟场景的天空区域时,该虚拟对象处于滑翔状态,用户可以通过上述虚拟摇杆区域以及三维虚拟场景的视角来控制虚拟对象的下落的落点和下落速度,终端则可以执行该步骤中确定三维虚拟场景的视角的步骤;而当检测到该虚拟对象位于该三维虚拟场景的非天空区域时,该虚拟对象处于在陆地站立或者在海洋中游泳的状态,用户可以直接通过对虚拟摇杆区域进行触控操作,控制虚拟对象向其周边进行移动,根据触控操作所指示的移动方向不同,该虚拟对象可以向其周边360°方向中的任一方向进行移动,则终端可以无需执行该步骤401,而执行步骤406,基于用户的触控操作控制虚拟对象进行移动。当然,该用户也可以通过调整三维虚拟场景的视角来调整该虚拟对象正面朝向,从而可以改变该虚拟对象向正前方移动时的方向,以模拟真实人物转向移动、以及人物正前方不变时向各个方位移动等场景。

402、终端接收由虚拟摇杆区域的触控操作触发的触控指令。

终端检测到的触控操作可以不同,相应地,终端接收到的触控指令也可以不同。对应于上述第一触控操作、第二触控操作、第三触控操作以及第四触控操作,终端可以接收到第一触控指令、第二触控指令、第三触控指令以及第四触控指令。在一种可能实现方式中,在上述实施例中提到的触控操作的结束点位于两个相邻的方向箭头图标所指示的方向之间时,终端可以获取由该触控操作触发的两个触控指令,该两个触控指令可以是该两个相邻的方向箭头图标所指示的方向所对应的触控操作所对应的触控指令,或者,该终端可以获取由该触控操作触发的触控指令,该触控指令所指示的虚拟对象移动效果可以是上述实现方式中两种触控指令的叠加效果,具体实施时本发明对具体采用上述两种方式中哪一种不作具体限定。

403、终端根据该触控指令以及该视角,得到第一加速度。

当该触控指令不同时或当该视角不同时,该第一加速度的大小以及方向也不同。具体地,以该触控指令可以包括四种触控指令为例,终端得到的第一加速度可以包括以下四种情况:

第一种情况、当该触控指令为第一触控指令时,得到大小为第一预设阈值、方向为视角方向的第一加速度,该第一触控指令用于指示控制该虚拟对象加速移动。

第二种情况、当该触控指令为第二触控指令时,得到大小为第一预设阈值、方向为视角方向的反方向的第一加速度,该第二触控指令用于指示控制该虚拟对象减速移动。

针对上述第一种情况和第二种情况,该第一预设阈值可以由技术人员设置,用户可以通过第一触控操作触发第一触控指令,终端可以根据该第一触控指令,控制该虚拟对象加速向前移动,也可以通过第二触控操作触发第二触控指令,终端可以根据该第二触控指令,控制该虚拟对象减速向前移动,从而达到控制该虚拟对象的移动速度的目的。需要说明的是,该第二触控操作仅用于指示控制该虚拟对象减速移动,该虚拟对象不会在天空区域向后移动。

例如,在电子游戏场景下,用户所控制的虚拟对象可以与其他虚拟对象均位于飞机中,该飞机正在以预设速度向预设方向进行移动,用户可以在终端上进行相关操作,以控制该虚拟对象离开该飞机,并进行下落。如图2所示,该虚拟对象的初始位置可以是在天空区域,且该虚拟对象的默认第一朝向可以是-90°,该虚拟对象的左边是0°,如图3所示,从该虚拟对象的侧面来看,该虚拟对象的默认第二朝向可以是-90°,垂直向下方向为0°。第一默认视角的偏航角可以是-90°,俯仰角可以是-45°。当用户进行的触发操作为第一触发操作时,终端可以接收到由该第一触发操作触发的第一触控指令,并确定该第一触发指令所对应的第一加速度的方向为:偏航角与该虚拟对象的第一朝向相同,为-90°,且俯仰角与视角的偏航角相同,为-45°。

第三种情况、当该触控指令为第三触控指令时,得到大小为第二预设阈值、方向为该虚拟对象的左边的第一加速度,该第三触控指令用于指示控制该虚拟对象向左移动。

第四种情况、当该触控指令为第四触控指令时,得到大小为第二预设阈值、方向为该虚拟对象的右边的第一加速度,该第四触控指令用于指示控制该虚拟对象向右移动。

针对上述第三种情况和第四种情况,该第二预设阈值可以由技术人员设置,一般地,该第二预设阈值的取值比较小,用户可以通过该第三触控操作或第四触控操作触发第三触控指令或第四触控指令,则终端可以根据该第三触控指令或第四触控指令控制该虚拟对象稍稍向左或向右移动,达到细微地对该虚拟对象的移动方向在左右方向上进行修正的目的,从而可以更精准地调整虚拟对象的移动方向。

在实际应用中,上述终端可以接收到上述四种触控指令中的两种触控指令的实现方式中,终端可以对该两种触控指令所对应的两个第一加速度进行矢量求和计算,得到用户的触发操作所对应的第一加速度,也即是该第一加速度该第一加速度可以为该触控操作触发的两个触控指令所对应的子第一加速度的矢量和。上述仅为根据用户进行的触控操作确定第一加速度的一种示例性说明,具体实施中,终端也可以直接接收到由触控操作触发的触控指令,该触控指令所指示的虚拟移动效果可以是上述两个触控指令的叠加效果,并根据该触控指令,来确定第一加速度的方向与大小,本发明对具体采用上述两种实现方式中的哪种方式来确定该第一加速度的方向与大小不作具体限定。

404、终端将该第一加速度与重力加速度进行矢量求和计算,得到该虚拟对象在下落过程中的加速度。

由于该虚拟对象位于天空区域,除了上述用户对该虚拟对象的触控操作所对应的第一加速度之外,该虚拟对象本身还有重力加速度的作用,终端可以通过将上述第一加速度与重力加速度进行矢量求和计算,得到该虚拟对象的加速度。

上述步骤402至404是基于该虚拟摇杆区域的触控操作、该视角以及重力加速度,获取该虚拟对象在下落过程中的加速度的过程,如果用户没有对控制区域进行触控操作,说明用户想要该虚拟对象自由下落,不对该虚拟对象的移动进行人为干涉,又该虚拟对象位于三维虚拟场景的天空区域,虚拟对象会受到重力的作用,终端可以将重力加速度作为该虚拟对象的加速度。

405、终端控制该虚拟对象在三维虚拟场景中根据该加速度进行下落。

在电子游戏场景中,该用户可能想要控制该虚拟对象的下落轨迹,选择更合适的落点,使得在后续竞技中占得优势,例如,该电子游戏中可能将虚拟对象的竞技资源设置在建筑物中,用户可能想通过控制该虚拟对象向建筑物所在的地点下落,用户还可能想要通过控制该虚拟对象的下落速度,使得该虚拟对象可以快速落地,以抢夺资源,或者,该用户可能想要通过减速下落,以争取更多的时间来选择合适的落点等。则用户在下落过程中多次进行上述触控操作,以使得终端每次检测到触控操作时,可以确定虚拟对象的加速度的方向以及大小,从而基于虚拟对象在检测到触控操作时的运动状态,控制该虚拟对象在三维虚拟场景中根据该加速度动态改变其下落的速度和方向。例如,该虚拟对象原本是在做自由落体运动,当该终端检测到第一触发操作时,经过上述步骤得到该虚拟对象的加速度方向为该虚拟对象的前下方,则终端可以控制该虚拟对象向前下方加速移动。

在一种可能实现方式中,在下落过程中,终端还可以调整该虚拟对象的第二朝向。终端在调整该虚拟对象的第二朝向时,可以根据上述第一加速度的方向进行调整。具体地,当该第一加速度的方向为视角方向时,下落过程中,终端调整该虚拟对象的第二朝向,使得该虚拟对象的俯仰角与该视角的俯仰角相同,可以更真实地模拟真实人物向下俯冲改变身体朝向的场景;当该第一加速度的方向为视角方向的反方向时,下落过程中,终端调整该虚拟对象的第二朝向,使得该虚拟对象的俯仰角为0°,可以更真实地模拟出真实人物在下落过程中调整身体朝向的场景。

需要说明的是,该虚拟对象的俯仰角范围为-90°至0°,该虚拟对象不会朝向水平方向以上,也即是,该虚拟对象不会在天空区域向上移动。终端控制该虚拟对象进行自由落体运动。而如果之前对该虚拟对象进行过第一触控操作,终端控制该虚拟对象朝向前下方,并向前下方加速移动,而现在用户不再对该虚拟对象进行触控操作,该虚拟对象的加速度变回为重力加速度,终端可以控制该虚拟对象将继续向前下方移动,该虚拟对象的运动轨迹将会是抛物线形状,而该虚拟对象在水平方向上移动的速度不再变化,并将该虚拟对象的第二朝向调整回0°。

在一种可能实现方式中,下落过程中,终端还可以根据触控操作调整该虚拟对象的身体姿态,使得虚拟对象可以在下落过程中模拟现实场景中人在空中可能出现的身体姿态,使得模拟结果更真实。具体地,基于四种不同的触控操作,该触控操作所对应的身体姿态也不同。

如图5所示,当该触控操作为第一触控操作时,终端控制该虚拟对象处于俯冲姿态,该第一触控操作触发的第一触控指令所对应的第一加速度的方向为该虚拟对象的头部向前的方向,也即是该第一加速度的方向与该虚拟对象的朝向相同,且该虚拟对象的加速度中还包括重力加速度,重力加速度的方向为垂直向下。

如图6所示,当该触控操作为第二触控操作时,终端控制该虚拟对象处于后仰姿态,该第二触控操作触发的第二触控指令所对应的第一加速度的方向为该虚拟对象的后方,该第一加速度的方向与视角的方向相反,且该虚拟对象的加速度中还包括重力加速度,重力加速度的方向为垂直向下。

当该触控操作为第三触控操作时,终端控制该虚拟对象处于向左倾斜姿态,该第三触控操作触发的第三触控指令所对应的第一加速度的方向为向左,该虚拟对象的加速度中还包括重力加速度,重力加速度的方向为垂直向下。

如图7所示,当该触控操作为第四触控操作时,终端控制该虚拟对象处于向右倾斜姿态,该第四触控操作触发的第四触控指令所对应的第一加速度的方向为向右,该虚拟对象的加速度中还包括重力加速度,重力加速度的方向为垂直向下。该虚拟对象的向右倾斜姿态与向左倾斜姿态以该虚拟对象的头与脚之间的连线为中心轴成镜像对称。在一种可能实现方式中,该终端之前检测到第一触控操作时,控制该虚拟对象在下落的同时向前移动,之后检测到第四触控操作,该虚拟对象可以在保持原本向前移动的同时,向右缓慢偏移。

需要说明的是,如图8所示,如果该终端一直未检测到触控操作,终端在控制该虚拟对象进行自由落体运动时,也可以调整该虚拟对象的身体姿态为处于水平方向向下降落的姿态。

基于上述五种身体姿态,在具体实施中可能有两种极致的场景:在第一种场景中,用户可以将视角调整至水平方向,也即是俯仰角为-90,再进行第一触控操作,终端检测到该第一触控操作时,可以确定该第一触控操作触发的第一触控指令所对应的第一加速度的方向为水平向前,重力加速度为垂直向下,因而终端可以控制该虚拟对象向前下方移动,运动轨迹可以是一个抛物线。如果该第一加速度的大小相同时,该第一加速度的方向为水平向前时,可以使得该该虚拟对象在水平方向上移动到最远的地方,达到“浅俯冲”的效果。在第二种特殊情况中,用户可以将视角调整至垂直方向,也即是俯仰角为0,再进行第一触控操作,终端检测到该第一触控操作时,可以确定该第一触控操作触发的第一触控指令所对应的第一加速度与重力加速度方向相同,均为垂直向下,因而终端可以控制该虚拟对象垂直向下移动,并控制该虚拟对象的俯仰角为0,可以实现垂直向下俯冲,达到最快落地的效果。

需要说明的是,上述步骤401至步骤405为一种动态的控制虚拟对象下落的过程,终端可以在每一帧执行上述步骤401至405,在获取到虚拟对象的加速度后,计算该虚拟对象在下一帧中的位置,之后再基于下一帧时的用户操作重复上述获取和计算过程,直至该虚拟对象的位置从天空区域切换至非天空区域时,则可以执行下述步骤406和407。在实际应用中,相邻两帧之间的时间间隔可以由用户根据自身设备的性能参数设置确定。这样每帧实时获取虚拟对象的加速度,根据实时的加速度计算虚拟对象下一帧中的位置,终端则可以基于计算得到的位置对下一帧进行渲染显示,使得终端可以在三维虚拟场景中显示该虚拟对象,使得终端呈现出的虚拟对象下落过程更真实、更准确。

406、终端基于该虚拟摇杆区域的触控操作,获取该触控操作所对应的加速度。

当该虚拟对象从天空区域切换至非天空区域时,或者当该虚拟对象的初始位置位于陆地区域或海洋区域时,终端可以提供第二默认视角,该第二默认视角为该虚拟对象处于站立姿态时的正前方。

当该虚拟对象位于该三维虚拟场景的非天空区域时,如果该虚拟对象静止不动,终端可以控制该虚拟对象的初始姿态为站立姿态。由于该虚拟对象不是在天空区域,该虚拟对象在垂直方向上受力平衡,该终端检测到的虚拟摇杆区域的触控操作所对应的加速度即为该虚拟对象的加速度。具体地,终端可以接收到由触控操作触发的触控指令,并确定触控指令所指示的方向作为该虚拟对象的加速度的方向,例如,该触控操作对应的触控指令所指示的方向为向前,则该加速度的方向为该虚拟对象的前方;该触控操作对应的触控指令所指示的方向为向后,则该加速度的方向为该虚拟对象的后方;该触控操作对应的触控指令所指示的方向为向左,则该加速度的方向为该虚拟对象的左方;该触控操作对应的触控指令所指示的方向为向右,则该加速度的方向为该虚拟对象的右方。当然,该触控操作对应的触控指令所指示的方向为左前方,则该加速度的方向为该虚拟对象的左前方,该触控操作对应的触控指令所指示的方向范围为360°,本发明实施例在此不再一一列举。

407、终端控制该虚拟对象在三维虚拟场景中根据该加速度移动。

终端根据步骤406得到该虚拟对象的加速度时,也可以控制该虚拟对象在三维虚拟场景中根据该加速度进行跑动、爬动、走动、游动等,在此不多做赘述。

图9是本发明实施例提供的一种虚拟对象控制方法流程图。参见图9,该终端可以在每一帧时检测虚拟对象是否着陆,当该虚拟对象没有着陆时,终端可以确定该虚拟对象当前的朝向,并计算该虚拟对象当前的触控操作所对应的矢量速度,再将该矢量速度与重力加速度结合,得到该虚拟对象最终的加速度,根据最终的加速度以及该虚拟对象在当前帧的运动状态和位置,来确定这一帧该虚拟对象在下一帧的位置,再在下一帧检测该虚拟对象是否着陆,直到检测到该虚拟对象已经着陆,终端可以停止上述该虚拟对象在天空区域时的朝向、加速度等计算步骤。

本发明实施例通过检测到虚拟摇杆区域的触控操作,结合触控操作、视角以及重力加速度等因素,确定虚拟对象的加速度,实现对虚拟对象的移动控制,该加速度的方向不固定,大小不为零,使得该虚拟对象可以向任意方向移动,还可以使得该虚拟对象加速或者减速移动,从而能够真实模拟真实人物的动作。进一步地,终端还通过在下落过程中控制虚拟对象的朝向,使得该虚拟对象根据不同的运动状态调整身体朝向,更真实地模拟出真实人物在空中可能出现的不同的朝向。进一步地,终端还通过在下落过程中控制虚拟对象的身体姿态,使得该虚拟对象针对不同的场景做出相应的身体姿态,更真实地模拟出现实场景中真实人物的动作。

上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。

图10是本发明实施例提供的一种虚拟对象控制装置的结构示意图。该装置包括:

确定模块1001,用于当检测到对控制区域的触控操作时,确定三维虚拟场景的视角,该控制区域用于对该三维虚拟场景中的虚拟对象的移动方式进行控制;

获取模块1002,用于基于该控制区域的触控操作、该视角以及重力加速度,获取该虚拟对象在下落过程中的加速度;

控制模块1003,用于控制该虚拟对象在该三维虚拟场景中根据该加速度进行下落。

在一个实施例中,该装置还包括:

检测模块,用于检测该虚拟对象在该三维虚拟场景中的位置;

执行模块,用于当检测到该虚拟对象位于该三维虚拟场景中的天空区域时,执行该确定三维虚拟场景的视角的步骤。

在一个实施例中,该获取模块1002,还用于当检测到该虚拟对象位于该三维虚拟场景中的非天空区域时,基于该控制区域的触控操作,获取该触控操作所对应的加速度;

该控制模块1003,还用于控制该虚拟对象在该三维虚拟场景中根据该加速度进行移动。

在一个实施例中,该装置还包括:

调整模块,用于当检测到视角调整操作时,根据该视角调整操作对视角进行调整,该视角调整操作用于对该三维虚拟场景的视角进行调整;

该调整模块,还用于根据调整后的视角,调整该虚拟对象的第一朝向,该虚拟对象的第一朝向是指该虚拟对象的姿态角中的偏航角。

在一个实施例中,该获取模块1002,用于:

接收由该触控操作触发的触控指令;

根据该触控指令以及该视角,得到第一加速度;

将该第一加速度与重力加速度进行矢量求和计算,得到该虚拟对象的加速度。

在一个实施例中,该获取模块1002,用于当未检测该控制区域的触控操作时,将重力加速度作为该虚拟对象在下落过程中的加速度。

在一个实施例中,该获取模块1002,用于:

当该触控指令为第一触控指令时,得到大小为第一预设阈值、方向为视角方向的第一加速度,该第一触控指令用于指示控制该虚拟对象加速移动;

当该触控指令为第二触控指令时,得到大小为第一预设阈值、方向为视角方向的反方向的第一加速度,该第二触控指令用于指示控制该虚拟对象减速移动;

当该触控指令为第三触控指令时,得到大小为第二预设阈值、方向为该虚拟对象的左边的第一加速度,该第三触控指令用于指示控制该虚拟对象向左移动;

当该触控指令为第四触控指令时,得到大小为第二预设阈值、方向为该虚拟对象的右边的第一加速度,该第四触控指令用于指示控制该虚拟对象向右移动。

在一个实施例中,该控制模块1003,用于下落过程中调整该虚拟对象的第二朝向,该虚拟对象的第二朝向是指该虚拟对象的姿态角中的俯仰角。

在一个实施例中,该控制模块1003,用于:

当该第一加速度的方向为视角方向时,下落过程中调整该虚拟对象的第二朝向,调整后的该虚拟对象的俯仰角与该视角的俯仰角相同;

当该第一加速度的方向为视角方向的反方向时,下落过程中调整该虚拟对象的第二朝向,调整后的该虚拟对象的俯仰角为0°。

在一个实施例中,该控制模块1003,还用于下落过程中,根据该触控操作调整该虚拟对象的身体姿态。

本发明实施例提供的装置通过检测到虚拟摇杆区域的触控操作,结合触控操作、视角以及重力加速度等因素,确定虚拟对象的加速度,实现对虚拟对象的移动控制,该加速度的方向不固定,大小不为零,使得该虚拟对象可以向任意方向移动,还可以使得该虚拟对象加速或者减速移动,从而能够真实模拟真实人物的动作。

需要说明的是:上述实施例提供的虚拟对象控制装置在实现控制虚拟对象时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的虚拟对象控制装置和虚拟对象控制方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图11是本发明实施例提供的一种电子装置1100的结构示意图,该电子装置1100可被提供为一终端,该电子装置1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)1101和一个或一个以上的存储器1102,其中,该存储器1102中存储有至少一条指令,该至少一条指令由该处理器1101加载并执行以实现上述各个方法实施例提供的虚拟对象控制方法。当然,该电子装置还可以具有有线或无线网络接口、键盘以及输入输出设备等部件,以便进行输入输出,该电子装置还可以包括其他用于实现设备功能的部件,在此不做赘述。

在示例性实施例中,还提供了一种存储有计算机程序的计算机可读存储介质,例如存储有计算机程序的存储器,上述计算机程序被处理执行时实现上述虚拟对象控制方法。例如,上述计算机可读存储介质可以是只读内存(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、只读光盘(compactdiscread-onlymemory,cd-rom)、磁带、软盘和光数据存储设备等。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

上述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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