可见虚拟对象的确定方法、装置、设备及可读存储介质与流程-j9九游会真人

文档序号:35882294发布日期:2023-10-28 16:02阅读:6来源:国知局
可见虚拟对象的确定方法、装置、设备及可读存储介质与流程

1.本技术实施例涉及计算机技术领域,特别涉及一种可见虚拟对象的确定方法、装置、设备及可读存储介质。


背景技术:

2.在计算机技术领域中,受计算机程序操控的虚拟对象通常被称为非玩家角色(non-player character,npc)。一般情况下,需要确定游戏对局中的虚拟对象是否为npc的可见虚拟对象,若该虚拟对象为npc的可见虚拟对象,则确定该虚拟对象与npc可以进行交互。基于此,如何确定可见虚拟对象成为一个关键性的技术。


技术实现要素:

3.本技术提供了一种可见虚拟对象的确定方法、装置、设备及可读存储介质,能够确定一个虚拟对象是否为另一个虚拟对象的可见虚拟对象,提高视野检测的真实性,所述技术方案包括如下内容。
4.一方面,提供了一种可见虚拟对象的确定方法,所述方法包括:
5.获取第一虚拟对象的目标视野信息和第一视线点,所述第一视线点位于所述第一虚拟对象的指定部位;
6.获取第二虚拟对象的多个第二视线点,所述第一虚拟对象和所述第二虚拟对象位于同一游戏对局,任一个第二视线点位于所述第二虚拟对象的一个部位;
7.对于所述任一个第二视线点,若所述任一个第二视线点满足目标检测条件,则基于所述第一视线点和所述目标视野信息,对所述任一个第二视线点进行检测,得到所述任一个第二视线点的检测结果,所述任一个第二视线点的检测结果表征所述任一个第二视线点在所述第一视线点是否可见;
8.若所述多个第二视线点中存在目标视线点的检测结果表征所述目标视线点在所述第一视线点可见,则将所述第二虚拟对象确定为所述第一虚拟对象的可见虚拟对象。
9.另一方面,提供了一种可见虚拟对象的确定装置,所述装置包括:
10.获取模块,用于获取第一虚拟对象的目标视野信息和第一视线点,所述第一视线点位于所述第一虚拟对象的指定部位;
11.所述获取模块,还用于获取第二虚拟对象的多个第二视线点,所述第一虚拟对象和所述第二虚拟对象位于同一游戏对局,任一个第二视线点位于所述第二虚拟对象的一个部位;
12.检测模块,用于对于所述任一个第二视线点,若所述任一个第二视线点满足目标检测条件,则基于所述第一视线点和所述目标视野信息,对所述任一个第二视线点进行检测,得到所述任一个第二视线点的检测结果,所述任一个第二视线点的检测结果表征所述任一个第二视线点在所述第一视线点是否可见;
13.确定模块,用于若所述多个第二视线点中存在目标视线点的检测结果表征所述目
标视线点在所述第一视线点可见,则将所述第二虚拟对象确定为所述第一虚拟对象的可见虚拟对象。
14.在一种可能的实现方式中,所述获取模块,用于获取所述第一虚拟对象的第一视野信息;若所述第一虚拟对象满足视野更新条件,对所述第一视野信息进行更新,得到所述目标视野信息;
15.所述第一虚拟对象满足所述视野更新条件包括第一情况、第二情况和第三情况中的至少一项,所述第一情况为所述第一虚拟对象的水平视野的边缘与虚拟地面的高度满足高度条件,所述第二情况为所述第一虚拟对象所处虚拟环境中的虚拟天气发生变化,所述第三情况为所述第一虚拟对象的战斗状态发生变化,所述战斗状态表征所述第一虚拟对象是否与其他虚拟对象发生战斗。
16.在一种可能的实现方式中,所述第一虚拟对象满足所述视野更新条件包括所述高度满足所述高度条件;
17.所述确定模块,还用于若初始化所述第一虚拟对象或者所述第一虚拟对象移动,则基于所述第一视线点和所述第一视野信息,确定所述高度。
18.在一种可能的实现方式中,所述高度满足所述高度条件包括所述高度大于所述第一高度阈值,所述第一视野信息包括所述第一视野距离;
19.所述获取模块,用于基于所述高度扩大第一视野距离,得到第二视野距离;若所述第二视野距离大于第一视野阈值,基于所述第一视野阈值确定所述目标视野信息;若所述第二视野距离不大于所述第一视野阈值,基于所述第二视野距离确定所述目标视野信息。
20.在一种可能的实现方式中,所述高度满足所述高度条件包括所述高度小于所述第二高度阈值,所述第一视野信息包括所述第一视野距离;
21.所述获取模块,用于基于所述高度缩小第一视野距离,得到第三视野距离;若所述第三视野距离小于第二视野阈值,基于所述第二视野阈值确定所述目标视野信息;若所述第三视野距离不小于所述第二视野阈值,基于所述第三视野距离确定所述目标视野信息。
22.在一种可能的实现方式中,所述第一虚拟对象满足所述视野更新条件包括所述虚拟天气发生变化;
23.所述获取模块,用于获取所述虚拟天气的变化信息;若所述虚拟天气的变化信息表征能见度降低,缩小所述第一视野信息,得到所述目标视野信息;若所述虚拟天气的变化信息表征能见度提高,扩大所述第一视野信息,得到所述目标视野信息。
24.在一种可能的实现方式中,所述第一虚拟对象满足所述视野更新条件包括所述战斗状态发生变化;
25.所述获取模块,用于若变化后的战斗状态表征所述第一虚拟对象与其他虚拟对象发生战斗,缩小所述第一视野信息,得到所述目标视野信息;若所述变化后的战斗状态表征所述第一虚拟对象未与其他虚拟对象发生战斗,扩大所述第一视野信息,得到所述目标视野信息。
26.在一种可能的实现方式中,所述第一视野信息包括第一层级的视野信息、第二层级的视野信息和第三层级的视野信息,所述第一层级的视野信息对应的第一视野范围包括所述第二层级的视野信息对应的第二视野范围,所述第二视野范围包括所述第三层级的视野信息对应的第三视野范围;
27.所述确定模块,还用于若所述第三视野范围内存在所述可见虚拟对象,或者,所述第二视野范围中除所述第三视野范围之外的视野范围内存在所述可见虚拟对象且所述可见虚拟对象为第一姿态,则确定所述战斗状态为第一状态,所述第一状态表征所述第一虚拟对象与其他虚拟对象发生战斗;
28.所述确定模块,还用于若所述第二视野范围中除所述第三视野范围之外的视野范围内存在所述可见虚拟对象且所述可见虚拟对象为第二姿态,或者,所述第一视野范围中除所述第二视野范围之外的视野范围内存在所述可见虚拟对象,则确定所述战斗状态为第二状态,所述第二状态表征所述第一虚拟对象未与其他虚拟对象发生战斗。
29.在一种可能的实现方式中,所述目标视野信息包括多个子视野信息;
30.所述检测模块,用于若满足第一检测条件和第二检测条件,则确定所述任一个第二视线点的检测结果为第一结果,所述第一结果表征所述第一虚拟对象可见所述任一个第二视线点,满足所述第一检测条件是所述第一视线点与所述任一个第二视线点的连线位于至少一个子视野信息对应的视野范围内,满足所述第二检测条件是所述连线未穿过不透光物体;若不满足所述第一检测条件和所述第二检测条件中的至少一项,则确定所述任一个第二视线点的检测结果为第二结果,所述第二结果表征所述第一虚拟对象不可见所述任一个第二视线点。
31.在一种可能的实现方式中,所述第二虚拟对象为至少一个;
32.所述获取模块,还用于获取各个第二虚拟对象的检测优先级和各个第二视线点的检测优先级;获取当前检测次数,所述当前检测次数是第一检测的次数和第二检测的次数之和,所述第一检测是对检测优先级位于所述任一个第二视线点所在第二虚拟对象之前的第二虚拟对象的第二视线点进行的检测,所述第二检测是对所述任一个第二视线点所在第二虚拟对象上检测优先级位于所述任一个第二视线点之前的第二视线点进行的检测;
33.所述确定模块,还用于若所述当前检测次数小于检测次数阈值,确定所述任一个第二视线点满足所述目标检测条件。
34.在一种可能的实现方式中,所述目标视野信息包括多个子视野信息;
35.所述获取模块,用于对于任一个第二虚拟对象,基于所述任一个第二虚拟对象的位置,确定任一个第二虚拟对象的子视野信息;基于所述第一虚拟对象与所述任一个第二虚拟对象的距离以及所述任一个第二虚拟对象的子视野信息,确定所述任一个第二虚拟对象的检测优先级。
36.另一方面,提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以使所述电子设备实现上述任一所述的可见虚拟对象的确定方法。
37.另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以使电子设备实现上述任一所述的可见虚拟对象的确定方法。
38.另一方面,还提供了一种计算机程序或计算机程序产品,所述计算机程序或计算机程序产品中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以使电子设备实现上述任一种可见虚拟对象的确定方法。
39.本技术提供的技术方案至少带来如下有益效果:
40.本技术提供的技术方案中,第一虚拟对象对应第一视线点,第二虚拟对象对应多个第二视线点。基于第一视线点和第一虚拟对象的目标视野信息,对任一个第二视线点进行检测,得到该第二视线点在第一视线点是否可见。只要多个第二视线点中存在在第一视线点可见的第二视线点,则确定第二虚拟对象为第一虚拟对象的可见虚拟对象。通过对多个第二视线点进行是否可见的检测,实现了多方位检测,提高了检测真实性,在特殊地形容易遮挡虚拟对象的情况下,通过多方位检测,使得第一虚拟对象能够相对容易地发现可见虚拟对象,提高真实性。
附图说明
41.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
42.图1是本技术实施例提供的一种可见虚拟对象的确定方法的实施环境示意图;
43.图2是本技术实施例提供的一种可见虚拟对象的确定方法的流程图;
44.图3是本技术实施例提供的一种视野距离的扩大示意图;
45.图4是本技术实施例提供的一种第一视野信息的示意图;
46.图5是本技术实施例提供的一种线路轨迹检测的流程图;
47.图6是本技术实施例提供的一种对虚拟对象进行检测的示意图;
48.图7是本技术实施例提供的一种线路轨迹检测的示意图;
49.图8是本技术实施例提供的另一种线路轨迹检测的示意图;
50.图9是本技术实施例提供的一种非玩家角色发现玩家角色的示意图;
51.图10是本技术实施例提供的一种可见虚拟对象的确定装置的结构示意图;
52.图11是本技术实施例提供的一种终端设备的结构示意图;
53.图12是本技术实施例提供的一种服务器的结构示意图。
具体实施方式
54.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
55.图1是本技术实施例提供的一种可见虚拟对象的确定方法的实施环境示意图,如图1所示,该实施环境包括终端设备101和服务器102。其中,本技术实施例中的可见虚拟对象的确定方法可以由终端设备101执行,也可以由服务器102执行,或者由终端设备101和服务器102共同执行。
56.终端设备101可以是智能手机、游戏主机、台式计算机、平板电脑、膝上型便携计算机、智能电视、智能车载设备、智能语音交互设备、智能家电等。服务器102可以为一台服务器,或者为多台服务器组成的服务器集群,或者为云计算平台和虚拟化中心中的任意一种,本技术实施例对此不加以限定。服务器102可以与终端设备101通过有线网络或无线网络进行通信连接。服务器102可以具有数据处理、数据存储以及数据收发等功能,在本技术实施例中不加以限定。终端设备101和服务器102的数量不受限制,可以是一个或多个。
57.本技术各可选实现方式可以基于人工智能(artificial intelligence,ai)技术实现。人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
58.人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习、自动驾驶、智慧交通等几大方向。
59.随着计算机技术的不断发展,游戏成为人们日常生活的一部分。在游戏对局中,需要确定一个虚拟对象是否为非玩家角色(non-player character,npc)的可见虚拟对象,若该虚拟对象为npc的可见虚拟对象,则确定该虚拟对象与npc可以进行交互。基于此,如何确定可见虚拟对象成为一个关键性的技术。
60.本技术实施例提供了一种可见虚拟对象的确定方法,该方法可应用于上述实施环境中,可以确定一个虚拟对象是否为另一个虚拟对象的可见虚拟对象,提高视野检测的真实性。以图2所示的本技术实施例提供的一种可见虚拟对象的确定方法的流程图为例,为便于描述,将执行本技术实施例中的可见虚拟对象的确定方法的终端设备101或者服务器102称为电子设备,该方法可以由电子设备来执行。如图2所示,该方法包括如下步骤。
61.步骤201,获取第一虚拟对象的目标视野信息和第一视线点,第一视线点位于第一虚拟对象的指定部位。
62.第一虚拟对象为受计算机程序操控的虚拟对象。一般情况下,受计算机程序操控的虚拟对象可以基于配置好的计算机程序自行驱动,不需要玩家来操控,因此,这类虚拟对象也叫非玩家角色(non-player character,npc)。即第一虚拟对象为npc。
63.虚拟对象可以是通过三维建模技术建模出的任意物体的物体模型。物体可以是真实世界的物体,也可以是虚构的物体。从物体结构方面对第一虚拟对象进行划分,可以得到多个部位,例如,第一虚拟对象为人物模型,可以从人物结构方面将第一虚拟对象划分为头部、手部、脚部、躯干等部位。对于任一个部位,可以在该部位绑定一个视线点,当然,也可以不在该部位绑定视线点。其中,多个部位中指定部位的视线点记为第一视线点。例如,将头部的视线点记为第一视线点。
64.通过为第一虚拟对象设置视野信息,使得第一虚拟对象具有视觉能力,可以看到与第一虚拟对象位于同一游戏对局的其他虚拟对象。本技术实施例中,游戏对局中的任一帧游戏画面可以包括第一虚拟对象,也可以不包括第一虚拟对象。对于包括第一虚拟对象的当前帧游戏画面,可以基于当前帧游戏画面对应的游戏数据确定第一虚拟对象的目标视野信息。
65.在一种可能的实现方式中,步骤201中“获取第一虚拟对象的目标视野信息”包括步骤2021至步骤2022(图中未示出)。
66.步骤2021,获取第一虚拟对象的第一视野信息。
67.本技术实施例中,可以为第一虚拟对象配置初始视野信息。对于游戏对局中的第一帧游戏画面,如果第一虚拟对象满足视野更新条件,则对初始视野信息进行更新,将更新后的初始视野信息作为第一帧游戏画面对应的视野信息;如果第一虚拟对象不满足视野更新条件,则将初始视野信息作为第一帧游戏画面对应的视野信息。对于游戏对局中的第二帧游戏画面,如果第二虚拟对象满足视野更新条件,则对第一帧游戏画面对应的视野信息进行更新,将更新后的视野信息作为第二帧游戏画面对应的视野信息;如果第一虚拟对象不满足视野更新条件,则将第一帧游戏画面对应的视野信息作为第二帧游戏画面对应的视野信息。以此类推,可以得到当前帧游戏画面的上一帧游戏画面对应的视野信息,上一帧游戏画面对应的视野信息即为第一虚拟对象的第一视野信息。其中,对视野信息进行更新的方式可以见步骤2022的描述,在此不再赘述。
68.步骤2022,若第一虚拟对象满足视野更新条件,对第一视野信息进行更新,得到目标视野信息。
69.可以为第一虚拟对象配置一个感知组件(perception component),通过该感知组件封装第一虚拟对象的视野信息以及视野信息的更新方法。在第一虚拟对象的生命周期中,每当第一虚拟对象满足视野更新条件时,通过一个接口访问感知组件,读取视野信息并更新该视野信息,实现了人工智能化感知组件(artificial intelligence perception component,ai perception component)。
70.对于当前帧游戏画面,由于感知组件封装有第一虚拟对象的视野信息,因此,可以通过接口访问感知组件,读取到第一视野信息。又由于感知组件封装有视野信息的更新方法,因此,通过接口访问感知组件,可以实现对第一视野信息进行更新。
71.通过接口在第一虚拟对象满足视野更新条件的情况下访问感知组件,可选地,第一虚拟对象满足视野更新条件包括第一情况、第二情况和第三情况中的至少一项。第一情况为:第一虚拟对象的水平视野的边缘与虚拟地面的高度满足高度条件。第二情况为:第一虚拟对象所处虚拟环境中的虚拟天气发生变化。第三情况为:第一虚拟对象的战斗状态发生变化。其中,战斗状态表征第一虚拟对象是否与其他虚拟对象发生战斗。可以基于如下所示的实现方式a、实现方式b和实现方式c中的任一项,对第一视野信息进行更新。
72.实现方式a,第一虚拟对象满足视野更新条件包括第一情况。这种情况下,在步骤2022之前,还包括步骤a1(图中未示出)。
73.步骤a1,若初始化第一虚拟对象或者第一虚拟对象移动,则基于第一视线点和第一视野信息,确定水平视野的边缘与虚拟地面的高度。
74.在初始化第一虚拟对象的情况下,即在第一虚拟对象出生的情况下,或者,在第一虚拟对象移动的情况下,可以基于第一视线点和第一视野信息进行线路轨迹(line trace)检测,得到水平视野。其中,水平视野指的是:第一视野信息对应的第一视线点所在水平面上的视野。比如,第一视野信息描述以第一视线点为中心的球,则水平视野为第一视线点所在的球的水平切面。
75.确定水平视野之后,相当于确定了水平视野的海拔。当前帧游戏画面对应的游戏数据包括虚拟地面的数据,虚拟地面的数据可以反应位于水平视野边缘下方的虚拟地面的海拔。通过水平视野的海拔和位于水平视野边缘下方的虚拟地面的海拔,可以确定水平视野的边缘与地面之间的高度。请参见图3,在图3中,第一视野信息可以描述以第一视线点为
中心、以第一视野距离为半径的球,则水平视野为第一视线点所在的球的水平切面。在确定出水平视野之后,可以确定出水平视野的边缘与地面之间的高度。
76.本技术实施例中,第一虚拟对象满足视野更新条件包括高度满足高度条件。这种情况下,步骤2022可以包括步骤a2(图中未示出)。
77.步骤a2,基于高度对第一视野信息进行更新,得到目标视野信息。其中,可以基于高度扩大第一视野信息,也可以基于高度缩小第一视野信息。
78.在一种可能的实现方式中,高度满足高度条件包括高度大于第一高度阈值。这种情况下,可以基于高度扩大第一视野信息。
79.本技术实施例不对第一高度阈值做限定。示例性地,第一高度阈值是设定的数据,例如,第一高度阈值为300。或者,每一帧游戏画面对应一个第一高度阈值,可以按照步骤a1的方式,基于上一帧游戏画面对应的游戏数据,确定水平视野的边缘与虚拟地面的参考高度,基于参考高度确定当前帧游戏画面对应的第一高度阈值,例如,第一高度阈值为参考高度或者第一高度阈值和参考高度满足某一线性关系。
80.本技术实施例中,第一视野信息包括第一视野距离,第一视野距离是上一帧游戏画面对应的第一视线点到视野边缘之间的距离。需要说明的是,第一虚拟对象对应规则视野(例如,第一虚拟对象对应球状视野)或者不规则视野(例如,第一虚拟对象对应至少一个椎体视野),基于此,第一视野距离为至少一个。
81.可选地,步骤a2包括步骤a21至步骤a23(图中未示出)。
82.步骤a21,基于高度扩大第一视野距离,得到第二视野距离。
83.如果当前帧游戏画面的高度大于第一高度阈值,则基于高度和第一视野距离,对第一视野距离进行扩大。可选地,按照如下所示的公式(1)进行视野距离的扩大。
84.range2 = range1 height*w
ꢀꢀꢀꢀ
公式(1)
85.其中,range2表征第二视野距离,range1表征第一视野距离,height表征高度,w表征权重。本技术实施例不对权重的取值做限定,示例性地,w1=1.5。
86.步骤a22,若第二视野距离大于第一视野阈值,基于第一视野阈值确定目标视野信息。
87.本技术实施例不对第一视野阈值做限定。示例性地,第一视野阈值是设定的数据,例如,第一视野阈值为3000。或者,第一视野阈值基于第一视野距离确定,例如,第一视野阈值与第一视野距离之间的差值不大于设定数据,例如,第一视野阈值与第一视野距离之间的差值不大于1500。
88.若第二视野距离大于第一视野阈值,则将第一视野信息中的第一视野距离替换为第一视野阈值,得到目标视野信息。
89.步骤a23,若第二视野距离不大于第一视野阈值,基于第二视野距离确定目标视野信息。
90.若第二视野距离不大于第一视野阈值,则将第一视野信息中的第一视野距离替换为第二视野距离,得到目标视野信息。
91.下面结合图3来对步骤a21至步骤a23进行说明。如果水平视野的边缘与地面之间的高度大于第一高度阈值,则在第一视野距离的基础上,扩大视觉距离。其中,高度越高,视野距离越大,且视野距离最大不超过第一视野阈值。
92.本技术实施例中,通过将第一视野信息中的第一视野距离替换为第二视野距离或者第一视野阈值,且第二视野距离、第一视野阈值均大于第一视野距离,实现了对第一视野信息的扩大,实现了站得高看的远。通过保证视野距离最大不超过第一视野阈值,实现了模拟真实的生物视觉,提高真实性。
93.在另一种可能的实现方式中,高度满足高度条件包括高度小于第二高度阈值,这种情况下,可以基于高度缩小第一视野信息。可选地,第二高度阈值小于或者等于第一高度阈值。
94.本技术实施例不对第一高度阈值做限定。示例性地,第一高度阈值是设定的数据,例如,第一高度阈值为300。或者,每一帧游戏画面对应一个第一高度阈值,可以按照步骤a1的方式,基于上一帧游戏画面对应的游戏数据,确定水平视野的边缘与虚拟地面的参考高度,基于参考高度确定当前帧游戏画面对应的第一高度阈值,例如,第一高度阈值为参考高度或者第一高度阈值和参考高度满足某一线性关系。
95.本技术实施例中,第一视野信息包括第一视野距离。可选地,步骤a2包括步骤a24至步骤a26(图中未示出)。
96.步骤a24,基于高度缩小第一视野距离,得到第三视野距离。
97.如果当前帧游戏画面的高度小于第二高度阈值,则基于高度和第一视野距离,对第一视野距离进行缩小。可选地,按照如下所示的公式(2)进行视野距离的缩小。
98.range3 = range1-height*w
ꢀꢀꢀꢀ
公式(2)
99.其中,range3表征第三视野距离,range1表征第一视野距离,height表征高度,w表征权重。本技术实施例不对权重的取值做限定,示例性地,w1=1.5。
100.步骤a25,若第三视野距离小于第二视野阈值,基于第二视野阈值确定目标视野信息。
101.可选地,第二视野阈值小于第一视野阈值。本技术实施例不对第二视野阈值做限定。示例性地,第二视野阈值是设定的数据,例如,第二视野阈值为1000。或者,第二视野阈值基于第一视野距离确定,例如,第二视野阈值与第一视野距离之间的差值不小于设定数据,例如,第二视野阈值与第一视野距离之间的差值不小于400。
102.若第三视野距离小于第二视野阈值,则将第一视野信息中的第一视野距离替换为第二视野阈值,得到目标视野信息。
103.步骤a26,若第三视野距离不小于第二视野阈值,基于第三视野距离确定目标视野信息。
104.若第三视野距离不小于第二视野阈值,则将第一视野信息中的第一视野距离替换为第三视野距离,得到目标视野信息。
105.本技术实施例中,通过将第一视野信息中的第一视野距离替换为第三视野距离或者第二视野阈值,且第三视野距离、第二视野阈值均小于第一视野距离,实现了对第一视野信息的缩小,实现了站得低看的近。通过保证视野距离最小不超过第二视野阈值,实现了模拟真实的生物视觉,提高真实性。
106.实现方式b,第一虚拟对象满足视野更新条件包括第二情况。这种情况下,步骤2022包括步骤b1至步骤b2(图中未示出)。
107.步骤b1,获取虚拟天气的变化信息。
108.当前帧游戏画面对应的游戏数据包括虚拟天气的数据,上一帧游戏画面对应的游戏数据也包括虚拟天气的数据。虚拟天气的数据用于描述虚拟天气,一般情况下,虚拟天气可以包括晴天、雨天、雾天、雪天等任一类型的天气,而任两个类型的天气的能见度存在差异。能见度指的是将目标物从背景中识别出来的最大距离。例如,晴天的能见度高于雨天、雾天和雪天的能见度。
109.若当前帧游戏画面对应的虚拟天气的数据和上一帧游戏画面对应的虚拟天气的数据相同,则确定虚拟天气未发生变化。若当前帧游戏画面对应的虚拟天气的数据和上一帧游戏画面对应的虚拟天气的数据不同,则确定虚拟天气发生变化,这种情况下,可以确定第一虚拟对象满足视野更新条件。
110.可以基于当前帧游戏画面对应的虚拟天气的数据和上一帧游戏画面对应的虚拟天气的数据,确定差异信息,该差异信息对应虚拟天气的变化信息。例如,上一帧游戏画面对应的虚拟天气的数据用于描述晴天,而当前帧游戏画面对应的虚拟天气的数据用于描述雨天,则差异信息对应虚拟天气从晴天变化到雨天的变化信息。
111.步骤b2,若虚拟天气的变化信息表征能见度降低,缩小第一视野信息,得到目标视野信息;若虚拟天气的变化信息表征能见度提高,扩大第一视野信息,得到目标视野信息。
112.基于虚拟天气的变化信息,可以确定能见度的变化信息。能见度的变化信息包括能见度降低和能见度提高。
113.若能见度的变化信息反应了能见度降低,则对第一视野信息中的第一视野距离进行缩小,得到第三视野距离。将第一视野信息中的第一视野距离替换为第三视野距离,得到目标视野信息。或者,若第三视野距离小于第二视野阈值,则将第一视野信息中的第一视野距离替换为第二视野阈值,得到目标视野信息。若第三视野距离不小于第二视野阈值,则将第一视野信息中的第一视野距离替换为第三视野距离,得到目标视野信息。通过这种方式,实现了缩小第一视野信息。
114.若能见度的变化信息反应了能见度提高,则对第一视野信息中的第一视野距离进行扩大,得到第二视野距离。将第一视野信息中的第一视野距离替换为第二视野距离,得到目标视野信息。或者,若第二视野距离大于第一视野阈值,则将第一视野信息中的第一视野距离替换为第一视野阈值,得到目标视野信息。若第二视野距离不大于第一视野阈值,则将第一视野信息中的第一视野距离替换为第二视野距离,得到目标视野信息。通过这种方式,实现了扩大第一视野信息。
115.本技术实施例中,如果第一虚拟对象所处虚拟环境的能见度提高,则扩大第一视野信息;如果第一虚拟对象所处虚拟环境的能见度降低,则缩小第一视野信息。通过虚拟天气的变化信息,及时更新第一虚拟对象的视野信息,实现了模拟真实的生物视觉,提高真实性。
116.实现方式c,第一虚拟对象满足视野更新条件包括第三情况。第三情况为:第一虚拟对象的战斗状态发生变化。
117.当前帧游戏画面对应的游戏数据包括第一虚拟对象的数据,上一帧游戏画面对应的游戏数据也包括第一虚拟对象的数据。第一虚拟对象的数据用于描述第一虚拟对象。通过当前帧游戏画面对应的第一虚拟对象的数据,可以确定第一虚拟对象是否与其他虚拟对象发生战斗,从而得到当前帧游戏画面对应的第一虚拟对象的战斗状态。同样地,通过上一
帧游戏画面对应的第一虚拟对象的数据,可以确定第一虚拟对象是否与其他虚拟对象发生战斗,从而得到上一帧游戏画面对应的第一虚拟对象的战斗状态。其中,可以采用下述步骤c1至c2(图中未示出)来确定任一帧游戏画面对应的第一虚拟对象的战斗状态。
118.可选地,第一视野信息包括第一层级的视野信息、第二层级的视野信息和第三层级的视野信息,第一层级的视野信息对应的第一视野范围包括第二层级的视野信息对应的第二视野范围,第二视野范围包括第三层级的视野信息对应的第三视野范围。
119.任一层级的视野信息用于描述该层级对应的视野范围。本技术实施例不对任一层级对应的视野范围做限定,示例性地,任一层级对应的视野范围包括椎体、球体、柱体、多面体等中的至少一项立体几何的范围。
120.请参见图4中的(1),图4中的(1)示出了一个层级对应的水平视野范围,该水平视野范围包括两个扇形,第一个扇形的角度小于180度,第二个扇形的角度大于180度,第一个扇形的半径大于第二个扇形的半径,且两个扇形对应同一个扇心。可以理解的是,任一个扇形可以是球锥的水平截面,基于此,这个层级对应的视野范围包括这两个扇形对应的球锥的范围。
121.第i层级的视野信息对应的第i视野范围,i取值一至三中的任一项。第一视野范围包括第二视野范围,第二视野范围包括第三视野范围。如图4中的(2),图4中的(2)示出了三个层级对应的视野范围,一个层级对应的视野范围如图4中的(1)所示。对于图4中的(2)所示出的三个层级对应的视野范围,从外到内依次对应:第一层级的视野信息对应的第一视野范围、第二层级的视野信息对应的第二视野范围、和第三层级的视野信息对应的第三视野范围。其中,第一视野范围包括第二视野范围,第二视野范围包括第三视野范围。
122.本技术实施例中,任一层级的视野信息包括至少一个子视野信息。任一层级对应的视野范围包括至少一项立体几何的范围,而任一项立体几何为至少一个,一个子视野信息用于描述一个立体几何的范围。也就是说,第一视野信息包括多个子视野信息。可以为第一虚拟对象配置多个子感知组件,通过一个子感知组件封装一个子视野信息,这样有利于实现单独配置子视野信息。感知组件可以调用各个子感知组件封装的子视野信息,对各个子视野信息进行汇总处理。
123.本技术实施例中,该方法还包括步骤c1至c2。其中,步骤c1至步骤c2在步骤c3之前执行。
124.步骤c1,若第三视野范围内存在可见虚拟对象,或者,第二视野范围中除第三视野范围之外的视野范围内存在可见虚拟对象且可见虚拟对象为第一姿态,则确定战斗状态为第一状态,第一状态表征第一虚拟对象与其他虚拟对象发生战斗。
125.对于当前帧游戏画面或者上一帧游戏画面,可以按照201至步骤204的方式,确定任一视野范围内是否存在可见虚拟对象。
126.本技术实施例中,第三层级对应战斗层级。若存在可见虚拟对象位于第一虚拟对象的战斗层级内,说明第三视野范围内存在可见虚拟对象,可以确定第一虚拟对象的战斗状态为第一状态,通过第一状态表征第一虚拟对象与其他虚拟对象发生战斗。
127.第二层级对应潜行层级,若不存在可见虚拟对象位于第一虚拟对象的战斗层级内,但存在可见虚拟对象位于第一虚拟对象的战斗层级外,且该可见虚拟对象位于潜行层级内,此时,需要检测该可见虚拟对象的姿态。可选地,可以获取该可见虚拟对象的姿态数
据,可见虚拟对象的姿态数据用于描述可见虚拟对象的姿态。一般情况下,可见虚拟对象的姿态包括卧倒姿态、下蹲姿态、站立姿态等任一种姿态。如果可见虚拟对象的姿态数据描述了可见虚拟对象处于站立姿态,则确定第一虚拟对象的战斗状态为第一状态,通过第一状态表征第一虚拟对象与其他虚拟对象发生战斗。
128.步骤c2,若第二视野范围中除第三视野范围之外的视野范围内存在可见虚拟对象且可见虚拟对象为第二姿态,或者,第一视野范围中除第二视野范围之外的视野范围内存在可见虚拟对象,则确定战斗状态为第二状态,第二状态表征第一虚拟对象未与其他虚拟对象发生战斗。
129.若不存在可见虚拟对象位于第一虚拟对象的战斗层级内,但存在可见虚拟对象位于第一虚拟对象的战斗层级外,且该可见虚拟对象位于潜行层级内,则可以获取该可见虚拟对象的姿态数据。如果可见虚拟对象的姿态数据描述了可见虚拟对象处于卧倒姿态,则确定第一虚拟对象的战斗状态为第二状态,通过第二状态表征第一虚拟对象未与其他虚拟对象发生战斗。
130.可以理解的是,如果可见虚拟对象的姿态数据描述了可见虚拟对象处于下蹲姿态,则确定第一虚拟对象的战斗状态为第一状态或者第二状态,通过第一状态表征第一虚拟对象与其他虚拟对象发生战斗,通过第二状态表征第一虚拟对象未与其他虚拟对象发生战斗。
131.第一层级对应警戒层级。若不存在可见虚拟对象位于第一虚拟对象的战斗层级内,且不存在可见虚拟对象位于第一虚拟对象的潜行层级内。但存在可见虚拟对象位于潜行层级外,且该可见虚拟对象位于警戒层级内,说明第一视野范围内存在可见虚拟对象,可以确定第一虚拟对象的战斗状态为第二状态,通过第二状态表征第一虚拟对象未与其他虚拟对象发生战斗。
132.按照步骤c1至步骤c2,可以确定上一帧游戏画面对应的第一虚拟对象的战斗状态和当前帧游戏画面对应的第一虚拟对象的战斗状态。若当前帧游戏画面对应的第一虚拟对象的战斗状态和上一帧游戏画面对应的第一虚拟对象的战斗状态相同,则确定第一虚拟对象的战斗状态未发生变化。若当前帧游戏画面对应的第一虚拟对象的战斗状态和上一帧游戏画面对应的第一虚拟对象的战斗状态不同,则确定第一虚拟对象的战斗状态发生变化,这种情况下,可以确定第一虚拟对象满足视野更新条件。可选地,步骤2022包括步骤c3(图中未示出)。
133.步骤c3,若变化后的战斗状态表征第一虚拟对象与其他虚拟对象发生战斗,缩小第一视野信息,得到目标视野信息;若变化后的战斗状态表征第一虚拟对象未与其他虚拟对象发生战斗,扩大第一视野信息,得到目标视野信息。
134.在第一虚拟对象的战斗状态发生变化的情况下,如果上一帧游戏画面对应的第一虚拟对象的战斗状态为:第一虚拟对象与其他虚拟对象发生战斗,则当前帧游戏画面对应的第一虚拟对象的战斗状态为:第一虚拟对象未与其他虚拟对象发生战斗。如果上一帧游戏画面对应的第一虚拟对象的战斗状态为:第一虚拟对象未与其他虚拟对象发生战斗,则当前帧游戏画面对应的第一虚拟对象的战斗状态为:第一虚拟对象与其他虚拟对象发生战斗。可以基于当前帧游戏画面对应的第一虚拟对象的战斗状态,对第一视野信息进行更新。
135.如果当前帧游戏画面对应的第一虚拟对象的战斗状态(也即,变化后的战斗状态)
为:第一虚拟对象未与其他虚拟对象发生战斗,则对第一视野信息中的第一视野距离进行扩大,得到第二视野距离。将第一视野信息中的第一视野距离替换为第二视野距离,得到目标视野信息。或者,若第二视野距离大于第一视野阈值,则将第一视野信息中的第一视野距离替换为第一视野阈值,得到目标视野信息。若第二视野距离不大于第一视野阈值,则将第一视野信息中的第一视野距离替换为第二视野距离,得到目标视野信息。通过这种方式,实现扩大第一视野信息。
136.如果当前帧游戏画面对应的第一虚拟对象的战斗状态(也即,变化后的战斗状态)为:第一虚拟对象与其他虚拟对象发生战斗,则对第一视野信息中的第一视野距离进行缩小,得到第三视野距离。将第一视野信息中的第一视野距离替换为第三视野距离,得到目标视野信息。或者,若第三视野距离小于第二视野阈值,则将第一视野信息中的第一视野距离替换为第二视野阈值,得到目标视野信息。若第三视野距离不小于第二视野阈值,则将第一视野信息中的第一视野距离替换为第三视野距离,得到目标视野信息。通过这种方式,实现缩小第一视野信息。
137.本技术实施例可以基于第一虚拟对象的战斗状态,灵活变更第一虚拟对象的视野信息。在第一虚拟对象与其他虚拟对象发生战斗时,视野距离较小,使得第一虚拟对象的视野更聚焦在战斗场景中;在第一虚拟对象未与其他虚拟对象发生战斗时,视野距离较大,使得第一虚拟对象的视野侧重在观察方面,提高第一虚拟对象的智能化。
138.可以理解的是,如果第一虚拟对象不满足视野更新条件,则可以将上一帧游戏画面对应的第一视野信息作为当前帧游戏画面对应的目标视野信息。
139.步骤202,获取第二虚拟对象的多个第二视线点,第一虚拟对象和第二虚拟对象位于同一个游戏对局,任一个第二视线点位于第二虚拟对象的一个部位。
140.初始化一个虚拟对象,相当于该虚拟对象出生。每初始化一个虚拟对象,会在感知(perception)系统将该虚拟对象注册为视觉查询队列(sight query queue)中的一员,在该虚拟对象从出生至销毁的整个生命周期中,该虚拟对象都是视野查询队列中的一员。
141.与第一虚拟对象处于同一个游戏对局中的、除第一虚拟对象之外的任一个其他虚拟对象,均可以作为第二虚拟对象。或者,可以获取任一个其他虚拟对象的位置,如果基于其他虚拟对象的位置,确定其他虚拟对象位于第一虚拟对象的目标视野信息对应的视野范围内,则将该其他虚拟对象作为第二虚拟对象。第二虚拟对象的数量为至少一个。任一个第二虚拟对象可以为npc,也可以为玩家角色(player character,pc)。其中,pc是受玩家操控的虚拟对象。
142.第二虚拟对象可以是通过三维建模技术对物体进行建模得到的物体模型,该物体可以是现实存在的物体,也可以是虚构的物体。例如,第二虚拟对象可以为人物模型、鸟兽模型、精怪模型等。一个第二虚拟对象存在多个部位,一个部位可以对应一个第二视线点,也可以不对应第二视线点。任两个第二视线点位于第二虚拟对象的不同部位上。例如,第二虚拟对象包括头部、肩部、手、膝盖、脚等部位,在头部、手和脚各存在一个第二视线点,则该第二虚拟对象共存在五个第二视线点。
143.步骤203,对于任一个第二视线点,若任一个第二视线点满足目标检测条件,则基于第一视线点和目标视野信息,对任一个第二视线点进行检测,得到任一个第二视线点的检测结果,任一个第二视线点的检测结果表征任一个第二视线点在第一视线点是否可见。
其中,第二视线点在第一视线点可见相当于第一虚拟对象可见第二视线点,第二视线点在第一视线点不可见相当于第一虚拟对象不可见第二视线点。
144.在任一个第二视线点满足目标检测条件的情况下,如果任一个第二视线点与第一视线点之间的连线位于目标视野信息对应的视野范围内,说明该第二视线点位于视野范围内。如果该连线并未穿过不透光物体,说明光线从第一视线点出发可以到达该第二视线点。这种情况下,该第二视线点在第一视线点可见,相当于第一虚拟对象可以看到第二虚拟对象上该第二视线点所在的部位。可以理解的是,连线未穿过不透光物体包括连线穿过透光物体(例如,连线穿过玻璃等透光物体)和连线未穿过任何物体。
145.如果任一个第二视线点与第一视线点之间的连线位于目标视野信息对应的视野范围外,说明该第二视线点位于视野范围外,这种情况下,该第二视线点在第一视线点不可见。如果任一个第二视线点与第一视线点之间的连线穿过不透光物体,说明光线从第一视线点出发无法到达该第二视线点。这种情况下,该第二视线点在第一视线点也不可见。当然,如果任一个第二视线点与第一视线点之间的连线位于目标视野信息对应的视野范围外,且该连线穿过不透光物体,则该第二视线点在第一视线点不可见。其中,第二视线点在第一视线点不可见,相当于第一虚拟对象无法看到第二虚拟对象上该第二视线点所在的部位。
146.本技术实施例中,第二虚拟对象为至少一个。在一种可能的实现方式中,确定步骤203中“任一个第二视线点满足目标检测条件”的步骤包括步骤2031至步骤2033(图中未示出)。
147.步骤2031,获取各个第二虚拟对象的检测优先级和各个第二视线点的检测优先级。
148.由于游戏对局中存在至少一个第二虚拟对象,因此,需要确定各个第二虚拟对象的检测优先级。任一个第二虚拟对象的检测优先级可以反映该第二虚拟对象进行线路轨迹检测的顺序。第二虚拟对象的检测优先级越高,则该第二虚拟对象越优先进行线路轨迹检测,也即是说,第二虚拟对象的检测优先级与该第二虚拟对象进行线路轨迹检测的顺序正相关。
149.可选地,目标视野信息包括多个子视野信息。本技术实施例中,目标视野信息是第一视野信息或者通过第一视野信息进行更新得到,因此,目标视野信息也包括第一层级的视野信息、第二层级的视野信息和第三层级的视野信息,且第一视野范围包括第二视野范围,第二视野范围包括第三视野范围。
150.其中,任一层级对应的视野范围包括椎体、球体、柱体、多面体等中的至少一项立体几何的范围,而任一项立体几何可以为至少一个。本技术实施例中,一个子视野信息用于描述一个立体几何的范围。如图4中的(1)对应两个子视野信息,一个子视野信息描述角度小于180度的扇形对应的球锥的范围,另一个子视野信息描述角度大于180度的扇形对应的球锥的范围。同样地,图4中的(2)共有六个扇形,共对应六个子视野信息,一个子视野信息描述一个扇形对应的球锥的范围。
151.在示例性实施例中,步骤2031中“获取各个第二虚拟对象的检测优先级”,包括:对于任一个第二虚拟对象,基于任一个第二虚拟对象的位置,确定任一个第二虚拟对象的子视野信息;基于第一虚拟对象与任一个第二虚拟对象的距离以及任一个第二虚拟对象的子
视野信息,确定任一个第二虚拟对象的检测优先级。
152.可以基于任一个第二虚拟对象的位置和第一虚拟对象的位置,确定该第二虚拟对象相对于第一虚拟对象的方向、该第二虚拟对象与第一虚拟对象的距离。对于任一个子视野信息,判断该方向是否位于该子视野信息对应的子视野角度内,以及判断距离是否不大于该子视野信息对应的子视野距离。如果该方向位于该子视野信息对应的子视野角度内,且距离不大于该子视野信息对应的子视野距离,则确定该第二虚拟对象对应该子视野信息。如果该方向没有位于该子视野信息对应的子视野角度内,和/或,距离大于该子视野信息对应的子视野距离,则确定该第二虚拟对象不对应该子视野信息。
153.一般情况下,一个第二虚拟对象对应一个子视野信息。如果存在一个第二虚拟对象对应多个子视野信息,则从这些子视野信息中确定任意一个子视野信息(例如,确定子视野距离最大或者最小的子视野信息),将该子视野信息作为该第二虚拟对象对应的子视野信息。
154.对于任一个第二虚拟对象,基于该第二虚拟对象的位置和第一虚拟对象的位置,可以确定第一虚拟对象与该第二虚拟对象的距离。基于该距离和该第二虚拟对象的子视野信息包括的子视野距离,确定该第二虚拟对象的检测优先级。
155.可选地,将第一虚拟对象与任一个第二虚拟对象的距离(可以记为l1)除以该第二虚拟对象的子视野信息包括的子视野距离(可以记为l2),即计算l1/l2,得到该第二虚拟对象的得分,通过第二虚拟对象的得分反映第二虚拟对象相对于第一虚拟对象的重要程度。对各个第二虚拟对象的得分进行排序,基于排序结果确定各个第二虚拟对象的检测优先级。例如,按照第二虚拟对象的得分从大到小的顺序进行排序,第二虚拟对象的排序序号即为第二虚拟对象的检测优先级。也就是说,如果第二虚拟对象的排序序号为第一位(即得分最高),则第二虚拟对象的检测优先级越高,如果第二虚拟对象的排序序号为第二位(即得分第二高),则第二虚拟对象的检测优先级为第二,以此类推。也即是说,第二虚拟对象的得分与第二虚拟对象的检测优先级正相关。
156.对于任一个第二虚拟对象,由于该第二虚拟对象包括多个第二视线点,因此,需要确定各个第二视线点的检测优先级。任一个第二视线点的检测优先级可以反映该第二视线点进行线路轨迹检测的顺序。第二视线点的检测优先级越高,则该第二视线点越优先进行线路轨迹检测,也即是说,第二视线点的检测优先级与该第二视线点进行线路轨迹检测的顺序正相关。
157.可选地,对于一个第二虚拟对象,可以设定该第二虚拟对象包括的各个第二视线点的检测优先级。例如,一个第二虚拟对象包括位于头部、双手和双脚的五个第二视线点,则可以设定:位于头部的第二视线点的检测优先级高于位于左手部位的第二视线点的检测优先级,位于左手部位的第二视线点的检测优先级高于位于右手部位的第二视线点的检测优先级,位于右手部位的第二视线点的检测优先级高于位于左脚部位的第二视线点的检测优先级,位于左脚部位的第二视线点的检测优先级高于位于右脚部位的第二视线点的检测优先级。
158.步骤2032,获取当前检测次数,当前检测次数是第一检测的次数和第二检测的次数之和,第一检测是对检测优先级位于任一个第二视线点所在第二虚拟对象之前的第二虚拟对象的第二视线点进行的检测,第二检测是对任一个第二视线点所在第二虚拟对象上检
测优先级位于任一个第二视线点之前的第二视线点进行的检测。
159.对任一个第二虚拟对象包括的任一个第二视线点进行线路轨迹检测前,可以获取第一检测的次数,而第一检测指的是对检测优先级位于该第二虚拟对象之前的第二虚拟对象的第二视线点进行的检测。比如,第二虚拟对象a的检测优先级高于第二虚拟对象b的检测优先级,第二虚拟对象b的检测优先级高于第二虚拟对象c的检测优先级,且第二虚拟对象a至c均包括第二视线点1至5。则对第二虚拟对象c包括的第二视线点4进行线路轨迹检测前,需要获取对第二虚拟对象a包括的第二视线点1至5进行线路轨迹检测的次数(最大次数为5次)和对第二虚拟对象b包括的第二视线点1至5进行线路轨迹检测的次数(最大次数为5次),从而得到第一检测的次数,第一检测的次数小于或者等于10。
160.此外,还需要获取第二检测的次数,第二检测指的是对该第二虚拟对象上检测优先级位于该第二视线点之前的第二视线点进行的检测。比如,第二虚拟对象c包括第二视线点1至5,且第二视线点1的检测优先级高于第二视线点2的检测优先级,第二视线点2的检测优先级高于第二视线点3的检测优先级,第二视线点3的检测优先级高于第二视线点4的检测优先级,第二视线点4的检测优先级高于第二视线点5的检测优先级。则对第二虚拟对象c包括的第二视线点4进行线路轨迹检测前,需要获取对第二虚拟对象c包括的第二视线点1至3进行线路轨迹检测的次数(即3次),从而得到第二检测的次数为3。
161.将第一检测的次数和第二检测的次数进行相加,得到当前检测次数。
162.步骤2033,若当前检测次数小于检测次数阈值,确定任一个第二视线点满足目标检测条件。
163.可以设定检测次数阈值。对任一个第二虚拟对象包括的任一个第二视线点进行线路轨迹检测前,需要判断当前检测次数与检测次数阈值之间的关系。如果当前检测次数小于检测次数阈值,则确定该第二视线点满足目标检测条件,可以对该第二视线点进行线路轨迹检测。如果当前检测次数不小于检测次数阈值,则确定该第二视线点不满足目标检测条件,不对该第二视线点进行线路轨迹检测。
164.请参见图5,图5是本技术实施例提供的一种线路轨迹检测的流程图。首先,获取第一虚拟对象的网格(mesh)和第二虚拟对象的网格,其中,虚拟对象的网格指的是虚拟对象的模型。第一虚拟对象包括位于网格指定部位的第一视线点,可以获取第一视线点的位置,第二虚拟对象包括位于网格多个部位的第二视线点,可以获取各个第二视线点的位置。
165.然后,对第一视线点和第一个第二视线点进行线路轨迹检测。如果成功命中,则确定第一个第二视线点为目标视线点,输出目标视线点所在的部位和检测次数,这种情况下,可以结束或者继续线路轨迹检测的流程。其中,这里的成功命中指的是:该第二视线点在第一视线点可见。如果未成功命中,则将检测次数加1,其中,这里的未成功命中指的是:该第二视线点在第一视线点不可见。
166.接着,对第一视线点和第二个第二视线点进行线路轨迹检测。如果成功命中,则确定第二个第二视线点为目标视线点,输出目标视线点所在的部位和检测次数,这种情况下,可以结束或者继续线路轨迹检测的流程。如果未成功命中,则将检测次数加1。以此类推。直至,对第一视线点和最后一个第二视线点进行线路轨迹检测。如果成功命中,则确定最后一个第二视线点为目标视线点,输出目标视线点所在的部位和检测次数。如果未成功命中,则将检测次数加1,并确定不存在目标视线点,输出检测次数。
167.可以理解的是,如果存在目标视线点,说明第一虚拟对象可以看到第二虚拟对象上目标视线点所在的部位,如果不存在目标视线点,说明第一虚拟对象看不到第二虚拟对象。
168.在对任一个第二视线点进行线路轨迹检测之前,可以确定当前的检测次数是否小于检测次数阈值。如果当前的检测次数小于检测次数阈值,则继续对该第二视线点进行线路轨迹检测;如果当前的检测次数不小于检测次数阈值,则不对该第二视线点进行线路轨迹检测,也就是说,结束线路轨迹检测的流程。
169.比如,当前的检测次数小于检测次数阈值,则对第一视线点和第一个第二视线点进行线路轨迹检测。接着,检测次数加1,当前的检测次数等于检测次数阈值,则不对第一视线点和第二个第二视线点进行线路轨迹检测,同样地,不对第一视线点和最后一个第二视线点进行线路轨迹检测。
170.设定检测次数阈值,相当于设定当前帧游戏画面对应的线路轨迹检测的最大次数。由于线路轨迹检测需要一定的时间,通过检测次数阈值,可以约束线路轨迹检测所需的时间,降低游戏卡顿的现象。
171.上文已提及,目标视野信息包括多个子视野信息。在一种可能的实现方式中,步骤203中的“基于第一视线点和目标视野信息,对任一个第二视线点进行检测,得到任一个第二视线点的检测结果”,包括步骤2034至步骤2035(图中未示出)。
172.步骤2034,若满足第一检测条件和第二检测条件,则确定任一个第二视线点的检测结果为第一结果,第一结果表征第一虚拟对象可见任一个第二视线点,满足第一检测条件是第一视线点与任一个第二视线点的连线位于至少一个子视野信息对应的视野范围内,满足第二检测条件是连线未穿过不透光物体。
173.可以基于任一个第二视线点的位置和第一视线点的位置,确定第一视线点与该第二视线点的连线,该连线对应一个方向。对于任一个子视野信息,判断该方向是否位于该子视野信息对应的子视野角度内。如果该方向位于该子视野信息对应的子视野角度内,则判断该连线是否位于该子视野信息对应的视野范围内。如果该连线位于该子视野信息对应的视野范围内,说明该连线位于目标视野信息对应的视野范围内,也就是说,该第二视线点位于第一虚拟对象的视野范围内。这种情况下,确定满足第一检测条件。
174.也就是说,只要存在子视野信息,使得第一视线点与任一个第二视线点的连线的方向位于该子视野信息对应的子视野角度内,且该连线位于该子视野信息对应的视野范围内,则确定满足第一检测条件。否则,确定不满足第一检测条件。
175.如果该连线并未穿过不透光物体,说明光线从第一视线点出发可以到达该第二视线点。这种情况下,确定满足第二检测条件。
176.如果满足第一检测条件,说明第二视线点位于第一虚拟对象的目标视野信息对应的视野范围内,在此基础上,如果满足第二检测条件,说明光线从第一视线点出发可以到达该第二视线点,也就是说,第一虚拟对象可以看到第二虚拟对象上该第二视线点所在的部位。这种情况下,可以确定第二视线点的检测结果为第一结果,通过第一结果表征第一虚拟对象可见该第二视线点。
177.步骤2035,若不满足第一检测条件和第二检测条件中的至少一项,则确定任一个第二视线点的检测结果为第二结果,第二结果表征第一虚拟对象不可见任一个第二视线
点。
178.如果不满足第一检测条件,说明第二视线点位于第一虚拟对象的目标视野信息对应的视野范围外,第一虚拟对象无法看到第二虚拟对象上该第二视线点所在的部位。如果不满足第二检测条件,说明光线从第一视线点出发无法到达该第二视线点,也就是说,第一虚拟对象无法看到第二虚拟对象上该第二视线点所在的部位。当然,如果不满足第一检测条件和第二检测条件,说明第二视线点位于第一虚拟对象的目标视野信息对应的视野范围外,且光线从第一视线点出发无法到达该第二视线点,第一虚拟对象无法看到第二虚拟对象上该第二视线点所在的部位。其中,在第一虚拟对象无法看到第二虚拟对象上任意第二视线点所在的部位的情况下,可以确定第二视线点的检测结果为第二结果,通过第二结果表征第一虚拟对象可见该第二视线点。
179.步骤204,若多个第二视线点中存在目标视线点的检测结果表征目标视线点在第一视线点可见,则将第二虚拟对象确定为第一虚拟对象的可见虚拟对象。其中,目标视线点在第一视线点可见相当于第一虚拟对象可见目标视线点。
180.可以确定任一个第二虚拟对象上各个第二视线点的检测结果。如果存在第二视线点的检测结果表征第一虚拟对象可见该第二视线点,则可以将该第二视线点记为目标视线点。如果所有第二视线点的检测结果均表征第一虚拟对象不可见该第二视线点,说明第二虚拟对象上不存在目标视线点。
181.第二虚拟对象上存在目标视线点,说明第一虚拟对象可见目标视线点,相当于第一虚拟对象可见第二虚拟对象。可以确定第二虚拟对象确定为第一虚拟对象的可见虚拟对象。
182.可以理解的是,本技术实施例提供的可见虚拟对象的确定方法可以被封装成一个组件,该组件对应一个接口,外部系统可以通过该接口调用这个组件,通过这个组件确定游戏中一个虚拟对象是否为另一个虚拟对象的可见虚拟对象。
183.需要说明的是,本技术所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关地区的相关法律法规和标准。例如,本技术中涉及到的视野信息等都是在充分授权的情况下获取的。
184.上述方法中,第一虚拟对象对应第一视线点,第二虚拟对象对应多个第二视线点。基于第一视线点和第一虚拟对象的目标视野信息,对任一个第二视线点进行检测,得到该第二视线点在第一视线点是否可见。只要多个第二视线点中存在在第一视线点可见的第二视线点,则确定第二虚拟对象为第一虚拟对象的可见虚拟对象。通过对多个第二视线点进行是否可见的检测,实现了多方位检测,提高了检测真实性,在特殊地形容易遮挡虚拟对象的情况下,通过多方位检测,使得第一虚拟对象能够相对容易地发现可见虚拟对象,提高真实性。
185.上文从方法步骤的角度阐述了本技术实施例提供的可见虚拟对象的确定方法,下面来系统地介绍说明。请参见图6,图6是本技术实施例提供的一种对虚拟对象进行检测的示意图。
186.本技术实施例中,一个游戏对局对应一个视觉查询队列。在开始游戏对局之后,每初始化一个虚拟对象,将该虚拟对象注册为视觉查询队列中的一员。对于带有视觉能力的
npc(对应第一虚拟对象),在游戏对局的任一帧游戏画面,可以遍历视觉查询队列,从视觉查询队列中选择虚拟对象,并基于npc的视锥体,对该虚拟对象进行视锥体检测。其中,npc的视锥体指的是npc的视野范围,对虚拟对象进行视锥体检测就是确定虚拟对象是否位于npc的视野范围内。
187.如果该虚拟对象位于npc的视锥体范围外,说明该虚拟对象并不在npc的视野范围内,这种情况下,可以移除该虚拟对象的视觉查询信息。这里的视觉查询信息指的是可以反映该虚拟对象的信息,例如,视觉查询信息包括虚拟对象的标识、虚拟对象的位置、操控虚拟对象的玩家等中的至少一项。
188.如果该虚拟对象位于npc的视锥体范围内,说明该虚拟对象在npc的视野范围内,这种情况下,可以对该虚拟对象(对应第二虚拟对象)进行线路轨迹检测。其中,npc包括第一视线点,该虚拟对象包括多个第二视线点。如果第一视线点与任一个第二视线点之间的连线位于npc的视锥体范围内,且连线未穿过不透光物体,则确定该第二视线点为目标视线点。
189.如果该虚拟对象上不存在目标视线点,说明该虚拟对象完全被不透光物体遮挡,或者,该虚拟对象存在部分部位被不透光物体遮挡,而剩余部位在npc的视野范围外,导致npc无法看到该虚拟对象。这种情况下,可以移除该虚拟对象的视觉查询信息。
190.如果该虚拟对象上存在目标视线点,说明该虚拟对象存在全部或者部分部位未被不透光物体遮挡,且这些部位在npc的视野范围内,导致npc可以看到该虚拟对象。这种情况下,可以更新该虚拟对象的视觉查询信息。例如,添加该虚拟对象的标识、该虚拟对象的位置、操控该虚拟对象的玩家等中的至少一项。
191.接下来,确定线路轨迹检测的次数是否达到检测次数阈值。如果线路轨迹检测的次数达到检测次数阈值,即线路轨迹检测的次数大于或者等于检测次数阈值,则结束流程。如果线路轨迹检测的次数未达到检测次数阈值,即线路轨迹检测的次数小于检测次数阈值,则执行视觉查询队列中选择虚拟对象的步骤,按照上述方式进行检测,直至线路轨迹检测的次数达到检测次数阈值,结束流程。
192.本技术实施例中,带有视觉能力的npc包括第一视线点,虚拟对象包括多个第二视线点。可以基于第一视线点和任一个第二视线点进行线路轨迹检测。如图7所示,非玩家角色(即带有视觉能力的npc)存在一个第一视线点,而玩家角色(即虚拟对象)的头部和身体各存在一个第二视线点。可以基于第一视线点和位于玩家角色的头部的第二视线点进行线路轨迹检测,基于第一视线点和位于玩家角色的身体的第二视线点进行线路轨迹检测。
193.在基于第一视线点和任一个第二视线点进行线路轨迹检测时,只要第一视线点与该第二视线点之间的连线位于npc的视锥体范围内,且连线未穿过不透光物体,则确定该第二视线点为目标视线点。这种情况下,npc可以看到虚拟对象上目标视线点所在的部位,使得虚拟对象被npc发现。如图8所示,基于非玩家角色的第一视线点和位于玩家角色的头部的第二视线点进行线路轨迹检测时,由于第一视线点与该第二视线点之间的连线穿过不透光物体,导致非玩家角色不能看见玩家角色的头部。但是,基于非玩家角色的第一视线点和位于玩家角色的下肢的第二视线点进行线路轨迹检测时,由于第一视线点与该第二视线点之间的连线未穿过不透光物体,且连线位于npc的视锥体范围内,导致非玩家角色能够看见玩家角色的下肢。尽管非玩家角色不能看见玩家角色的头部,但由于非玩家角色能够看见
玩家角色的下肢,因此,非玩家角色依旧能够发现玩家角色。再如图9所示,尽管非玩家角色不能看见玩家角色的身体,但由于非玩家角色能够看见玩家角色的头部,因此,非玩家角色依旧能够发现玩家角色。
194.图10所示为本技术实施例提供的一种可见虚拟对象的确定装置的结构示意图,如图10所示,该装置包括:
195.获取模块1001,用于获取第一虚拟对象的目标视野信息和第一视线点,第一视线点位于第一虚拟对象的指定部位;
196.获取模块1001,还用于获取第二虚拟对象的多个第二视线点,第一虚拟对象和第二虚拟对象位于同一游戏对局,任一个第二视线点位于第二虚拟对象的一个部位;
197.检测模块1002,用于对于任一个第二视线点,若任一个第二视线点满足目标检测条件,则基于第一视线点和目标视野信息,对任一个第二视线点进行检测,得到任一个第二视线点的检测结果,任一个第二视线点的检测结果表征任一个第二视线点在第一视线点是否可见;
198.确定模块1003,用于若多个第二视线点中存在目标视线点的检测结果表征目标视线点在第一视线点可见,则将第二虚拟对象确定为第一虚拟对象的可见虚拟对象。
199.在一种可能的实现方式中,获取模块1001,用于获取第一虚拟对象的第一视野信息;若第一虚拟对象满足视野更新条件,对第一视野信息进行更新,得到目标视野信息;
200.第一虚拟对象满足视野更新条件包括第一情况、第二情况和第三情况中的至少一项,第一情况为第一虚拟对象的水平视野的边缘与虚拟地面的高度满足高度条件,第二情况为第一虚拟对象所处虚拟环境中的虚拟天气发生变化,第三情况为第一虚拟对象的战斗状态发生变化,战斗状态表征第一虚拟对象是否与其他虚拟对象发生战斗。
201.在一种可能的实现方式中,第一虚拟对象满足视野更新条件包括高度满足高度条件;
202.确定模块1003,还用于若初始化第一虚拟对象或者第一虚拟对象移动,则基于第一视线点和第一视野信息,确定高度。
203.在一种可能的实现方式中,高度满足高度条件包括高度大于第一高度阈值,第一视野信息包括第一视野距离;
204.获取模块1001,用于基于高度扩大第一视野距离,得到第二视野距离;若第二视野距离大于第一视野阈值,基于第一视野阈值确定目标视野信息;若第二视野距离不大于第一视野阈值,基于第二视野距离确定目标视野信息。
205.在一种可能的实现方式中,高度满足高度条件包括高度小于第二高度阈值,第一视野信息包括第一视野距离;
206.获取模块1001,用于基于高度缩小第一视野距离,得到第三视野距离;若第三视野距离小于第二视野阈值,基于第二视野阈值确定目标视野信息;若第三视野距离不小于第二视野阈值,基于第三视野距离确定目标视野信息。
207.在一种可能的实现方式中,第一虚拟对象满足视野更新条件包括虚拟天气发生变化;
208.获取模块1001,用于获取虚拟天气的变化信息;若虚拟天气的变化信息表征能见度降低,缩小第一视野信息,得到目标视野信息;若虚拟天气的变化信息表征能见度提高,
扩大第一视野信息,得到目标视野信息。
209.在一种可能的实现方式中,第一虚拟对象满足视野更新条件包括战斗状态发生变化;
210.获取模块1001,用于若变化后的战斗状态表征第一虚拟对象与其他虚拟对象发生战斗,缩小第一视野信息,得到目标视野信息;若变化后的战斗状态表征第一虚拟对象未与其他虚拟对象发生战斗,扩大第一视野信息,得到目标视野信息。
211.在一种可能的实现方式中,第一视野信息包括第一层级的视野信息、第二层级的视野信息和第三层级的视野信息,第一层级的视野信息对应的第一视野范围包括第二层级的视野信息对应的第二视野范围,第二视野范围包括第三层级的视野信息对应的第三视野范围;
212.确定模块1003,还用于若第三视野范围内存在可见虚拟对象,或者,第二视野范围中除第三视野范围之外的视野范围内存在可见虚拟对象且可见虚拟对象为第一姿态,则确定战斗状态为第一状态,第一状态表征第一虚拟对象与其他虚拟对象发生战斗;
213.确定模块1003,还用于若第二视野范围中除第三视野范围之外的视野范围内存在可见虚拟对象且可见虚拟对象为第二姿态,或者,第一视野范围中除第二视野范围之外的视野范围内存在可见虚拟对象,则确定战斗状态为第二状态,第二状态表征第一虚拟对象未与其他虚拟对象发生战斗。
214.在一种可能的实现方式中,目标视野信息包括多个子视野信息;
215.检测模块1002,用于若满足第一检测条件和第二检测条件,则确定任一个第二视线点的检测结果为第一结果,第一结果表征第一虚拟对象可见任一个第二视线点,满足第一检测条件是第一视线点与任一个第二视线点的连线位于至少一个子视野信息对应的视野范围内,满足第二检测条件是连线未穿过不透光物体;若不满足第一检测条件和第二检测条件中的至少一项,则确定任一个第二视线点的检测结果为第二结果,第二结果表征第一虚拟对象不可见任一个第二视线点。
216.在一种可能的实现方式中,第二虚拟对象为至少一个;
217.获取模块1001,还用于获取各个第二虚拟对象的检测优先级和各个第二视线点的检测优先级;获取当前检测次数,当前检测次数是第一检测的次数和第二检测的次数之和,第一检测是对检测优先级位于任一个第二视线点所在第二虚拟对象之前的第二虚拟对象的第二视线点进行的检测,第二检测是对任一个第二视线点所在第二虚拟对象上检测优先级位于任一个第二视线点之前的第二视线点进行的检测;
218.确定模块1003,还用于若当前检测次数小于检测次数阈值,确定任一个第二视线点满足目标检测条件。
219.在一种可能的实现方式中,目标视野信息包括多个子视野信息;
220.获取模块1001,用于对于任一个第二虚拟对象,基于任一个第二虚拟对象的位置,确定任一个第二虚拟对象的子视野信息;基于第一虚拟对象与任一个第二虚拟对象的距离以及任一个第二虚拟对象的子视野信息,确定任一个第二虚拟对象的检测优先级。
221.上述装置中,第一虚拟对象对应第一视线点,第二虚拟对象对应多个第二视线点。基于第一视线点和第一虚拟对象的目标视野信息,对任一个第二视线点进行检测,得到该第二视线点在第一视线点是否可见。只要多个第二视线点中存在在第一视线点可见的第二
视线点,则确定第二虚拟对象为第一虚拟对象的可见虚拟对象。通过对多个第二视线点进行是否可见的检测,实现了多方位检测,提高了检测真实性,在特殊地形容易遮挡虚拟对象的情况下,通过多方位检测,使得第一虚拟对象能够相对容易地发现可见虚拟对象,提高真实性。
222.应理解的是,上述图10提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
223.图11示出了本技术一个示例性实施例提供的终端设备1100的结构框图。该终端设备1100包括有:处理器1101和存储器1102。
224.处理器1101可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1101可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1101也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1101可以集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1101还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
225.存储器1102可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1102还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1102中的非暂态的计算机可读存储介质用于存储至少一个计算机程序,该至少一个计算机程序用于被处理器1101所执行以实现本技术中方法实施例提供的可见虚拟对象的确定方法。
226.在一些实施例中,终端设备1100还可选包括有:外围设备接口1103和至少一个外围设备。处理器1101、存储器1102和外围设备接口1103之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1103相连。具体地,外围设备包括:射频电路1104、显示屏1105、摄像头组件1106、音频电路1107和电源1108中的至少一种。
227.外围设备接口1103可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器1101和存储器1102。在一些实施例中,处理器1101、存储器1102和外围设备接口1103被集成在同一芯片或电路板上;在一些其他实施例中,处理器1101、存储器1102和外围设备接口1103中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
228.射频电路1104用于接收和发射rf(radio frequency,射频)信号,也称电磁信号。射频电路1104通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1104将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1104包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解
码芯片组、用户身份模块卡等等。射频电路1104可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wireless fidelity,无线保真)网络。在一些实施例中,射频电路1104还可以包括nfc(near field communication,近距离无线通信)有关的电路,本技术对此不加以限定。
229.显示屏1105用于显示ui(user interface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1105是触摸显示屏时,显示屏1105还具有采集在显示屏1105的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1101进行处理。此时,显示屏1105还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1105可以为一个,设置在终端设备1100的前面板;在另一些实施例中,显示屏1105可以为至少两个,分别设置在终端设备1100的不同表面或呈折叠设计;在另一些实施例中,显示屏1105可以是柔性显示屏,设置在终端设备1100的弯曲表面上或折叠面上。甚至,显示屏1105还可以设置成非矩形的不规则图形,也即异形屏。显示屏1105可以采用lcd(liquid crystal display,液晶显示屏)、oled(organic light-emitting diode,有机发光二极管)等材质制备。
230.摄像头组件1106用于采集图像或视频。可选地,摄像头组件1106包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtual reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1106还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
231.音频电路1107可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1101进行处理,或者输入至射频电路1104以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端设备1100的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1101或射频电路1104的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1107还可以包括耳机插孔。
232.电源1108用于为终端设备1100中的各个组件进行供电。电源1108可以是交流电、直流电、一次性电池或可充电电池。当电源1108包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
233.在一些实施例中,终端设备1100还包括有一个或多个传感器1109。该一个或多个传感器1109包括但不限于:加速度传感器1111、陀螺仪传感器1112、压力传感器1113、光学传感器1114以及接近传感器1115。
234.加速度传感器1111可以检测以终端设备1100建立的坐标系的三个坐标轴上的加
速度大小。比如,加速度传感器1111可以用于检测重力加速度在三个坐标轴上的分量。处理器1101可以根据加速度传感器1111采集的重力加速度信号,控制显示屏1105以横向视图或纵向视图进行用户界面的显示。加速度传感器1111还可以用于游戏或者用户的运动数据的采集。
235.陀螺仪传感器1112可以检测终端设备1100的机体方向及转动角度,陀螺仪传感器1112可以与加速度传感器1111协同采集用户对终端设备1100的3d动作。处理器1101根据陀螺仪传感器1112采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。
236.压力传感器1113可以设置在终端设备1100的侧边框和/或显示屏1105的下层。当压力传感器1113设置在终端设备1100的侧边框时,可以检测用户对终端设备1100的握持信号,由处理器1101根据压力传感器1113采集的握持信号进行左右手识别或快捷操作。当压力传感器1113设置在显示屏1105的下层时,由处理器1101根据用户对显示屏1105的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
237.光学传感器1114用于采集环境光强度。在一个实施例中,处理器1101可以根据光学传感器1114采集的环境光强度,控制显示屏1105的显示亮度。具体地,当环境光强度较高时,调高显示屏1105的显示亮度;当环境光强度较低时,调低显示屏1105的显示亮度。在另一个实施例中,处理器1101还可以根据光学传感器1114采集的环境光强度,动态调整摄像头组件1106的拍摄参数。
238.接近传感器1115,也称距离传感器,通常设置在终端设备1100的前面板。接近传感器1115用于采集用户与终端设备1100的正面之间的距离。在一个实施例中,当接近传感器1115检测到用户与终端设备1100的正面之间的距离逐渐变小时,由处理器1101控制显示屏1105从亮屏状态切换为息屏状态;当接近传感器1115检测到用户与终端设备1100的正面之间的距离逐渐变大时,由处理器1101控制显示屏1105从息屏状态切换为亮屏状态。
239.本领域技术人员可以理解,图11中示出的结构并不构成对终端设备1100的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
240.图12为本技术实施例提供的服务器的结构示意图,该服务器1200可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器1201和一个或多个的存储器1202,其中,该一个或多个存储器1202中存储有至少一条计算机程序,该至少一条计算机程序由该一个或多个处理器1201加载并执行以实现上述各个方法实施例提供的可见虚拟对象的确定方法,示例性的,处理器1201为cpu。当然,该服务器1200还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器1200还可以包括其他用于实现设备功能的部件,在此不做赘述。
241.在示例性实施例中,还提供了一种计算机可读存储介质,该存储介质中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行,以使电子设备实现上述任一种可见虚拟对象的确定方法。
242.可选地,上述计算机可读存储介质可以是只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、只读光盘(compact disc read-only memory,cd-rom)、磁带、软盘和光数据存储设备等。
243.在示例性实施例中,还提供了一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行,以使电子设备实现上述任一种可见虚拟对象的确定方法。
244.应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
245.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
246.以上所述仅为本技术的示例性实施例,并不用以限制本技术,凡在本技术的原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1  
相关技术
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
网站地图