CN111068324A - 虚拟对象控制方法、装置、设备及存储介质 - Google Patents
虚拟对象控制方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111068324A CN111068324A CN201911176268.XA CN201911176268A CN111068324A CN 111068324 A CN111068324 A CN 111068324A CN 201911176268 A CN201911176268 A CN 201911176268A CN 111068324 A CN111068324 A CN 111068324A
- Authority
- CN
- China
- Prior art keywords
- virtual object
- obstacle
- crossing
- position point
- distance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/57—Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
- A63F13/577—Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using determination of contact between game characters or objects, e.g. to avoid collision between virtual racing cars
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
- A63F13/803—Driving vehicles or craft, e.g. cars, airplanes, ships, robots or tanks
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/80—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
- A63F2300/8017—Driving on land or water; Flying
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请实施例公开了一种虚拟对象控制方法、装置、设备及存储介质,属于计算机技术领域。该方法包括:当接收到翻越障碍物指令时,获取当前的场景信息,其中场景信息至少包括第一虚拟对象的状态信息或障碍物的状态信息中的至少一种,根据场景信息,从多种翻越方式中选取与场景信息匹配的翻越方式,控制第一虚拟对象按照翻越方式翻越障碍物。因此,通过设置多种翻越方式,能够选取与场景信息匹配的翻越方式,翻越方式更加丰富,提高了翻越方式的灵活性,增强了虚拟对象的动态性、趣味性和真实性。而且通过提供多种翻越方式,可以提高翻越障碍物的成功率。
Description
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种虚拟对象控制方法、装置、设备及存储介质。
背景技术
随着计算机技术的发展,游戏的种类越来越多,功能越来越丰富。随着用户对虚拟场景真实性的要求越来越高,虚拟场景中通常会设置各种各样的障碍物,如山坡、建筑物等,在虚拟场景中控制虚拟对象翻越障碍物,成为一种常用的功能。
相关技术中,玩家点击翻越障碍物按钮,即可控制虚拟对象向上跳跃预设高度后再下降到地面,从而翻越到障碍物上方或者障碍物对面。但是上述方法采用固定的翻越方式,翻越方式过于单一。
发明内容
本申请实施例提供了一种虚拟对象控制方法、装置、设备及存储介质,能够丰富控制方式,使应用范围广泛。所述技术方案如下:
一方面,提供了一种虚拟对象控制方法,所述方法包括:
当接收到翻越障碍物指令时,获取当前的场景信息,所述场景信息至少包括第一虚拟对象的状态信息或障碍物的状态信息中的至少一种;
根据所述场景信息,从多种翻越方式中选取与所述场景信息匹配的翻越方式;
控制所述第一虚拟对象按照所述翻越方式翻越所述障碍物。
另一方面,提供了一种虚拟对象控制装置,所述装置包括:
获取模块,用于当接收到翻越障碍物指令时,获取当前的场景信息,所述场景信息至少包括第一虚拟对象的状态信息或障碍物的状态信息中的至少一种;
选取模块,用于根据所述场景信息,从多种翻越方式中选取与所述场景信息匹配的翻越方式;
翻越控制模块,用于控制所述第一虚拟对象按照所述翻越方式翻越所述障碍物。
可选地,所述获取模块,包括:
显示单元,用于显示场景界面,所述场景界面包括翻越障碍物按钮;
获取单元,用于当检测到对所述翻越障碍物按钮的触发操作时,获取所述场景信息。
可选地,所述选取模块,包括:
第一选取单元,用于当所述场景信息满足第一翻越条件时,选取翻越到障碍物上方的翻越方式,所述第一翻越条件为将所述第一虚拟对象翻越到所述障碍物上方的条件;
所述翻越控制模块,包括:
第一控制单元,用于控制所述第一虚拟对象翻越到所述障碍物上方。
可选地,所述第一翻越条件包括:
所述障碍物位于所述第一虚拟对象前方的第一距离内;
从所述第一虚拟对象当前的第一位置点到所述障碍物的上方,不存在其他遮挡所述第一虚拟对象的障碍物;
所述障碍物的上方存在供所述第一虚拟对象站立或蹲下的空间;
所述障碍物的宽度大于第一预设宽度。
可选地,所述第一选取单元,还用于当所述场景信息满足所述第一翻越条件,且所述障碍物与所述第一虚拟对象的纵向距离不大于第二距离时,选取第一翻越方式,所述第一翻越方式为采用单手支撑的方式翻越到障碍物上方的方式;
所述第一选取单元,还用于当所述场景信息满足所述第一翻越条件,且所述障碍物与所述第一虚拟对象的纵向距离大于所述第二距离时,选取第二翻越方式,所述第二翻越方式为采用双手支撑的方式翻越到障碍物上方的方式。
可选地,所述装置还包括:
站立控制模块,用于当所述障碍物的上方存在供所述第一虚拟对象站立的空间时,控制所述第一虚拟对象在所述障碍物上方站立;
蹲下控制模块,用于当所述障碍物的上方存在供所述第一虚拟对象蹲下的空间,但不存在供所述第一虚拟对象站立的空间,控制所述第一虚拟对象在所述障碍物上方蹲下。
可选地,所述选取模块,包括:
第二选取单元,用于当所述场景信息满足第二翻越条件时,选取翻越到障碍物对面的翻越方式,所述第二翻越条件为将所述第一虚拟对象翻越到所述障碍物对面的条件;
所述翻越控制模块,包括:
第二控制单元,用于控制所述第一虚拟对象翻越到所述障碍物对面。
可选地,所述第二翻越条件包括:
所述障碍物位于所述第一虚拟对象前方的第一距离内;
从所述第一虚拟对象当前的第一位置点到所述障碍物的对面,不存在其他遮挡所述第一虚拟对象的障碍物;
所述障碍物的对面存在供所述第一虚拟对象站立的空间;
所述障碍物的宽度不大于第二预设宽度。
可选地,所述第二选取单元,还用于当所述场景信息满足所述第二翻越条件,且所述障碍物与所述第一虚拟对象的纵向距离不大于第二距离时,选取第三翻越方式,所述第三翻越方式为采用单手支撑的方式翻越到障碍物对面的方式;
所述第二选取单元,还用于当所述场景信息满足所述第二翻越条件,且所述障碍物与所述第一虚拟对象的纵向距离大于所述第二距离时,选取第四翻越方式,所述第四翻越方式为采用双手支撑的方式翻越到障碍物对面的方式。
可选地,所述装置还包括:
站立控制模块,还用于控制所述第一虚拟对象翻越到所述障碍物对面的过程中,当所述第一虚拟对象与所述虚拟场景地面的纵向距离大于第三距离时,控制所述第一虚拟对象保持站立;
下坠控制模块,用于当所述第一虚拟对象与所述虚拟场景地面的纵向距离不大于第三距离时,控制所述第一虚拟对象执行下坠到地面的动作。
可选地,所述场景信息包括所述虚拟对象当前的第一位置点的坐标和所述障碍物所处的区域,所述装置还包括:
第一创建模块,用于创建与所述第一虚拟对象相同的第二虚拟对象;
移动控制模块,用于控制所述第二虚拟对象从所述第一位置点开始向前移动;
位置点确定模块,用于当检测到所述第二虚拟对象与所述障碍物发生碰撞时,确定所述障碍物上与所述第二虚拟对象发生碰撞的第二位置点;
所述移动控制模块,还用于将所述第二位置点向前移动第四距离,并向上移动第五距离后的位置点确定为第三位置点,所述第四距离等于所述第一虚拟对象的宽度的一半;
所述位置点确定模块,还用于将所述第三位置点投影到所述障碍物的上方得到的位置点确定为第四位置点;
距离确定模块,用于将所述第四位置点与所述第一位置点的纵向距离,确定为所述障碍物与所述第一虚拟对象的纵向距离。
可选地,所述当检测到所述第二虚拟对象与所述障碍物发生碰撞时,确定所述障碍物上与所述第二虚拟对象发生碰撞的第二位置点之后,所述装置还包括:
所述移动控制模块,还用于控制所述第二虚拟对象从所述第二位置点开始向前移动第六距离,到达第五位置点;
所述移动控制模块,还用于控制所述第二虚拟对象从所述第五位置点开始向后移动;
所述位置点确定模块,还用于当检测到所述第二虚拟对象与所述障碍物发生碰撞时,确定所述障碍物上与所述第二虚拟对象发生碰撞的第六位置点;
所述距离确定模块,还用于将所述第六位置点与所述第二位置点的横向距离,确定为所述障碍物的宽度。
可选地,所述装置还包括:
第二创建模块,用于创建第三虚拟对象,所述第三虚拟对象的宽度与所述第一虚拟对象的宽度相等,所述第三虚拟对象的高度小于所述第一虚拟对象的高度;
所述移动控制模块,还用于控制所述第三虚拟对象从所述第一位置点向所述第四位置点移动;
障碍物确定模块,用于当所述第三虚拟对象到达所述第四位置点时,确定从所述第一位置点到所述障碍物的上方,不存在其他遮挡所述第一虚拟对象的障碍物;或者,当所述第三虚拟对象在移动过程中与其他障碍物发生碰撞时,确定从所述第一位置点到所述障碍物的上方,存在其他遮挡所述第一虚拟对象的障碍物。
可选地,所述装置还包括:
所述站立控制模块,还用于控制所述第二虚拟对象在所述第四位置点站立,当所述第二虚拟对象未与其他障碍物发生碰撞时,确定所述障碍物的上方存在供所述第一虚拟对象站立的空间;或者,控制所述第三虚拟对象在所述第四位置点站立,当所述第三虚拟对象未与其他障碍物发生碰撞时,确定所述障碍物的上方存在供所述第一虚拟对象蹲下的空间。
可选地,所述装置还包括:
所述位置点确定模块,还用于将所述第一位置点向上移动第七距离后的位置点确定为第七位置点,所述第七距离等于所述障碍物与所述第一虚拟对象的纵向距离;
所述位置点确定模块,还用于将所述第七位置点向前移动第六距离后的位置点确定为第八位置点;
所述移动控制模块,还用于控制所述第三虚拟对象从所述第七位置点向所述第八位置点移动;
所述障碍物确定模块,还用于当所述第三虚拟对象到达所述第八位置点时,确定从所述第一位置点到所述障碍物的对面,不存在其他遮挡所述第一虚拟对象的障碍物;或者,当所述第三虚拟对象在移动过程中与其他障碍物发生碰撞时,确定从所述第一位置点到所述障碍物的对面,存在其他遮挡所述第一虚拟对象的障碍物。
可选地,所述装置还包括:
所述位置点确定模块,还用于将所述第八位置点投影到所述虚拟场景地面得到的位置点确定为第九位置点;
所述站立控制模块,还用于控制所述第二虚拟对象在所述第九位置点站立,当所述第二虚拟对象未与其他障碍物发生碰撞时,确定所述障碍物的对面存在供所述第一虚拟对象站立的空间;或者,控制所述第二虚拟对象在所述第九位置点站立,当所述第二虚拟对象与其他障碍物发生碰撞时,确定所述障碍物的对面不存在供所述第一虚拟对象站立的空间。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以实现如上述方面所述的虚拟对象控制方法。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现如上述方面所述的虚拟对象控制方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
本申请实施例提供的虚拟对象控制方法、装置、设备及存储介质,当接收到翻越障碍物指令时,获取当前的场景信息,场景信息至少包括第一虚拟对象的状态信息或障碍物的状态信息中的至少一种。根据场景信息,从多种翻越方式中选取与场景信息匹配的翻越方式,控制第一虚拟对象按照翻越方式翻越障碍物。因此,通过设置多种翻越方式,能够选取与场景信息匹配的翻越方式,翻越方式更加丰富,提高了翻越方式的灵活性,增强了虚拟对象的动态性、趣味性和真实性。而且通过提供多种翻越方式,可以提高翻越障碍物的成功率。
并且,本申请实施例提供的方法还可以实现第一虚拟对象在空中状态时,执行翻越障碍物的动作,因此第一虚拟对象可以先跳跃到空中,再在空中执行翻越动作,实现了第一虚拟对象的二段跳,能够使第一虚拟对象翻越高于自身高度的障碍物,而且还可以实现连续翻越多个障碍物,进一步提高了翻越障碍物的成功率。
并且,当第一虚拟对象与虚拟场景地面的纵向距离不大于第三距离时,控制第一虚拟对象执行下坠到地面的动作,可以控制第一虚拟对象执行与真实下落动作相似的动作,增强了第一虚拟对象执行翻越障碍物动作的真实性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种虚拟对象控制方法的流程图;
图2是本申请实施例提供的一种场景界面的示意图;
图3是本申请实施例提供的一种场景界面的示意图;
图4是本申请实施例提供的一种障碍物信息与虚拟对象信息获取方法的流程图;
图5是本申请实施例提供的一种虚拟对象位置的示意图;
图6是本申请实施例提供的一种胶囊体的示意图;
图7是本申请实施例提供的另一种虚拟对象位置的示意图;
图8是本申请实施例提供的另一种虚拟对象位置的示意图;
图9是本申请实施例提供的另一种虚拟对象位置的示意图;
图10是本申请实施例提供的另一种虚拟对象位置的示意图;
图11是本申请实施例提供的另一种虚拟对象位置的示意图;
图12是本申请实施例提供的另一种虚拟对象位置的示意图;
图13是本申请实施例提供的另一种虚拟对象位置的示意图;
图14是本申请实施例提供的另一种虚拟对象位置的示意图;
图15是本申请实施例提供的另一种虚拟对象位置的示意图;
图16是本申请实施例提供的一种翻越方式的示意图;
图17是本申请实施例提供的另一种翻越方式的示意图;
图18是本申请实施例提供的另一种翻越方式的示意图;
图19是本申请实施例提供的另一种虚拟对象控制方法的流程图;
图20是本申请实施例提供的另一种虚拟对象控制方法的流程图;
图21是本申请实施例提供的另一种虚拟对象控制方法的流程图;
图22是本申请实施例提供的一种虚拟对象控制装置的结构示意图;
图23是本申请实施例提供的另一种虚拟对象控制装置的结构示意图;
图24是本申请实施例提供的一种终端的结构示意图;
图25是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请涉及到的虚拟场景可以用于模拟一个三维虚拟空间,该三维虚拟空间可以是一个开放空间,该虚拟场景可以用于模拟现实中的真实环境,例如,该虚拟场景中可以包括天空、陆地、海洋等,该陆地可以包括沙漠、城市等环境元素。当然,在该虚拟场景中还可以包括虚拟物品,例如,建筑物、载具、虚拟场景中的虚拟对象用于武装自己或与其他虚拟对象进行战斗所需的兵器等道具,各种各样的场景元素增强了虚拟场景的素多样性和真实性。
用户可以控制虚拟对象在该虚拟场景中进行移动,该虚拟对象可以是该虚拟场景中的一个虚拟的用于代表用户的虚拟形象,该虚拟形象可以是任一种形态,例如,人、动物等,本申请对此不限定。以电子游戏为例,该电子游戏可以为第一人称射击游戏、第三人称射击游戏,或者其他使用热兵器类进行远程攻击的电子游戏。虚拟对象在该虚拟场景中进行移动过程中,各种各样的地形或者建筑物等都可能成为阻碍该虚拟对象移动的障碍物,因此需要为虚拟对象提供翻越障碍物的方式。
本申请实施例提供的一种虚拟对象控制方法,可应用于终端中,该终端可以为手机、电脑、平板电脑等多种类型的设备。
用户可以提前在该终端上进行操作,该终端检测到用户的操作后,可以下载电子游戏的游戏配置文件,该游戏配置文件可以包括该电子游戏的应用程序、界面显示数据或虚拟场景数据等,以使得该用户在该终端上登录电子游戏时可以调用该游戏配置文件,对电子游戏界面进行渲染显示。用户可以在终端上进行触控操作,该终端检测到触控操作后,可以确定该触控操作所对应的游戏数据,并对该游戏数据进行渲染显示,该游戏数据可以包括虚拟场景数据、该虚拟场景中虚拟对象的行为数据等。
终端在对虚拟场景进行渲染显示时,可以全屏显示该虚拟场景,终端还可以在当前显示界面显示虚拟场景的同时,在该当前显示界面的第一预设区域独立显示全局地图,实际应用中,终端也可以在检测到对预设按钮的点击操作时,才对该全局地图进行显示。其中,该全局地图用于显示该虚拟场景的缩略图,该缩略图用于描述该虚拟场景对应的地形、地貌、地理位置等地理特征。当然,终端还可以在当前显示界面显示当前虚拟对象周边一定距离内的虚拟场景的缩略图,在检测到对该全局地图的点击操作时,在终端当前显示界面的第二预设区域显示整体虚拟场景的缩略图,以便于用户不仅可以查看其周围的虚拟场景,也可以查看整体虚拟场景。终端在检测到对该完整缩略图的缩放操作时,也可以对完整缩略图进行缩放显示。该第一预设区域和第二预设区域的具体显示位置和形状可以根据用户操作习惯来设定。例如,为了不对虚拟场景造成过多的遮挡,该第一预设区域可以为该当前显示界面右上角、右下角、左上角或左下角的矩形区域等,该第二预设区域可以为当前显示界面的右边或者左边的正方形区域,当然,该第一预设区域和第二预设区域也可以是圆形区域或其他形状的区域,本申请实施例对该预设区域的具体显示位置和形状不作限定。
本申请实施例提供的虚拟对象控制方法,可应用于电子游戏的场景下。例如,翻越障碍物场景,该障碍物可以为山坡、墙壁、载具、石头等。
用户通过终端控制虚拟对象在虚拟场景中运动,当虚拟对象前方是一面墙壁时,该墙壁会阻挡虚拟对象继续向前移动,因此要控制该虚拟对象翻越该墙壁,则采用本申请实施例提供的虚拟对象控制方法,基于场景界面接收到翻越障碍物指令时,获取当前的场景信息,当确定场景信息满足翻越条件时,根据该场景信息,从多种翻越方式中选取与该场景信息匹配的翻越方式,控制虚拟对象按照该翻越方式翻越墙壁。
图1是本申请实施例提供的一种虚拟对象控制方法的流程图,应用于终端中,如图1所示,该方法包括:
101、终端显示场景界面,在场景界面中,显示第一虚拟对象及翻越障碍物按钮。
第一虚拟对象可以是该虚拟场景中用于代表用户的虚拟形象,该第一虚拟形象可以是任一种形态,例如,人、动物等,用户可基于终端显示的场景界面,控制该第一虚拟对象执行动作。
场景界面可以用于显示第一虚拟对象的视角范围内的虚拟场景。翻越障碍物按钮用于触发在场景界面中控制该第一虚拟对象执行翻越障碍物的动作,例如该动作可以为翻越到障碍物上方或者翻越到障碍物对面等。
该翻越障碍物按钮可以显示在场景界面的任意区域上,例如显示在场景界面的右侧区域。
可选地,场景界面中还包括小地图、其他动作按钮、虚拟摇杆区域及其他控制按钮等。如图2所示,在场景界面的左下角区域显示该虚拟摇杆区域,在场景界面的右下角区域显示该多个动作按钮,动作按钮包括蹲下动作按钮、翻越障碍物动作按钮、攻击动作按钮,在场景界面的右上角区域显示小地图和其他控制按钮等。该虚拟摇杆区域用于控制虚拟对象在虚拟场景中进行行走、奔跑及调整该虚拟对象的视角方向,该多个动作按钮用于控制虚拟对象在虚拟场景中执行对应的动作,该小地图显示该虚拟对象在虚拟场景中的位置。
102、当终端检测到对翻越障碍物按钮的触发操作时,获取当前的场景信息。
如图3所示,在终端显示的场景界面中,当用户看到第一虚拟对象前方存在障碍物时,需要控制该第一虚拟对象翻越该障碍物,则用户可以触发对翻越障碍物按钮的操作。当终端检测到对翻越障碍物按钮的触发操作时,确定接收到翻越障碍物指令,则终端获取当前的场景信息,来判断第一虚拟对象是否满足翻越该障碍物的条件以及按照何种翻越方式翻越该障碍物。
对翻越障碍物按钮的触发操作可以为点击操作、长按操作、滑动操作等。
该场景信息至少包括第一虚拟对象的状态信息或障碍物的状态信息中的至少一种。可选地,第一虚拟对象的状态信息包括第一虚拟对象当前的第一位置点的坐标,障碍物的状态信息包括障碍物所处的区域、障碍物的尺寸,如高度和宽度等。第一虚拟对象的状态信息还可以包括第一虚拟对象与障碍物之间的距离,或者第一虚拟对象的所处环境状态,如水中、陆地、空中等,第一虚拟对象的装备状态,如双手持枪、单手持枪、未持枪等。除此之外,场景信息还可以包括其他信息,本申请对此不作限定。
需要说明的是,步骤102仅以检测到对翻越障碍物按钮的触发操作时,确定接收到翻越障碍物指令为例,还可以采用其他方法确定接收到翻越障碍物指令,进而获取场景信息。
103、终端根据场景信息,从多种翻越方式中选取与场景信息匹配的翻越方式。
当终端获取场景信息时,根据该场景信息来判断第一虚拟对象是否满足翻越该障碍物的条件,以及确定按照何种翻越方式翻越该障碍物,从而在多种翻越方式中选取与场景信息匹配的翻越方式。
在一种可能实现方式中,如图4所示,终端获取到包括第一位置点坐标和障碍物所处区域的场景信息时,根据该场景信息执行以下一个或者多个步骤:
1031、终端获取障碍物与第一虚拟对象的横向距离。
创建与第一虚拟对象相同的第二虚拟对象,控制第二虚拟对象从第一位置点开始向前移动。当检测到第二虚拟对象与障碍物发生碰撞时,确定障碍物上与第二虚拟对象发生碰撞的第二位置点,将第二位置点与第一位置点的横向距离,确定为障碍物与第一虚拟对象的横向距离。
其中,第二虚拟对象与第一虚拟对象大小相同,该第二虚拟对象用于与其他虚拟物体进行碰撞检测,来实现获取横向距离的目的,且该第二虚拟对象不在场景界面中显示,用户对第二虚拟对象无感知,该第二虚拟对象由终端直接控制。
其中,向前移动是指沿着第一虚拟对象的视角方向进行移动,该视角方向与第一虚拟对象的身体中心轴垂直,即沿着由第一位置点指向障碍物的方向移动。横向距离是指在与场景界面中的地面平行的方向上的距离。第二位置点与第一位置点的横向距离,可以根据第二位置点与第一位置点的坐标来确定。
如图5所示,图5中的胶囊体为虚拟对象的物理形状,例如,该胶囊体的形状可参见图6,胶囊体高度为1.62米,半径(胶囊体宽度的一半)为0.37米。第一位置点为当前第一虚拟对象所处的位置,第二位置点为第二虚拟对象与障碍物发生碰撞时的碰撞处的位置,则该第二位置点即可代表障碍物的位置点,因此该第二位置点与第一位置点的横向距离,即为障碍物与第一虚拟对象的横向距离。例如当第二位置点与第一位置点的横向距离为0.1米时,确定障碍物与第一虚拟对象的横向距离为0.1米,也即是第一虚拟对象当前距离障碍物为0.1米。
1032、终端获取障碍物与第一虚拟对象的纵向距离。
创建与第一虚拟对象相同的第二虚拟对象,控制第二虚拟对象从第一位置点开始向前移动。当检测到第二虚拟对象与障碍物发生碰撞时,确定障碍物上与第二虚拟对象发生碰撞的第二位置点,将第二位置点向前移动第四距离,并向上移动第五距离后的位置点确定为第三位置点,将第三位置点投影到障碍物的上方得到的位置点确定为第四位置点,将第四位置点与第一位置点的纵向距离,确定为障碍物与第一虚拟对象的纵向距离。
其中,向上移动是指沿着与当前虚拟场景地面垂直的方向移动,纵向距离是指在与当前虚拟场景地面垂直的方向上的距离。
其中,第四距离等于第一虚拟对象的宽度的一半,第五距离由终端默认设置或者由开发人员自行设置。可选地,将第五距离设置为大于第一虚拟对象的翻越高度限制的最大距离,例如,当第一虚拟对象能够翻越的最大高度为2.3米,也即是翻越高度限制为2.3米时,在2.3米的基础上加0.2米得到2.5米,将第五距离确定为2.5米。
其中,第四位置点与第一位置点的纵向距离,可以根据第四位置点与第一位置点的坐标来确定,第四位置点与第一位置点的纵坐标之间的距离就是纵向距离。
如图7所示,例如,第一虚拟对象的宽度为0.74米,第四距离为0.37米,第五距离为2.5米。第一位置点为当前第一虚拟对象最低点所处的位置,第二位置点为第二虚拟对象与障碍物发生碰撞时的碰撞处的位置,第二位置点向前移动0.37米再向上移动2.5米到达第三位置点,位于第三位置点的第二虚拟对象在障碍物的上方且与障碍物之间存在一定距离,第三位置点投影在障碍物上方的位置点为第四位置点,因此可以将第四位置点看作是障碍物的最高点,第四位置点与第一位置点的纵向距离即为障碍物与第一虚拟对象的纵向距离。例如当第四位置点与第一位置点的纵向距离为2米时,确定障碍物与第一虚拟对象的纵向距离为2米,也即是第一虚拟对象的最低点距离障碍物的最高点为2米。
需要说明的是,障碍物与第一虚拟对象的纵向距离可能等于该障碍物的高度,也可能小于该障碍物的高度。当纵向距离等于障碍物的高度时,也即是该障碍物与第一虚拟对象的最低点位于同一水平面上,如图7所示,在具体应用场景中,呈现为该障碍物与第一虚拟对象均位于虚拟场景地面上。当纵向距离小于障碍物的高度时,也即是该障碍物的最低点在第一虚拟对象的最低点的下面,如图8所示,在具体应用场景中,呈现为该障碍物位于虚拟场景地面上,而第一虚拟对象位于虚拟场景的空中,也即是第一虚拟对象处于置空状态,第一虚拟对象的置空状态可以来源于第一虚拟对象原地起跳、空中坠落、使用抓钩飞到空中等。
1033、终端获取障碍物的宽度。
参见图9,控制第二虚拟对象从第二位置点开始向前移动第六距离,到达第五位置点,控制第二虚拟对象从第五位置点开始向后移动。当检测到第二虚拟对象与障碍物发生碰撞时,确定障碍物上与第二虚拟对象发生碰撞的第六位置点,将第六位置点与第二位置点的横向距离,确定为障碍物的宽度。
其中,向后移动是指沿着与第一虚拟对象的视角方向相反的方向移动,即沿着由障碍物指向第一虚拟对象的方向移动。
其中,第六距离由终端默认设置或者由开发人员自行设置。可选地,将第六距离设置为大于第一虚拟对象的翻越宽度限制的最大距离,例如,第一虚拟对象能够翻越的最大宽度为1米,也即是翻越宽度限制为1米,第一虚拟对象的宽度为0.74米,则在1米的基础上加0.74米得到1.74米,将第六距离确定为1.74米。
其中,第六位置点与第二位置点的横向距离,可以根据第六位置点与第二位置点的坐标来确定。
其中,由于在该场景界面中,障碍物为闭合的虚拟物体,因此当障碍物的宽度大于预设宽度时,第五位置点则位于障碍物的闭合体内,如图10所示,此时控制第二虚拟对象向前移动则会在第二位置点处与障碍物发送碰撞,也即是第六位置点与第二位置点重合,则根据第六位置点与第二位置点的纵向距离,无法确定障碍物的宽度。而当第五位置点位于障碍物的闭合体内时,第二虚拟对象与障碍物发生碰撞时的法线方向与第二虚拟对象的移动方向是相反的。因此当法线方向与移动方向相反时,认为第二虚拟对象在障碍物的闭合体内移动,确定障碍物的宽度大于第一预设宽度,无需获取该障碍物的宽度。
1034、终端检测从第一位置点到障碍物的上方,是否存在其他遮挡第一虚拟对象的障碍物。
参见图11,创建第三虚拟对象,控制第三虚拟对象从第一位置点向第四位置点移动。当第三虚拟对象到达第四位置点时,确定从第一位置点到障碍物的上方,不存在其他遮挡第一虚拟对象的障碍物,也即是第一虚拟对象可以从第一位置点翻越到障碍物的上方。或者,当第三虚拟对象在移动过程中与其他障碍物发生碰撞时,确定从第一位置点到障碍物的上方,存在其他遮挡第一虚拟对象的障碍物,也即是第一虚拟对象无法从第一位置点翻越到障碍物的上方。
其中,第三虚拟对象的宽度与第一虚拟对象的宽度相等,第三虚拟对象的高度小于第一虚拟对象的高度。由于第一虚拟对象在执行翻越动作时该第一虚拟对象会处于蜷缩状态,因此在本申请实施例中,用第三虚拟对象来模拟第一虚拟对象处于蜷缩状态的情况,终端通过控制第三虚拟对象从第一位置点移动到第四位置点,来模拟第一虚拟对象执行翻越动作的过程。
其中,从第一位置点到第四位置点的路径为第一虚拟对象从第一位置点翻越到障碍物的上方所经过的路径,因此,可以根据第三虚拟对象从第一位置点向第四位置点移动的过程中是否与其他障碍物碰撞,来确定从第一位置点到障碍物的上方,是否存在其他遮挡第一虚拟对象的障碍物。
1035、终端检测障碍物上方是否存在供第一虚拟对象站立或者蹲下的空间。
参见图12,控制第二虚拟对象在第四位置点站立,当第二虚拟对象未与其他障碍物发生碰撞时,确定障碍物的上方存在供第一虚拟对象站立的空间。
第二虚拟对象的高度等于第一虚拟对象的高度,第二虚拟对象的站立状态可以表示第一虚拟对象的站立状态。因此如果该第二虚拟对象与其他障碍物发生了碰撞,说明障碍物的上方不存在供第二虚拟对象站立的空间,则确定障碍物的上方不存在供第一虚拟对象站立的空间,第一虚拟对象无法翻越到障碍物的上方并保持站立状态。如果该第二虚拟对象与其他障碍物没有发生碰撞,说明障碍物的上方存在供第二虚拟对象站立的空间,则确定障碍物的上方存在供第一虚拟对象站立的空间,第一虚拟对象可以翻越到障碍物的上方并保持站立状态。
或者,参见图13,控制第三虚拟对象在第四位置点站立,当第三虚拟对象未与其他障碍物发生碰撞时,确定障碍物的上方存在供第一虚拟对象蹲下的空间。
第三虚拟对象的高度小于第一虚拟对象的高度,第三虚拟对象的站立状态可以表示第一虚拟对象的蹲下状态。因此如果该第三虚拟对象与其他障碍物发生了碰撞,说明障碍物的上方不存在供第三虚拟对象站立的空间,则确定障碍物的上方不存在供第一虚拟对象蹲下的空间,第一虚拟对象无法翻越到障碍物的上方并保持蹲下状态。如果该第三虚拟对象与其他障碍物没有发生碰撞,说明障碍物的上方存在供第三虚拟对象站立的空间,则确定障碍物的上方存在供第一虚拟对象蹲下的空间,第一虚拟对象可以翻越到障碍物的上方并保持蹲下状态。
1036、终端检测从第一位置点到障碍物的对面,是否存在其他遮挡第一虚拟对象的障碍物。
参见图14,将第一位置点向上移动第七距离后的位置点确定为第七位置点,将第七位置点向前移动第六距离后的位置点确定为第八位置点,控制第三虚拟对象从第七位置点向第八位置点移动。当第三虚拟对象到达第八位置点时,确定从第一位置点到障碍物的对面,不存在其他遮挡第一虚拟对象的障碍物,也即是第一虚拟对象可以从第一位置点翻越到障碍物的对面。或者,当第三虚拟对象在移动过程中与其他障碍物发生碰撞时,确定从第一位置点到障碍物的对面,存在其他遮挡第一虚拟对象的障碍物,也即是第一虚拟对象无法从第一位置点翻越到障碍物的对面。
其中,第七距离等于障碍物与第一虚拟对象的纵向距离,该纵向距离可通过上述步骤1032获取,或者可以通过其他方式获取。
其中,第六距离与上述步骤1033中的第六距离相同,在此不再一一赘述。
其中,从第七位置点到第八位置点的路径为第一虚拟对象从第一位置点翻越到障碍物的对面所经过的路径,因此,可以根据第三虚拟对象从第七位置点向第八位置点移动的过程中是否与其他障碍物碰撞,来判断从第一位置点到障碍物的对面,是否存在其他遮挡第一虚拟对象的障碍物。
1037、终端检测障碍物对面是否存在供第一虚拟对象站立的空间。
参见图15,将第八位置点投影到虚拟场景地面得到的位置点确定为第九位置点。控制第二虚拟对象在第九位置点站立,当第二虚拟对象未与其他障碍物发生碰撞时,确定障碍物的对面存在供第一虚拟对象站立的空间,第一虚拟对象可以翻越到障碍物的对面并保持站立状态。或者,控制第二虚拟对象在第九位置点站立,当第二虚拟对象与其他障碍物发生碰撞时,确定障碍物的对面不存在供第一虚拟对象站立的空间,第一虚拟对象无法翻越到障碍物的对面并保持站立状态。
其中,第九位置点为第一虚拟对象从第一位置点翻越到障碍物的对面时所处的位置点。因此可以通过判断第二虚拟对象在第九位置点站立时是否与其他障碍物发生碰撞,来确定障碍物的对面是否存在供第一虚拟对象站立的空间。
在一种可能实现方式中,终端根据场景信息判断该场景信息是否满足第一翻越条件,当该场景信息满足第一翻越条件时,选取翻越到障碍物上方的翻越方式,第一翻越条件是指将第一虚拟对象翻越到障碍物上方的条件。
可选地,该第一翻越条件包括以下四个条件:
第一,障碍物位于第一虚拟对象前方的第一距离内。
障碍物是否位于第一虚拟对象前方的第一距离内可根据障碍物与第一虚拟对象的横向距离来判断,该横向距离可通过执行上述步骤1031来获取。该第一距离可以等于或者小于第一虚拟对象能够翻越的最大宽度,由终端默认设置或者由开发人员自行设置。
当该横向距离大于第一距离时,终端确定障碍物没有位于第一虚拟对象前方的第一距离内,也即是第一虚拟对象距离障碍物较远,无法完成翻越到障碍物上方的动作。当该横向距离不大于第一距离时,终端确定障碍物位于第一虚拟对象前方的第一距离内,第一虚拟对象可以完成翻越到障碍物上方的动作。
第二,障碍物的宽度大于第一预设宽度。
该障碍物的宽度可通过执行上述步骤1033来获取,该第一预设宽度可以由终端默认设置或者由开发人员自行设置。
当障碍物的宽度大于第一预设宽度时,认为第一虚拟对象执行翻越障碍物的动作时,不会越过障碍物翻越到障碍物的对面,因此可以完成翻越到障碍物上方的动作;当障碍物的宽度不大于第一预设宽度时,认为第一虚拟对象执行翻越障碍物的动作时,由于障碍物的宽度较小导致第一虚拟对象越过障碍物翻越到障碍物的对面,因此无法完成翻越到障碍物上方的动作。
第三,从第一虚拟对象当前的第一位置点到障碍物的上方,不存在其他遮挡第一虚拟对象的障碍物。
可通过上述步骤1034检测到障碍物上方是否存在其他障碍物。若从第一虚拟对象当前的第一位置点到障碍物的上方,不存在其他遮挡第一虚拟对象的障碍物,则第一虚拟对象可以完成翻越到障碍物上方的动作。从第一虚拟对象当前的第一位置点到障碍物的上方,存在其他遮挡第一虚拟对象的障碍物,则第一虚拟对象无法完成翻越到障碍物上方的动作。
第四,障碍物的上方存在供第一虚拟对象站立或蹲下的空间。
可通过上述步骤1035检测障碍物上方是否存在站立或者蹲下的空间。若障碍物的上方存在供第一虚拟对象站立或蹲下的空间,则第一虚拟对象可以完成翻越到障碍物上方的动作。若障碍物的上方不存在供第一虚拟对象站立或蹲下的空间,则第一虚拟对象无法完成翻越到障碍物上方的动作。
另外,该第一翻越条件还可以包括其他条件,本申请实施例对此不做限定。
可选地,当场景信息满足第一翻越条件,且障碍物与第一虚拟对象的纵向距离不大于第二距离时,选取第一翻越方式,第一翻越方式为采用单手支撑的方式翻越到障碍物上方的方式。
或者,为当场景信息满足第一翻越条件,且障碍物与第一虚拟对象的纵向距离大于第二距离时,选取第二翻越方式,第二翻越方式为采用双手支撑的方式翻越到障碍物上方的方式。
其中,该纵向距离可通过执行上述步骤1032来获取,该第二距离由终端默认设置或者由开发人员自行设置。例如该第二距离为1.6米,当障碍物与第一虚拟对象的纵向距离小于或者等于1.6米时,终端选取单手支撑的方式,当障碍物与第一虚拟对象的纵向距离大于1.6米时,终端选取双手支撑的方式。
可选地,还可以根据障碍物与第一虚拟对象的纵向距离,采用其他翻越方式翻越到障碍物上方。如图16所示,纵向距离小于0.6米时,采用抬脚翻越到障碍物上方的方式;纵向距离大于等于0.6米且小于1.2米时,采用一只脚膝盖先到障碍物上方另一只脚再翻越到障碍物上方的方式;纵向距离大于等于1.2米且小于1.6米时,采用单手支撑单脚翻越到障碍物上方的方式;纵向距离大于等于1.6米且小于2米时,采用双手支撑翻越到障碍物上方的方式;纵向距离大于等于2米时,采用双手支撑双脚翻越到障碍物上方的方式。
在另一种可能实现方式中,终端根据场景信息判断该场景信息是否满足第二翻越条件,当该场景信息满足第二翻越条件时,选取翻越到障碍物对面的翻越方式。第二翻越条件是指将第一虚拟对象翻越到障碍物对面的条件。
可选地,该第二翻越条件包括以下四个条件:
第一,障碍物位于第一虚拟对象前方的第一距离内。
该条件与上述第一翻越条件中的第一个条件类似,在此不再一一赘述。
第二,障碍物的宽度不大于第二预设宽度。
可通过上述步骤1033获取障碍物的宽度。当障碍物的宽度不大于第二预设宽度时,认为第一虚拟对象执行翻越障碍物的动作时,可以越过障碍物翻越到障碍物的对面;而当障碍物的宽度大于第二预设宽度时,认为第一虚拟对象执行翻越障碍物的动作时,由于障碍物的宽度较大导致第一虚拟对象只能翻越到障碍物上方,无法翻越障碍物翻越到障碍物的对面。
其中,第一预设宽度与第二预设宽度可以相等,或者第二预设宽度可以小于第一预设宽度。
第三,从第一虚拟对象当前的第一位置点到障碍物的对面,不存在其他遮挡第一虚拟对象的障碍物。
可通过上述步骤1036检测到障碍物对面是否存在其他障碍物。若从第一虚拟对象当前的第一位置点到障碍物的对面,不存在其他遮挡第一虚拟对象的障碍物,则第一虚拟对象可以完成翻越到障碍物对面的动作。从第一虚拟对象当前的第一位置点到障碍物的对面,存在其他遮挡第一虚拟对象的障碍物,则第一虚拟对象无法完成翻越到障碍物对面的动作。
第四,障碍物的对面存在供第一虚拟对象站立的空间。
可通过上述步骤1037检测障碍物对面是否存在站立的空间。若障碍物的对面存在供第一虚拟对象站立的空间,则第一虚拟对象可以完成翻越到障碍物对面的动作。若障碍物的对面不存在供第一虚拟对象站立的空间,则第一虚拟对象无法完成翻越到障碍物对面的动作。
另外,该第二翻越条件还可以包括其他条件,本申请实施例对此不做限定。
可选地,当场景信息满足第二翻越条件,且障碍物与第一虚拟对象的纵向距离不大于第二距离时,选取第三翻越方式,第三翻越方式为采用单手支撑的方式翻越到障碍物对面的方式。
或者,当场景信息满足第二翻越条件,且障碍物与第一虚拟对象的纵向距离大于第二距离时,选取第四翻越方式,第四翻越方式为采用双手支撑的方式翻越到障碍物对面的方式。
可选地,还可以根据障碍物与第一虚拟对象的纵向距离,采用其他翻越方式翻越到障碍物对面。如图17所示,纵向距离小于0.6米时,采用抬脚翻越到障碍物对面的方式;纵向距离大于等于0.6米且小于1.2米时,采用一只脚膝盖先到障碍物上方另一只脚再翻越到障碍物对面的方式;纵向距离大于等于1.2米且小于1.6米时,采用单手支撑翻越到障碍物对面的方式;纵向距离大于等于1.6米且小于2米时,采用双手支撑直接翻越到障碍物对面的方式;纵向距离大于等于2米时,采用双手支撑双脚翻越到障碍物上方再跳到障碍物对面的方式。
在另一种可能实现方式中,场景信息还包括第一虚拟对象当前的速度,根据当前速度来从多种翻越方式中选取与当前速度匹配的翻越方式,实现第一虚拟对象在冲刺状态下也可完成翻越障碍物的动作。
104、终端控制第一虚拟对象按照翻越方式翻越障碍物。
当终端根据场景信息,选取第一翻越方式时,终端控制第一虚拟对象采用单手支撑障碍物的方式翻越到障碍物上方。当终端根据场景信息,选取第二翻越方式时,终端控制第一虚拟对象采用双手支撑障碍物的方式翻越到障碍物上方。
可选地,终端控制第一虚拟对象采用单手支撑障碍物的方式翻越到障碍物上方时,可同时控制第一虚拟对象执行其他操作,如控制第一虚拟对象手持装备执行射击动作。终端控制第一虚拟对象采用双手支撑障碍物的方式翻越到障碍物上方时,不可控制第一虚拟对象执行与双手有关的操作。
在一种可能实现方式中,确定障碍物的上方是否存在供第一虚拟对象站立的空间,当障碍物的上方存在供第一虚拟对象站立的空间时,控制第一虚拟对象在障碍物上方站立。或者,当障碍物的上方不存在供第一虚拟对象站立的空间时,确定障碍物的上方是否存在供第一虚拟对象蹲下的空间,当障碍物的上方存在供第一虚拟对象蹲下的空间时,控制第一虚拟对象在障碍物上方蹲下。
其中,可通过上述步骤1035检测障碍物上方是否存在站立或者蹲下的空间。
当终端根据场景信息,选取第三翻越方式时,终端控制第一虚拟对象采用单手支撑障碍物的方式翻越到障碍物对面。当终端根据场景信息,选取第四翻越方式时,终端控制第一虚拟对象采用双手支撑障碍物的方式翻越到障碍物对面。
在一种可能实现方式中,当第一虚拟对象与虚拟场景地面的纵向距离大于第三距离时,控制第一虚拟对象保持站立。当第一虚拟对象与虚拟场景地面的纵向距离不大于第三距离时,控制第一虚拟对象执行下坠到地面的动作。
其中,第一虚拟对象与虚拟场景地面的纵向距离,可根据第一虚拟对象所处位置点的坐标以及虚拟场景地面的坐标来确定。第三距离由终端默认设置或者由开发人员自行设置,例如,该第三距离为0.3米,当第一虚拟对象与虚拟场景地面的纵向距离大于0.3米,控制第一虚拟对象保持站立状态的情况下向虚拟场景地面下落。当第一虚拟对象与虚拟场景地面的纵向距离不大于0.3米,认为第一虚拟对象即将到达虚拟场景地面,则执行下坠到地面的动作,如膝盖弯曲、单手撑地、双手撑地等。
在另一种可能实现方式中,用户在第一虚拟对象处于置空状态时,触发翻越障碍物按钮,如图18所示,第一虚拟对象处于置空状态包括原地跳跃到空中、从高处下落到空中、利用抓钩飞到空中、翼装飞行到空中等情况。
其中,终端检测到第一虚拟对象为原地跳跃到空中时,控制第一虚拟对象先蹬墙,再执行翻越障碍物动作。可用于实现控制第一虚拟对象翻越较高的障碍物。
其中,终端检测到第一虚拟对象为从高处下落到空中时,控制第一虚拟对象先抓住障碍物的边缘,再执行翻越障碍物动作。
其中,终端检测到第一虚拟对象为利用抓钩飞到空中时,控制第一虚拟对象将抓钩固定于障碍物的边缘,再执行翻越障碍物动作。
其中,终端检测到第一虚拟对象为翼装飞行到空中时,控制第一虚拟对象先收起翼装,再执行翻越障碍物动作。
本申请实施例提供的方法,当接收到翻越障碍物指令时,获取当前的场景信息,场景信息至少包括第一虚拟对象的状态信息或障碍物的状态信息中的至少一种。根据场景信息,从多种翻越方式中选取与场景信息匹配的翻越方式,控制第一虚拟对象按照翻越方式翻越障碍物。因此,通过设置多种翻越方式,能够选取与场景信息匹配的翻越方式,翻越方式更加丰富,提高了翻越方式的灵活性,增强了虚拟对象的动态性、趣味性和真实性。而且通过提供多种翻越方式,可以提高翻越障碍物的成功率。
并且,本申请实施例提供的方法还可以实现第一虚拟对象在空中状态时,执行翻越障碍物的动作,因此第一虚拟对象可以先跳跃到空中,再在空中执行翻越动作,实现了第一虚拟对象的二段跳,能够使第一虚拟对象翻越高于自身高度的障碍物,而且还可以实现连续翻越多个障碍物,进一步提高了翻越障碍物的成功率。
并且,当第一虚拟对象与虚拟场景地面的纵向距离不大于第三距离时,控制第一虚拟对象执行下坠到地面的动作,可以控制第一虚拟对象执行与真实下落动作相似的动作,增强了第一虚拟对象执行翻越障碍物动作的真实性。
上述实施例中涉及到翻越到障碍物上方、翻越到障碍物对面和在置空状态下翻越障碍物三种情况。
其中,图19是终端控制虚拟对象翻越到障碍物上方的流程图。参见图19:
1、终端检测到用户触发翻越障碍物按钮。
2、终端判断虚拟对象前方是否存在障碍物,当不存在障碍物时,无需执行翻越到障碍物上方的动作,则结束;当存在障碍物时,则执行下一步。
3、终端获取障碍物的高度和宽度。
4、终端判断虚拟对象到障碍物上方是否存在其他障碍物,当存在其他障碍物时,无法执行翻越到障碍物上方的动作,则结束;当不存在其他障碍物时,则执行下一步。
5、终端判断障碍物的宽度是否大于1米,当障碍物的宽度不大于1米时,无法控制虚拟对象翻越到障碍物上方,则结束;当障碍物的宽度大于1米时,则执行下一步。
6、终端判断障碍物上方是否存在供虚拟对象站立或者蹲下的空间,当不存在站立或者蹲下的空间时,无法执行翻越到障碍物上方的动作,则结束;当存在站立或者蹲下的空间时,则执行下一步。
7、终端根据障碍物的高度选择使用的翻越方式,当高度大于0.9米时,采用单手支撑的方式翻越到障碍物上方;当高度不大于0.9米时,采用双手支撑的方式翻越到障碍物上方。
8、终端判断障碍物上方的空间可供虚拟对象站立还是蹲下,当存在站立空间时,控制虚拟对象保持站立状态;当不存在站立空间仅存在蹲下空间时,控制虚拟对象保持蹲下状态。
其中,图20是终端控制虚拟对象翻越到障碍物对面的流程图。参见图20:
1、终端检测到用户触发翻越障碍物按钮。
2、终端判断虚拟对象前方是否存在障碍物,当不存在障碍物时,无需执行翻越到障碍物对面的动作,则结束;当存在障碍物时,则执行下一步。
3、终端获取障碍物的高度和宽度。
4、终端判断虚拟对象到障碍物上方是否存在其他障碍物,当存在其他障碍物时,无法执行翻越到障碍物对面的动作,则结束;当不存在其他障碍物时,则执行下一步。
5、终端判断障碍物的宽度是否小于1米,当障碍物的宽度不小于1米时,无法控制虚拟对象翻越到障碍物对面,则结束;当障碍物的宽度小于1米时,则执行下一步。
6、终端判断虚拟对象到障碍物对面是否存在其他障碍物,当存在其他障碍物时,无法执行翻越到障碍物对面的动作,则结束;当不存在其他障碍物时,则执行下一步。
7、终端判断障碍物对面是否存在供虚拟对象站立的空间,当不存在站立的空间时,无法执行翻越到障碍物对面的动作,则结束;当存在站立的空间时,则执行下一步。
8、终端根据障碍物的高度选择使用的翻越方式,当高度大于0.9米时,采用单手支撑的方式翻越到障碍物对面;当高度不大于0.9米时,采用双手支撑的方式翻越到障碍物对面。
9、终端判断虚拟对象距离虚拟场景地面的高度,当高于0.3米时,控制虚拟对象保持站立状态;当不高于0.3米时,控制虚拟对象执行下坠到地面的动作。
其中,图21是终端控制虚拟对象翻越到障碍物对面的流程图。参见图21:
1、终端检测到虚拟对象处于置空状态。
2、终端检测到用户触发翻越障碍物按钮。
3、终端判断虚拟对象前方是否存在障碍物,当不存在障碍物时,无需执行翻越到障碍物对面的动作,则结束;当存在障碍物时,则执行下一步。
4、终端检测当前的场景信息是否满足翻越到障碍物对面的条件,当满足翻越到障碍物对面的条件时,进入图20所示的翻越到障碍物对面的流程。当不满足翻越到障碍物对面的条件时,终端检测当前的场景信息是否满足翻越到障碍物上方的条件,当满足翻越到障碍物上方的条件时,进入图19所示的翻越到障碍物上方的流程,当不满足翻越到障碍物上方的条件时,则结束。
图22是本申请实施例提供的一种虚拟对象控制装置的结构示意图,如图22所示,该装置包括:
获取模块2201,用于当接收到翻越障碍物指令时,获取当前的场景信息,场景信息至少包括第一虚拟对象的状态信息或障碍物的状态信息中的至少一种;
选取模块2202,用于根据场景信息,从多种翻越方式中选取与场景信息匹配的翻越方式;
翻越控制模块2203,用于控制第一虚拟对象按照翻越方式翻越障碍物。
本申请实施例提供的虚拟对象控制装置,当接收到翻越障碍物指令时,获取当前的场景信息,其中场景信息至少包括第一虚拟对象的状态信息或障碍物的状态信息中的至少一种,根据场景信息,从多种翻越方式中选取与场景信息匹配的翻越方式,控制第一虚拟对象按照翻越方式翻越障碍物。因此,通过设置多种翻越方式,能够选取与场景信息匹配的翻越方式,翻越方式更加丰富,提高了翻越方式的灵活性,增强了虚拟对象的动态性、趣味性和真实性。而且通过提供多种翻越方式,可以提高翻越障碍物的成功率。
可选地,如图23所示,获取模块2201,包括:
显示单元22011,用于显示场景界面,场景界面包括翻越障碍物按钮;
获取单元22012,用于当检测到对翻越障碍物按钮的触发操作时,获取场景信息。
可选地,选取模块2202,包括:
第一选取单元22021,用于当场景信息满足第一翻越条件时,选取翻越到障碍物上方的翻越方式,第一翻越条件为将第一虚拟对象翻越到障碍物上方的条件;
翻越控制模块2203,包括:
第一控制单元22031,用于控制第一虚拟对象翻越到障碍物上方。
可选地,第一翻越条件包括:
障碍物位于第一虚拟对象前方的第一距离内;
从第一虚拟对象当前的第一位置点到障碍物的上方,不存在其他遮挡第一虚拟对象的障碍物;
障碍物的上方存在供第一虚拟对象站立或蹲下的空间;
障碍物的宽度大于第一预设宽度。
可选地,第一选取单元22021,还用于当场景信息满足第一翻越条件,且障碍物与第一虚拟对象的纵向距离不大于第二距离时,选取第一翻越方式,第一翻越方式为采用单手支撑的方式翻越到障碍物上方的方式;
第一选取单元22021,还用于当场景信息满足第一翻越条件,且障碍物与第一虚拟对象的纵向距离大于第二距离时,选取第二翻越方式,第二翻越方式为采用双手支撑的方式翻越到障碍物上方的方式。
可选地,装置还包括:
站立控制模块2204,用于当障碍物的上方存在供第一虚拟对象站立的空间时,控制第一虚拟对象在障碍物上方站立;
蹲下控制模块2205,用于当障碍物的上方存在供第一虚拟对象蹲下的空间,但不存在供第一虚拟对象站立的空间,控制第一虚拟对象在障碍物上方蹲下。
可选地,选取模块2202,包括:
第二选取单元22022,用于当场景信息满足第二翻越条件时,选取翻越到障碍物对面的翻越方式,第二翻越条件为将第一虚拟对象翻越到障碍物对面的条件;
翻越控制模块2203,包括:
第二控制单元22032,用于控制第一虚拟对象翻越到障碍物对面。
可选地,第二翻越条件包括:
障碍物位于第一虚拟对象前方的第一距离内;
从第一虚拟对象当前的第一位置点到障碍物的对面,不存在其他遮挡第一虚拟对象的障碍物;
障碍物的对面存在供第一虚拟对象站立的空间;
障碍物的宽度不大于第二预设宽度。
可选地,第二选取单元22022,还用于当场景信息满足第二翻越条件,且障碍物与第一虚拟对象的纵向距离不大于第二距离时,选取第三翻越方式,第三翻越方式为采用单手支撑的方式翻越到障碍物对面的方式;
第二选取单元22022,还用于当场景信息满足第二翻越条件,且障碍物与第一虚拟对象的纵向距离大于第二距离时,选取第四翻越方式,第四翻越方式为采用双手支撑的方式翻越到障碍物对面的方式。
可选地,装置还包括:
站立控制模块2204,还用于控制第一虚拟对象翻越到障碍物对面的过程中,当第一虚拟对象与虚拟场景地面的纵向距离大于第三距离时,控制第一虚拟对象保持站立;
下坠控制模块2206,用于当第一虚拟对象与虚拟场景地面的纵向距离不大于第三距离时,控制第一虚拟对象执行下坠到地面的动作。
可选地,场景信息包括虚拟对象当前的第一位置点的坐标和障碍物所处的区域,装置还包括:
第一创建模块2207,用于创建与第一虚拟对象相同的第二虚拟对象;
移动控制模块2208,用于控制第二虚拟对象从第一位置点开始向前移动;
位置点确定模块2209,用于当检测到第二虚拟对象与障碍物发生碰撞时,确定障碍物上与第二虚拟对象发生碰撞的第二位置点;
移动控制模块2208,还用于将第二位置点向前移动第四距离,并向上移动第五距离后的位置点确定为第三位置点,第四距离等于第一虚拟对象的宽度的一半;
位置点确定模块2209,还用于将第三位置点投影到障碍物的上方得到的位置点确定为第四位置点;
距离确定模块2210,用于将第四位置点与第一位置点的纵向距离,确定为障碍物与第一虚拟对象的纵向距离。
可选地,装置还包括:
移动控制模块2208,还用于控制第二虚拟对象从第二位置点开始向前移动第六距离,到达第五位置点;
移动控制模块2208,还用于控制第二虚拟对象从第五位置点开始向后移动;
位置点确定模块2209,还用于当检测到第二虚拟对象与障碍物发生碰撞时,确定障碍物上与第二虚拟对象发生碰撞的第六位置点;
距离确定模块2210,还用于将第六位置点与第二位置点的横向距离,确定为障碍物的宽度。
可选地,装置还包括:
第二创建模块2211,用于创建第三虚拟对象,第三虚拟对象的宽度与第一虚拟对象的宽度相等,第三虚拟对象的高度小于第一虚拟对象的高度;
移动控制模块2208,还用于控制第三虚拟对象从第一位置点向第四位置点移动;
障碍物确定模块2212,用于当第三虚拟对象到达第四位置点时,确定从第一位置点到障碍物的上方,不存在其他遮挡第一虚拟对象的障碍物;或者,当第三虚拟对象在移动过程中与其他障碍物发生碰撞时,确定从第一位置点到障碍物的上方,存在其他遮挡第一虚拟对象的障碍物。
可选地,装置还包括:
站立控制模块2204,还用于控制第二虚拟对象在第四位置点站立,当第二虚拟对象未与其他障碍物发生碰撞时,确定障碍物的上方存在供第一虚拟对象站立的空间;或者,控制第三虚拟对象在第四位置点站立,当第三虚拟对象未与其他障碍物发生碰撞时,确定障碍物的上方存在供第一虚拟对象蹲下的空间。
可选地,装置还包括:
位置点确定模块2209,还用于将第一位置点向上移动第七距离后的位置点确定为第七位置点,第七距离等于障碍物与第一虚拟对象的纵向距离;
位置点确定模块2209,还用于将第七位置点向前移动第六距离后的位置点确定为第八位置点;
移动控制模块2208,还用于控制第三虚拟对象从第七位置点向第八位置点移动;
障碍物确定模块2212,还用于当第三虚拟对象到达第八位置点时,确定从第一位置点到障碍物的对面,不存在其他遮挡第一虚拟对象的障碍物;或者,当第三虚拟对象在移动过程中与其他障碍物发生碰撞时,确定从第一位置点到障碍物的对面,存在其他遮挡第一虚拟对象的障碍物。
可选地,装置还包括:
位置点确定模块2209,还用于将第八位置点投影到虚拟场景地面得到的位置点确定为第九位置点;
站立控制模块2204,还用于控制第二虚拟对象在第九位置点站立,当第二虚拟对象未与其他障碍物发生碰撞时,确定障碍物的对面存在供第一虚拟对象站立的空间;或者,控制第二虚拟对象在第九位置点站立,当第二虚拟对象与其他障碍物发生碰撞时,确定障碍物的对面不存在供第一虚拟对象站立的空间。
图24示出了本申请一个示例性实施例提供的终端2400的结构示意图,该终端2400可用于执行上述实施例中的虚拟对象控制方法的步骤。
通常,终端2400包括有:处理器2401和存储器2402。
处理器2401可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器2401可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器2401也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器2401可以在集成有GPU(Graphics Processing Unit,图像处理的交互器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器2401还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器2402可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器2402还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器2402中的非暂态的计算机可读存储介质用于存储至少一条程序代码,该至少一条程序代码用于被处理器2401所具有以实现本申请中方法实施例提供的虚拟对象控制方法。
在一些实施例中,设备2400还可选包括有:外围设备接口2403和至少一个外围设备。处理器2401、存储器2402和外围设备接口2403之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口2403相连。具体地,外围设备包括:射频电路2404、触摸显示屏2405、摄像头2406、音频电路2407、定位组件2408和电源2409中的至少一种。
外围设备接口2403可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器2401和存储器2402。在一些实施例中,处理器2401、存储器2402和外围设备接口2403被集成在同一芯片或电路板上;在一些其他实施例中,处理器2401、存储器2402和外围设备接口2403中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路2404用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路2404通过电磁信号与通信网络以及其他通信设备进行通信。射频电路2404将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路2404包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路2404可以通过至少一种无线通信协议来与其它设备进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及8G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路2404还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏2405用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏2405是触摸显示屏时,显示屏2405还具有采集在显示屏2405的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器2401进行处理。此时,显示屏2405还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏2405可以为一个,设置终端2400的前面板;在另一些实施例中,显示屏2405可以为至少两个,分别设置在终端2400的不同表面或呈折叠设计;在再一些实施例中,显示屏2405可以是柔性显示屏,设置在终端2400的弯曲表面上或折叠面上。甚至,显示屏2405还可以设置成非矩形的不规则图形,也即异形屏。显示屏2405可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件2406用于采集图像或视频。可选地,摄像头组件2406包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端2400的前面板,后置摄像头设置在终端2400的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件2406还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路2407可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器2401进行处理,或者输入至射频电路2404以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端2400的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器2401或射频电路2404的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路2407还可以包括耳机插孔。
定位组件2408用于定位终端2400的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件2408可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源2409用于为终端2400中的各个组件进行供电。电源2409可以是交流电、直流电、一次性电池或可充电电池。当电源2409包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端2400还包括有一个或多个传感器2410。该一个或多个传感器2410包括但不限于:加速度传感器2411、陀螺仪传感器2412、压力传感器2413、指纹传感器2414、光学传感器2415以及接近传感器2416。
加速度传感器2411可以检测以终端2400建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器2411可以用于检测重力加速度在三个坐标轴上的分量。处理器2401可以根据加速度传感器2411采集的重力加速度信号,控制触摸显示屏2405以横向视图或纵向视图进行用户界面的显示。加速度传感器2411还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器2412可以检测终端2400的机体方向及转动角度,陀螺仪传感器2412可以与加速度传感器2411协同采集用户对终端2400的3D动作。处理器2401根据陀螺仪传感器2412采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器2413可以设置在终端2400的侧边框和/或触摸显示屏2405的下层。当压力传感器2413设置在终端2400的侧边框时,可以检测用户对终端2400的握持信号,由处理器2401根据压力传感器2413采集的握持信号进行左右手识别或快捷操作。当压力传感器2413设置在触摸显示屏2405的下层时,由处理器2401根据用户对触摸显示屏2405的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器2414用于采集用户的指纹,由处理器2401根据指纹传感器1414采集到的指纹识别用户的身份,或者,由指纹传感器2414根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器2401授权该用户具有相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器2414可以被设置终端2400的正面、背面或侧面。当终端2400上设置有物理按键或厂商Logo时,指纹传感器2414可以与物理按键或厂商标志集成在一起。
光学传感器2415用于采集环境光强度。在一个实施例中,处理器2401可以根据光学传感器2415采集的环境光强度,控制触摸显示屏2405的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏2405的显示亮度;当环境光强度较低时,调低触摸显示屏2405的显示亮度。在另一个实施例中,处理器2401还可以根据光学传感器2415采集的环境光强度,动态调整摄像头组件2406的拍摄参数。
接近传感器2416,也称距离传感器,通常设置在终端2400的前面板。接近传感器2416用于采集用户与终端2400的正面之间的距离。在一个实施例中,当接近传感器2416检测到用户与终端2400的正面之间的距离逐渐变小时,由处理器2401控制触摸显示屏2405从亮屏状态切换为息屏状态;当接近传感器2416检测到用户与终端2400的正面之间的距离逐渐变大时,由处理器2401控制触摸显示屏2405从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图24中示出的结构并不构成对终端2400的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图25是本申请实施例提供的一种服务器的结构示意图,该服务器2500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(Central ProcessingUnits,CPU)2501和一个或一个以上的存储器2502,其中,存储器2502中存储有至少一条指令,至少一条指令由处理器2501加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
服务器2500可以用于执行上述虚拟对象控制方法。
本申请实施例还提供了一种计算机设备,该计算机设备包括处理器和存储器,存储器中存储有至少一条程序代码,至少一条程序代码由处理器加载并具有以实现上述实施例的虚拟对象控制方法。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条程序代码,至少一条程序代码由处理器加载并具有以实现上述实施例的虚拟对象控制方法。
本申请实施例还提供了一种计算机程序,该计算机程序中存储有至少一条程序代码,该至少一条程序代码由处理器加载并执行,以实现上述实施例的虚拟对象控制方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请实施例的可选实施例,并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (19)
1.一种虚拟对象控制方法,其特征在于,所述方法包括:
当接收到翻越障碍物指令时,获取当前的场景信息,所述场景信息至少包括第一虚拟对象的状态信息或障碍物的状态信息中的至少一种;
根据所述场景信息,从多种翻越方式中选取与所述场景信息匹配的翻越方式;
控制所述第一虚拟对象按照所述翻越方式翻越所述障碍物。
2.根据权利要求1所述的方法,其特征在于,所述当接收到翻越障碍物指令时,获取当前的场景信息,包括:
显示场景界面,所述场景界面包括翻越障碍物按钮;
当检测到对所述翻越障碍物按钮的触发操作时,获取所述场景信息。
3.根据权利要求1所述的方法,其特征在于,所述根据所述场景信息,从多种翻越方式中选取与所述场景信息匹配的翻越方式,包括:
当所述场景信息满足第一翻越条件时,选取翻越到障碍物上方的翻越方式,所述第一翻越条件为将所述第一虚拟对象翻越到所述障碍物上方的条件;
所述控制所述第一虚拟对象按照所述翻越方式翻越所述障碍物,包括:
控制所述第一虚拟对象翻越到所述障碍物上方。
4.根据权利要求3所述的方法,其特征在于,所述第一翻越条件包括:
所述障碍物位于所述第一虚拟对象前方的第一距离内;
从所述第一虚拟对象当前的第一位置点到所述障碍物的上方,不存在其他遮挡所述第一虚拟对象的障碍物;
所述障碍物的上方存在供所述第一虚拟对象站立或蹲下的空间;
所述障碍物的宽度大于第一预设宽度。
5.根据权利要求3所述的方法,其特征在于,所述当所述场景信息满足第一翻越条件时,选取翻越到障碍物上方的翻越方式,包括:
当所述场景信息满足所述第一翻越条件,且所述障碍物与所述第一虚拟对象的纵向距离不大于第二距离时,选取第一翻越方式,所述第一翻越方式为采用单手支撑的方式翻越到障碍物上方的方式;
当所述场景信息满足所述第一翻越条件,且所述障碍物与所述第一虚拟对象的纵向距离大于所述第二距离时,选取第二翻越方式,所述第二翻越方式为采用双手支撑的方式翻越到障碍物上方的方式。
6.根据权利要求3所述的方法,其特征在于,所述控制所述第一虚拟对象翻越到所述障碍物上方之后,所述方法还包括:
当所述障碍物的上方存在供所述第一虚拟对象站立的空间时,控制所述第一虚拟对象在所述障碍物上方站立;
当所述障碍物的上方存在供所述第一虚拟对象蹲下的空间,但不存在供所述第一虚拟对象站立的空间,控制所述第一虚拟对象在所述障碍物上方蹲下。
7.根据权利要求1所述的方法,其特征在于,所述根据所述场景信息,从多种翻越方式中选取与所述场景信息匹配的翻越方式,包括:
当所述场景信息满足第二翻越条件时,选取翻越到障碍物对面的翻越方式,所述第二翻越条件为将所述第一虚拟对象翻越到所述障碍物对面的条件;
所述控制所述第一虚拟对象按照所述翻越方式翻越所述障碍物,包括:
控制所述第一虚拟对象翻越到所述障碍物对面。
8.根据权利要求7所述的方法,其特征在于,所述第二翻越条件包括:
所述障碍物位于所述第一虚拟对象前方的第一距离内;
从所述第一虚拟对象当前的第一位置点到所述障碍物的对面,不存在其他遮挡所述第一虚拟对象的障碍物;
所述障碍物的对面存在供所述第一虚拟对象站立的空间;
所述障碍物的宽度不大于第二预设宽度。
9.根据权利要求7所述的方法,其特征在于,所述当所述场景信息满足第二翻越条件时,选取翻越到障碍物对面的翻越方式,包括:
当所述场景信息满足所述第二翻越条件,且所述障碍物与所述第一虚拟对象的纵向距离不大于第二距离时,选取第三翻越方式,所述第三翻越方式为采用单手支撑的方式翻越到障碍物对面的方式;
当所述场景信息满足所述第二翻越条件,且所述障碍物与所述第一虚拟对象的纵向距离大于所述第二距离时,选取第四翻越方式,所述第四翻越方式为采用双手支撑的方式翻越到障碍物对面的方式。
10.根据权利要求7所述的方法,其特征在于,所述方法还包括:
控制所述第一虚拟对象翻越到所述障碍物对面的过程中,当所述第一虚拟对象与所述虚拟场景地面的纵向距离大于第三距离时,控制所述第一虚拟对象保持站立;
当所述第一虚拟对象与所述虚拟场景地面的纵向距离不大于第三距离时,控制所述第一虚拟对象执行下坠到地面的动作。
11.根据权利要求1-10任一项所述的方法,其特征在于,所述场景信息包括所述虚拟对象当前的第一位置点的坐标和所述障碍物所处的区域,所述方法还包括:
创建与所述第一虚拟对象相同的第二虚拟对象;
控制所述第二虚拟对象从所述第一位置点开始向前移动;
当检测到所述第二虚拟对象与所述障碍物发生碰撞时,确定所述障碍物上与所述第二虚拟对象发生碰撞的第二位置点;
将所述第二位置点向前移动第四距离,并向上移动第五距离后的位置点确定为第三位置点,所述第四距离等于所述第一虚拟对象的宽度的一半;
将所述第三位置点投影到所述障碍物的上方得到的位置点确定为第四位置点;
将所述第四位置点与所述第一位置点的纵向距离,确定为所述障碍物与所述第一虚拟对象的纵向距离。
12.根据权利要求11所述的方法,其特征在于,所述当检测到所述第二虚拟对象与所述障碍物发生碰撞时,确定所述障碍物上与所述第二虚拟对象发生碰撞的第二位置点之后,所述方法还包括:
控制所述第二虚拟对象从所述第二位置点开始向前移动第六距离,到达第五位置点;
控制所述第二虚拟对象从所述第五位置点开始向后移动;
当检测到所述第二虚拟对象与所述障碍物发生碰撞时,确定所述障碍物上与所述第二虚拟对象发生碰撞的第六位置点;
将所述第六位置点与所述第二位置点的横向距离,确定为所述障碍物的宽度。
13.根据权利要求11所述的方法,其特征在于,所述方法还包括:
创建第三虚拟对象,所述第三虚拟对象的宽度与所述第一虚拟对象的宽度相等,所述第三虚拟对象的高度小于所述第一虚拟对象的高度;
控制所述第三虚拟对象从所述第一位置点向所述第四位置点移动;
当所述第三虚拟对象到达所述第四位置点时,确定从所述第一位置点到所述障碍物的上方,不存在其他遮挡所述第一虚拟对象的障碍物;或者,
当所述第三虚拟对象在移动过程中与其他障碍物发生碰撞时,确定从所述第一位置点到所述障碍物的上方,存在其他遮挡所述第一虚拟对象的障碍物。
14.根据权利要求11所述的方法,其特征在于,所述方法还包括:
控制所述第二虚拟对象在所述第四位置点站立,当所述第二虚拟对象未与其他障碍物发生碰撞时,确定所述障碍物的上方存在供所述第一虚拟对象站立的空间;或者,
控制所述第三虚拟对象在所述第四位置点站立,当所述第三虚拟对象未与其他障碍物发生碰撞时,确定所述障碍物的上方存在供所述第一虚拟对象蹲下的空间。
15.根据权利要求11所述的方法,其特征在于,所述方法还包括:
将所述第一位置点向上移动第七距离后的位置点确定为第七位置点,所述第七距离等于所述障碍物与所述第一虚拟对象的纵向距离;
将所述第七位置点向前移动第六距离后的位置点确定为第八位置点;
控制所述第三虚拟对象从所述第七位置点向所述第八位置点移动;
当所述第三虚拟对象到达所述第八位置点时,确定从所述第一位置点到所述障碍物的对面,不存在其他遮挡所述第一虚拟对象的障碍物;或者,
当所述第三虚拟对象在移动过程中与其他障碍物发生碰撞时,确定从所述第一位置点到所述障碍物的对面,存在其他遮挡所述第一虚拟对象的障碍物。
16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
将所述第八位置点投影到所述虚拟场景地面得到的位置点确定为第九位置点;
控制所述第二虚拟对象在所述第九位置点站立,当所述第二虚拟对象未与其他障碍物发生碰撞时,确定所述障碍物的对面存在供所述第一虚拟对象站立的空间;或者,
控制所述第二虚拟对象在所述第九位置点站立,当所述第二虚拟对象与其他障碍物发生碰撞时,确定所述障碍物的对面不存在供所述第一虚拟对象站立的空间。
17.一种虚拟对象控制装置,其特征在于,所述装置包括:
获取模块,用于当接收到翻越障碍物指令时,获取当前的场景信息,所述场景信息至少包括第一虚拟对象的状态信息或障碍物的状态信息中的至少一种;
选取模块,用于根据所述场景信息,从多种翻越方式中选取与所述场景信息匹配的翻越方式;
翻越控制模块,用于控制所述第一虚拟对象按照所述翻越方式翻越所述障碍物。
18.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以实现如权利要求1至16任一权利要求所述的虚拟对象控制方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现如权利要求1至16任一权利要求所述的虚拟对象控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911176268.XA CN111068324B (zh) | 2019-11-26 | 2019-11-26 | 虚拟对象控制方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911176268.XA CN111068324B (zh) | 2019-11-26 | 2019-11-26 | 虚拟对象控制方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111068324A true CN111068324A (zh) | 2020-04-28 |
CN111068324B CN111068324B (zh) | 2022-05-17 |
Family
ID=70311710
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911176268.XA Active CN111068324B (zh) | 2019-11-26 | 2019-11-26 | 虚拟对象控制方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111068324B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111714886A (zh) * | 2020-07-24 | 2020-09-29 | 腾讯科技(深圳)有限公司 | 虚拟对象的控制方法、装置、设备以及存储介质 |
CN111714891A (zh) * | 2020-06-22 | 2020-09-29 | 苏州幻塔网络科技有限公司 | 角色攀爬方法、装置、计算机设备及可读存储介质 |
CN111773724A (zh) * | 2020-07-31 | 2020-10-16 | 网易(杭州)网络有限公司 | 一种跨越虚拟障碍的方法和装置 |
CN112044073A (zh) * | 2020-09-10 | 2020-12-08 | 腾讯科技(深圳)有限公司 | 虚拟道具的使用方法、装置、设备及介质 |
CN112316429A (zh) * | 2020-11-27 | 2021-02-05 | 腾讯科技(深圳)有限公司 | 虚拟对象的控制方法、装置、终端及存储介质 |
CN112546630A (zh) * | 2020-12-25 | 2021-03-26 | 珠海西山居移动游戏科技有限公司 | 角色移动方法及装置 |
WO2023005562A1 (zh) * | 2021-07-30 | 2023-02-02 | 腾讯科技(深圳)有限公司 | 虚拟角色的控制方法和装置、存储介质及电子设备 |
WO2023138142A1 (zh) * | 2022-01-21 | 2023-07-27 | 腾讯科技(深圳)有限公司 | 虚拟场景中的运动处理方法、装置、设备、存储介质及程序产品 |
CN116963810A (zh) * | 2021-03-10 | 2023-10-27 | 邦吉有限公司 | 无标记边台抓握 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09259303A (ja) * | 1996-03-26 | 1997-10-03 | Namco Ltd | シミュレーション装置及び衝突判定方法 |
CN1254893A (zh) * | 1998-11-19 | 2000-05-31 | 任天堂株式会社 | 视频游戏装置和用于视频游戏的信息存储媒体 |
CN102693362A (zh) * | 2012-05-08 | 2012-09-26 | 北京像素软件科技股份有限公司 | 一种与地形相适应的游戏角色跳跃方法和装置 |
CN105488851A (zh) * | 2015-11-30 | 2016-04-13 | 腾讯科技(深圳)有限公司 | 实时虚拟场景中碰撞体之间碰撞探测的方法和装置 |
CN108635853A (zh) * | 2018-03-23 | 2018-10-12 | 腾讯科技(深圳)有限公司 | 对象的控制方法和装置、存储介质、电子装置 |
CN109621421A (zh) * | 2018-12-24 | 2019-04-16 | 网易(杭州)网络有限公司 | 信息处理方法及装置 |
CN109966741A (zh) * | 2019-05-09 | 2019-07-05 | 腾讯科技(深圳)有限公司 | 位置更新方法、装置、设备及存储介质 |
-
2019
- 2019-11-26 CN CN201911176268.XA patent/CN111068324B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09259303A (ja) * | 1996-03-26 | 1997-10-03 | Namco Ltd | シミュレーション装置及び衝突判定方法 |
CN1254893A (zh) * | 1998-11-19 | 2000-05-31 | 任天堂株式会社 | 视频游戏装置和用于视频游戏的信息存储媒体 |
CN102693362A (zh) * | 2012-05-08 | 2012-09-26 | 北京像素软件科技股份有限公司 | 一种与地形相适应的游戏角色跳跃方法和装置 |
CN105488851A (zh) * | 2015-11-30 | 2016-04-13 | 腾讯科技(深圳)有限公司 | 实时虚拟场景中碰撞体之间碰撞探测的方法和装置 |
CN108635853A (zh) * | 2018-03-23 | 2018-10-12 | 腾讯科技(深圳)有限公司 | 对象的控制方法和装置、存储介质、电子装置 |
CN109621421A (zh) * | 2018-12-24 | 2019-04-16 | 网易(杭州)网络有限公司 | 信息处理方法及装置 |
CN109966741A (zh) * | 2019-05-09 | 2019-07-05 | 腾讯科技(深圳)有限公司 | 位置更新方法、装置、设备及存储介质 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111714891B (zh) * | 2020-06-22 | 2021-05-11 | 苏州幻塔网络科技有限公司 | 角色攀爬方法、装置、计算机设备及可读存储介质 |
CN111714891A (zh) * | 2020-06-22 | 2020-09-29 | 苏州幻塔网络科技有限公司 | 角色攀爬方法、装置、计算机设备及可读存储介质 |
CN111714886A (zh) * | 2020-07-24 | 2020-09-29 | 腾讯科技(深圳)有限公司 | 虚拟对象的控制方法、装置、设备以及存储介质 |
CN111714886B (zh) * | 2020-07-24 | 2021-09-28 | 腾讯科技(深圳)有限公司 | 虚拟对象的控制方法、装置、设备以及存储介质 |
CN111773724A (zh) * | 2020-07-31 | 2020-10-16 | 网易(杭州)网络有限公司 | 一种跨越虚拟障碍的方法和装置 |
CN111773724B (zh) * | 2020-07-31 | 2024-04-26 | 网易(上海)网络有限公司 | 一种跨越虚拟障碍的方法和装置 |
CN112044073A (zh) * | 2020-09-10 | 2020-12-08 | 腾讯科技(深圳)有限公司 | 虚拟道具的使用方法、装置、设备及介质 |
CN112316429A (zh) * | 2020-11-27 | 2021-02-05 | 腾讯科技(深圳)有限公司 | 虚拟对象的控制方法、装置、终端及存储介质 |
CN112546630A (zh) * | 2020-12-25 | 2021-03-26 | 珠海西山居移动游戏科技有限公司 | 角色移动方法及装置 |
CN112546630B (zh) * | 2020-12-25 | 2022-09-02 | 珠海西山居数字科技有限公司 | 角色移动方法及装置 |
CN116963810A (zh) * | 2021-03-10 | 2023-10-27 | 邦吉有限公司 | 无标记边台抓握 |
WO2023005562A1 (zh) * | 2021-07-30 | 2023-02-02 | 腾讯科技(深圳)有限公司 | 虚拟角色的控制方法和装置、存储介质及电子设备 |
WO2023138142A1 (zh) * | 2022-01-21 | 2023-07-27 | 腾讯科技(深圳)有限公司 | 虚拟场景中的运动处理方法、装置、设备、存储介质及程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN111068324B (zh) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111068324B (zh) | 虚拟对象控制方法、装置、设备及存储介质 | |
US11221726B2 (en) | Marker point location display method, electronic device, and computer-readable storage medium | |
US11224810B2 (en) | Method and terminal for displaying distance information in virtual scene | |
US11565181B2 (en) | Virtual object control method and apparatus, computer device, and storage medium | |
CN108245893B (zh) | 三维虚拟环境中虚拟对象的姿态确定方法、装置及介质 | |
CN110193198B (zh) | 对象跳跃控制方法、装置、计算机设备及存储介质 | |
CN109529319B (zh) | 界面控件的显示方法、设备及存储介质 | |
CN108710525B (zh) | 虚拟场景中的地图展示方法、装置、设备及存储介质 | |
CN109614171B (zh) | 虚拟道具转移方法、装置、电子设备及计算机存储介质 | |
CN108671545B (zh) | 控制虚拟对象与虚拟场景交互的方法、装置及存储介质 | |
CN110917616B (zh) | 虚拟场景中的方位提示方法、装置、设备及存储介质 | |
CN109917910B (zh) | 线型技能的显示方法、装置、设备及存储介质 | |
CN109407959B (zh) | 虚拟场景中的虚拟对象控制方法、设备以及存储介质 | |
CN108536295B (zh) | 虚拟场景中的对象控制方法、装置及计算机设备 | |
CN109859102B (zh) | 特效显示方法、装置、终端及存储介质 | |
US11675488B2 (en) | Method and apparatus for constructing building in virtual environment, device, and storage medium | |
CN110585704B (zh) | 虚拟场景中的对象提示方法、装置、设备及存储介质 | |
CN112121422A (zh) | 界面显示方法、装置、设备及存储介质 | |
CN111589127A (zh) | 虚拟角色的控制方法、装置、设备及存储介质 | |
CN109821237B (zh) | 视角转动的方法、装置、设备及存储介质 | |
WO2022227915A1 (zh) | 显示位置标记的方法、装置、设备及存储介质 | |
CN110743168A (zh) | 虚拟场景中的虚拟对象控制方法、计算机设备及存储介质 | |
CN111589141A (zh) | 虚拟环境画面的显示方法、装置、设备及介质 | |
CN113577765A (zh) | 用户界面的显示方法、装置、设备及存储介质 | |
CN111013137A (zh) | 虚拟场景中的移动控制方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40021730 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |