虚拟对象的控制方法、装置、设备以及存储介质转让专利

申请号 : CN202010721767.9

文献号 : CN111714886B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨金昊林凌云

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本申请公开了一种虚拟对象的控制方法、装置、设备以及存储介质,属于计算机技术领域。方法包括:确定被控虚拟对象在虚拟场景中的位置。响应于被控虚拟对象在虚拟场景中的位置与虚拟障碍物在虚拟场景中的位置之间符合目标条件,确定被控虚拟对象的实时位姿。响应于被控虚拟对象的实时位姿不符合虚拟障碍物对应的通过条件,控制被控虚拟对象执行与虚拟障碍物对应的辅助动作。终端能够在被控虚拟对象移动到虚拟障碍物前时,自动对被控虚拟对象的位置或姿态进行调整,从而辅助被控虚拟对象通过虚拟障碍物,整个过程无需用户进行额外操作来调整被控虚拟对象的位置或姿态,从而提高了人机交互效率,同时也改善了用户的游戏体验。

权利要求 :

1.一种虚拟对象的控制方法,其特征在于,所述方法包括:确定被控虚拟对象在虚拟场景中的位置,所述被控虚拟对象为终端控制的虚拟对象;

响应于所述被控虚拟对象在所述虚拟场景中的位置与虚拟障碍物在所述虚拟场景中的位置之间符合目标条件,确定所述被控虚拟对象的实时位姿,所述实时位姿用于表示所述被控虚拟对象的实时位置和实时姿态中的至少一项;

响应于所述被控虚拟对象的实时位姿不符合所述虚拟障碍物对应的通过条件,确定所述虚拟障碍物的类型;

根据所述虚拟障碍物的类型,控制所述被控虚拟对象执行与所述虚拟障碍物的类型对应的辅助动作,所述辅助动作用于辅助所述被控虚拟对象以目标位姿通过所述虚拟障碍物。

2.根据权利要求1所述的方法,其特征在于,所述根据所述虚拟障碍物的类型,控制所述被控虚拟对象执行与所述虚拟障碍物的类型对应的辅助动作包括:响应于所述虚拟障碍物为虚拟门,根据所述虚拟门的第一尺寸信息,确定与所述第一尺寸信息对应的辅助动作;

控制所述被控虚拟对象执行所述与所述第一尺寸信息对应的辅助动作。

3.根据权利要求2所述的方法,其特征在于,所述根据所述虚拟门的第一尺寸信息,确定与所述第一尺寸信息对应的辅助动作包括:响应于所述虚拟门的高度大于或等于所述被控虚拟对象的高度,将向所述虚拟门移动的动作确定为所述与所述第一尺寸信息对应的辅助动作。

4.根据权利要求2所述的方法,其特征在于,所述根据所述虚拟门的第一尺寸信息,确定与所述第一尺寸信息对应的辅助动作包括:响应于所述虚拟门的高度小于所述被控虚拟对象的高度,将姿态改变的动作确定为所述与所述第一尺寸信息对应的辅助动作。

5.根据权利要求4所述的方法,其特征在于,所述姿态改变的动作为将所述被控虚拟对象的实时姿态改变为下蹲或匍匐中的一项。

6.根据权利要求1所述的方法,其特征在于,所述根据所述虚拟障碍物的类型,控制所述被控虚拟对象执行与所述虚拟障碍物的类型对应的辅助动作包括:响应于所述虚拟障碍物为虚拟路障,根据所述虚拟路障的第二尺寸信息,确定与所述第二尺寸信息对应的辅助动作;

控制所述被控虚拟对象执行所述与所述第二尺寸信息对应的辅助动作。

7.根据权利要求6所述的方法,其特征在于,所述根据所述虚拟路障的第二尺寸信息,确定与所述第二尺寸信息对应的辅助动作包括:响应于所述虚拟路障的高度与所述被控虚拟对象的高度之间的差值大于差值阈值,且所述虚拟路障的长度小于所述虚拟路障的宽度,确定所述被控虚拟对象与所述虚拟路障之间的夹角;

响应于所述被控虚拟对象与所述虚拟路障之间的夹角大于角度阈值,将翻越所述虚拟路障的动作确定为所述与所述第二尺寸信息对应的辅助动作。

8.一种虚拟对象的控制装置,其特征在于,所述装置包括:位置确定模块,用于确定被控虚拟对象在虚拟场景中的位置,所述被控虚拟对象为终端控制的虚拟对象;

实时位姿确定模块,用于响应于所述被控虚拟对象在所述虚拟场景中的位置与虚拟障碍物在所述虚拟场景中的位置之间符合目标条件,确定所述被控虚拟对象的实时位姿,所述实时位姿用于表示所述被控虚拟对象的实时位置和实时姿态中的至少一项;

控制模块,用于响应于所述被控虚拟对象的实时位姿不符合所述虚拟障碍物对应的通过条件,确定所述虚拟障碍物的类型;根据所述虚拟障碍物的类型,控制所述被控虚拟对象执行与所述虚拟障碍物的类型对应的辅助动作,所述辅助动作用于辅助所述被控虚拟对象以目标位姿通过所述虚拟障碍物。

9.根据权利要求8所述的装置,其特征在于,所述控制模块,用于响应于所述虚拟障碍物为虚拟门,根据所述虚拟门的第一尺寸信息,确定与所述第一尺寸信息对应的辅助动作;

控制所述被控虚拟对象执行所述与所述第一尺寸信息对应的辅助动作。

10.根据权利要求9所述的装置,其特征在于,所述控制模块,用于响应于所述虚拟门的高度大于或等于所述被控虚拟对象的高度,将向所述虚拟门移动的动作确定为所述与所述第一尺寸信息对应的辅助动作。

11.根据权利要求9所述的装置,其特征在于,所述控制模块,用于响应于所述虚拟门的高度小于所述被控虚拟对象的高度,将姿态改变的动作确定为所述与所述第一尺寸信息对应的辅助动作。

12.根据权利要求11所述的装置,其特征在于,所述姿态改变的动作为将所述被控虚拟对象的实时姿态改变为下蹲或匍匐中的一项。

13.根据权利要求8所述的装置,其特征在于,所述控制模块,用于响应于所述虚拟障碍物为虚拟路障,根据所述虚拟路障的第二尺寸信息,确定与所述第二尺寸信息对应的辅助动作;控制所述被控虚拟对象执行所述与所述第二尺寸信息对应的辅助动作。

14.根据权利要求13所述的装置,其特征在于,所述控制模块,用于响应于所述虚拟路障的高度与所述被控虚拟对象的高度之间的差值大于差值阈值,且所述虚拟路障的长度小于所述虚拟路障的宽度,确定所述被控虚拟对象与所述虚拟路障之间的夹角;响应于所述被控虚拟对象与所述虚拟路障之间的夹角大于角度阈值,将翻越所述虚拟路障的动作确定为所述与所述第二尺寸信息对应的辅助动作。

15.一种计算机设备,其特征在于,所述计算机设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条程序代码,所述程序代码由所述一个或多个处理器加载并执行以实现如权利要求1至权利要求7任一项所述的虚拟对象的控制方法。

16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如权利要求1至权利要求7任一项所述的虚拟对象的控制方法。

说明书 :

虚拟对象的控制方法、装置、设备以及存储介质

技术领域

[0001] 本申请涉及计算机技术领域,特别涉及一种虚拟对象的控制方法、装置、设备以及存储介质。

背景技术

[0002] 随着多媒体技术的发展以及终端功能的多样化,在终端上能够进行的游戏种类越来越多。其中,射击类游戏是一种比较盛行的游戏,终端可以在界面中显示虚拟场景,并在
虚拟场景中显示虚拟对象。在游戏过程中,用户可以通过被控虚拟对象与其他虚拟对象进
行对战。
[0003] 目前射击类游戏为了更加真实的模拟现实世界的情况,往往会在虚拟场景中设置各种各样的用于阻碍被控虚拟对象通行的虚拟障碍物,比如设置虚拟门或者虚拟路障等。
当被控虚拟对象在虚拟场景中遭遇虚拟障碍物时,需要用户进行额外进行操作来对被控虚
拟对象的位置或姿态进行调整,从而使得被控虚拟对象能够通过虚拟障碍物。这种操作的
增加导致了人机交互效率的下降,同时也降低了用户的游戏体验。

发明内容

[0004] 本申请实施例提供了一种虚拟对象的控制方法、装置、设备以及存储介质,能够提高人机交互的效率。所述技术方案如下:
[0005] 一方面,提供了一种虚拟对象的控制方法,所述方法包括:
[0006] 确定被控虚拟对象在虚拟场景中的位置,所述被控虚拟对象为终端控制的虚拟对象;
[0007] 响应于所述被控虚拟对象在所述虚拟场景中的位置与虚拟障碍物在所述虚拟场景中的位置之间符合目标条件,确定所述被控虚拟对象的实时位姿,所述实时位姿用于表
示所述被控虚拟对象的实时位置和实时姿态中的至少一项;
[0008] 响应于所述被控虚拟对象的实时位姿不符合所述虚拟障碍物对应的通过条件,控制所述被控虚拟对象执行与所述虚拟障碍物对应的辅助动作,所述辅助动作用于辅助所述
被控虚拟对象以目标位姿通过所述虚拟障碍物。
[0009] 一方面,提供了一种虚拟对象的控制装置,所述装置包括:
[0010] 位置确定模块,用于确定被控虚拟对象在虚拟场景中的位置,所述被控虚拟对象为终端控制的虚拟对象;
[0011] 实时位姿确定模块,用于响应于所述被控虚拟对象在所述虚拟场景中的位置与虚拟障碍物在所述虚拟场景中的位置之间符合目标条件,确定所述被控虚拟对象的实时位
姿,所述实时位姿用于表示所述被控虚拟对象的实时位置和实时姿态中的至少一项;
[0012] 控制模块,用于响应于所述被控虚拟对象的实时位姿不符合所述虚拟障碍物对应的通过条件,控制所述被控虚拟对象执行与所述虚拟障碍物对应的辅助动作,所述辅助动
作用于辅助所述被控虚拟对象以目标位姿通过所述虚拟障碍物。
[0013] 在一种可能的实施方式中,所述姿态改变的动作为将所述被控虚拟对象的实时姿态改变为下蹲或匍匐中的一项。
[0014] 在一种可能的实施方式中,所述控制模块,用于响应于所述虚拟障碍物为虚拟路障,根据所述虚拟路障的第二尺寸信息,确定与所述第二尺寸信息对应的辅助动作;控制所
述被控虚拟对象执行所述与所述第二尺寸信息对应的辅助动作。
[0015] 在一种可能的实施方式中,所述控制模块,用于响应于所述虚拟路障的高度与所述被控虚拟对象的高度之间的差值大于差值阈值,且所述虚拟路障的长度小于所述虚拟路
障的宽度,确定所述被控虚拟对象与所述虚拟路障之间的夹角;响应于所述被控虚拟对象
与所述虚拟路障之间的夹角大于角度阈值,将翻越所述虚拟路障的动作确定为所述与所述
第二尺寸信息对应的辅助动作。
[0016] 一方面,提供了一种计算机设备,所述计算机设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条程序代码,所述程序代码由所述
一个或多个处理器加载并执行以实现所述虚拟对象的控制方法。
[0017] 一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现所述虚拟对象的控制方法。
[0018] 一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机程序代码,该计算机程序代码存储在计算机可读存储介质中,计算机设备
的处理器从计算机可读存储介质读取该计算机程序代码,处理器执行该计算机程序代码,
使得该计算机设备执行上述各种可选实现方式中提供的虚拟对象的控制方法。
[0019] 通过本申请提供的技术方案,终端能够在被控虚拟对象移动到虚拟障碍物前时,自动对被控虚拟对象的位置或姿态进行调整,从而辅助被控虚拟对象通过虚拟障碍物,整
个过程无需用户进行额外操作来调整被控虚拟对象的位置或姿态,从而提高了人机交互效
率,同时也改善了用户的游戏体验。

附图说明

[0020] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于
本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他
的附图。
[0021] 图1是本申请实施例提供的一种虚拟对象的控制方法的实施环境的示意图;
[0022] 图2是本申请实施例提供的一种虚拟对象的控制方法流程图;
[0023] 图3是本申请实施例提供的一种虚拟对象的控制方法流程图;
[0024] 图4是本申请实施例提供的一种虚拟对象的控制方法的原理示意图;
[0025] 图5是本申请实施例提供的一种界面示意图;
[0026] 图6是本申请实施例提供的一种虚拟对象的控制方法的原理示意图;
[0027] 图7是本申请实施例提供的一种虚拟对象的控制方法的原理示意图;
[0028] 图8是本申请实施例提供的一种虚拟对象的控制方法的原理示意图;
[0029] 图9是本申请实施例提供的一种虚拟对象的控制方法与相关技术的对比示意图;
[0030] 图10是本申请实施例提供的一种虚拟对象的控制方法流程图;
[0031] 图11是本申请实施例提供的一种虚拟对象的控制方法的原理示意图;
[0032] 图12是本申请实施例提供的一种虚拟对象的控制方法的原理示意图;
[0033] 图13是本申请实施例提供的一种虚拟对象的控制方法的原理示意图;
[0034] 图14是本申请实施例提供的一种虚拟对象的控制方法流程图;
[0035] 图15是本申请实施例提供的一种虚拟对象的控制方法流程图;
[0036] 图16是本申请实施例提供的一种虚拟对象的控制方法的原理示意图;
[0037] 图17是本申请实施例提供的一种虚拟对象的控制装置结构示意图;
[0038] 图18是本申请实施例提供的一种终端的结构示意图;
[0039] 图19是本申请实施例提供的一种服务器的结构示意图。

具体实施方式

[0040] 为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
[0041] 本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对
数量和执行顺序进行限定。
[0042] 本申请中术语“至少一个”是指一个或多个,“多个”的含义是指两个或两个以上,例如,多个参照人脸图像是指两个或两个以上的参照人脸图像。
[0043] 虚拟场景:是应用程序在终端上运行时显示(或提供)的虚拟场景。该虚拟场景可以是对真实世界的仿真环境,也可以是半仿真半虚构的虚拟环境,还可以是纯虚构的虚拟
环境。虚拟场景可以是二维虚拟场景、2.5维虚拟场景或者三维虚拟场景中的任意一种,本
申请实施例对虚拟场景的维度不加以限定。例如,虚拟场景可以包括天空、陆地、海洋等,该
陆地可以包括沙漠、城市等环境元素,用户可以控制虚拟对象在该虚拟场景中进行移动。
[0044] 虚拟对象:是指在虚拟场景中的可活动对象。该可活动对象可以是虚拟人物、虚拟动物、动漫人物等,比如:在虚拟场景中显示的人物、动物、植物、油桶、墙壁、石块等。该虚拟
对象可以是该虚拟场景中的一个虚拟的用于代表用户的虚拟形象。虚拟场景中可以包括多
个虚拟对象,每个虚拟对象在虚拟场景中具有自身的形状和体积,占据虚拟场景中的一部
分空间。
[0045] 可选地,该虚拟对象可以是通过客户端上的操作进行控制的用户角色,也可以是通过训练设置在虚拟场景对战中的人工智能(Artificial Intelligence,AI),还可以是设
置在虚拟场景互动中的非用户角色(Non‑Player Character,NPC)。可选地,该虚拟对象可
以是在虚拟场景中进行竞技的虚拟人物。可选地,该虚拟场景中参与互动的虚拟对象的数
量可以是预先设置的,也可以是根据加入互动的客户端的数量动态确定的。
[0046] 以射击类游戏为例,用户可以控制虚拟对象在该虚拟场景的天空中自由下落、滑翔或者打开降落伞进行下落等,在陆地上中跑动、跳动、爬行、弯腰前行等,也可以控制虚拟
对象在海洋中游泳、漂浮或者下潜等,当然,用户也可以控制虚拟对象乘坐虚拟载具在该虚
拟场景中进行移动,例如,该虚拟载具可以是虚拟汽车、虚拟飞行器、虚拟游艇等,在此仅以
上述场景进行举例说明,本申请实施例对此不作具体限定。用户也可以控制虚拟对象通过
虚拟道具与其他虚拟对象进行战斗等方式的互动,例如,该虚拟道具可以是手雷、集束雷、
粘性手雷(简称“粘雷”)等投掷类虚拟道具,也可以是机枪、手枪、步枪等射击类虚拟道具,
本申请对虚拟道具的类型不作具体限定。
[0047] 虚拟障碍物:是指虚拟场景中的阻碍虚拟对象通行的障碍物,可选地,虚拟障碍物包括虚拟门、虚拟路障、虚拟箱子、虚拟窗、虚拟载具以及虚拟树木等。除了上述列举的用户
能够看到的虚拟障碍物之外,开发人员还能够在虚拟场景中设置不可见的空气墙,空气墙
也即是游戏中视觉上看起来能够通过,但是用户控制被控虚拟对象到达空气墙所在位置
后,被控虚拟对象会被空气墙阻挡,被控虚拟对象无法穿越空气墙,而是会在原地空跑。
[0048] 触发器(Trigger):在游戏引擎中将任一元素设置为触发器后,该元素的体积被忽略,被控虚拟对象能够直接穿过该元素,不会产生碰撞效果。
[0049] 以下,对本申请涉及的实施环境进行介绍。
[0050] 图1是本申请实施例提供的一种虚拟对象控制方法的实施环境示意图,参见图1,该实施环境包括:第一终端120、第二终端140和服务器160。
[0051] 第一终端120安装和运行有支持虚拟场景的应用程序。该应用程序可以是第一人称射击游戏(First‑Person Shooting game,FPS)、第三人称射击游戏、虚拟现实应用程序、
军事仿真程序或者多人枪战类生存游戏中的任意一种。第一终端120可以是第一用户使用
的终端,第一用户使用第一终端120操作位于虚拟场景中的第一虚拟对象进行活动,该活动
包括但不限于:调整身体姿态、爬行、步行、奔跑、骑行、跳跃、驾驶、拾取、射击、攻击、投掷中
的至少一种。示意性的,第一虚拟对象是第一虚拟人物,比如仿真人物角色或动漫人物角
色。
[0052] 第二终端140安装和运行有支持虚拟场景的应用程序。该应用程序可以是FPS、第三人称射击游戏、虚拟现实应用程序、军事仿真程序或者多人枪战类生存游戏中的任意一
种。第二终端140可以是第二用户使用的终端,第二用户使用第二终端140操作位于虚拟场
景中的第二虚拟对象进行活动,该活动包括但不限于:调整身体姿态、爬行、步行、奔跑、骑
行、跳跃、驾驶、拾取、射击、攻击、投掷中的至少一种。示意性的,第二虚拟对象是第二虚拟
人物,比如仿真人物角色或动漫人物角色。
[0053] 可选地,第一终端120控制的第一虚拟对象和第二终端140控制的第二虚拟对象处于同一虚拟场景中,此时第一虚拟对象可以在虚拟场景中与第二虚拟对象进行互动。在一
些实施例中,第一虚拟对象以及第二虚拟对象可以为敌对关系,例如,第一虚拟对象与第二
虚拟对象可以属于不同的队伍和组织,敌对关系的虚拟对象之间,可以在陆地上以互相射
击的方式进行对战方式的互动。
[0054] 在一些实施例中,第一虚拟对象以及第二虚拟对象可以为队友关系,例如,第一虚拟人物和第二虚拟人物可以属于同一个队伍、同一个组织、具有好友关系或具有临时性的
通讯权限。
[0055] 需要说明的是,上述第一虚拟对象和第二虚拟对象都能够被称为被控虚拟对象。当实施环境中存在第三终端、第四终端或者更多终端时,第三终端、第四终端以及更多终端
控制的虚拟对象也能够被称为被控虚拟对象。
[0056] 可选地,第一终端120和第二终端140上安装的应用程序是相同的,或两个终端上安装的应用程序是不同操作系统平台的同一类型应用程序。第一终端120可以泛指多个终
端中的一个,第二终端140可以泛指多个终端中的一个,本实施例仅以第一终端120和第二
终端140来举例说明。第一终端120和第二终端140的设备类型相同或不同,该设备类型包
括:智能手机、平板电脑、膝上型便携计算机和台式计算机中的至少一种。例如,第一终端
120和第二终端140可以是智能手机,或者其他手持便携式游戏设备。以下实施例,以终端为
智能手机来举例说明。
[0057] 服务器160可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云
通信、中间件服务、域名服务、安全服务、分发网络(Content Delivery Network,CDN)、以及
大数据和人工智能平台等基础云计算服务的云服务器。服务器160用于为支持显示虚拟场
景的应用程序提供后台服务。第一终端120以及第二终端140可以通过有线或无线网络的方
式与服务器160建立网络连接。
[0058] 本领域技术人员可以知晓,上述终端的数量可以更多或更少。比如上述终端可以仅为一个,或者上述终端为几十个或几百个,或者更多数量。本申请实施例对终端的数量和
设备类型不加以限定。
[0059] 需要注意的是,在下述对本申请提供的技术方案进行说明的过程中,是以终端作为执行主体为例进行的。在其他可能的实施方式中,也可以由服务器作为执行主体来执行
本申请提供的技术方案,本申请实施例对于执行主体的类型不做限定。
[0060] 图2是本申请实施例提供的一种虚拟对象的控制方法的流程图,参见图2,方法包括:
[0061] 201、终端确定被控虚拟对象在虚拟场景中的位置,被控虚拟对象为终端控制的虚拟对象。
[0062] 202、响应于被控虚拟对象在虚拟场景中的位置与虚拟障碍物在虚拟场景中的位置之间符合目标条件,终端确定被控虚拟对象的实时位姿,实时位姿用于表示被控虚拟对
象的实时位置和实时姿态中的至少一项。
[0063] 可选地,实时位置为被控虚拟对象在虚拟场景中的实时位置。实时姿态包括站立、下蹲、匍匐以及跳跃等姿态,当然也能够包括其他姿态,本申请实施例对此不做限定。
[0064] 203、响应于被控虚拟对象的实时位姿不符合虚拟障碍物对应的通过条件,终端控制被控虚拟对象执行与虚拟障碍物对应的辅助动作,辅助动作用于辅助被控虚拟对象以目
标位姿通过虚拟障碍物。
[0065] 可选地,辅助动作能够改变被控虚拟对象的位置或姿态中的至少一项,比如被控虚拟对象执行辅助动作之后能够由虚拟场景中的位置A改变为虚拟场景中的位置B,也能够
由站立改变为下蹲或者匍匐,或者由下蹲改变为匍匐或者站立,或者由匍匐改变为站立或
者下蹲,当然,上述举例仅仅是为了便于理解而进行的,当被控虚拟对象能够处于其他位置
或姿态时,辅助动作也就能够将被控虚拟对象当前的位置改变为虚拟场景中的其他位置,
或者将被控虚拟对象当前的姿态改变为其他任一姿态,本申请实施例对于辅助动作的类型
不做限定。目标姿态为能够通过虚拟障碍物的姿态。
[0066] 通过本申请提供的技术方案,终端能够在被控虚拟对象移动到虚拟障碍物前时,自动对被控虚拟对象的位置或姿态进行调整,从而辅助被控虚拟对象通过虚拟障碍物,整
个过程无需用户进行额外操作来调整被控虚拟对象的位置或姿态,从而提高了人机交互效
率,同时也改善了用户的游戏体验。
[0067] 下面的说明过程将分别以虚拟障碍物为虚拟门或者虚拟路障为例进行说明,其中步骤301‑308和步骤1001‑1009是以虚拟障碍物为虚拟门为例进行说明的,步骤1401‑1408
是以虚拟障碍物为虚拟路障为例进行说明的。
[0068] 图3是本申请实施例提供的一种虚拟对象的控制方法的流程图,以终端作为执行主体为例,参见图3,方法包括:
[0069] 301、终端确定被控虚拟对象在虚拟场景中的位置,被控虚拟对象为终端控制的虚拟对象。
[0070] 在一种可能的实施方式中,终端能够采用被控虚拟对象在虚拟场景中的坐标来表示被控虚拟对象在虚拟场景中的位置,终端确定被控虚拟对象在虚拟场景中的坐标也即是
确定了被控虚拟对象在虚拟场景中的位置。
[0071] 举例来说,终端能够在虚拟场景中建立坐标系,该坐标系的原点为终端在虚拟场景中确定的参考点。终端能够实时确定被控虚拟对象在虚拟场景中的坐标,比如(100,200,
15),该坐标(100,200,15)能够表示被控虚拟对象在虚拟场景中的位置。
[0072] 另外,上述步骤301为可选步骤,终端或服务器也能够不执行上述步骤301提供的方法来确定被控虚拟对象在虚拟场景中的位置,而是直接执行步骤302,确定被控虚拟对象
在虚拟场景中的位置与虚拟障碍物在虚拟场景中的位置之间的情况。
[0073] 302、终端确定被控虚拟对象在虚拟场景中的位置与虚拟障碍物在虚拟场景中的位置之间是否符合目标条件。
[0074] 可选的,被控虚拟对象在虚拟场景中的位置与虚拟障碍物在虚拟场景中的位置之间符合目标条件是指,被控虚拟对象进入虚拟障碍物在虚拟场景中的触发范围。当然也可
以是指其他条件,本申请实施例对此不做限定,为了更加清楚的进行说明,下面将以被控虚
拟对象在虚拟场景中的位置与虚拟障碍物在虚拟场景中的位置之间符合目标条件是指,被
控虚拟对象进入虚拟障碍物在虚拟场景中的触发范围为例进行说明。
[0075] 在一种可能的实施方式中,终端能够确定被控虚拟对象在虚拟场景中的第一位置,根据第一位置以及虚拟障碍物在虚拟场景中的第二位置,确定被控虚拟对象在虚拟场
景中的位置是否处于虚拟障碍物的触发范围内。
[0076] 以采用被控虚拟对象在虚拟场景中的坐标来表示被控虚拟对象在虚拟场景中的位置为例进行说明,终端能够实时确定被控虚拟对象在虚拟场景中的第一坐标,比如(100,
200,15),根据虚拟障碍物在虚拟场景中的第二坐标,比如(150,210,30),确定被控虚拟对
象与虚拟障碍物之间的距离为53,其中,53的单位为虚拟场景中的长度单位,比如为米。响
应于虚拟障碍物的触发范围为以虚拟障碍物为中心,以第一距离为半径的圆形,那么响应
于被控虚拟对象与虚拟障碍物之间的距离53小于或等于第一距离,终端能够确定被控虚拟
对象在虚拟场景中的位置处于虚拟障碍物的触发范围内;响应于被控虚拟对象与虚拟障碍
物之间的距离53大于第一距离,终端能够确定被控虚拟对象在虚拟场景中的位置不处于虚
拟障碍物的触发范围内。
[0077] 在一种可能的实施方式中,终端能够在虚拟障碍物的周围设置与虚拟障碍物关联的,不可见的第一体积元素(Volume)。终端能够将第一体积元素的类型设置为触发器
(Trigger),从而使得用户能够控制被控虚拟对象在该第一体积元素内通行。响应于被控虚
拟对象进入第一体积元素内部,终端能够确定被控虚拟对象在虚拟场景中的位置处于虚拟
障碍物的触发范围内;响应于被控虚拟对象未进入第一体积元素内部,终端能够确定被控
虚拟对象在虚拟场景中的位置不处于虚拟障碍物的触发范围内。
[0078] 在这种实施方式下,终端能够通过设置第一体积元素,以触发的方式来确定被控虚拟对象与虚拟障碍物的触发范围之间的位置关系,从而无需根据被控虚拟对象在虚拟场
景中的坐标以及虚拟障碍物在虚拟场景中的坐标来计算两者之间的距离,减少了终端的计
算资源的消耗。
[0079] 以虚拟障碍物为高度大于或等于被控虚拟对象高度的虚拟门为例,参见图4,开发人员能够通过开发软件在虚拟门401的入口一侧(图中的e方向)设置一个不可见的第一体
积元素402,其中x为第一体积元素402的长度方向,y为第一体积元素的宽度方向,z为第一
体积元素的高度方向。可选地,第一体积元素402的尺寸由开发人员在如图5所示的界面上
进行设置,开发人员能够在501中输入第一体积元素402的长宽高信息,还能够在502中输入
第一体积元素的旋转角度信息,也能够在503中设置第一体积元素的在虚拟场景中的位置
信息,还能够在504中设置第一体积元素的材质等参数。除此之外,开发人员还能够勾选505
的选项框,将第一体积元素402的类型设置为触发器。在开发人员在虚拟门401的入口一侧
设置好不可见的第一体积元素402之后,终端能够确定第一体积元素402中是否存在被控虚
拟对象403,响应于被控虚拟对象403进入第一体积元素内部,终端能够确定被控虚拟对象
403在虚拟场景中的位置不处于虚拟门401的触发范围内;响应于被控虚拟对象403未进入
第一体积元素内部,终端确定被控虚拟对象403在虚拟场景中的位置不处于虚拟门401的触
发范围内。
[0080] 当然,第一体积元素402的相关信息除了能够由开发人员手动输入之外,也能够由终端根据虚拟门的尺寸信息自行生成,举例来说,终端能够在虚拟门401入口的一侧自动生
成第一体积元素402,第一体积元素402的宽度大于虚拟门的宽度,比如为虚拟门宽度的1.2
倍,第一体积元素402的高度大于虚拟门的高度,比如为虚拟门高度的1.2倍,第一体积元素
402的宽度为宽度阈值,比如30。在这种实现方式下能够实现第一体积元素的自动生成,无
需开发人员手动设置,提高了第一体积元素的生成效率。在终端在虚拟门401前方自动生成
不可见的第一体积元素402之后,终端能够检测第一体积元素402中是否存在被控虚拟对
象,响应于被控虚拟对象进入第一体积元素内部,终端能够确定被控虚拟对象403在虚拟场
景中的位置处于虚拟门401的触发范围内;响应于被控虚拟对象未进入第一体积元素内部,
终端确定被控虚拟对象403在虚拟场景中的位置不处于虚拟门401的触发范围内。
[0081] 上述说明是以在虚拟门401入口的一侧设置第一体积元素402为例进行说明的,在其他可能的实施方式中,开发人员或者终端也能够在虚拟门401出口一侧(图中的f方向)设
置第一体积元素402,参见图6,也即是终端能够在虚拟门401两侧均设置第一体积元素402,
这样能够保证无论被控虚拟对象403从哪个方向接近虚拟门401,终端均能够确定被控对象
403在虚拟场景中的位置是否处于虚拟门401的触发范围内。两个第一体积元素402的设置
方法属于同一发明构思,对于第二个第一体积元素的设置方法在此不再赘述。
[0082] 在一种可能的实施方式中,终端能够以虚拟障碍物的中心为原点,以第一距离为半径建立探测区域,实时检测探测区域中是否存在被控虚拟对象。响应于探测区域内存在
被控虚拟对象,终端能够确定被控虚拟对象在虚拟场景中的位置处于虚拟障碍物的触发范
围内;响应于探测区域内不存在被控虚拟对象,终端能够确定被控虚拟对象在虚拟场景中
的位置不处于虚拟障碍物的触发范围内。
[0083] 可选地,探测区域的形状为球形,或者为圆柱形,或者为立方体形,本申请实施例对于探测区域的形状不作限定。需要说明的是,若探测区域的形状为立方体形,那么终端能
够将第一距离作为立方体的对角线长度或者立方体的边长,本申请实施例对此不做限定。
[0084] 以虚拟障碍物为虚拟门为例,终端能够以虚拟门的两个对角线的交点为原点,以第一距离为半径,建立球形的探测区域。终端能够以探测区域的外表面上各个点在虚拟场
景坐标系下满足的函数关系,基于该函数关系以及被控虚拟对象在虚拟场景中的坐标,确
定被控虚拟对象是否进入探测区域。比如,若终端确定探测区域的外表面上各个点在虚拟
场景坐标系下满足函数关系(1),那么终端能够将虚拟对象在虚拟场景中的坐标(x1,y1,z1)
带入函数关系(1)中,确定虚拟对象在虚拟场景中的坐标(x1,y1,z1)是否满足函数关系(2)。
响应于虚拟对象在虚拟场景中的坐标(x1,y1,z1)满足函数关系(2),终端能够确定被控虚拟
对象进入探测区域。
[0085] (x‑a)2+(y‑b)2+(z‑c)2=r2    (1)
[0086] (x1‑a)2+(y1‑b)2+(z1‑c)2<r2    (2)
[0087] 其中,a、b以及c为探测区域球心在虚拟场景中的坐标值,r为第一距离。
[0088] 需要说明的是,对于上述步骤301的说明是以终端为执行主体为例进行的,在其他可能的实施方式中,也能够由服务器作为执行主体来执行上述步骤301,本申请实施例对于
执行主体的类型不做限定。
[0089] 可选的,虚拟障碍物的触发范围内还包括一个更小的触发范围,以触发范围的数量为两个为例,则将上述步骤302中描述的触发范围记作第一触发范围,将第一出发范围中
包括的另一个触发范围记作第二触发范围。在下述描述过程中,若终端执行完步骤303之后
直接执行步骤306,那么虚拟障碍物也就对应于一个第一触发范围。若终端执行完步骤303
之后执行步骤305和步骤306,那么虚拟障碍物对应于第一触发范围和第二触发范围两个触
发范围,由于第一触发范围大于第二触发范围,因此被控虚拟对象在接近虚拟障碍物时,会
先进入第一触发范围,再进入第二触发范围。
[0090] 303、响应于被控虚拟对象在虚拟场景中的位置处于虚拟障碍物的第一触发范围内,终端确定被控虚拟对象的实时位姿,实时位姿用于表示被控虚拟对象的实时位置和实
时姿态中的至少一项。
[0091] 举例来说,终端能够采用被控虚拟对象在虚拟场景中的坐标来表示被控虚拟对象在虚拟场景中的位置,采用不同姿态对应的参数来表示被控虚拟对象的静态姿态,比如采
用00000001来表示站立,采用00000010来表示下蹲,采用00000011来表示匍匐等。响应于被
控虚拟对象在虚拟场景中的位置处于虚拟障碍物的第一触发范围内,终端能够通过被控虚
拟对象实时姿态对应的参数来确定被控虚拟对象的实时位姿。
[0092] 需要说明的是,对于上述步骤302的说明是以终端为执行主体为例进行的,在其他可能的实施方式中,也能够由服务器作为执行主体来执行上述步骤302,本申请实施例对于
执行主体的类型不做限定。
[0093] 在步骤303之后,终端能够执行步骤304和步骤305来提高对实时位姿判定的准确性。当然终端也能够不执行步骤304和步骤305,直接执行步骤306来提高实时位姿判定的效
率。若终端通过执行步骤304和步骤305来提高对实时位姿判定的准确性,那么当被控虚拟
对象进入虚拟障碍物的第一触发范围内时,终端开始确定被控虚拟对象的位姿。当被控虚
拟对象进入虚拟障碍物的第二触发范围内时,终端将被控虚拟对象当前的位姿确定为被控
虚拟对象的实时位姿,进而确定被控虚拟对象的实时位姿是否符合虚拟障碍物对应的通过
条件。若终端在执行步骤303之后直接执行步骤306,那么在被控虚拟对象进入虚拟障碍物
的第一触发范围内时,终端就能够直接确定被控虚拟对象的实时位姿,并确定被控虚拟对
象的实时位姿是否符合虚拟障碍物对应的通过条件。
[0094] 304、终端确定被控虚拟对象在虚拟场景中的位置是否处于虚拟障碍物的第二触发范围内,第二触发范围处于第一触发范围内。
[0095] 在一种可能的实施方式中,终端能够根据被控虚拟对象在虚拟场景中的实时位置以及虚拟障碍物在虚拟场景中的位置,确定被控虚拟对象是否处于虚拟障碍物的第二触发
范围内。
[0096] 举例来说,终端能够采用坐标来表示被控虚拟对象在虚拟场景中的实时位置以及虚拟障碍物在虚拟场景中的位置。若被控虚拟对象在虚拟场景中的坐标为(130,138,23),
虚拟障碍物在虚拟场景中的坐标为(120,128,20),那么终端能够确定被控虚拟对象和虚拟
障碍物之间的距离为14.5。响应于虚拟障碍物的第二触发范围为以虚拟障碍物为中心,以
第二距离为半径的圆形,那么响应于被控虚拟对象与虚拟障碍物之间的距离14.5小于或等
于第二距离,终端能够确定被控虚拟对象在虚拟场景中的位置处于虚拟障碍物的第二触发
范围内;响应于被控虚拟对象与虚拟障碍物之间的距离14.5大于第二距离,终端能够确定
被控虚拟对象在虚拟场景中的位置不处于虚拟障碍物的第二触发范围内。
[0097] 在一种可能的实施方式中,终端能够在虚拟障碍物周围设置与虚拟障碍物关联的,体积小于第一体积元素,位于第一体积元素内部,且位置靠近虚拟障碍物的,不可见的
第二体积元素。终端能够将第二体积元素的类型设置为触发器,从而使得用户能够控制被
控虚拟对象在该第二体积元素内通行。响应于被控虚拟对象进入第二体积元素内部,终端
能够确定被控虚拟对象在虚拟场景中的位置处于虚拟障碍物的第二触发范围内;响应于被
控虚拟对象位于第一体积元素内,但是未进入第二体积元素内部,终端能够确定被控虚拟
对象在虚拟场景中的位置不处于虚拟障碍物的第二触发范围内。
[0098] 以虚拟障碍物为高度大于或等于被控虚拟对象高度的虚拟门为例,参见图7,开发人员能够通过开发软件在虚拟门701的入口一侧(图中的e方向)设置一个不可见的第一体
积元素702。开发人员能够通过开发软件在虚拟门的入口一侧,且位于第一体积元素702的
内部设置一个体积小于第一体积元素702的第二体积元素703。在虚拟门701的入口一侧设
置好不可见的第二体积元素703之后,终端能够检测第二体积元素703中是否存在被控虚拟
对象704,响应于被控虚拟对象704进入第二体积元素内部,终端能够确定被控虚拟对象704
在虚拟场景中的位置处于虚拟门701的第二触发范围内;响应于被控虚拟对象704进入第一
体积元素内部且未进入第二体积元素内部,终端确定被控虚拟对象704在虚拟场景中的位
置不处于虚拟门701的第二触发范围内。
[0099] 305、响应于被控虚拟对象在虚拟场景中的位置处于虚拟障碍物的第二触发范围内,终端确定被控虚拟对象当前的位姿是否符合虚拟障碍物对应的通过条件。
[0100] 在一种可能的实施方式中,响应于被控虚拟对象在虚拟场景中的位置处于虚拟障碍物的第二触发范围内,终端能够确定虚拟障碍物对应的通过条件,将虚拟障碍物对应的
通过条件与被控虚拟对象的实时位姿进行比较,确定被控虚拟对象的实时位姿是否符合虚
拟障碍物对应的通过条件。
[0101] 以虚拟障碍物为高度大于或等于被控虚拟对象高度的虚拟门为例,响应于被控虚拟对象在虚拟场景中的位置处于虚拟门的第二触发范围内,终端能够根据虚拟门的标识,
确定虚拟门对应的通过条件为被控虚拟对象通过虚拟门时的位置为虚拟门的中间位置,中
间位置到虚拟门两侧的距离相同。终端能够确定由被控虚拟对象的实时位置指向虚拟门的
中间位置的射线与虚拟门所在平面的夹角是否符合角度条件。响应于由被控虚拟对象的实
时位置指向虚拟门的中间位置的射线与虚拟门所在平面的夹角符合目标角度条件,终端确
定被控虚拟对象的实时位姿符合虚拟门对应的通过条件;响应于由被控虚拟对象的实时位
置指向虚拟门的中间位置的射线与虚拟门所在平面的夹角不符合目标角度条件,终端确定
被控虚拟对象的实时位姿不符合虚拟门对应的通过条件。
[0102] 以虚拟障碍物为高度小于被控虚拟对象的虚拟门为例,响应于被控虚拟对象在虚拟场景中的位置处于虚拟门的第二触发范围内,终端能够根据虚拟门的标识,确定虚拟门
对应的通过条件为被控虚拟对象通过虚拟门时的姿态为下蹲。终端能够确定被控虚拟对象
的姿态是否为下蹲或者匍匐中的任一项,响应于被控虚拟对象的姿态为下蹲或者匍匐中的
任一项,终端能够确定被控虚拟对象符合虚拟门对应的通过条件;响应于被控虚拟对象的
姿态不为下蹲或者匍匐中的任一项,比如为站立,终端能够确定被控虚拟对象不符合虚拟
门对应的通过条件。
[0103] 以虚拟障碍物为虚拟路障为例,响应于被控虚拟对象在虚拟场景中的位置处于虚拟路障的第二触发范围内,终端能够确定虚拟路障对应的通过条件为被控虚拟对象面向虚
拟路障。终端能够确定被控虚拟对象的姿态是否为面向虚拟路障,响应于被控虚拟对象的
姿态为不面向虚拟路障,终端能够确定被控虚拟对象符合虚拟路障对应的通过条件;响应
于被控虚拟对象的姿态为面向虚拟路障,终端能够确定被控虚拟对象不符合虚拟路障对应
的通过条件。
[0104] 以虚拟路障为虚拟墙为例,参见图8,终端能够在紧邻虚拟墙801的位置设置不可见的第一体积元素802,在紧邻虚拟墙801且位于第一体积元素802内部设置不可见的第三
体积元素803,第三体积元素803的体积小于第一体积元素802,终端能够将第三体积元素
803的类型设置为Special Layer In Game,第三体积元素803能够检测虚拟墙801的尺寸信
息。当被控虚拟对象804进入第一体积元素802之后,终端能够每间隔目标时长做一次射线
检测,射线检测的起点为被控虚拟对象的脚底位置,方向为被控虚拟对象当前的朝向,可选
地,目标时间间隔为0.2s,当然也能够为其他数值,本申请实施例对此不做限定。响应于射
线检测到类型为Special Layer In Game的第三体积元素803之后,终端能够确定被控虚拟
对象不符合虚拟墙对应的通过条件。
[0105] 通过上述步骤304和305,终端能够在被控虚拟对象在虚拟场景中的位置处于虚拟障碍物的第二触发范围内时才开始判定被控虚拟对象的实时位姿是否符合虚拟障碍物对
应的通过条件,比如在用户控制被控虚拟对象仅仅是路过虚拟门,而不想控制被控虚拟对
象通过虚拟门时,无需执行上述判断过程,也即是只确定与虚拟障碍物之间的距离足够小
的被控虚拟对象的实时位姿是否符合通过条件,能够减少终端的计算量。
[0106] 需要说明的是,响应于被控虚拟对象的实时位姿不符合虚拟障碍物对应的通过条件,那么终端能够在执行完毕步骤305之后执行步骤306;响应于被控虚拟对象的实时位姿
符合虚拟障碍物对应的通过条件,那么终端无需执行步骤305之后的步骤。
[0107] 需要说明的是,对于上述步骤304和305的说明是以终端为执行主体为例进行的,在其他可能的实施方式中,也能够由服务器作为执行主体来执行上述步骤304和305,本申
请实施例对于执行主体的类型不做限定。
[0108] 306、响应于被控虚拟对象的实时位姿不符合虚拟障碍物对应的通过条件,终端确定虚拟障碍物的类型。
[0109] 其中,虚拟障碍物的类型包括虚拟门、虚拟路障、虚拟箱子、虚拟窗、虚拟载具以及虚拟树木等,当然也可以包括其他类型的障碍物,本申请实施例对此不做限定。
[0110] 在一种可能的实施方式中,若终端在执行步骤303之后直接执行步骤306,那么终端能够确定被控虚拟对象的实时位姿是否符合虚拟障碍物对应的通过条件,响应于被控虚
拟对象的实时位置不符合虚拟障碍物对应的通过条件,终端能够确定虚拟障碍物的标识所
指示的虚拟障碍物的类型。当然,若执行了上述步骤304和305,那么终端也能够在确定虚拟
障碍物对应的通过条件的同时确定虚拟障碍物的类型,其中,终端确定被控虚拟对象的实
时位姿是否符合虚拟障碍物对应的通过条件的方法与上述步骤305中属于同一发明构思,
在此不再赘述。
[0111] 307、响应于虚拟障碍物为虚拟门,终端根据虚拟门的第一尺寸信息,确定与第一尺寸信息对应的辅助动作。
[0112] 在一种可能的实施方式中,响应于虚拟门的高度大于或等于被控虚拟对象的高度,终端将向虚拟门移动的动作确定为与第一尺寸信息对应的辅助动作。
[0113] 在这种实现方式下,终端能够将与第一尺寸信息对应的辅助动作确定为向虚拟门移动,这能能够在被控虚拟对象执行辅助动作时,顺利通过虚拟门,避免被虚拟门“卡住”的
情况。
[0114] 举例来说,终端能够将虚拟门的中间位置确定为被控虚拟对象执行与第一尺寸信息对应的辅助动作后移动的终点,也就是说,终端控制被控虚拟对象执行辅助动作后,被控
虚拟对象能够从实时位置移动至虚拟门的中间位置,这样能够保证被控虚拟对象顺利通过
虚拟门,其中,中间位置到虚拟门两侧的距离相同。
[0115] 需要说明的是,对于上述步骤306和307的说明是以终端为执行主体为例进行的,在其他可能的实施方式中,也能够由服务器作为执行主体来执行上述步骤306和307,本申
请实施例对于执行主体的类型不做限定。
[0116] 308、终端控制被控虚拟对象执行与第一尺寸信息对应的辅助动作,辅助动作用于辅助被控虚拟对象以目标位姿通过虚拟门。
[0117] 参见图4,以终端在虚拟门401入口一侧设置不可见的第一体积元素402为例,终端能够将第一体积元素402定义为物理力场,响应于被控虚拟对象403进入第一体积元素402,
且被控虚拟对象的实时位姿不符合虚拟门401的通过条件,终端能够通过第一体积元素402
来辅助被控虚拟对象执行辅助动作。比如,响应于用户通过目标操作控制游戏人物进行移
动,终端能够向游戏人物施加指向第一体积元素402的几何中心所在位置的虚拟牵引力。游
戏人物在用户的控制以及虚拟牵引力的作用下,向虚拟门401的中间位置进行移动。
[0118] 换个角度来说,用户对通过目标操作控制游戏人物进行移动时,实际上是通过目标操作使得游戏人物或得了一个加速度a,加速度a的方向为目标操作所指示的方向,游戏
人物以加速度a在虚拟场景中进行移动。而虚拟牵引力的作用也能够使得游戏人物获得一
个加速度b,加速度b的方向为游戏人物所在位置指向第一体积元素的几何中心。由于加速
度为矢量,游戏人物也就获得了加速度a和加速度b对应的融合加速度c,游戏人物以融合加
速度c在游戏场景中移动。在用户的角度来看,参见图9,实现了游戏人物902被“拉扯”到了
虚拟门901的中间位置的效果,用户能够控制游戏人物顺利通过虚拟门。
[0119] 参见图7,以终端在虚拟门701入口一侧设置第一体积元素702和第二体积元素703为例,终端能够将第二体积元素703定义为物理力场,响应于被控虚拟对象704进入第二体
积元素703,且被控虚拟对象的实时位姿不符合虚拟门701的通过条件,终端能够通过第二
体积元素703来辅助改变被控虚拟对象704执行辅助动作。也就是说,被控虚拟对象704进入
第一体积元素702后,第一体积元素702不会辅助被控虚拟对象执行辅助动作,只有当被控
虚拟对象704进入第二体积元素703之后,终端才会通过第二体积元素703辅助被控虚拟对
象执行辅助动作。比如,响应于用户通过目标操作控制游戏人物进行移动,终端能够向游戏
人物施加指向第二体积元素的几何中心所在位置的虚拟牵引力。游戏人物在用户的控制以
及虚拟牵引力的作用下,向目标位置进行移动。
[0120] 通过本申请提供的技术方案,终端能够在被控虚拟对象移动到虚拟障碍物前时,自动对被控虚拟对象的位置或姿态进行调整,从而辅助被控虚拟对象通过虚拟障碍物,整
个过程无需用户进行额外操作来调整被控虚拟对象的位置或姿态,从而提高了人机交互效
率,同时也改善了用户的游戏体验。
[0121] 图10是本申请实施例提供的一种虚拟对象的控制方法的流程图,以终端作为执行主体为例,参见图10,方法包括:
[0122] 1001、终端确定被控虚拟对象在虚拟场景中的位置,被控虚拟对象为终端控制的虚拟对象。
[0123] 步骤1001与上述步骤301属于同一发明构思,实现过程请参见上述步骤301中的描述,在此不再赘述。
[0124] 1002、终端确定被控虚拟对象在虚拟场景中的位置与虚拟障碍物在虚拟场景中的位置之间是否符合目标条件。
[0125] 步骤1002与上述步骤302属于同一发明构思,实现过程请参见上述步骤302中的描述,在此不再赘述。
[0126] 1003、响应于被控虚拟对象在虚拟场景中的位置处于虚拟障碍物的第一触发范围内,终端确定被控虚拟对象的实时位姿,实时位姿用于表示被控虚拟对象的实时位置和实
时姿态中的至少一项。
[0127] 步骤1003与上述步骤303属于同一发明构思,实现过程请参见上述步骤303中的描述,在此不再赘述。
[0128] 在步骤1003之后,终端能够执行步骤1004和1005来提高对实时位姿判定的准确性。当然终端也能够不执行步骤1004和1005,直接执行步骤1006来提高实时位姿判定的效
率。
[0129] 1004、终端确定被控虚拟对象在虚拟场景中的位置是否处于虚拟障碍物的第二触发范围内,第二触发范围处于第一触发范围内。
[0130] 步骤1004与上述步骤304属于同一发明构思,实现过程请参见上述步骤304中的描述,在此不再赘述。
[0131] 1005、响应于被控虚拟对象在虚拟场景中的位置处于虚拟障碍物的第二触发范围内,终端确定被控虚拟对象当前的位姿是否符合虚拟障碍物对应的通过条件。
[0132] 步骤1005与上述步骤305属于同一发明构思,实现过程请参见上述步骤305中的描述,在此不再赘述。
[0133] 1006、响应于被控虚拟对象的实时位姿不符合虚拟障碍物对应的通过条件,终端确定虚拟障碍物的类型。
[0134] 步骤1006与上述步骤306属于同一发明构思,实现过程请参见上述步骤306中的描述,在此不再赘述。
[0135] 1007、响应于虚拟障碍物为虚拟门,终端根据虚拟门的第一尺寸信息,确定与第一尺寸信息对应的辅助动作。
[0136] 在一种可能的实施方式中,响应于虚拟门的高度小于被控虚拟对象的高度,将姿态改变的动作确定为与第一尺寸信息对应的辅助动作,可选地,姿态改变的动作为将被控
虚拟对象的实时姿态改变为下蹲或匍匐中的一项。
[0137] 在这种实现方式下,当被控虚拟对象遇到高度较矮的虚拟门时,终端能够将虚拟门的第一尺寸信息对应的辅助动作确定为姿态改变,从而当被控虚拟对象执行辅助动作
时,能够通过改变姿态来顺利通过该虚拟门,避免出现由于该虚拟门较矮而将被控虚拟对
象“卡住”的现象,提高了人机交互的效率。
[0138] 1008、终端控制被控虚拟对象执行与第一尺寸信息对应的辅助动作,辅助动作用于辅助被控虚拟对象以目标位姿通过虚拟门。
[0139] 参见图11,以终端在高度小于被控虚拟对象高度的虚拟门1101入口一侧设置不可见的第一体积元素1102为例,响应于被控虚拟对象1103进入第一体积元素1102,且被控虚
拟对象1103的实时姿态不符合虚拟门的通过条件,终端能够通过第一体积元素1102来辅助
改变被控虚拟对象1103的姿态。比如,响应于用户通过目标操作控制游戏人物进行移动,终
端能够控制被控虚拟对象执行由站立变化为下蹲的辅助动作,游戏人物能够在用户的控制
下,通过虚拟门1101。参见图12,左边的图为采用本申请提供的虚拟对象控制方法之前的情
况,被控虚拟对象1201到达虚拟门1202前时,若用户不进行操作,则被控虚拟对象1201会被
卡在虚拟门前方。右边的图为采用本申请提供的虚拟对象控制方法之后,被控虚拟对象能
够到达虚拟门1202前时自动下蹲,用户能够控制被控虚拟对象1201顺利通过虚拟门1202。
这样能够保证被控虚拟对象顺利通过虚拟门,整个过程无需用户手动操作,提高了人机交
互的效率。
[0140] 参见图13,响应于虚拟门1301之后仍然为高度小于被控虚拟对象1302高度的活动空间1303,比如类似于飞机尾部的障碍物等,终端能够设置一个贯穿虚拟门1301以及活动
空间1303的,不可见的第一体积元素1304。响应于被控虚拟对象1302位于第一体积元素
1304内,终端能够控制被控虚拟对象1302保持下蹲的姿态。这样能够保证被控虚拟对象顺
利通过虚拟门以及虚拟门之后的活动空间,且整个过程无需用户手动操作,提高了人机交
互的效率。
[0141] 可选地,执行完步骤1008之后,终端还能够执行步骤1009对被控虚拟对象的姿态进行还原。
[0142] 1009、响应于被控虚拟对象通过虚拟门,终端控制被控虚拟对象执行目标动作,目标动作用于将被控虚拟对象的姿态调整为通过虚拟门之前的姿态。
[0143] 通过执行步骤1009,响应于被控虚拟对象通过虚拟门之后,终端能够将被控虚拟对象的姿态还原为执行辅助动作前的姿态,方便用户控制被控虚拟对象执行其他动作,用
户无需再点击其他按键来调整被控虚拟对象的姿态,进一步提高了人机交互的效率。
[0144] 通过本申请提供的技术方案,终端能够在被控虚拟对象移动到虚拟障碍物前时,自动对被控虚拟对象的位置或姿态进行调整,从而辅助被控虚拟对象通过虚拟障碍物,整
个过程无需用户进行额外操作来调整被控虚拟对象的位置或姿态,从而提高了人机交互效
率,同时也改善了用户的游戏体验。
[0145] 图14是本申请实施例提供的一种虚拟对象的控制方法的流程图,以终端作为执行主体为例,参见图14,方法包括:
[0146] 1401、终端确定被控虚拟对象在虚拟场景中的位置,被控虚拟对象为终端控制的虚拟对象。
[0147] 步骤1401与上述步骤301属于同一发明构思,实现过程请参见上述步骤301中的描述,在此不再赘述。
[0148] 1402、终端确定被控虚拟对象在虚拟场景中的位置与虚拟障碍物在虚拟场景中的位置之间是否符合目标条件。
[0149] 步骤1402与上述步骤302属于同一发明构思,实现过程请参见上述步骤302中的描述,在此不再赘述。
[0150] 1403、响应于被控虚拟对象在虚拟场景中的位置处于虚拟障碍物的第一触发范围内,终端确定被控虚拟对象的实时位姿,实时位姿用于表示被控虚拟对象的实时位置和实
时姿态中的至少一项。
[0151] 步骤1403与上述步骤303属于同一发明构思,实现过程请参见上述步骤303中的描述,在此不再赘述。
[0152] 在步骤1403之后,终端能够执行步骤1404和1405来提高对实时位姿判定的准确性。当然终端也能够不执行步骤1404和1405,直接执行步骤1406来提高实时位姿判定的效
率。
[0153] 1404、终端确定被控虚拟对象在虚拟场景中的位置是否处于虚拟障碍物的第二触发范围内,第二触发范围处于第一触发范围内。
[0154] 步骤1404与上述步骤304属于同一发明构思,实现过程请参见上述步骤304中的描述,在此不再赘述。
[0155] 1405、响应于被控虚拟对象在虚拟场景中的位置处于虚拟障碍物的第二触发范围内,终端确定被控虚拟对象当前的位姿是否符合虚拟障碍物对应的通过条件。
[0156] 步骤1405与上述步骤305属于同一发明构思,实现过程请参见上述步骤305中的描述,在此不再赘述。
[0157] 1406、响应于被控虚拟对象的实时位姿不符合虚拟障碍物对应的通过条件,终端确定虚拟障碍物的类型。
[0158] 步骤1406与上述步骤306属于同一发明构思,实现过程请参见上述步骤306中的描述,在此不再赘述。
[0159] 1407、响应于虚拟障碍物为虚拟路障,终端根据虚拟路障的第二尺寸信息,确定与第二尺寸信息对应的辅助动作。
[0160] 在一种可能的实施方式中,响应于虚拟路障的高度与被控虚拟对象的高度之间的差值大于差值阈值,且虚拟路障的长度小于虚拟路障的宽度,终端确定被控虚拟对象与虚
拟路障之间的夹角。响应于被控虚拟对象与虚拟路障之间的夹角大于角度阈值,终端将翻
越虚拟路障的动作确定为与第二尺寸信息对应的辅助动作。
[0161] 以虚拟路障为虚拟墙为例,参见图8和图15,终端能够通过第三体积元素803来获取虚拟墙801的高度,确定虚拟墙801的高度与被控虚拟对象804的高度差是否大于0.2m。响
应于虚拟墙801的高度与被控虚拟对象804的高度差大于0.2m,那么终端能够通过第三体积
元素803获取虚拟墙801的宽度和长度,确定虚拟墙801的宽度是否大于虚拟墙801的长度。
响应于虚拟墙801的宽度大于虚拟墙801的长度,终端能够通过第三体积元素803确定虚拟
墙801的位置,根据虚拟墙801的位置确定被控虚拟对象804当前的朝向与虚拟墙801之间的
夹角是否大于90°。响应于被控虚拟对象804当前的朝向与虚拟墙801之间的夹角大于90°,
终端将翻越虚拟墙的动作确定为所述与第二尺寸信息对应的辅助动作。
[0162] 需要说明的是,当上述条件全部满足是,终端判定能够控制被控虚拟对象804执行与第二尺寸信息对应的辅助动作,也即是终端能够执行步骤1408。若上述任一个条件没有
满足,则终端判定不能控制被控虚拟对象804执行与第二尺寸信息对应的辅助动作,也即是
终端无需执行步骤1408。当然,上述举例中的各个数值仅仅是为了便于理解而设置的,开发
人员能够根据实际情况对上述数值进行设置,本申请实施例对此不做限定。
[0163] 1408、终端控制被控虚拟对象执行与第二尺寸信息对应的辅助动作。
[0164] 以虚拟路障为虚拟墙为例,参见图16,左边的图为采用本申请提供的虚拟对象控制方法之前的情况,被控虚拟对象1601到达虚拟墙1602前时,若用户不进行操作,则被控虚
拟对象1601会被卡在虚拟墙前方。右边的图为采用本申请提供的虚拟对象控制方法之后,
被控虚拟对象能够到达虚拟墙1602前时自动翻越虚拟墙1602。在这种实现方式下,当被控
虚拟对象遇到虚拟墙壁时,无需用户手动操作,终端就能够辅助被控虚拟对象翻越虚拟墙,
提高了人机交互的效率。
[0165] 通过本申请提供的技术方案,终端能够在被控虚拟对象移动到虚拟障碍物前时,自动对被控虚拟对象的位置或姿态进行调整,从而辅助被控虚拟对象通过虚拟障碍物,整
个过程无需用户进行额外操作来调整被控虚拟对象的位置或姿态,从而提高了人机交互效
率,同时也改善了用户的游戏体验。
[0166] 图17是本申请实施例提供的一种虚拟对象的控制装置结构示意图,参见图17,装置包括:位置确定模块1701、实时位姿确定模块1702以及控制模块1703。
[0167] 位置确定模块1701,用于确定被控虚拟对象在虚拟场景中的位置,被控虚拟对象为终端控制的虚拟对象。
[0168] 实时位姿确定模块1702,用于响应于被控虚拟对象在虚拟场景中的位置与虚拟障碍物在虚拟场景中的位置之间符合目标条件,确定被控虚拟对象的实时位姿,实时位姿用
于表示被控虚拟对象的实时位置和实时姿态中的至少一项。
[0169] 控制模块1703,用于响应于被控虚拟对象的实时位姿不符合虚拟障碍物对应的通过条件,控制被控虚拟对象执行与虚拟障碍物对应的辅助动作,辅助动作用于辅助被控虚
拟对象以目标位姿通过虚拟障碍物。
[0170] 在一种可能的实施方式中,用于响应于被控虚拟对象的实时位姿不符合虚拟障碍物对应的通过条件,确定虚拟障碍物的类型。根据虚拟障碍物的类型,控制被控虚拟对象执
行与虚拟障碍物的类型对应的辅助动作。
[0171] 在一种可能的实施方式中,述控制模块,用于响应于虚拟障碍物为虚拟门,根据虚拟门的第一尺寸信息,确定与第一尺寸信息对应的辅助动作。控制被控虚拟对象执行与第
一尺寸信息对应的辅助动作。
[0172] 在一种可能的实施方式中,控制模块,用于响应于虚拟门的高度大于或等于被控虚拟对象的高度,将向虚拟门移动的动作确定为与第一尺寸信息对应的辅助动作。
[0173] 在一种可能的实施方式中,控制模块,用于响应于虚拟门的高度小于被控虚拟对象的高度,将姿态改变的动作确定为与第一尺寸信息对应的辅助动作。
[0174] 在一种可能的实施方式中,姿态改变的动作为将被控虚拟对象的实时姿态改变为下蹲动作或匍匐动作中的一项。
[0175] 在一种可能的实施方式中,控制模块,用于响应于虚拟障碍物为虚拟路障,根据虚拟路障的第二尺寸信息,确定与第二尺寸信息对应的辅助动作。控制被控虚拟对象执行与
第二尺寸信息对应的辅助动作。
[0176] 在一种可能的实施方式中,控制模块,用于响应于虚拟路障的高度与被控虚拟对象的高度之间的差值大于差值阈值,且虚拟路障的长度小于虚拟路障的宽度,确定被控虚
拟对象与虚拟路障之间的夹角。响应于被控虚拟对象与虚拟路障之间的夹角大于角度阈
值,将翻越虚拟路障的动作确定为与第二尺寸信息对应的辅助动作。
[0177] 通过本申请提供的技术方案,终端能够在被控虚拟对象移动到虚拟障碍物前时,自动对被控虚拟对象的位置或姿态进行调整,从而辅助被控虚拟对象通过虚拟障碍物,整
个过程无需用户进行额外操作来调整被控虚拟对象的位置或姿态,从而提高了人机交互效
率,同时也改善了用户的游戏体验。
[0178] 本申请实施例提供了一种计算机设备,用于执行上述方法,该计算机设备可以实现为终端或者服务器,下面先对终端的结构进行介绍:
[0179] 图18是本申请实施例提供的一种终端的结构示意图。该终端1800可以是:智能手机、平板电脑、笔记本电脑或台式电脑。终端1800还可能被称为用户设备、便携式终端、膝上
型终端、台式终端等其他名称。
[0180] 通常,终端1800包括有:一个或多个处理器1801和一个或多个存储器1802。
[0181] 处理器1801可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1801可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-
Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程
逻辑阵列)中的至少一种硬件形式来实现。处理器1801也可以包括主处理器和协处理器,主
处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing 
Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在
一些实施例中,处理器1801可以在集成有GPU(Graphics Processing Unit,图像处理器),
GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1801还可以包
括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的
计算操作。
[0182] 存储器1802可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1802还可包括高速随机存取存储器,以及非易失性存储器,比如一个
或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1802中的非暂态的计算机可
读存储介质用于存储至少一个程序代码,该至少一个程序代码用于被处理器1801所执行以
实现本申请中方法实施例提供的虚拟对象的控制方法。
[0183] 在一些实施例中,终端1800还可选包括有:外围设备接口1803和至少一个外围设备。处理器1801、存储器1802和外围设备接口1803之间可以通过总线或信号线相连。各个外
围设备可以通过总线、信号线或电路板与外围设备接口1803相连。具体地,外围设备包括:
射频电路1804、显示屏1805、摄像头组件1806、音频电路1807、定位组件1808和电源1809中
的至少一种。
[0184] 外围设备接口1803可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1801和存储器1802。在一些实施例中,处理器1801、存储器1802和外围
设备接口1803被集成在同一芯片或电路板上;在一些其他实施例中,处理器1801、存储器
1802和外围设备接口1803中的任意一个或两个可以在单独的芯片或电路板上实现,本实施
例对此不加以限定。
[0185] 射频电路1804用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1804通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1804将电信
号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路
1804包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解
码芯片组、用户身份模块卡等等。
[0186] 显示屏1805用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1805是触摸显示屏时,显示屏1805还具有采集在
显示屏1805的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处
理器1801进行处理。此时,显示屏1805还可以用于提供虚拟按钮和/或虚拟键盘,也称软按
钮和/或软键盘。
[0187] 摄像头组件1806用于采集图像或视频。可选地,摄像头组件1806包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。
[0188] 音频电路1807可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1801进行处理,或者输入至射频电路1804以实现语音通
信。
[0189] 定位组件1808用于定位终端1800的当前地理位置,以实现导航或LBS(Location Based Service,基于位置的服务)。
[0190] 电源1809用于为终端1800中的各个组件进行供电。电源1809可以是交流电、直流电、一次性电池或可充电电池。
[0191] 在一些实施例中,终端1800还包括有一个或多个传感器1810。该一个或多个传感器1810包括但不限于:加速度传感器1811、陀螺仪传感器1812、压力传感器1813、指纹传感
器1814、光学传感器1815以及接近传感器1816。
[0192] 加速度传感器1811可以检测以终端1800建立的坐标系的三个坐标轴上的加速度大小。
[0193] 陀螺仪传感器1812可以检测终端1800的机体方向及转动角度,陀螺仪传感器1812可以与加速度传感器1811协同采集用户对终端1800的3D动作。
[0194] 压力传感器1813可以设置在终端1800的侧边框和/或显示屏1805的下层。当压力传感器1813设置在终端1800的侧边框时,可以检测用户对终端1800的握持信号,由处理器
1801根据压力传感器1813采集的握持信号进行左右手识别或快捷操作。当压力传感器1813
设置在显示屏1805的下层时,由处理器1801根据用户对显示屏1805的压力操作,实现对UI
界面上的可操作性控件进行控制。
[0195] 指纹传感器1814用于采集用户的指纹,由处理器1801根据指纹传感器1814采集到的指纹识别用户的身份,或者,由指纹传感器1814根据采集到的指纹识别用户的身份。
[0196] 光学传感器1815用于采集环境光强度。在一个实施例中,处理器1801可以根据光学传感器1815采集的环境光强度,控制显示屏1805的显示亮度。接近传感器1816用于采集
用户与终端1800的正面之间的距离。
[0197] 本领域技术人员可以理解,图18中示出的结构并不构成对终端1800的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
[0198] 上述计算机设备还可以实现为服务器,下面对服务器的结构进行介绍:
[0199] 图19是本申请实施例提供的一种服务器的结构示意图,该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器(Central Processing Units,
CPU)1901和一个或多个的存储器1902,其中,所述一个或多个存储器1902中存储有至少一
条程序代码,所述至少一条程序代码由所述一个或多个处理器1901加载并执行以实现上述
各个方法实施例提供的方法。当然,该服务器1900还可以具有有线或无线网络接口、键盘以
及输入输出接口等部件,以便进行输入输出,该服务器1900还可以包括其他用于实现设备
功能的部件,在此不做赘述。
[0200] 在示例性实施例中,还提供了一种计算机可读存储介质,例如包括程序代码的存储器,上述程序代码可由处理器执行以完成上述实施例中的虚拟对象的控制方法。例如,该
计算机可读存储介质可以是只读存储器(Read‑Only Memory,ROM)、随机存取存储器
(Random Access Memory,RAM)、只读光盘(Compact Disc Read‑Only Memory,CD‑ROM)、磁
带、软盘和光数据存储设备等。
[0201] 在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机程序代码,该计算机程序代码存储在计算机可读存储介质
中,计算机设备的处理器从计算机可读存储介质读取该计算机程序代码,处理器执行该计
算机程序代码,使得该计算机设备执行上述各种可选实施方式中提供虚拟对象的控制的方
法。
[0202] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来程序代码相关的硬件完成,该程序可以存储于一种计算机可读
存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0203] 上述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。