欢迎光临小豌豆知识网!
当前位置:首页 > 生活技术 > 运动娱乐> 虚拟对象的选择方法、装置、终端及存储介质独创技术48373字

虚拟对象的选择方法、装置、终端及存储介质

2021-02-02 09:52:16

虚拟对象的选择方法、装置、终端及存储介质

  技术领域

  本申请涉及计算机和互联网技术领域,特别涉及一种虚拟对象的选择方法、装置、终端及存储介质。

  背景技术

  目前,游戏应用程序中虚拟对象的技能种类越来越多。

  在相关技术中,游戏中用户可以控制第一虚拟对象使用技能对第二虚拟对象发起攻击,其中,该第二虚拟对象与第一虚拟对象处于不同的阵营。可选地,当第一虚拟对象释放技能时,客户端可以获取该技能的攻击范围,并选择该攻击范围内的第二虚拟对象作为第一虚拟对象的攻击目标。

  然而,上述相关技术会出现选择的攻击目标未显示在终端屏幕中的情况,这与用户情况不符,导致攻击目标的选择准确率低。

  发明内容

  本申请实施例提供了一种虚拟对象的选择方法、装置、终端及存储介质,能够保证第一操作的作用目标位于用户的可视范围内,提高第一操作的作用目标选择的准确率。所述技术方案如下:

  一方面,本申请实施例提供了一种虚拟对象的选择方法,所述方法包括:

  显示用户界面,所述用户界面包括虚拟环境对应的显示画面,以及位于所述虚拟环境中的第一虚拟对象;

  获取所述第一虚拟对象的第一操作在所述虚拟环境中的设定执行范围;

  获取所述虚拟环境中的可视边界范围,所述可视边界范围中包括的虚拟对象在所述用户界面中是可见的;

  根据所述设定执行范围和所述屏幕边界范围,确定所述第一操作在所述虚拟环境中的有效执行范围;

  基于所述有效执行范围确定目标虚拟对象。

  另一方面,本申请实施例提供了一种虚拟对象的选择装置,所述装置包括:

  界面显示模块,用于显示用户界面,所述用户界面包括虚拟环境对应的显示画面,以及位于所述虚拟环境中的第一虚拟对象;

  范围获取模块,用于获取所述第一虚拟对象的第一操作在所述虚拟环境中的设定执行范围;

  边界获取模块,用于获取所述虚拟环境中的可视边界范围,所述可视边界范围中包括的虚拟对象在所述用户界面中是可见的;

  范围确定模块,用于根据所述设定执行范围和所述屏幕边界范围,确定所述第一操作在所述虚拟环境中的有效执行范围;

  对象确定模块,用于基于所述有效执行范围确定目标虚拟对象。

  又一方面,本申请实施例提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述虚拟对象的选择方法。

  再一方面,本申请实施例提供了一种计算机可读存储介质,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述虚拟对象的选择方法。

  还一方面,提供了一种计算机程序产品,当所述计算机程序产品在终端上运行时,使得终端执行上述虚拟对象的选择方法。

  本申请实施例提供的技术方案可以带来如下有益效果:

  通过基于第一操作的设定执行范围和虚拟环境中的可视边界范围,确定第一操作的有效执行范围,并基于该有效执行范围确定第一操作对应的目标虚拟对象,使得目标虚拟对象处于可视边界范围内,保证第一操作的作用目标位于用户的可视范围内,避免因作用目标位于用户的不可视范围内而造成的操作误判,提高第一操作的作用目标选择的准确率。

  附图说明

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

  图1是本申请一个实施例提供的应用程序运行环境的示意图;

  图2是本申请一个实施例提供的终端的结构示意图;

  图3是本申请一个实施例提供的虚拟对象的选择方法的流程图;

  图4示例性示出了一种设定执行范围的获取方式的示意图;

  图5示例性示出了一种可视边界范围的显示方式的示意图;

  图6示例性示出了一种有效执行范围的获取方式的示意图;

  图7示例性示出了一种可视边界范围的获取方式的示意图;

  图8是本申请另一个实施例提供的虚拟对象的选择方法的流程图;

  图9示例性示出了一种虚拟对象的选择方法的流程的示意图;

  图10是本申请一个实施例提供的虚拟对象的选择装置的框图;

  图11是本申请另一个实施例提供的虚拟对象的选择装置的框图;

  图12是本申请一个实施例提供的终端的结构框图。

  具体实施方式

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

  请参考图1,其示出了本申请一个实施例提供的应用程序运行环境的示意图。该应用程序运行环境可以包括:终端10和服务器20。

  终端10可以是诸如手机、平板电脑、游戏主机、电子书阅读器、多媒体播放设备、可穿戴设备、PC(Personal Computer,个人计算机)等电子设备。终端10中可以安装应用程序的客户端。

  在本申请实施例中,上述应用程序可以是任何能够提供虚拟环境,以供用户代入和操作的虚拟对象在该虚拟环境中进行活动的应用程序。典型地,该应用程序为游戏应用程序,如多人在线战术竞技(Multiplayer Online Battle Arena,MOBA)游戏、大逃杀生存(Battle Royale,BR)游戏、第三人称射击游戏(Third-Personal Shooting Game,TPS)、第一人称射击游戏(First-Person Shooting Game,FPS)和多人枪战类生存游戏,等等。当然,除了游戏应用程序之外,其它类型的应用程序中也可以向用户展示虚拟对象,并给虚拟对象提供相应的功能。例如,虚拟现实(Virtual Reality,VR)类应用程序、增强现实(Augmented Reality,AR)类应用程序、三维地图程序、军事仿真程序、社交类应用程序、互动娱乐类应用程序等,本申请实施例对此不作限定。另外,对于不同的应用程序来说,其所提供的虚拟对象的形态也会有所不同,且相应的功能也会有所不同,这都可以根据实际需求预先进行配置,本申请实施例对此不作限定。可选地,终端10中运行有上述应用程序的客户端。在一些实施例中,上述应用程序是基于三维的虚拟环境引擎开发的应用程序,比如该虚拟环境引擎是Unity引擎,该虚拟环境引擎能够构建三维的虚拟环境、虚拟对象和虚拟道具等,给用户带来更加沉浸式的游戏体验。

  其中,上述虚拟环境是应用程序(如游戏应用程序)的客户端在终端上运行时显示(或提供)的场景,该虚拟环境是指营造出的供虚拟对象进行活动(如游戏竞技)的场景,如虚拟房屋、虚拟岛屿、虚拟地图和虚拟建筑等。该虚拟环境可以是对真实世界的仿真环境,也可以是半仿真半虚构的环境,还可以是纯虚构的环境。虚拟环境可以是二维虚拟环境,也可以是2.5维虚拟环境,或者是三维虚拟环境,本申请实施例对此不作限定。

  上述虚拟对象可以是用户帐号在应用程序中控制的虚拟角色,也可以是由应用程序中的计算机程序控制的虚拟角色。以应用程序为游戏应用程序为例,虚拟对象可以是用户帐号在游戏应用程序中控制的游戏角色,也可以是游戏应用程序中的由计算机程序控制的游戏怪物。虚拟对象可以是人物形态,可以是动物、卡通或者其它形态,本申请实施例对此不作限定。虚拟对象可以三维形式展示,也可以二维形式展示,本申请实施例对此不作限定。可选地,当虚拟环境为三维虚拟环境时,虚拟对象是基于动画骨骼技术创建的三维立体模型。每个虚拟对象在三维虚拟环境中具有自身的形状和体积,占据三维虚拟环境中的一部分空间。在本申请实施例中,终端10可以接收虚拟对象的操作,并根据该操作的设定执行范围和虚拟环境中的可视边界范围确定有效执行范围,进而从该有效执行范围中选择上述操作对应的目标虚拟对象。

  在一种可能的实施方式中,上述虚拟对象包括处于相同阵营的虚拟对象和处于不同阵营的虚拟对象,即在应用程序中,虚拟对象被划分为不同的阵营。示例性地,以MOBA游戏为例,十名用户进行匹配游戏,分为红方和蓝方两队,即每五个人为一组,此时红方与红方中的虚拟对象处于同一阵营且互为队友关系,蓝方与蓝方中的虚拟对象处于同一阵营且互为队友关系,而红方与蓝方中的虚拟对象处于不同阵营且互为敌对关系。

  服务器20用于为终端10中的应用程序的客户端提供后台服务。例如,服务器20可以是上述应用程序的后台服务器。服务器20可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。可选地,服务器20同时为多个终端10中的应用程序提供后台服务。

  可选地,终端10和服务器20之间可通过网络30进行互相通信。

  请参考图2,其示出了本申请一个实施例提供的终端的结构示意图。该终端10可以包括:主板110、外部输出/输入设备120、存储器130、外部接口140、触控系统150以及电源160。

  其中,主板110中集成有处理器和控制器等处理元件。

  可选地,对于终端,其外部输出/输入设备120可以包括显示组件(比如显示屏)、声音播放组件(比如扬声器)、声音采集组件(比如麦克风)以及各类按键等;对于PC终端,其外部输出/输入设备120可以包括显示组件(比如显示屏)、声音播放组件(比如扬声器)、声音采集组件(比如麦克风)以及各类按键(比如鼠标和键盘)等。

  存储器130中存储有程序代码和数据。

  外部接口140可以包括耳机接口、充电接口以及数据接口等。

  触控系统150可以集成在外部输出/输入设备120的显示组件或者按键中,触控系统150用于检测用户在显示组件或者按键上执行的触控操作。

  电源160用于对终端10中的其它各个部件进行供电。

  在本申请实施例中,主板110中的处理器可以通过执行或者调用存储器中存储的程序代码和数据生成用户界面(如游戏界面),并将生成的用户界面(如游戏界面)通过外部输出/输入设备120进行展示。在展示用户界面(如游戏界面)的过程中,可以通过触控系统150检测用户与用户界面(如游戏界面)进行交互时执行的触控操作,并对该触控操作进行响应。

  请参考图3,其示出了本申请一个实施例提供的虚拟对象的选择方法的流程图。该方法可应用于终端中,如各步骤的执行主体可以是图1所示的应用程序运行环境中的终端10(以下简称为“客户端”)。该方法可以包括以下几个步骤(301~305):

  步骤301,显示用户界面。

  用户界面是指在客户端向用户展示的应用程序的画面,该应用程序可以是需要下载安装的计算机程序,也可以是即点即用的计算机程序。可选地,上述应用程序可以是任何能够提供的虚拟环境的应用程序,如游戏应用程序;上述用户界面包括该虚拟环境的显示画面。其中,该显示画面中可以包括虚拟物品,如虚拟建筑、虚拟建筑、虚拟环境和虚拟地图等,用户可以控制第一虚拟对象与虚拟环境中的各种虚拟物品进行交互。

  在本申请实施例中,客户端在接收到用户触发的应用程序的启动指令时,可以控制该应用程序运行,并显示该应用程序对应的用户界面。其中,上述用户界面中包括虚拟环境对应的显示画面,以及位于该虚拟环境中的第一虚拟对象,第一虚拟对象可以是用户所控制的虚拟对象。

  步骤302,获取第一虚拟对象的第一操作在虚拟环境中的设定执行范围。

  第一虚拟对象是指上述用户在虚拟环境中所控制的虚拟角色,可选地,该第一虚拟对象可以是人物形态,可以是动物、卡通或者其它形态,本申请实施例对此不作限定。在本申请实施例中,第一虚拟对象可以三维形式展示,也可以二维形式展示。

  第一操作是指第一虚拟对象与上述虚拟环境的任意交互操作,如第一操作为第一虚拟对象的技能释放操作或第一虚拟对象的普通攻击操作。可选地,该交互操作对应的作用目标可以是虚拟环境中的虚拟物品,也可以是虚拟环境中的其它虚拟对象,本申请实施例对此不作限定。

  在一种可能的实施方式中,上述第一操作是由用户控制第一虚拟对象触发的。可选地,用户可以通过点击对应的图标或按压对应的键位来触发第一操作的触发指令,进而,客户端在接收到该触发指令之后,控制第一虚拟对象执行上述第一操作。

  在另一种可能的实施方式中,上述第一操作是由计算机程序控制第一虚拟对象触发的。可选地,客户端在运行上述应用程序之后,可以按照预设规则控制第一虚拟对象执行上述第一操作。其中,预设规则可以进行灵活设置。例如,上述预设规则中包括第一虚拟对象的在线时长,客户端可以检测第一虚拟对象的在线时长,若第一虚拟对象的在线时长满足条件,则控制第一虚拟对象执行上述第一操作;再例如,上述预设规则中包括第一虚拟对象的属性参数,客户端可以检测第一虚拟对象的属性参数,若第一虚拟对象的一个或多个属性参数满足条件,则控制第一虚拟对象执行上述第一操作,其中,上述属性参数可以包括生命值、防御值或攻击速度等,本申请实施例对此不作限定;或者,上述预设规则中包括第一虚拟对象的操作参数,客户端可以检测第一虚拟对象的操作参数,若第一虚拟对象的操作参数满足条件,则控制第一虚拟对象执行上述第一操作,其中,上述操作参数可以是击败怪物数量、技能释放次数或物品使用次数等,本申请实施例对此不作限定。需要说明的一点是,上述对预设规则的介绍指示示例性和解释性的,在实际运用中,可以根据实际情况对上述预设规则进行灵活设置。

  设定执行范围是指上述第一操作的作用范围,不同的第一操作对应的设定执行范围可以不同。在本申请实施例中,客户端在显示上述用户界面之后,可以获取第一虚拟对象的第一操作在虚拟环境中的设定执行范围。其中,该设定执行范围的形状可以是圆形、矩形或三角形等,本申请实施例对此不作限定。

  在一种可能的实施方式中,上述设定执行范围是预设范围,该预设范围由设计人员进行设置,在应用程序的运行过程中不发生变化;在另一种可能的实施方式中,上述设定执行范围是条件范围,该条件范围在应用程序的运行过程中根据不同的条件进行变化,如第一操作的设定执行范围可以与第一操作的执行次数呈正比或反比等,在实际运用中,可以根据实际情况对上述条件进行灵活设置,本申请实施例对此不作限定。

  在本申请实施例中,客户端可以根据第一虚拟对象的位置信息获取上述设定执行范围,可选地,上述步骤302包括以下几个步骤:

  1、获取第一虚拟对象在虚拟环境中的位置信息;

  2、根据位置信息以及第一操作的设定执行距离,确定第一操作在虚拟环境中的设定执行范围。

  位置信息用于指示第一虚拟对象在虚拟环境中的位置,可选地,该位置信息以坐标的形式进行表示。

  设定执行距离是指上述第一操作的最大作用距离,在虚拟环境中,与第一虚拟对象之间的距离小于该最大作用距离的虚拟物品或虚拟对象,均可作为第一操作的作用目标。在本申请实施例中,客户端可以获取上述第一虚拟对象的位置信息,并根据该位置信息以及第一操作的设定执行距离,确定第一操作的设定执行范围。可选地,客户端可以根据位置信息以及第一操作的设定执行距离,确定设定执行范围的边界点,进而确定设定执行范围;或者,客户端也可以根据位置信息以及第一操作的设定执行距离,确定设定执行范围内的各个范围点,进而确定设定执行范围,本申请实施例对此不作限定。其中,同一第一操作可以具有一个或多个设定执行距离。

  在一种可能的实施方式中,第一操作具有一个设定执行距离,此时,设定执行范围为以第一虚拟对象为中心的圆形范围,该设定执行范围的边界点到第一虚拟对象的距离相等。可选地,客户端在获取第一操作的设定执行范围时,可以先获取第一虚拟对象的位置信息和第一操作的设定执行距离,并根据该位置信息,确定虚拟环境中与第一虚拟对象之间的距离小于或等于设定执行距离的范围点,该范围点所组成的范围即为第一操作的设定执行范围。

  在另一种可能的实施方式中,第一操作具有多个设定执行距离,此时,设定执行范围的边界点到第一虚拟对象的距离不相等。可选地,客户端在获取设定执行范围时,可以先获取第一虚拟对象的位置信息和第一操作的多个设定执行距离,并以第一虚拟对象的站位方向为基准,根据位置信息,从虚拟环境的多个方向中,确定虚拟环境中与第一虚拟对象之间的距离小于或等于对应的设定执行距离的范围点,该范围点所组成的范围即为第一操作的设定执行范围。其中,第一虚拟对象的站位方向可以是第一虚拟对象的实时移动方向。

  以设定执行范围是矩形为例,结合参考图4,在虚拟环境中,第一虚拟对象41的站位方位为第一方向42,在获取第一操作的设定执行范围43时,客户端可以获取第一虚拟对象41的位置信息和第一操作的多个设定执行距离,并以第一方向42为基准,获取设定执行范围的多个边界点44,进而确定第一操作的设定执行范围43。

  需要说明的一点是,在本申请实施例中,客户端可以在显示用户界面之后,实时获取第一操作的设定执行范围,并根据第一虚拟对象的位置信息的变化对设定执行范围进行更新;或者,客户端可以在接收到第一操作的触发指令之后,获取该第一操作的设定执行范围,本申请实施例对此不作限定。

  步骤303,获取虚拟环境中的可视边界范围。

  可视边界范围是指用户界面的显示范围,该显示范围可以是虚拟相机对虚拟环境的获取范围,也就是说,上述可视边界范围中包括的虚拟环境在用户界面中是可见的,如可视边界范围中包括的虚拟对象在用户界面中是可见的。在本申请实施例中,客户端可以根据客户端的屏幕范围确定虚拟相机的显示范围,进而获取虚拟环境中的可视边界范围。

  可选地,由于虚拟相机的拍摄角度,可视边界范围与客户端的屏幕范围并不相同。示例性地,结合参考图5,虚拟相机51可以获取虚拟环境中的虚拟物品,并将该虚拟物品映射至客户端的屏幕范围52中。其中,由于虚拟相机51的拍摄角度,在屏幕范围52中可以显示第一虚拟对象53以及第二虚拟对象54的实线部分,也就是说,图5中的虚线范围55(即斜线覆盖区域)为可视边界范围。

  需要说明的一点是,客户端获取设定执行范围的步骤和获取可视边界范围的步骤在时间上的先后顺序本申请实施例对此不作限定,可以先获取设定执行范围后获取可视边界范围,也可以先获取可视边界范围后获取设定执行范围,当然,客户端也可以同时获取设定执行范围和可视边界范围,本申请实施例对此不做限定。

  步骤304,根据设定执行范围和屏幕边界范围,确定第一操作在虚拟环境中的有效执行范围。

  有效执行范围是指第一操作在实际操作过程的作用范围,该有效作用范围中包括第一操作的作用目标,可选地,该第一操作只能对有效执行范围内的虚拟环境中的虚拟物品或虚拟对象产生影响,不会对有效执行范围外的虚拟物品或虚拟对象产生影响。可选地,客户端在获取上述第一操作的设定执行范围和虚拟环境中的可视边界范围之后,可以根据该设定执行范围和可视边界范围,确定第一操作在虚拟环境中的有效执行范围。

  在本申请实施例中,客户端可以将设定执行范围和可视边界范围的交集区域,确定为第一操作在虚拟环境中的有效执行范围。示例性地,结合参考图6,第一操作的设定执行范围61为圆形范围,虚拟环境中的可视边界范围62为矩形范围,客户端选择设定执行范围61与可视边界范围62的交集区域(实线范围区域)作为第一操作的有效执行范围63。

  步骤305,基于有效执行范围确定目标虚拟对象。

  目标虚拟对象是指上述第一操作的作用对象。在本申请实施例中,客户端在获取上述有效执行范围之后,可以基于该有效执行范围确定第一操作对应的目标虚拟对象。

  在一种可能的实施方式中,为了减少第一操作的响应时长,提高用户的操作体验,客户端可以在显示用户界面之后,实时获取第一操作的有效执行范围,基于该有效执行范围确定第一操作对应的目标虚拟对象,并对上述有效执行范围和目标虚拟对象进行更新,使得客户端在接收到上述第一操作的触发指令之后,可以迅速确定该第一操作对应的目标虚拟对象,控制第一虚拟对象执行第一操作。

  在另一种可能的实施方式中,为了较少终端的处理开销,客户端可以在获取第一操作的触发指令之后,根据该第一操作的触发指令,获取第一操作的有效执行范围,并基于该有效执行范围确定第一操作对应的目标虚拟对象,进而控制第一虚拟对象执行第一操作。

  综上所述,本申请实施例提供的技术方案中,通过基于第一操作的设定执行范围和虚拟环境中的可视边界范围,确定第一操作的有效执行范围,并基于该有效执行范围确定第一操作对应的目标虚拟对象,使得目标虚拟对象处于可视边界范围内,保证第一操作的作用目标位于用户的可视范围内,避免因作用目标位于用户的不可视范围内而造成的操作误判,提高第一操作的作用目标选择的准确率。

  另外,将设定执行范围和屏幕边界范围的交集区域作为第一操作在的有效执行范围,有效地保证第一操作的作用目标即在第一操作的执行范围内,又在用户的可视范围内。

  下面,对可视边界范围的获取进行介绍。在示例性实施例中,上述步骤303包括以下几个步骤:

  1、对虚拟环境的三维效果图进行处理,得到虚拟环境的二维效果图。

  三维效果图是指虚拟环境的运行效果图,可选地,第一虚拟对象在该运行效果图中与虚拟环境进行交互操作。二维效果图是指虚拟对象的画面显示图,可选地,该画面显示图可以显示在客户端的用户界面中。

  在本申请实施例中,在获取可视边界范围时,客户端可以对虚拟环境的三维效果图进行处理,得到虚拟环境的二维效果图。

  2、在虚拟环境的二维效果图中,获取可视边界范围的特征点在虚拟环境中的坐标。

  特征点用于指示可视边界范围的具体范围,该特征点可以是可视边界范围的边界点,如可视边界范围的顶点。需要说明的一点是,该特征点的数量可以是任意数值,本申请实施例对此不作限定。

  可选地,客户端在获取上述虚拟环境的二维效果之后,可以在该二维效果图中,获取可视边界范围的特征点在虚拟环境中的坐标,进而获取可视边界范围。在本申请实施例中,客户端可以基于虚拟相机的参数,获取该可视边界范围的特征点在虚拟环境中的坐标。其中,该参数包括位置参数和旋转参数,位置参数用于指示虚拟相机在虚拟环境中的位置,旋转参数用于指示虚拟相机在虚拟环境中的拍摄角度值,客户端可以根据虚拟相机的旋转角度和拍摄角度获取虚拟相机的拍摄角度值。

  需要说明的一点是,在本申请实施例中,由于不同的客户端对应的屏幕不同,客户端可以根据屏幕参数对虚拟相机的参数进行调节,得到虚拟相机的位置参数和旋转参数,进而,根据位置参数和旋转参数,获取可视边界范围的特征点在虚拟环境中的坐标,使得虚拟相机所获取的虚拟环境的显示画面与客户端的用户界面相匹配。其中,屏幕参数包括屏幕尺寸和屏幕分辨率,也就是说,客户端可以根据屏幕尺寸和屏幕分辨率对虚拟相机的位置参数和旋转参数进行自适应调节,使得虚拟相机所获取的虚拟环境的显示画面能够适应客户端的屏幕尺寸和屏幕分辨率。

  3、根据特征点在虚拟环境中的坐标,获取可视边界范围。

  可选地,客户端在获取上述特征点在虚拟环境中的坐标之后,可以根据该根据特征点在虚拟环境中的坐标,获取可视化边界范围,例如,客户端可以根据可视化边界范围的形状,对该特征点进行连接,进而获取上述可视边界范围。

  示例性地,假设虚拟环境中包括三维坐标系,且该三维坐标系的x轴与y轴平行于虚拟环境的平行面且x轴与y轴之间呈90°夹角,z轴垂直于虚拟环境的平行面,x轴、y轴与z轴相交于一点O,则虚拟相机在虚拟环境中的位置如图7所示,该虚拟相机的坐标为(x1,y1,z1),从y轴与z轴中,获取可视边界范围的z轴取值范围zmin~zmax,如图7所示,虚拟相机在x轴的旋转角度为CA,拍摄角度为FA,客户端可以根据旋转角度CA和拍摄角度FA,确定该虚拟相机的旋转角度值为CA-FA/2~CA+FA/2,进而,可视边界范围的z轴取值范围zmin~zmax为:

  zmin=z1+y1*tan(CA–FA/2);

  zmax=z1+y1*tan(CA+FA/2);

  进一步地,客户端从x轴与z轴中,获取可视边界范围的顶点坐标(xTopMin,zmax)、(xTopMax,zmax)、(xBotMin,zmin)和(xBotMax,zmin),其中,(xTopMin,zmax)为可视边界范围的左上顶点,(xTopMax,zmax)为可视边界范围的右上顶点,(xBotMin,zmin)为可视边界范围的左下顶点,(xBotMax,zmin)为可视边界范围的右下顶点,根据几何原理可知,xTopMin、xTopMax、xBotMin和xBotMax分别为:

  xTopMin=x1-(y1/sin(CA-FA/2))//tan(CAA);

  xTopMax=x1+(y1/sin(CA-FA/2))//tan(CAA);

  xBotMin=x1-(y1/sin(CA+FA/2))/tan(CAA);

  xBotMax=x1+(y1/sin(CA+FA/2))/tan(CAA);

  其中,CAA是指虚拟相机的水平张开角度。

  可选地,由于虚拟环境以二维效果图的形式展示在用户界面中,且上述y轴在客户端的实际坐标方向垂直于屏幕向里,因此,在二维效果图中,可视边界范围的顶点坐标(xTopMin,0,zmax)、(xTopMax,0,zmax)、(xBotMin,0,zmin)和(xBotMax,0,zmin),客户端在获取可视边界范围的顶点坐标(xTopMin,0,zmax)、(xTopMax,0,zmax)、(xBotMin,0,zmin)和(xBotMax,0,zmin)之后,可以将该顶点坐标进行连接,进而获取上述可视边界范围,此时,该可视边界范围为梯形范围71。

  需要的一点是,上述获取可视边界范围的步骤,可以由应用程序中的某个计算机程序模块执行,该计算机程序模块可以以插件的形式存在于应用程序中,如屏幕边距过滤器。

  请参考图8,其示出了本申请另一个实施例提供的虚拟对象的选择方法的流程图。该方法可应用于终端中,如各步骤的执行主体可以是图1所示的应用程序运行环境中的终端10(以下简称为“客户端”)。该方法可以包括以下几个步骤(801~806):

  步骤801,显示用户界面。

  步骤802,获取第一虚拟对象的第一操作在虚拟环境中的设定执行范围。

  步骤803,获取虚拟环境中的可视边界范围。

  步骤804,根据设定执行范围和屏幕边界范围,确定第一操作在虚拟环境中的有效执行范围。

  上述步骤801-804于与图3实施例中的步骤301-304相同,具体参见图3实施例,在此不作赘述。

  步骤805,将有效执行范围中的第二虚拟对象确定为候选虚拟对象。

  第二虚拟对象是指应用程序中由用户或其它用户控制的虚拟对象。候选虚拟对象是指上述第一操作的候选作用目标。可选地,客户端在获取上述有效执行范围之后,可以获取该有效执行范围内的虚拟对象作为第二虚拟对象,其中,该第二虚拟对象中包括与第一虚拟对象处于相同的阵营的虚拟对象,也可以与第一虚拟对象处于不同的阵营的虚拟对象。

  在一种可能的实施方式中,客户端在获取上述有效执行范围之后,可以直接根据该有效执行范围的边界点坐标与虚拟对象的位置坐标进行比较,进而获取处于该有效执行范围内的第二虚拟对象。

  在另一种可能的实施方式中,为了节省终端的处理开销,客户端可以直接根据设定执行范围和可视化边界范围来确定有效执行范围的第二虚拟对象。可选地,客户端在获取设定执行范围之后,可以获取该设定执行范围内的第二虚拟对象,并获取该第二虚拟对象的位置信息,进一步地,根据该位置信息确定第二虚拟对象是否满足条件,该条件是指用于判断第二虚拟对象是否处于有效执行范围内的判断条件。若第二虚拟对象的位置信息满足条件,则第二虚拟对象处于有效执行范围内;若第二虚拟对象的位置信息未条件,则第二虚拟对象未处于有效执行范围内。

  上述条件可以包括第一条件和第二条件。可选地,可视边界范围为第一边、第二边、第三边和第四边围合而成的梯形区域,且第一边和第三边平行。客户端在获取设定执行范围内的第二虚拟对象的位置信息之后,可以对该位置信息进行分析检测,若上述第二虚拟对象的位置信息在第一边和第三边之间,则确定第二虚拟对象满足第一条件;若上述第二虚拟对象的位置信息在第二边和第四边之间,则确定第二虚拟对象满足第二条件。在第二虚拟对象满足第一条件和第二条件时,确定第二虚拟对象处于有效执行范围内。

  示例性地,结合参考图7,该可视边界范围为梯形范围71,且该梯形范围的顶点坐标为(xTopMin,0,zmax)、(xTopMax,0,zmax)、(xBotMin,0,zmin)和(xBotMax,0,zmin),假设第二虚拟对象的坐标为(hx,hy,hz),则上述第一条件为:

  zmin<hz<zmax;

  若第二虚拟对象的位置信息满足上述第一条件,则确定该第二虚拟对象位于梯形范围71中的相互平行的第一边和第三边之间。

  上述第二条件为:

  hx–xBotMax-((zmax-zmin)/(xTopMax-xBotMax))*(hy-zmin)>0;

  且hx–xBotMin-((zmax–zmin)/(xTotMin-xBotMin))*(hy-zmin)<0;

  若第二虚拟对象的位置信息满足上述第二条件,则确定该第二虚拟对象位于梯形范围71中的第二边和第四边之间。

  在第二虚拟对象的位置信息满足第一条件和第二条件时,确定该第二虚拟对象处于有效执行范围中。

  可选地,客户端可以根据上述第一操作的操作属性,从第二虚拟对象中选择候选虚拟对象。其中,操作属性包括攻击属性和增益属性,攻击属性是指上述第一操作可以造成其它虚拟对象的属性值较少,增益属性是指上述第一操作可以使得其它虚拟对象的属性值增加,可选地,上述属性值可以包括生命值、防御值或攻击速度值等,本申请实施例对此不作限定。可选地,若上述第一操作为攻击操作,则客户端将有效执行范围中与第一虚拟对象处于不同阵营的虚拟对象,确定为候选虚拟对象;若上述第一操作为增益操作,则客户端将有效执行范围中与第一虚拟对象处于相同阵营的虚拟对象,确定为候选虚拟对象。

  步骤806,根据对象选择规则,从候选虚拟对象中选择目标虚拟对象。

  对象选择规则是指第一操作对应的作用目标的选择方式。可选地,该对象选择规则中包括第一操作的作用范围和目标选择指标。其中,第一操作的作用范围用于指示上述第一操作的效果范围,可选地,该效果范围可以以一定面积和形状的范围表示,也可以以目标虚拟对象的数量来表示;目标选择指标用于指示目标虚拟对象的选择条件,该选择条件可以是第二虚拟对象的属性值,例如,该选择条件是第二虚拟对象的生命值,则客户端可以选择有效执行范围内生命值最小的第二候选虚拟对象作为目标虚拟对象。

  在本申请实施例中,客户端在获取上述候选虚拟对象之后,可以根据第一操作的对象选择规则,从候选虚拟对象中选择目标虚拟对象。可选地,不同的操作对应不同的对象选择规则。

  需要说明的一点是,上述对象选择规则可以是设计人员预设的规则,也可以是根据应用程序的本次进行灵活变化的规则,例如,预设规则可以根据第一虚拟对象的交互操作或属性值发生变化,例如,在第一虚拟对象的第一操作使用次数不同时,上述对象选择规则可以不同;再例如,在第一虚拟对象的攻击力不同时,上述对象选择规则可以不同,本申请实施例对此不作限定。

  综上所述,本申请实施例提供的技术方案中,从有效执行范围中选择第一操作对应的目标虚拟对象,提高目标虚拟对象选择的准确性;通过对象选择规则选择目标虚拟对象,使得目标虚拟对象的选择更加灵活。

  另外,根据第一操作的不同效果确定不同的目标虚拟对象,使得目标虚拟对象的选择更加灵活。

  另外,结合参考图9,对本申请进行完整介绍。

  步骤901,客户端显示用户界面。

  步骤902,客户端获取第一虚拟对象的第一操作的设定执行范围的相关参数,其中,该设定执行范围的相关参数包括第一虚拟对象的位置信息和第一操作的设定执行距离。

  步骤903,客户端根据设定执行范围的相关参数,获取第一操作的设定执行范围。

  步骤904,客户端获取设定执行范围内的第二虚拟对象的位置信息。

  步骤905,客户端获取可视边界范围。

  步骤906,客户端判断设定执行范围内的第二虚拟对象是否满足条件。若满足条件,则确定第二虚拟对象位于有效执行范围内,执行步骤907;若不满足条件,则确定第二虚拟对象未位于有效执行范围内,结束流程。

  步骤907,客户端根据第一操作的操作属性,从有效执行范围内的第二虚拟对象中选择与第一虚拟对象处于相同或不同阵营的虚拟对象作为候选虚拟对象。

  步骤908,客户端根据对象选择规则,从候选虚拟对象选择目标虚拟对象作为第一操作的作用目标。

  下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

  请参考图10,其示出了本申请一个实施例提供的虚拟对象的选择装置的框图。该装置具有实现上述虚拟对象的选择方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是终端,也可以设置终端中。该装置1000可以包括:界面显示模块1010、范围获取模块1020、边界获取模块1030、范围确定模块1040和对象确定模块1050。

  界面显示模块1010,用于显示用户界面,所述用户界面包括虚拟环境对应的显示画面,以及位于所述虚拟环境中的第一虚拟对象。

  范围获取模块1020,用于获取所述第一虚拟对象的第一操作在所述虚拟环境中的设定执行范围。

  边界获取模块1030,用于获取所述虚拟环境中的可视边界范围,所述可视边界范围中包括的虚拟对象在所述用户界面中是可见的。

  范围确定模块1040,用于根据所述设定执行范围和所述屏幕边界范围,确定所述第一操作在所述虚拟环境中的有效执行范围。

  对象确定模块1050,用于基于所述有效执行范围确定目标虚拟对象。

  在示例性实施例中,所述边界获取模块1030,包括:二维获取单元1031、坐标获取单元1032和边界获取单元1033。

  二维获取单元1031,用于对所述虚拟环境的三维效果图进行处理,得到所述虚拟环境的二维效果图。

  坐标获取单元1032,用于在所述虚拟环境的二维效果图中,获取所述可视化边界范围的特征点在所述虚拟环境中的坐标。

  边界获取单元1033,用于根据所述特征点在所述虚拟环境中的坐标,获取所述可视化边界范围。

  在示例性实施例中,所述边界获取单元1033,包括坐标获取子单元。

  坐标获取子单元,用于基于虚拟相机的参数,获取所述可视化边界范围的特征点在所述虚拟环境中的坐标;其中,所述参数包括位置参数和旋转参数,所述位置参数用于指示所述虚拟相机在所述虚拟环境中的位置,所述旋转参数用于指示所述虚拟相机在所述虚拟环境中的拍摄角度值。

  在示例性实施例中,所述坐标获取子单元,用于根据屏幕参数对所述虚拟相机的参数进行调节,得到所述虚拟相机的所述位置参数和所述旋转参数,所述屏幕参数包括屏幕尺寸和屏幕分辨率;根据所述位置参数和所述旋转参数,获取所述可视化边界范围的特征点在所述虚拟环境中的坐标。

  在示例性实施例中,所述范围获取模块1020,用于获取所述第一虚拟对象在所述虚拟环境中的位置信息;根据所述位置信息以及所述第一操作的设定执行距离,确定所述第一操作在所述虚拟环境中的设定执行范围。

  在示例性实施例中,所述对象确定模块1050,包括:候选确定单元1051和目标确定单元1052。

  候选确定单元1051,用于将所述有效执行范围中的第二虚拟对象确定为候选虚拟对象。

  目标确定单元1052,用于根据对象选择规则,从所述候选虚拟对象中选择所述目标虚拟对象。

  在示例性实施例中,所述可视边界范围为第一边、第二边、第三边和第四边围合而成的梯形区域,所述第一边和第三边平行;如图11所示,所述装置1000还包括:位置判断模块1060。

  位置获取模块1060,用于获取所述设定执行范围内的第二虚拟对象的位置信息;响应于所述第二虚拟对象的位置信息在所述第一边和所述第三边之间,确定所述第二虚拟对象满足第一条件;响应于所述第二虚拟对象的位置信息在所述第二边和所述第四边之间,确定所述第二虚拟对象满足第二条件;响应于所述第二虚拟对象满足所述第一条件和所述第二条件,确定所述第二虚拟对象处于所述有效执行范围内。

  在示例性实施例中,所述候选确定单元1051,用于若所述第一操作为攻击操作,则将所述有效执行范围中与所述第一虚拟对象处于不同阵营的虚拟对象,确定为所述候选虚拟对象;或者,若所述第一操作为增益操作,则将所述有效执行范围中与所述第一虚拟对象处于相同阵营的虚拟对象,确定为所述候选虚拟对象。

  综上所述,本申请实施例提供的技术方案中,通过基于第一操作的设定执行范围和虚拟环境中的可视边界范围,确定第一操作的有效执行范围,并基于该有效执行范围确定第一操作对应的目标虚拟对象,使得目标虚拟对象处于可视边界范围内,保证第一操作的作用目标位于用户的可视范围内,避免因作用目标位于用户的不可视范围内而造成的操作误判,提高第一操作的作用目标选择的准确率。

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

  请参考图12,其示出了本申请一个实施例提供的终端1200的结构框图。该终端1200可以是诸如手机、平板电脑、游戏主机、电子书阅读器、多媒体播放设备、可穿戴设备、PC等电子设备。该终端用于实施上述实施例中提供的虚拟对象的选择方法。该终端可以是图1所示游戏运行环境中的终端10。具体来讲:

  通常,终端1200包括有:处理器1201和存储器1202。

  处理器1201可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1201可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(FieldProgrammable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1201也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1201可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1201还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。

  存储器1202可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1202还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1202中的非暂态的计算机可读存储介质用于存储至少一个指令,至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集,且经配置以由一个或者一个以上处理器执行,以实现上述虚拟对象的选择方法。

  在一些实施例中,终端1200还可选包括有:外围设备接口1203和至少一个外围设备。处理器1201、存储器1202和外围设备接口1203之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1203相连。具体地,外围设备包括:射频电路1204、触摸显示屏1205、摄像头1207、音频电路1207、定位组件1208和电源1209中的至少一种。

  本领域技术人员可以理解,图12中示出的结构并不构成对终端1200的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

  在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被处理器执行时以实现上述虚拟对象的选择方法。

  可选地,该计算机可读存储介质可以包括:ROM(Read Only Memory,只读存储器)、RAM(Random Access Memory,随机存取记忆体)、SSD(Solid State Drives,固态硬盘)或光盘等。其中,随机存取记忆体可以包括ReRAM(Resistance Random Access Memory,电阻式随机存取记忆体)和DRAM(Dynamic Random Access Memory,动态随机存取存储器)。

  在示例性实施例中,还提供一种计算机程序产品,所述计算机程序产品被处理器执行时,用于实现上述虚拟对象的选择方法。

  应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。

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

《虚拟对象的选择方法、装置、终端及存储介质.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)