1.本公开涉及数据处理技术领域,尤其涉及跟随处理方法及装置。
背景技术:
2.随着网络多元化的发展,多人在线业务已广泛应用于互联网领域中。其中,跟随模式是多人在线业务中的已有模式,在该模式中,多个跟随者会随着主导者的移动而相应移动,发明人经研究发现,相关技术中需要主导者的客户端将主导者的
位置发送给服务端,服务端再将主导者的位置发送给每个跟随者的客户端,各个跟随者的客户端在获取到主导者的位置后,再分别计算各自的下一跟随位置,然后再发送给服务端,之后再经服务端进行广播。这种方式导致网络数据交换量巨大,也需要更大的服务带宽,因此成本较高。
技术实现要素:
3.为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种跟随处理方法及装置。
4.根据本公开的一方面,提供了一种跟随处理方法,应用于
目标对象的客户端,包括:获取目标对象的当前目标位置、跟随对象的当前跟随位置以及目标场景的障碍物信息;其中,
所述跟随对象为跟随所述目标对象的对象,所述目标场景为所述目标对象和所述跟随对象所处的环境场景;在所述目标对象从所述当前目标位置移动至下一目标位置的情况下,基于所述跟随对象的当前跟随位置、所述下一目标位置以及所述目标场景的障碍物信息进行碰撞检测处理,得到碰撞检测结果;基于所述碰撞检测结果和所述下一目标位置,确定所述跟随对象的下一跟随位置;基于所述目标对象的下一目标位置和所述跟随对象的下一跟随位置生成数据包,并将所述数据包发送给服务端,以使所述服务端将所述数据包广播给所述跟随对象的客户端,令所述跟随对象的客户端基于所述数据包执行跟随处理操作。
5.根据本公开的另一方面,提供了一种跟随处理装置,应用于目标对象的客户端,包括:获取模块,用于获取目标对象的当前目标位置、跟随对象的当前跟随位置以及目标场景的障碍物信息;其中,所述跟随对象为跟随所述目标对象的对象,所述目标场景为所述目标对象和所述跟随对象所处的环境场景;碰撞检测模块,用于在所述目标对象从所述当前目标位置移动至下一目标位置的情况下,基于所述跟随对象的当前跟随位置、所述下一目标位置以及所述目标场景的障碍物信息进行碰撞检测处理,得到碰撞检测结果;确定模块,用于基于所述碰撞检测结果和所述下一目标位置,确定所述跟随对象的下一跟随位置;发送模块,用于基于所述目标对象的下一目标位置和所述跟随对象的下一跟随位置生成数据包,并将所述数据包发送给服务端,以使所述服务端将所述数据包广播给所述跟随对象的客户端,令所述跟随对象的客户端基于所述数据包执行跟随处理操作。
6.根据本公开的另一方面,提供了一种电子设备,包括:处理器;以及存储程序的存储器,其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行跟随处
理方法。
7.根据本公开的另一方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行跟随处理方法。
8.本公开实施例中提供的上述技术方案,是由目标对象(也即被跟随者)的客户端基于跟随对象的当前跟随位置、目标对象的下一目标位置以及目标场景的障碍物信息进行碰撞检测处理,以此确定跟随对象的下一跟随位置,再将目标对象的下一目标位置和跟随对象的下一跟随位置统一生成数据包发送给服务端进行广播,跟随对象的客户端便可直接基于数据包进行跟随处理,这种方式可以极大降低客户端与服务端之间的数据交换量,降低所需的服务带宽,从而有效降低成本。
9.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
10.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
11.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
12.图1为本公开实施例提供的一种交互场景示意图;
13.图2为本公开实施例提供的一种跟随处理方法的流程示意图;
14.图3为本公开实施例提供的一种目标区域示意图;
15.图4为本公开实施例提供的一种跟随处理装置的结构示意图;
16.图5为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
17.下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
18.应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
19.本公开使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
20.需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域
技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
21.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
22.互联网领域中的跟随模式常见于网络游戏、在线直播等场景。在跟随模式中,通常会有一个或多个跟随者完全跟随主导者的移动而移动,跟随者与主导者之间通过服务端进行信息交互。本公开实施例对跟随者与主导者的身份不进行限制,具体可取决于实际应用场景,诸如,在游戏场景中,主导者可以是将领,跟随者可以是小兵;在线教育场景中,主导者可以是教师,跟随者可以是学生;在旅游场景中,主导者可以是导游,跟随者可以是参观者;以上仅为示例性说明,不应当被视为限制。为便于理解,可参见图1所示的一种交互场景示意图,示意出目标对象(也即主导者)的客户端、服务端、n个跟随对象(也即跟随者)的客户端。在相关技术中,每个跟随对象的客户端都需要通过服务端获取目标对象的位置,并进一步计算自身的下一跟随位置,之后再通过服务端告知其它客户端,以便各个客户端可以针对所有跟随对象以及目标对象的位置进行渲染,在这种方式中,每个跟随对象的客户端都需要独立的数据结构进行计算、存储及交换,引起网络层的数据交换和同步量巨大,对服务带宽要求较高。另外,每个跟随对象的客户端都需要进行诸如碰撞检测、寻路等逻辑处理,并将结果通过服务端与其它客户端进行交互,不仅性能消耗较大,容易带来卡顿等问题,而且数据吞吐量较高,也使业务无法获得更大的扩容,诸如跟随对象的数量会受到一定限制。为改善此问题,本公开实施例提供了一种跟随处理方法、装置、设备及介质,在本公开实施例中,主要由目标对象的客户端计算跟随对象的下一跟随位置,之后将数据统一打包,并通过服务端广播给跟随对象的客户端即可,以此可以有效地降低网络数据交换量、吞吐量以及服务带宽的需求,跟随对象的客户端也无需再计算自身的跟随位置,也可以在一定程度上降低各跟随对象的客户端的性能损耗,降低跟随卡顿问题的出现概率。
23.为便于理解,首先可参见图2所示的一种跟随处理方法的流程示意图,该方法可应用于目标对象的客户端,目标对象的客户端可基于电子设备实现,如图2所示,该方法主要包括如下步骤s202~步骤s208:
24.步骤s202,获取目标对象的当前目标位置、跟随对象的当前跟随位置以及目标场景的障碍物信息;其中,跟随对象为跟随目标对象的对象,目标场景为目标对象和跟随对象所处的环境场景,具体可以是预先通过模型搭建的三维立体场景。
25.目标对象与跟随对象均可以是目标场景中的虚拟角,诸如均为通过模型构建的三维立体人物,其也可理解为用户在虚拟世界的目标场景中的虚拟代表对象。如前所述,本公开实施例对目标对象与跟随对象的身份不进行限制,诸如目标对象可以是教师,跟随对象是学生;目标对象可以是导游,跟随对象是参观者等;具体可根据跟随模式的应用场景而灵活设置。示例性地,目标对象的当前目标位置可以理解为在t时刻时目标对象在目标场景中的位置,跟随对象的当前跟随位置可以理解为在t时刻时跟随对象在目标场景中的位置,任意时刻对应的位置均可作为当前位置,以便以此为基准进行处理,从而得到下一时刻(也即t+1时刻)的位置,在实际应用中,本公开实施例对t时刻~t+1时刻之间的时间间隔不进行限制,具体可根据需求灵活设置,诸如设置为0.1s、1s等。本公开实施例提及的上述位置均可采用诸如xyz坐标表征。
26.步骤s204,在目标对象从当前目标位置移动至下一目标位置的情况下,基于跟随对象的当前跟随位置、下一目标位置以及目标场景的障碍物信息进行碰撞检测处理,得到碰撞检测结果。
27.下一目标位置即为目标对象在t+1时刻的位置,在网络正常的情况下,下一目标位置是基于目标对象的用户控制指令确定的,诸如,在用户控制指令为匀速前进指令时,则可以控制目标对象从当前目标位置匀速前进一个时间间隔,以此得到下一目标位置。另外,本公开实施例充分考虑到目标对象的客户端可能存在断网、掉线等网络异常情况,为了降低不良影响,本公开实施例提供了兜底策略,也即,在网络异常的情况下,下一目标位置是基于目标对象的历史移动轨迹进行预测得到的,历史移动轨迹可表征目标对象在网络异常之前的移动路径及移动速度等信息。示例性地,假设历史移动轨迹指示目标对象沿当前街道加速前进,则可以基于加速度预测目标对象在当前街道上的下一目标位置。后续待网络恢复正常后再进行位置矫正处理即可。
28.在已知目标对象移动至下一目标位置时,在一些具体的实施示例中,可以基于跟随对象的当前跟随位置以及下一目标位置,从目标场景中的障碍物信息中确定目标障碍物信息;然后获取跟随对象的包围盒信息;之后基于跟随对象的包围盒信息以及目标障碍物信息,进行碰撞检测处理。目标障碍物可以是根据跟随对象的当前跟随位置以及下一目标位置而在目标场景中所确定的障碍物,示例性地,目标障碍物是能够影响跟随对象基于下一目标位置进行移动的障碍物,在一些具体示例中,目标障碍物是当前跟随位置与下一目标位置之间的障碍物,又或者,目标障碍物与当前跟随位置相距第一预设阈值范围内,目标障碍物与下一跟随位置相距第二预设阈值范围内。目标障碍物信息包括但不限于目标障碍物在目标场景中的位置,进一步还可以包括目标障碍物的包围盒信息、障碍物类型等信息。在一些实施示例中,可以利用诸如aabb包围盒等算法计算跟随对象的包围盒大小等信息,包围盒信息可用于进行边界检测,以此实现碰撞检测处理。
29.应当说明的是,目标对象在从当前目标位置移动至下一目标位置时,也会根据目标对象的包围盒信息以及障碍物信息进行碰撞检测及寻路处理,从而移动至下一目标位置,在此不再赘述,本公开实施例提供的上述步骤重点在于阐述目标对象的客户端能够统一基于跟随对象的当前跟随位置、下一目标位置以及目标场景的障碍物信息进行碰撞检测处理,得到跟随对象的碰撞检测结果,相比于相关技术中由每个跟随对象的客户端分别处理自身的碰撞检测逻辑而言,本公开实施例提供的由目标对象的客户端统一为跟随对象进行碰撞检测处理,以便基于碰撞检测结果进行寻路的方式,可以有效降低数据交换量。
30.步骤s206,基于碰撞检测结果和下一目标位置,确定跟随对象的下一跟随位置。
31.碰撞检测结果可用于指示在当前跟随位置的特定方向的多远距离处存在碰撞体(障碍物),存在碰撞风险。在此基础上,可以利用碰撞检测结果和目标对象的下一目标位置进行寻路处理,以此确定跟随对象的下一跟随位置,其中,下一跟随位置可以满足预设条件,诸如,预设条件可以包括以下中的一种或多种:下一跟随位置与下一目标位置之间的相对位置关系与当前跟随位置和当前目标位置之间的相对位置关系匹配、下一跟随位置不存在碰撞风险。
32.步骤s208,基于目标对象的下一目标位置和跟随对象的下一跟随位置生成数据包,并将数据包发送给服务端,以使服务端将数据包广播给跟随对象的客户端,令跟随对象
的客户端基于数据包执行跟随处理操作。
33.在一些实施示例中,目标对象与跟随对象均具有对象标识;对象标识也可采用对象id表征,不同对象的标识不同。数据包中的数据结构包括对象标识以及与对象标识关联的位置信息。诸如,目标对象的对象标识与目标对象在指定时刻的目标位置关联,跟随对象的对象标识与跟随对象在指定时刻的目标位置关联,其中,指定时刻可以为t时刻、t+1时刻,或者从t时刻起的连续m个时刻,在此不进行限制。在一些具体实施方式中,目标对象的下一目标位置和跟随对象的下一跟随位置按照预设的数据结构进行存储,得到数据帧;之后基于数据帧进行打包,生成数据包。具体的,可以根据需求将连续指定数量个数据帧进行打包,生成数据包,诸如将连续m个时刻对应的数据帧进行打包,以便进一步降低数据交换量。具体可根据需求灵活设置参与打包的帧数,在此不进行限制。在未获取到m个时刻对应的数据帧的情况下,则可以一直由目标对象的客户端进行保存,直至获取到m个时刻对应的数据帧,则统一打包发送给服务端。
34.在实际应用中,倘若有n个跟随对象,则上述数据结构可以包含有n+1个对象的对象标识及相应的位置信息,也即包含n个跟随对象及一个目标对象的对象标识及各自关联的位置坐标,每个位置坐标也可进一步关联时间信息。这种方式可以统一所有对象的数据结构,更便于处理,并可有效降低数据交换量。另外,每个跟随对象的客户端都可以接收到包含n+1个对象的信息的数据包,以此进行跟随处理操作,诸如在各自的客户端上直接渲染目标对象以及每个跟随对象的新位置,并可以动画形式进行呈现。
35.在实际应用中,目标对象的客户端可以将数据包通过网络tcp协议上传给服务端,再由服务端对数据包进行校验及广播,以便跟随对象的客户端基于接收到的数据包进行解析及后续的跟随处理操作。
36.本公开实施例中提供的上述技术方案,是由目标对象(也即被跟随者)的客户端基于跟随对象的当前跟随位置、目标对象的下一目标位置以及目标场景的障碍物信息进行碰撞检测处理,以此确定跟随对象的下一跟随位置,再将目标对象的下一目标位置和跟随对象的下一跟随位置统一生成数据包发送给服务端进行广播,跟随对象的客户端便可直接基于数据包进行跟随处理,这种方式可以极大降低客户端与服务端之间的数据交换量,降低所需的服务带宽,从而有效降低成本。
37.在一些实施示例中,上述步骤s206可以参照如下步骤a和步骤b执行:
38.步骤a,获取预先设置的跟随对象与目标对象之间的相对位置关系。示例性地,可以预先设置多个相对位置关系,然后从多个相对位置关系中为每个跟随对象分别选取一个相对位置关系。相对位置关系可以表征跟随对象与目标对象之间的相对距离和相对方位,诸如,对于跟随对象1而言,跟随对象1与目标对象之间的相对位置关系指示跟随对象1位于目标对象的正后方0.5米;对于跟随对象2而言,跟随对象2与目标对象之间的相对位置关系指示跟随对象2位于目标对象的侧后方0.3米,且侧后方向与目标对象的正后方向间隔30度角。通过设置相对位置关系,不仅便于在目标对象和跟随对象进行移动时可以有效保障队形一致性,而且也更便于计算处理。
39.示例性地,相对位置关系是按照如下步骤(1)~(2)预先设置的:
40.(1)获取目标区域的预设信息,以及目标对象与目标区域之间的预设位置关系;其中,预设信息包括区域形状和/或区域面积,目标区域在目标场景中的位置随目标对象的位
置变化而相应改变,以使预设位置关系保持不变。目标区域即为跟随对象需要位于的区域,可以理解的是,目标对象在目标场景中是处于移动状态,相应的,目标区域也是移动的区域,诸如,目标区域始终为目标对象身后的指定大小和/或指定形状的区域。并且,设定了目标对象与目标区域之间的预设位置关系,诸如,目标区域是扇形,目标对象位于目标区域的圆心处;目标区域是矩形,目标对象位于目标区域的一条矩形边的中心处;目标区域是三角形,目标对象位于目标区域的一个顶点处。以上均为示例说明,不应当被视为限制。
41.(2)基于区域信息和预设位置关系,设置跟随对象与目标对象之间的相对位置关系,以使跟随对象位于目标区域中。示例性地跟随对象的数量为一个或多个,且基于区域信息和预设位置关系而设置的相对位置关系的数量不少于跟随对象的数量。具体的,可以根据区域信息、预设位置关系以及跟随对象的数量,设置跟随对象与目标对象之间的相对位置关系,以使所有跟随对象均位于目标区域中,目标区域的形状即可视为队列形状,通过上述方式,可以尽量保障多个跟随对象可以整体以某个队形跟随在目标对象身后,从而保障良好的用户视觉观感。
42.本公开实施例提供了一些具体的实施示例,其中,在区域形状包括扇形的情况下,预设位置关系包括:目标对象位于扇形的圆心处。为便于理解,可以参照如图3所示的一种目标区域示意图,图3中位于扇形的圆心处的黑实心圆即代表目标对象,扇形中的空心圆即代表跟随对象,每个空心圆与黑实心圆之间的相对位置关系都是预先设定的,因此也可理解为“槽位”,每个槽位与目标对象之间的相对位置关系预先设置,之后便可通过“插槽”方式快速可靠地确定各个跟随对象在队列中的位置。
43.步骤b,根据预先设置的相对位置关系、碰撞检测结果和下一目标位置,确定跟随对象的下一跟随位置。在实际应用中,在已知相对位置关系、碰撞检测结果和下一目标位置的基础上,可以较为准确地进行寻路,确定跟随对象的下一跟随位置,下一跟随位置与下一目标位置匹配。在一些实施示例中,上述步骤b可以参照如下步骤b1~步骤b2a实现或者参照步骤b1~步骤b2b实现:
44.步骤b1,基于预先设置的相对位置关系和下一目标位置,确定跟随对象的理论跟随位置。理论跟随位置与下一目标位置之间的相对位置关系与预先设置的相对位置关系一致。
45.步骤b2a,在基于碰撞检测结果确定理论跟随位置不存在碰撞风险的情况下,将理论跟随位置作为跟随对象的下一跟随位置。也即,首先可以根据碰撞检测结果判别理论跟随位置是否存在碰撞风险,诸如,理论跟随位置与障碍物位置有至少部分重叠,或者理论跟随位置的指定距离范围内存在障碍物,则会存在碰撞风险;理论跟随位置的指定距离范围内没有障碍物,则不存在碰撞风险。在不存在碰撞风险的情况下,可以直接将理论跟随位置作为下一跟随位置。
46.步骤b2b,在基于碰撞检测结果确定理论跟随位置存在碰撞风险的情况下,调整预先设置的相对位置关系,并基于调整后的相对位置关系和下一目标位置,得到跟随对象的下一跟随位置;其中,下一跟随位置不存在碰撞风险。倘若存在障碍物,则应当对理论跟随位置进行调整,也即进行位置优化处理,此时则可调整预先设置的相对位置关系,相当于可以在存在碰撞风险时灵活调整队列,进行队列重编,以此保障跟随对象的移动安全性,避免跟随对象盲目按照理论跟随位置移动而碰撞至障碍物处。
47.在调整预先设置的相对位置关系的一些具体方式中,可以首先获取调整信息,调整信息包括调整方向和/或调整距离;然后按照调整信息,调整预先设置的相对位置关系。示例性地,本公开实施例提供了获取调整信息的两种方式:
48.方式一:根据下一目标位置和碰撞检测结果确定调整信息。由于碰撞检测结果可指示在当前跟随位置的特定方向的多远距离处存在碰撞体(障碍物),因此可以在下一目标位置的基础上,结合碰撞检测结果重新规划位置,调整相对位置关系,以确保调整后的相对位置关系对应的位置不存在碰撞风险,在该方式中,可以根据需求一次性确定合理的调整信息。
49.方式二:获取预先设置的调整信息。在该方式中,可以直接按照预先设置的调整信息进行逐步尝试,诸如预先设定原有的相对位置关系存在问题时,则向指定方向偏移指定距离,示例性地,相对位置关系中的相对方向按照预设偏移角进行调整,和/或相对位置关系中的相对距离按照预设单位距离进行调整,倘若调整一次后仍旧存在碰撞风险,则继续按照预设偏移角和/或预设单位距离进行调整,可调整多次,直至到合适的相对位置关系。在该方式中,可以直接按照预习设置的调整信息进行多次调整尝试,直至到合理的调整信息。
50.以上两种方式仅为示例,具体可根据需求灵活选择所需的调整方式,在此不进行限制。
51.综上,在理论跟随位置存在碰撞风险的情况下,可以灵活调整预先设置的相对位置关系,以便基于调整后的相对位置关系和下一目标位置,得到不存在碰撞风险的下一跟随位置。在实际应用中,可以有多个跟随对象,每个跟随对象在移动中均可根据实际情况灵活调整相应的相对位置关系,调整相对位置关系的过程实质对应着队形改变的过程,也可视为队列重编,诸如跟随对象在跟随目标对象穿越狭窄的洞穴时,则通过上述方式进行调整,最终给用户的视觉效果即为将扇形队列调整为一字型队列。可以理解的是,上述相对位置关系的调整仅为临时调整,在后续穿过洞穴之后,还继续采用预先设置的原有的相对位置关系,继续保持扇形队列。
52.综上所述,本公开实施例提供的上述跟随处理方法,只需由目标对象的客户端进行各对象的碰撞处理、寻路处理等逻辑处理操作,统一确定其余跟随对象的位置信息并通过服务端进行同步,其余的跟随对象的客户端只需接收服务端同步的信息并进行诸如渲染、动画等跟随处理操作便可,方便快捷,而且所有对象的数据都可统一按照预设数据结构存储于数据包中,可以有效降低数据处理难度以及数据交互量。因此,上述方式可以较好地对多人在线业务中的跟随模式中的逻辑处理、数据计算量及网络数据吞吐量进行优化,也可以有效降低各个跟随对象的客户端都性能消耗,降低了多人在线业务中对高带宽、低时延的需求,使业务也可得以进一步开拓。
53.对应于前述跟随处理方法,本公开实施例还提供了一种跟随处理装置,图4为本公开实施例提供的一种跟随处理装置的结构示意图,该装置可由软件和/或硬件实现,应用于目标对象的客户端,一般可集成在电子设备中。如图4所示,跟随处理装置400包括:
54.获取模块402,用于获取目标对象的当前目标位置、跟随对象的当前跟随位置以及目标场景的障碍物信息;其中,跟随对象为跟随目标对象的对象,目标场景为目标对象和跟随对象所处的环境场景;
55.碰撞检测模块404,用于在目标对象从当前目标位置移动至下一目标位置的情况下,基于跟随对象的当前跟随位置、下一目标位置以及目标场景的障碍物信息进行碰撞检测处理,得到碰撞检测结果;
56.确定模块406,用于基于碰撞检测结果和下一目标位置,确定跟随对象的下一跟随位置;
57.发送模块408,用于基于目标对象的下一目标位置和跟随对象的下一跟随位置生成数据包,并将数据包发送给服务端,以使服务端将数据包广播给跟随对象的客户端,令跟随对象的客户端基于数据包执行跟随处理操作。
58.本公开实施例中提供的上述技术方案,是由目标对象(也即被跟随者)的客户端基于跟随对象的当前跟随位置、目标对象的下一目标位置以及目标场景的障碍物信息进行碰撞检测处理,以此确定跟随对象的下一跟随位置,再将目标对象的下一目标位置和跟随对象的下一跟随位置统一生成数据包发送给服务端进行广播,跟随对象的客户端便可直接基于数据包进行跟随处理,这种方式可以极大降低客户端与服务端之间的数据交换量,降低所需的服务带宽,从而有效降低成本。
59.在一些实施方式中,确定模块406具体用于:获取预先设置的所述跟随对象与所述目标对象之间的相对位置关系;根据预先设置的所述相对位置关系、所述碰撞检测结果和所述下一目标位置,确定所述跟随对象的下一跟随位置。
60.在一些实施方式中,所述相对位置关系是按照如下方式预先设置的:获取目标区域的预设信息,以及所述目标对象与所述目标区域之间的预设位置关系;其中,所述预设信息包括区域形状和/或区域面积,所述目标区域在所述目标场景中的位置随所述目标对象的位置变化而相应改变,以使所述预设位置关系保持不变;基于所述区域信息和所述预设位置关系,设置所述跟随对象与所述目标对象之间的相对位置关系,以使所述跟随对象位于所述目标区域中。
61.在一些实施方式中,所述跟随对象的数量为一个或多个,且基于所述区域信息和所述预设位置关系而设置的所述相对位置关系的数量不少于所述跟随对象的数量。
62.在一些实施方式中,在所述区域形状包括扇形的情况下,所述预设位置关系包括:所述目标对象位于所述扇形的圆心处。
63.在一些实施方式中,确定模块406具体用于:基于预先设置的所述相对位置关系和所述下一目标位置,确定所述跟随对象的理论跟随位置;在基于所述碰撞检测结果确定所述理论跟随位置不存在碰撞风险的情况下,将所述理论跟随位置作为所述跟随对象的下一跟随位置;在基于所述碰撞检测结果确定所述理论跟随位置存在碰撞风险的情况下,调整预先设置的所述相对位置关系,并基于调整后的所述相对位置关系和所述下一目标位置,得到所述跟随对象的下一跟随位置;其中,所述下一跟随位置不存在碰撞风险。
64.在一些实施方式中,确定模块406具体用于:获取调整信息,所述调整信息包括调整方向和/或调整距离;按照所述调整信息,调整预先设置的所述相对位置关系。
65.在一些实施方式中,确定模块406具体用于:根据所述下一目标位置和所述碰撞检测结果确定调整信息;或者,获取预先设置的调整信息。
66.在一些实施方式中,在网络正常的情况下,所述下一目标位置是基于所述目标对象的用户控制指令确定的;在网络异常的情况下,所述下一目标位置是基于所述目标对象
的历史移动轨迹进行预测得到的。
67.在一些实施方式中,碰撞检测模块404具体用于:基于所述跟随对象的当前跟随位置以及所述下一目标位置,从所述目标场景中的障碍物信息中确定目标障碍物信息;获取所述跟随对象的包围盒信息;基于所述跟随对象的包围盒信息以及所述目标障碍物信息,进行碰撞检测处理。
68.在一些实施方式中,所述目标对象与所述跟随对象均具有对象标识;所述数据包中的数据结构包括对象标识以及与所述对象标识关联的位置信息。
69.本公开实施例所提供的跟随处理装置可执行本公开任意实施例所提供的跟随处理方法,具备执行方法相应的功能模块和有益效果。
70.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置实施例的具体工作过程,可以参考方法实施例中的对应过程,在此不再赘述。
71.本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
72.本公开示例性实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。所述存储器存储有能够被所述至少一个处理器执行的计算机程序,所述计算机程序在被所述至少一个处理器执行时用于使所述电子设备执行根据本公开实施例的方法。
73.本公开示例性实施例还提供一种存储有计算机程序的非瞬时计算机可读存储介质,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本公开实施例的方法。
74.本公开示例性实施例还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本公开实施例的方法。
75.所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
76.此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的跟随处理方法。所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
77.参考图5,现将描述可以作为本公开的服务器或客户端的电子设备500的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀
片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
78.如图5所示,电子设备500包括计算单元501,其可以根据存储在只读存储器(rom)502中的计算机程序或者从存储单元508加载到随机访问存储器(ram)503中的计算机程序,来执行各种适当的动作和处理。在ram 503中,还可存储设备500操作所需的各种程序和数据。计算单元501、rom 502以及ram 503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。
79.电子设备500中的多个部件连接至i/o接口505,包括:输入单元506、输出单元507、存储单元508以及通信单元509。输入单元506可以是能向电子设备500输入信息的任何类型的设备,输入单元506可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元507可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元508可以包括但不限于磁盘、光盘。通信单元509允许电子设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙tm设备、wifi设备、wimax设备、蜂窝通信设备和/或类似物。
80.计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理。例如,在一些实施例中,跟随处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由rom 502和/或通信单元509而被载入和/或安装到电子设备500上。在一些实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行跟随处理方法。
81.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
82.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
83.如本公开使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
84.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
85.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
86.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
87.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
88.以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
技术特征:
1.一种跟随处理方法,应用于目标对象的客户端,包括:获取目标对象的当前目标位置、跟随对象的当前跟随位置以及目标场景的障碍物信息;其中,所述跟随对象为跟随所述目标对象的对象,所述目标场景为所述目标对象和所述跟随对象所处的环境场景;在所述目标对象从所述当前目标位置移动至下一目标位置的情况下,基于所述跟随对象的当前跟随位置、所述下一目标位置以及所述目标场景的障碍物信息进行碰撞检测处理,得到碰撞检测结果;基于所述碰撞检测结果和所述下一目标位置,确定所述跟随对象的下一跟随位置;基于所述目标对象的下一目标位置和所述跟随对象的下一跟随位置生成数据包,并将所述数据包发送给服务端,以使所述服务端将所述数据包广播给所述跟随对象的客户端,令所述跟随对象的客户端基于所述数据包执行跟随处理操作。2.如权利要求1所述的跟随处理方法,其中,基于所述碰撞检测结果和所述下一目标位置,确定所述跟随对象的下一跟随位置的步骤,包括:获取预先设置的所述跟随对象与所述目标对象之间的相对位置关系;根据预先设置的所述相对位置关系、所述碰撞检测结果和所述下一目标位置,确定所述跟随对象的下一跟随位置。3.如权利要求2所述的跟随处理方法,其中,所述相对位置关系是按照如下方式预先设置的:获取目标区域的预设信息,以及所述目标对象与所述目标区域之间的预设位置关系;其中,所述预设信息包括区域形状和/或区域面积,所述目标区域在所述目标场景中的位置随所述目标对象的位置变化而相应改变,以使所述预设位置关系保持不变;基于所述区域信息和所述预设位置关系,设置所述跟随对象与所述目标对象之间的相对位置关系,以使所述跟随对象位于所述目标区域中。4.如权利要求3所述的跟随处理方法,其中,所述跟随对象的数量为一个或多个,且基于所述区域信息和所述预设位置关系而设置的所述相对位置关系的数量不少于所述跟随对象的数量。5.如权利要求3所述的跟随处理方法,其中,在所述区域形状包括扇形的情况下,所述预设位置关系包括:所述目标对象位于所述扇形的圆心处。6.如权利要求2所述的跟随处理方法,其中,根据预先设置的所述相对位置关系、所述碰撞检测结果和所述下一目标位置,确定所述跟随对象的下一跟随位置的步骤,包括:基于预先设置的所述相对位置关系和所述下一目标位置,确定所述跟随对象的理论跟随位置;在基于所述碰撞检测结果确定所述理论跟随位置不存在碰撞风险的情况下,将所述理论跟随位置作为所述跟随对象的下一跟随位置;在基于所述碰撞检测结果确定所述理论跟随位置存在碰撞风险的情况下,调整预先设置的所述相对位置关系,并基于调整后的所述相对位置关系和所述下一目标位置,得到所述跟随对象的下一跟随位置;其中,所述下一跟随位置不存在碰撞风险。7.如权利要求6所述的跟随处理方法,其中,调整预先设置的所述相对位置关系的步骤,包括:
获取调整信息,所述调整信息包括调整方向和/或调整距离;按照所述调整信息,调整预先设置的所述相对位置关系。8.如权利要求7所述的跟随处理方法,其中,获取调整信息的步骤,包括:根据所述下一目标位置和所述碰撞检测结果确定调整信息;或者,获取预先设置的调整信息。9.如权利要求1所述的跟随处理方法,其中,在网络正常的情况下,所述下一目标位置是基于所述目标对象的用户控制指令确定的;在网络异常的情况下,所述下一目标位置是基于所述目标对象的历史移动轨迹进行预测得到的。10.如权利要求1所述的跟随处理方法,其中,基于所述跟随对象的当前跟随位置、所述下一目标位置以及所述目标场景的障碍物信息进行碰撞检测处理的步骤,包括:基于所述跟随对象的当前跟随位置以及所述下一目标位置,从所述目标场景中的障碍物信息中确定目标障碍物信息;获取所述跟随对象的包围盒信息;基于所述跟随对象的包围盒信息以及所述目标障碍物信息,进行碰撞检测处理。11.如权利要求1所述的跟随处理方法,其中,所述目标对象与所述跟随对象均具有对象标识;所述数据包中的数据结构包括对象标识以及与所述对象标识关联的位置信息。12.一种跟随处理装置,应用于目标对象的客户端,包括:获取模块,用于获取目标对象的当前目标位置、跟随对象的当前跟随位置以及目标场景的障碍物信息;其中,所述跟随对象为跟随所述目标对象的对象,所述目标场景为所述目标对象和所述跟随对象所处的环境场景;碰撞检测模块,用于在所述目标对象从所述当前目标位置移动至下一目标位置的情况下,基于所述跟随对象的当前跟随位置、所述下一目标位置以及所述目标场景的障碍物信息进行碰撞检测处理,得到碰撞检测结果;确定模块,用于基于所述碰撞检测结果和所述下一目标位置,确定所述跟随对象的下一跟随位置;发送模块,用于基于所述目标对象的下一目标位置和所述跟随对象的下一跟随位置生成数据包,并将所述数据包发送给服务端,以使所述服务端将所述数据包广播给所述跟随对象的客户端,令所述跟随对象的客户端基于所述数据包执行跟随处理操作。
技术总结
本公开提供一种跟随处理方法及装置,其中该方法包括:获取目标对象的当前目标位置、跟随对象的当前跟随位置以及目标场景的障碍物信息;在目标对象从当前目标位置移动至下一目标位置的情况下,基于跟随对象的当前跟随位置、下一目标位置以及目标场景的障碍物信息进行碰撞检测处理,得到碰撞检测结果;基于碰撞检测结果和下一目标位置,确定跟随对象的下一跟随位置;基于目标对象的下一目标位置和跟随对象的下一跟随位置生成数据包,并将数据包发送给服务端,以使服务端将数据包广播给跟随对象的客户端,令跟随对象的客户端基于数据包执行跟随处理操作。本公开可以降低数据交换量,降低所需的服务带宽,从而有效降低成本。从而有效降低成本。从而有效降低成本。
技术研发人员:
孟繁星
受保护的技术使用者:
北京新唐思创教育科技有限公司
技术研发日:
2022.12.05
技术公布日:
2023/3/28