一种游戏内对象锁定的方法及装置与流程

文档序号:23718098发布日期:2021-01-24 06:26阅读:95来源:国知局
一种游戏内对象锁定的方法及装置与流程

[0001]
本发明涉及计算机领域,特别是涉及一种游戏内对象锁定的方法及装置、电子设备、存储介质。


背景技术:

[0002]
目标对象锁定功能是游戏中的一种常用功能,其可以用于为玩家提供可视化的目标对象,玩家可以针对目标对象进行战斗操作,例如对目标对象进行攻击,也可以针对目标对象进行交互操作,例如当目标对象为木箱,则玩家可以举起该木箱并进行投掷,此外目标对象还可以运用于其他功能,例如作为自动寻路功能的目的地等。如图1所示,为游戏场景中并未锁定目标对象时的情景,其中101为玩家控制的虚拟角色,102为一个非玩家角色,当玩家锁定非玩家角色102时,如图2所示,非玩家角色102头顶会出现用于表示目标对象已被锁定的标识201,此时玩家还可以通过外部设备,例如键盘、摇杆等选择方向,锁定的目标对象可以从102变更至所选择方向上的其他可交互目标对象,如图3所示,当玩家按下键盘的左方向键,则锁定的目标对象更换为102左边的另一个非玩家角色301,其头顶出现标识302。
[0003]
现有的目标对象锁定功能需要将游戏场景中的目标投影到屏幕坐标上,然后在二维平面上选择要锁定的目标,目标的切换也是在二维平面上选择。然而这种基于屏幕的方案并不适用于ai(artificial intelligence,人工智能)控制的角色。因为,ai控制的角色没有角色相机这个概念,即无法将场景中的目标投影到跟随该角色的角色相机所呈现的屏幕上,如果要实现ai角色的目标锁定,则需要采用与玩家操作的角色不同的目标对象锁定方法,既需要耗费更多的系统资源,又难以保证两种目标对象锁定方法的一致性,两者之间容易出现冲突而导致游戏出错。


技术实现要素:

[0004]
鉴于上述问题,提出了本发明以便提供克服上述问题或者至少部分地解决上述问题的一种游戏内对象锁定的方法及装置、电子设备、存储介质,包括:
[0005]
为了解决上述问题,本发明实施例公开了一种游戏内对象锁定的方法,通过终端设备提供图形用户界面,所述图形用户界面显示的内容包括部分或全部虚拟场景,以及位于所述虚拟场景的虚拟角色,所述方法包括:
[0006]
根据所述虚拟角色获取所述虚拟场景中的一个或多个可交互对象;
[0007]
获取所述一个或多个可交互对象在所述虚拟场景中的位置信息;
[0008]
根据所述位置信息确定所述一个或多个可交互对象分别对应的球面坐标,其中,所述球面坐标为根据所述虚拟角色确定的球坐标系中的坐标;
[0009]
根据所述虚拟角色和所述可交互对象的球面坐标,确定目标球面坐标;
[0010]
将所述目标球面坐标对应的可交互对象作为所述虚拟角色的锁定对象并进行锁定。
[0011]
优选地,所述虚拟角色为非玩家控制的角色。
[0012]
优选地,所述根据所述虚拟角色获取所述虚拟场景中的一个或多个可交互对象的步骤,包括:
[0013]
判断所述对象的类型与预设的类型是否一致;所述类型包括战斗交互类和非战斗交互类;
[0014]
若是,则将所述对象确定为初步筛选对象;
[0015]
判断所述初步筛选对象与所述虚拟角色之间的距离是否小于预设阈值;
[0016]
若是,则检测所述初步筛选对象与所述虚拟角色之间是否存在遮挡物;
[0017]
若不存在遮挡物,则将所述初步筛选对象确定为可交互对象。
[0018]
优选地,所述根据所述位置信息确定所述一个或多个可交互对象分别对应的球面坐标的步骤,包括:
[0019]
以所述虚拟角色为中心构造球坐标系;
[0020]
基于所述位置信息获取所述可交互对象的三维笛卡尔坐标;
[0021]
将所述三维笛卡尔坐标转化为所述球坐标系中的球面坐标。
[0022]
优选地,所述根据所述虚拟角色和所述可交互对象的球面坐标,确定目标球面坐标的步骤包括:
[0023]
基于所述虚拟角色与所述可交互对象的球面坐标之间的第一角度差和第一距离,确定第一目标球面坐标。
[0024]
优选地,所述基于所述虚拟角色与所述可交互对象的球面坐标之间的第一角度差和第一距离,确定第一目标球面坐标的步骤,包括:
[0025]
将所述虚拟角色面向的方向作为投影方向,获取所述投影方向上,所述虚拟角色在所述球坐标系的单位球面上的投影球面坐标;
[0026]
将所述可交互对象的球面坐标映射为以所述投影球面坐标为原点的第一映射球面坐标;
[0027]
采用所述第一映射球面坐标确定所述可交互对象与所述虚拟角色之间的第一角度差和第一距离;
[0028]
遍历所述第一映射球面坐标,根据所述第一角度差和所述第一距离确定所述第一目标球面坐标。
[0029]
优选地,所述遍历所述第一映射球面坐标,根据所述第一角度差和所述第一距离确定所述第一目标球面坐标的步骤包括:
[0030]
遍历所述第一映射球面坐标,判断所述第一角度差之间的差值是否超过预设阈值;
[0031]
若否,则选择所述第一距离较小的第一映射球面坐标作为第一目标球面坐标;
[0032]
若是,则选择所述第一角度差较小的第一映射球面坐标作为第一目标球面坐标。
[0033]
优选地,所述虚拟角色为玩家控制的角色,所述方法还包括:
[0034]
响应于所述玩家输入的方向指令,获取与所述虚拟角色已锁定的对象对应的锁定球面坐标;
[0035]
将所述可交互对象的球面坐标映射为以所述锁定球面坐标为原点的第二映射球面坐标;
[0036]
采用所述第二映射球面坐标确定所述可交互对象与所述虚拟角色已锁定的对象之间的第二角度差和第二距离;
[0037]
遍历所述第二映射球面坐标,根据所述第二角度差和所述第二距离确定所述第二目标球面坐标;
[0038]
将所述虚拟角色锁定的对象切换为与所述第二目标球面坐标对应的目标可交互对象。
[0039]
优选地,所述采用所述第二映射球面坐标确定所述可交互对象与所述虚拟角色之间的第二角度差和第二距离的步骤,包括:
[0040]
采用所述方向指令,确定对应的二维坐标;
[0041]
基于所述二维坐标,从所述第二映射球面坐标中选择目标映射球面坐标;
[0042]
采用所述目标映射球面坐标和预设的权值计算所述目标映射球面坐标与所述原点之间的第二角度差和第二距离。
[0043]
优选地,所述基于所述二维坐标,从所述第二映射球面坐标中选择目标映射球面坐标的步骤,包括:
[0044]
判断所述二维坐标的横坐标是否大于零;
[0045]
若是,则从所述第二映射球面坐标中确定垂直方向上的分量大于和/或等于零的第二映射球面坐标作为筛选映射球面坐标;
[0046]
若否,则从所述第二映射球面坐标中确定垂直方向上的分量小于和/或等于零的第二映射球面坐标作为筛选映射球面坐标;
[0047]
判断所述二维坐标的纵坐标是否大于零;
[0048]
若所述二维坐标的纵坐标大于零,则从所述筛选映射球面坐标中选择水平方向上的分量大于和/或等于零的筛选映射球面坐标作为目标映射球面坐标;
[0049]
若所述二维坐标的纵坐标小于零,则从所述筛选映射球面坐标中选择水平方向上的分量小于和/或等于零的筛选映射球面坐标作为目标映射球面坐标。
[0050]
本发明实施例还公开了一种游戏内对象锁定的装置,通过终端设备提供图形用户界面,所述图形用户界面显示的内容包括部分或全部虚拟场景,以及位于所述虚拟场景的虚拟角色,所述装置包括:
[0051]
可交互对象获取模块,用于根据所述虚拟角色获取所述虚拟场景中的一个或多个可交互对象;
[0052]
位置信息获取模块,用于获取所述一个或多个可交互对象在所述虚拟场景中的位置信息;
[0053]
球面坐标确定模块,用于根据所述位置信息确定所述一个或多个可交互对象分别对应的球面坐标,其中,所述球面坐标为根据所述虚拟角色确定的球坐标系中的坐标;
[0054]
目标球面坐标确定模块,用于根据所述虚拟角色和所述可交互对象的球面坐标,确定目标球面坐标;
[0055]
锁定对象模块,用于将所述目标球面坐标对应的可交互对象作为所述虚拟角色的锁定对象并进行锁定。
[0056]
本发明实施例还提供了一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,计算机程序被处理器执行时实现如上游戏内
对象锁定的方法的步骤。
[0057]
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如上游戏内对象锁定的方法的步骤。
[0058]
本发明具有以下优点:
[0059]
在本发明的实施例中,通过根据虚拟角色获取虚拟场景中的一个或多个可交互对象,获取一个或多个可交互对象在虚拟场景中的位置信息,根据位置信息确定一个或多个可交互对象分别对应的球面坐标,根据虚拟角色和可交互对象的球面坐标,确定目标球面坐标,将目标球面坐标对应的可交互对象作为虚拟角色的锁定对象并进行锁定。整个过程无需使用角色相机,即可为虚拟角色锁定最佳的目标对象,适用于玩家和ai控制的虚拟角色,既降低了系统资源的消耗,又避免了采用两种目标对象锁定方法时可能导致的游戏错误。
附图说明
[0060]
为了更清楚地说明本发明的技术方案,下面将对本发明的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0061]
图1是本发明实施例提供的一种游戏场景的示意图;
[0062]
图2是本发明实施例提供的一种锁定目标对象的示意图;
[0063]
图3是本发明实施例提供的一种切换锁定的目标对象的示意图;
[0064]
图4是本发明实施例提供的一种游戏内对象锁定的方法的步骤流程图;
[0065]
图5是本发明实施例提供的另一种游戏内对象锁定的方法的步骤流程图;
[0066]
图6是本发明实时例提供的一种球坐标系的构建示意图;
[0067]
图7是本发明实施例提供的一种游戏内对象锁定的装置的结构框图。
具体实施方式
[0068]
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0069]
在本发明其中一种实施例中的游戏内对象锁定的方法可以运行于终端设备或者是服务器。其中,终端设备可以为本地终端设备。当游戏内对象锁定的方法运行于服务器时,该游戏内对象锁定的方法则可以基于云交互系统来实现与执行,其中,云交互系统包括服务器和客户端设备。
[0070]
在一可选的实施方式中,云交互系统下可以运行各种云应用,例如:云游戏。以云游戏为例,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,游戏内对象锁定的方法的储存与运行是在云游戏服务器上完成的,客户端设备的作用用于数据的接收、发送以及游戏画面的呈现,举例而言,客户端设备可以是靠近用户侧的具有数据传输功能的显示设备,如,移动终端、电视机、计
算机、掌上电脑等;但是进行游戏内对象锁定的方法的终端设备为云端的云游戏服务器。在进行游戏时,玩家操作客户端设备向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回客户端设备,最后,通过客户端设备进行解码并输出游戏画面。
[0071]
在一可选的实施方式中,终端设备可以为本地终端设备。以游戏为例,本地终端设备存储有游戏程序并用于呈现游戏画面。本地终端设备用于通过图形用户界面与玩家进行交互,即,常规的通过电子设备下载安装游戏程序并运行。该本地终端设备将图形用户界面提供给玩家的方式可以包括多种,例如,可以渲染显示在终端的显示屏上,或者,通过全息投影提供给玩家。举例而言,本地终端设备可以包括显示屏和处理器,该显示屏用于呈现图形用户界面,该图形用户界面包括游戏画面,该处理器用于运行该游戏、生成图形用户界面以及控制图形用户界面在显示屏上的显示。
[0072]
参照图4,示出了本发明实施例提供的一种游戏内对象锁定的方法的步骤流程图,通过终端设备提供图形用户界面,所述图形用户界面显示的内容包括部分或全部虚拟场景,以及位于所述虚拟场景的虚拟角色,所述方法具体可以包括如下步骤:
[0073]
步骤401,根据所述虚拟角色获取所述虚拟场景中的一个或多个可交互对象;
[0074]
虚拟场景可以为游戏中的游戏场景,游戏场景中的对象根据目前所要执行的功能玩法可以分为两类:可交互对象以及不可交互对象,例如对于角色扮演类游戏而言,在进行攻击操作时,可交互对象可以包括非玩家敌人,不可交互对象则可以包括非玩家友方角色;而在进行给予物品操作时,可交互对象则可以包括非玩家友方角色,而不可交互对象则包括非玩家敌人。根据目前所要执行的功能玩法,可以将虚拟场景内一个或多个可以执行目前所要执行的功能玩法的对象确定为可交互对象,也可以通过筛选的方式,从虚拟场景中多个对象中筛选出符合用户需求的可交互对象。
[0075]
步骤402,获取所述一个或多个可交互对象在所述虚拟场景中的位置信息;
[0076]
在确定可交互对象后,可分别获取一个或多个可交互对象在虚拟场景中的位置。
[0077]
步骤403,根据所述位置信息确定所述一个或多个可交互对象分别对应的球面坐标,其中,所述球面坐标为根据所述虚拟角色确定的球坐标系中的坐标;
[0078]
球坐标系是三维坐标系的一种,用以确定三维空间中点、线、面以及体的位置,它以坐标原点为参考点,由方位角、仰角和距离构成。在获取了可交互对象位于虚拟场景中的位置信息后,以虚拟角色作为坐标原点,根据位置信息,通过坐标转换获取每一个可交互对象的球面坐标。
[0079]
步骤404,根据所述虚拟角色和所述可交互对象的球面坐标,确定目标球面坐标;
[0080]
虚拟角色包括ai控制的目标角色,在获取了每一个可交互对象的球面坐标后,当目标角色没有已锁定的对象时,通过目标角色的球面坐标,即坐标原点,与可交互对象的球面坐标之间的距离和角度差,可确定最合适的球面坐标。例如可以是角度差最小,又或者角度差相同时,距离最小的球面坐标,即目标球面坐标。
[0081]
步骤405,将所述目标球面坐标对应的可交互对象作为所述虚拟角色的锁定对象并进行锁定。
[0082]
将该目标球面坐标对应的可交互对象作为锁定的对象,锁定该可交互对象。
[0083]
在本发明的实施例中,通过根据虚拟角色获取虚拟场景中的一个或多个可交互对
象,获取一个或多个可交互对象在虚拟场景中的位置信息,根据位置信息确定一个或多个可交互对象分别对应的球面坐标,根据虚拟角色和可交互对象的球面坐标,确定目标球面坐标,将目标球面坐标对应的可交互对象作为虚拟角色的锁定对象并进行锁定,整个过程无需使用角色相机,即可为虚拟角色锁定最佳的目标对象,适用于玩家和ai控制的虚拟角色,既降低了系统资源的消耗,又避免了采用两种目标对象锁定方法时可能导致的游戏错误。
[0084]
参照图5,示出了本发明实施例提供的另一种游戏内对象锁定的方法的步骤流程图,通过终端设备提供图形用户界面,所述图形用户界面显示的内容包括部分或全部虚拟场景,以及位于所述虚拟场景的虚拟角色,具体可以包括如下步骤:
[0085]
步骤501,根据所述虚拟角色获取所述虚拟场景中的一个或多个可交互对象;
[0086]
在本发明一种优选实施例中,所述步骤501包括如下子步骤:
[0087]
判断所述虚拟场景中的对象的类型与预设的类型是否一致;所述类型包括战斗类型和交互类型;
[0088]
若是,则将所述对象确定为初步筛选对象;
[0089]
判断所述初步筛选对象与所述虚拟角色之间的距离是否小于预设阈值;
[0090]
若是,则检测所述初步筛选对象与所述虚拟角色之间是否存在遮挡物;
[0091]
若不存在遮挡物,则将所述初步筛选对象确定为可交互对象。
[0092]
预设的类型为根据玩家或ai所要执行的玩法或行动设置,当执行的玩法为战斗类玩法,例如释放攻击技能、防御来自敌人的攻击时,则可以确定类型为战斗交互类,而当执行的玩法为非战斗类玩法,例如给予物品、搬运箱子时,则判断此时的类型为非战斗交互类,判断虚拟场景中的对象与预设的类型是否一致,当一致的时候,可以将对象确定为初步筛选对象。例如当预设的类型为战斗交互类时,则确定虚拟场景中一个或这多个敌人为初步筛选对象。
[0093]
一般在游戏中,玩家或者ai控制的角色与可交互对象之间的交互都存在距离限制,例如玩家控制的角色对敌人进行攻击的交互操作时,玩家只能攻击到与角色之间距离处于攻击范围内的敌人,假设角色的攻击范围为1米,则与玩家所控制的角色距离在1米内的敌人才能被攻击命中,1米以外的敌人并不受此次攻击影响。因此为了防止锁定了超出可交互的距离的对象,判断初步筛选对象与虚拟角色之间的距离是否小于预设阈值,若是,则认为初步筛选对象可以受到虚拟角色交互操作的影响。进一步的,为了使游戏中的交互更加符合现实生活的逻辑,提高玩家的投入程度,在确定了初步筛选对象可以受到虚拟角色交互操作的影响后,还需要检测初步筛选对象与虚拟角色之间是否存在遮挡物,若存在遮挡物,则认为该交互操作无法完成,例如在执行攻击操作时,玩家控制的角色与攻击范围内的敌人之间隔着一堵墙,按照现实生活中的逻辑,角色是无法得知墙后面存在敌人,也无法隔着这堵墙攻击到墙后面的敌人的,因此只有在检测到虚拟角色与初步筛选对象之间不存在遮挡物的时候,才可以将初步筛选对象确定为可交互对象。需要注意的是,检测方式可以根据本领域技术人员的需求自行选择,例如可以采用射线检测的方式,本发明对此不作限制。
[0094]
步骤502,以所述虚拟角色为中心构造球坐标系;
[0095]
以玩家或者ai所控制的虚拟角色作为坐标原点构建球坐标系。
[0096]
步骤503,基于所述位置信息获取所述可交互对象的三维笛卡尔坐标;
[0097]
三维笛卡尔坐标系即过一个定点,作三条互相垂直的数轴,它们都以该定点为坐标原点且一般具有相同的长度单位,这三条轴分别叫做x轴(横轴)、y轴(纵轴)、z轴(竖轴),统称坐标轴。通常把x轴和y轴配置在水平面上,而z轴则是铅垂线。通过获取的位置信息,可以得到可交互对象在虚拟场景中的的三维笛卡尔坐标。
[0098]
步骤504,将所述三维笛卡尔坐标转化为所述球坐标系中的球面坐标;
[0099]
具体的,如图6所示,点p为虚拟角色所在的坐标原点,点a为一个可交互对象的三维笛卡尔坐标,点b为该可交互对象的三维笛卡尔坐标转化而成的球坐标系中的球面坐标。球面坐标可以表示为其中r表示点a距离坐标原点的距离,θ表示有向线段bp与z轴正向的夹角,表示有向线段bp在xy平面上的投影与x轴正向的夹角。假设点a的三维笛卡尔坐标为(x
a
,y
a
,z
a
),点p的三维笛卡尔坐标为(x
p
,y
p
,z
p
),点a的三维笛卡尔坐标值减去点p的三维笛卡尔坐标值则为(x
a-p
,y
a-p
,z
a-p
),则以点a为例,根据如下公式将点a转换为点b:
[0100][0101][0102][0103]
将每一个可交互对象的三维笛卡尔坐标均转化为球面坐标。
[0104]
步骤505,根据所述虚拟角色和所述可交互对象的球面坐标,确定目标球面坐标;
[0105]
在本发明一种优选实施例中,所述步骤505包括如下子步骤:
[0106]
基于所述虚拟角色与所述可交互对象的球面坐标之间的第一角度差和第一距离,确定第一目标球面坐标。
[0107]
在确定了目标球面坐标后,通过对作为球坐标系坐标原点的虚拟角色和一个或多个可交互对象的球面坐标之间的角度差和距离进行比较,根据预设的比较规则,可以从多个可交互对象的球面坐标中,确定最合适作为锁定对象可交互对象的目标球面坐标。
[0108]
在本发明一种优选实施例中,所述基于所述虚拟角色与所述可交互对象的球面坐标之间的第一角度差和第一距离,确定第一目标球面坐标的步骤还包括:
[0109]
将所述虚拟角色面向的方向作为投影方向,获取所述投影方向上,所述虚拟角色在所述球坐标系的单位球面上的投影球面坐标;
[0110]
将所述可交互对象的球面坐标映射为以所述投影球面坐标为原点的第一映射球面坐标;
[0111]
采用所述第一映射球面坐标确定所述可交互对象与所述虚拟角色之间的第一角度差和第一距离;
[0112]
遍历所述第一映射球面坐标,根据所述第一角度差和所述第一距离确定所述第一目标球面坐标。
[0113]
在本发明实施例中,虚拟角色可以为由ai所控制的虚拟角色,由于刚开始并不存在锁定的对象,因此需要将ai所控制的虚拟角色投影为正前方球面上的一个点,从而虚构
一个当前已锁定的可交互对象。然后以这个可交互对象为基准,选择一个最优的锁定对象。因此可以根据虚拟角色面向的方向,获取虚拟角色在球坐标系的单位球面上的投影球面坐标,再以该投影球面坐标作为原点,获取可交互对象的球面坐标映射后的映射球面坐标,采用映射球面坐标可以确定可交互对象与目标角色之间的角度差和距离,遍历所有的映射球面坐标,根据角度差和距离即可从中选出最合适的锁定对象的映射球面坐标,即第一目标球面坐标。
[0114]
具体的,将虚拟角色正前方投影到单位球面上的球面坐标设为点c,则将可交互对象的球面坐标映射为以点c为原点的映射球面坐标的公式为:
[0115][0116]

[0117]

[0118]
其中,表示可交互对象的球面坐标在水平方向的分量。表示点c在水平方向的分量。表示映射后的新值。根据该公式可确保的值在[-π,π]内,从而确保点c的值是0,便于后续根据坐标值的大小来选择最优的点。
[0119]
同样的,可根据以下公式计算映射球面坐标中θ
2
的值:
[0120]
θ
2
=θ
1-θ
c

[0121]
当(θ
2
>π),θ
2
=θ
2-2π;
[0122]
当(θ
2
<π),θ
2
=θ
2
+2π;
[0123]
其中,θ
1
表示可交互对象的球面坐标在垂直方向的分量。θ
c
表示点c在垂直方向的分量,θ
2
表示映射后的新值。
[0124]
在获取了可交互对象的映射球面坐标后,可通过如下公式计算可交互对象与虚拟角色之间的第一角度差和第一距离:
[0125][0126]
其中,angle为角度差,abs表示取绝对值,距离r为已知参数。
[0127]
在本发明一种优选实施例中,所述遍历所述第一映射球面坐标,根据所述第一角度差和所述第一距离确定所述第一目标球面坐标的步骤还包括如下子步骤:
[0128]
遍历所述第一映射球面坐标,判断所述第一角度差之间的差值是否超过预设阈值;
[0129]
若否,则选择所述第一距离较小的第一映射球面坐标作为第一目标球面坐标;
[0130]
若是,则选择所述第一角度差较小的第一映射球面坐标作为第一目标球面坐标。
[0131]
通过遍历映射球面坐标,两两判断映射球面坐标对应的角度差之间的差值是否超过预设阈值,若超过,则保留角度差较小的映射球面坐标,继续与其余的映射球面坐标进行比较,直至差值在预设阈值内,则比较两者与虚拟角色之间的距离,选择距离较小的映射球面坐标,该映射球面坐标即为锁定的对象的球面坐标,即目标球面坐标。
[0132]
具体的,可通过如下方式进行映射球面坐标的遍历并确定目标球面坐标:
[0133]
(1)如果当前是遍历的第一个映射球面坐标,则有:
[0134]
bestidx=idx;
[0135]
bestangle=angle;
[0136]
bestdist=r;
[0137]
其中,idx等于当前遍历的索引,每个映射球面坐标均有一个对应的索引,当满足当前是遍历的第一个映射球面坐标这一条件时,重复步骤(1)。若不满足,则进入下一个步骤,即步骤(2):
[0138]
(2)当bestangle-angle>minlockswitchangle时,则有:
[0139]
bestidx=idx;
[0140]
bestangle=angle;
[0141]
bestdist=r;
[0142]
重复步骤(2),反之则进入步骤(3)
[0143]
其中,minlockswitchangle表示两个可交互对象的空间角度邻近的一个角度阈值,作为一种示例,该值可以取1。本步骤采用遍历的第一个映射球面坐标的角度差与第二个映射球面坐标的角度差作差值运算,当结果大于预设的角度阈值时,则可以认为第一个映射球面坐标与坐标原点之间的角度差大于第二个映射球面坐标与坐标原点之间的角度差,因此将第二个映射球面坐标作为目前最优映射球面坐标,其索引作为目前最优目标索引,第二个映射球面坐标的角度差作为目前最优角度差,第二个映射球面坐标的距离作为目前最优距离,重复这个过程,即继续遍历映射球面坐标,采用第二个映射球面坐标的角度差与第三个映射球面坐标的角度差作差值运算,若出现结果小于预设的角度阈值时,则进入步骤(3)。
[0144]
(3)当abs(bestangle-angle)<minlockswitchangle且bestdist>r时,则有:
[0145]
bestidx=idx;
[0146]
bestangle=angle;
[0147]
bestdist=r;
[0148]
返回步骤(2),直至遍历全部映射球面坐标。
[0149]
当目前最优角度差与当前遍历的映射球面坐标的角度差之间的差值小于预设角度阈值且目前最优距离比当前遍历的映射球面坐标的距离大时,即表示目前最优可交互对象与当前遍历的映射球面坐标所对应的可交互对象之间的空间距离相近,但目前最优可交互对象与坐标原点,即虚拟角色之间的距离较远,因此将当前遍历的映射球面坐标作为最优映射球面坐标,其索引作为目前最优目标索引,其角度差作为目前最优角度差,其距离作为目前最优距离,然后再返回步骤(2),直至遍历全部映射球面坐标,遵循空间角度来筛选可交互对象,首选角度差最小的,如果角度差接近,则选择距离最近的,最终得到的最优映射球面坐标即为与选择的锁定对象对应的第一目标球面坐标。
[0150]
步骤506,将所述目标球面坐标对应的可交互对象作为所述虚拟角色的锁定对象并进行锁定。
[0151]
在确定了目标球面坐标后,可将目标球面坐标对应的可交互对象确认为虚拟角色最优的锁定对象,执行对该对象进行锁定的操作。
[0152]
在本发明一种优选实施例中,所述虚拟角色为玩家控制的角色,所述方法还包括:
[0153]
响应于所述玩家输入的方向指令,获取与所述虚拟角色已锁定的对象对应的锁定球面坐标;
[0154]
将所述可交互对象的球面坐标映射为以所述锁定球面坐标为原点的第二映射球
面坐标;
[0155]
采用所述第二映射球面坐标确定所述可交互对象与所述虚拟角色已锁定的对象之间的第二角度差和第二距离;
[0156]
遍历所述第二映射球面坐标,根据所述第二角度差和所述第二距离确定所述第二目标球面坐标;
[0157]
将所述虚拟角色锁定的对象切换为与所述第二目标球面坐标对应的目标可交互对象。
[0158]
具体的,当虚拟场景中,玩家所控制的虚拟角色已存在锁定的对象时,玩家想要切换锁定的对象时,可以通过输入方向指令,例如通过键盘按键或手柄摇杆输入,例如玩家在游戏的战斗中攻击了锁定的敌人之后,根据对战况的判断,想要攻击处于锁定的敌人左侧的另外一名敌人,此时玩家则可以按下键盘上的左方向键,将锁定的敌人切换为另外一名敌人。接收到玩家输入的方向指令后,获取该被锁定的对象的球面坐标,并以该球面坐标作为原点,获取可交互对象的球面坐标映射后的映射球面坐标,具体计算方式可参照上述将可交互对象的球面坐标映射为以点c为原点的映射球面坐标可交互对象的球面坐标映射为以点c为原点的映射球面坐标的步骤,采用映射球面坐标可以确定可交互对象与目标角色已锁定的对象之间的角度差和距离,具体计算方式可参照上述映射球面坐标方式可参照上述映射球面坐标与目标角色之间角度差和距离的计算方式,遍历所有的映射球面坐标,根据角度差和距离即可从中选出最合适的锁定对象的映射球面坐标,具体的,通过遍历映射球面坐标,两两判断映射球面坐标对应的角度差之间的差值是否超过预设阈值,若超过,则保留角度差较小的映射球面坐标,继续与其余的映射球面坐标进行比较,直至差值在预设阈值内,则比较两者与虚拟角色之间的距离,选择距离较小的映射球面坐标,该映射球面坐标即为锁定的对象的球面坐标,即第二目标球面坐标。在确定了第二目标球面坐标后,将虚拟角色当前锁定的对象切换为与第二目标球面坐标对应的目标可交互对象,从而使得虚拟角色锁定的对象发生变化。
[0159]
在本发明一种优选实施例中,所述采用所述第二映射球面坐标确定所述可交互对象与所述虚拟角色之间的第二角度差和第二距离的步骤还包括如下子步骤:
[0160]
采用所述方向指令,确定对应的二维坐标;
[0161]
基于所述二维坐标,从所述第二映射球面坐标中选择目标映射球面坐标;
[0162]
采用所述目标映射球面坐标和预设的权值计算所述目标映射球面坐标与所述原点之间的第二角度差和第二距离。
[0163]
具体的,在接收到玩家输入的方向指令后,游戏引擎会根据方向指令转换确定一个二维坐标,例如玩家按下键盘上代表前方的w键,则可以确定二维坐标(1,0),根据该二维坐标可以对可交互对象进行初步筛选,即确定与玩家所选方向所在的球面坐标取值范围相同的可交互对象,例如玩家按下的方向键为右方向键,则需要将位于屏幕左方的可交互对象排除,即排除小于0的映射球面坐标,从而得到目标映射球面坐标,由于目标映射球面坐标中仍存在与玩家所选方向并不一致的映射球面坐标,为了进一步筛选出与玩家所选择的方向更加符合的可交互对象,可以在计算目标映射球面坐标与原点之间的第二角度差时,为与玩家所选择的方向一致的目标映射球面坐标添加权值,即采用目标映射球面坐标和预设的权值计算目标映射球面坐标与原点之间的第二角度差和第二距离,例如可以通过
如下公式进行计算:
[0164][0165]
其中,x、y即为预设的权值。
[0166]
在本发明一种优选实施例中,所述基于所述二维坐标,从所述第二映射球面坐标中选择目标映射球面坐标的步骤,还包括如下子步骤:
[0167]
判断所述二维坐标的横坐标是否大于零;
[0168]
若是,则从所述第二映射球面坐标中确定垂直方向上的分量大于和/或等于零的第二映射球面坐标作为筛选映射球面坐标;
[0169]
若否,则从所述第二映射球面坐标中确定垂直方向上的分量小于和/或等于零的第二映射球面坐标作为筛选映射球面坐标;
[0170]
判断所述二维坐标的纵坐标是否大于零;
[0171]
若所述二维坐标的纵坐标大于零,则从所述筛选映射球面坐标中选择水平方向上的分量大于和/或等于零的筛选映射球面坐标作为目标映射球面坐标;
[0172]
若所述二维坐标的纵坐标小于零,则从所述筛选映射球面坐标中选择水平方向上的分量小于和/或等于零的筛选映射球面坐标作为目标映射球面坐标。
[0173]
在接收到玩家输入的方向指令后,基于游戏引擎根据方向指令转换确定的二维坐标(x
1
,y
1
),可以对第二映射球面坐标进行筛选,具体的,x
1
表示屏幕的上下方向,而y
1
表示屏幕的左右方向,如果x
1
大于0,则需要排除掉θ小于0的目标,即选择垂直方向上的分量大于和/或等于零的第二映射球面坐标;如果x
1
小于0,则需要排除掉θ大于0的目标,即选择垂直方向上的分量小于和/或等于零的第二映射球面坐标,在根据横坐标进行筛选后,得到筛选映射球面坐标,再对筛选映射球面坐标进行纵坐标筛选。同理,如果y
1
大于0,则需要排除掉小于0的目标,即选择水平方向上的分量大于和/或等于零的筛选映射球面坐标;如果y
1
小于0,则需要排除掉大于0的目标,即选择水平方向上的分量小于和/或等于零的筛选映射球面坐标,进行完纵坐标选择后,最终保留下来的筛选映射球面坐标即为目标映射球面坐标。
[0174]
应用本发明实施例,根据虚拟角色获取虚拟场景中的一个或多个可交互对象,以虚拟角色为中心构造球坐标系,基于位置信息获取可交互对象的三维笛卡尔坐标,将三维笛卡尔坐标转化为球坐标系中的球面坐标,根据虚拟角色和可交互对象的球面坐标,确定目标球面坐标,将目标球面坐标对应的可交互对象作为虚拟角色的锁定对象并进行锁定,在锁定后,响应于玩家输入的方向指令,获取与虚拟角色已锁定的对象对应的锁定球面坐标,将所述可交互对象的球面坐标映射为以锁定球面坐标为原点的第二映射球面坐标,采用第二映射球面坐标确定可交互对象与虚拟角色已锁定的对象之间的第二角度差和第二距离,遍历第二映射球面坐标,根据第二角度差和第二距离确定第二目标球面坐标,将虚拟角色锁定的对象切换为与第二目标球面坐标对应的目标可交互对象,可以适用于无锁定对象以及切换锁定对象两种情况,准确地从多个可交互对象中筛选出最优的锁定对象,既无需使用角色相机,又提高了玩家的游戏体验。
[0175]
参照图7,示出了本发明一实施例提供的一种游戏内对象锁定的装置的结构框图,通过终端设备提供图形用户界面,所述图形用户界面显示的内容包括部分或全部虚拟场景,以及位于所述虚拟场景的虚拟角色,所述装置可以包括如下模块:
[0176]
可交互对象获取模块601,用于根据所述虚拟角色获取所述虚拟场景中的一个或多个可交互对象;
[0177]
位置信息获取模块602,用于获取所述一个或多个可交互对象在所述虚拟场景中的位置信息;
[0178]
球面坐标确定模块603,用于根据所述位置信息确定所述一个或多个可交互对象分别对应的球面坐标,其中,所述球面坐标为根据所述虚拟角色确定的球坐标系中的坐标;
[0179]
目标球面坐标确定模块604,用于根据所述虚拟角色和所述可交互对象的球面坐标,确定目标球面坐标;
[0180]
锁定对象模块605,用于将所述目标球面坐标对应的可交互对象作为所述虚拟角色的锁定对象并进行锁定。
[0181]
在本发明一实施例中,所述可交互对象获取模块601包括:
[0182]
类型子模块,用于判断所述虚拟场景中的对象的类型与预设的类型是否一致;所述类型包括战斗交互类和非战斗交互类;
[0183]
初步筛选子模块,用于若所述对象与预设的类型一致,则将所述对象确定为初步筛选对象;
[0184]
距离判断子模块,用于判断所述初步筛选对象与所述虚拟角色之间的距离是否小于预设阈值;
[0185]
遮挡物子模块,用于若所述初步筛选对象与所述虚拟角色之间的距离小于预设阈值,则检测所述初步筛选对象与所述虚拟角色之间是否存在遮挡物;
[0186]
可交互对象确定子模块,用于若不存在遮挡物,则将所述初步筛选对象确定为可交互对象。
[0187]
在本发明一实施例中,所述球面坐标确定模块603包括:
[0188]
球坐标系构造子模块,用于以所述虚拟角色为中心构造球坐标系;
[0189]
三维笛卡尔坐标获取子模块,用于基于所述位置信息获取所述可交互对象的三维笛卡尔坐标;
[0190]
转化子模块,用于将所述三维笛卡尔坐标转化为所述球坐标系中的球面坐标。
[0191]
在本发明一实施例中,所述目标球面坐标确定模块604包括:
[0192]
第一目标球面坐标确定子模块,用于基于所述虚拟角色与所述可交互对象的球面坐标之间的第一角度差和第一距离,确定第一目标球面坐标。
[0193]
在本发明一实施例中,所述第一目标球面坐标确定子模块包括:
[0194]
投影球面坐标单元,用于将所述虚拟角色面向的方向作为投影方向,获取所述投影方向上,所述虚拟角色在所述球坐标系的单位球面上的投影球面坐标;
[0195]
第一映射球面坐标单元,用于将所述可交互对象的球面坐标映射为以所述投影球面坐标为原点的第一映射球面坐标;
[0196]
第一角度差和第一距离确定单元,用于采用所述第一映射球面坐标确定所述可交互对象与所述虚拟角色之间的第一角度差和第一距离;
[0197]
遍历单元,用于遍历所述第一映射球面坐标,根据所述第一角度差和所述第一距离确定所述第一目标球面坐标。
[0198]
在本发明一实施例中,所述虚拟角色为玩家控制的角色,所述装置还包括:
[0199]
锁定球面坐标模块,用于响应于所述玩家输入的方向指令,获取与所述虚拟角色已锁定的对象对应的锁定球面坐标;
[0200]
第二映射球面坐标模块,用于将所述可交互对象的球面坐标映射为以所述锁定球面坐标为原点的第二映射球面坐标;
[0201]
第二角度差和第二距离确定模块,用于采用所述第二映射球面坐标确定所述可交互对象与所述虚拟角色已锁定的对象之间的第二角度差和第二距离;
[0202]
第二目标球面坐标确定模块,用于遍历所述第二映射球面坐标,根据所述第二角度差和所述第二距离确定所述第二目标球面坐标;
[0203]
切换模块,用于将所述虚拟角色锁定的对象切换为与所述第二目标球面坐标对应的目标可交互对象。
[0204]
在本发明一实施例中,所述遍历单元包括:
[0205]
预设阈值子单元,用于遍历所述第一映射球面坐标,判断所述第一角度差之间的差值是否超过预设阈值;
[0206]
第一选择单元,用于若所述第一角度差之间的差值没有超过预设阈值,则选择所述第一距离较小的第一映射球面坐标作为第一目标球面坐标;
[0207]
第二选择单元,用于若所述第一角度差之间的差值超过预设阈值,则选择所述第一角度差较小的第一映射球面坐标作为第一目标球面坐标。
[0208]
在本发明一实施例中,所述第二角度差和第二距离确定模块包括:
[0209]
二维坐标确定子模块,用于采用所述方向指令,确定对应的二维坐标;
[0210]
目标映射球面坐标子模块,用于基于所述二维坐标,从所述第二映射球面坐标中选择目标映射球面坐标;
[0211]
第二角度差和第二距离计算子模块,用于采用所述目标映射球面坐标和预设的权值计算所述目标映射球面坐标与所述原点之间的第二角度差和第二距离。
[0212]
在本发明一实施例中,所述目标映射球面坐标子模块包括:
[0213]
第一判断单元,用于判断所述二维坐标的横坐标是否大于零;
[0214]
第一筛选映射球面坐标单元,用于若所述二维坐标的横坐标大于零,则从所述第二映射球面坐标中确定垂直方向上的分量大于和/或等于零的第二映射球面坐标作为筛选映射球面坐标;
[0215]
第二筛选映射球面坐标单元,用于若所述二维坐标的横坐标小于零,则从所述第二映射球面坐标中确定垂直方向上的分量小于和/或等于零的第二映射球面坐标作为筛选映射球面坐标;
[0216]
第二判断单元,用于判断所述二维坐标的纵坐标是否大于零;
[0217]
第一目标映射球面坐标选择单元,用于若所述二维坐标的纵坐标大于零,则从所述筛选映射球面坐标中选择水平方向上的分量大于和/或等于零的筛选映射球面坐标作为目标映射球面坐标;
[0218]
第二目标映射球面坐标选择单元,用于若所述二维坐标的纵坐标小于零,则从所述筛选映射球面坐标中选择水平方向上的分量小于和/或等于零的筛选映射球面坐标作为目标映射球面坐标。
[0219]
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关
之处参见方法实施例的部分说明即可。
[0220]
本发明一实施例还提供了电子设备,可以包括处理器、存储器及存储在存储器上并能够在处理器上运行的计算机程序,计算机程序被处理器执行时实现如上游戏内对象锁定的方法的步骤。
[0221]
本发明一实施例还提供了计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如上游戏内对象锁定的方法的步骤。
[0222]
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0223]
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0224]
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0225]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0226]
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0227]
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
[0228]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0229]
以上对本发明所提供的一种游戏内对象锁定的方法及装置、电子设备、存储介质,
进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1