目标对象控制方法及装置

文档序号:819377 发布日期:2021-03-30 浏览:22次 >En<

阅读说明:本技术 目标对象控制方法及装置 (Target object control method and device ) 是由 张怡 于 2020-12-22 设计创作,主要内容包括:本申请提供目标对象控制方法及装置,其中,所述方法包括获取多个待移动的目标对象,并基于所述多个目标对象中的每个目标对象与目标位置之间的关系,确定每个所述目标对象的第一向量;以每个所述目标对象为原点,基于每个所述目标对象与预设半径内的至少一个其他目标对象的关系,确定每个所述目标向量的第二向量;基于每个所述目标对象与虚拟对象之间的关系,确定每个所述目标对象的第三向量;根据每个所述目标对象的第一向量、第二向量与第三向量确定每个所述目标对象的移动向量;根据所述移动向量控制每个所述目标对象移动至目标位置。所述方法利用每个目标对象的三个向量控制目标对象之间可以实现平滑不碰撞移动。(The application provides a target object control method and a target object control device, wherein the method comprises the steps of obtaining a plurality of target objects to be moved, and determining a first vector of each target object based on the relation between each target object and a target position in the plurality of target objects; determining a second vector of each target vector based on the relation between each target object and at least one other target object in a preset radius by taking each target object as an origin; determining a third vector for each of the target objects based on a relationship between each of the target objects and a virtual object; determining a movement vector of each target object according to the first vector, the second vector and the third vector of each target object; and controlling each target object to move to a target position according to the movement vector. The method can realize smooth and collision-free movement by utilizing three vectors of each target object to control the target objects.)

目标对象控制方法及装置

技术领域

本申请涉及计算机技术领域,特别涉及一种目标对象控制方法。本申请同时涉及一种目标对象控制装置,一种计算设备,以及一种计算机可读存储介质。

背景技术

目前在游戏中大规模单位(例如鱼群、鸟群等)往一个目的地移动时,通常使用碰撞检测来避免各个单位之间的重叠,然后再采用尝试性移动来实现各单位的移动;但是采用碰撞检测避免各个单位之间的重叠相对低效,当大量单位移动时容易造成CPU(CentralProcessing Unit,中央处理器)消耗过高导致游戏卡顿,同时单个单位尝试性移动的策略还会造成大规模单位整体移动过程中混乱,不逼真。

发明内容

有鉴于此,本申请实施例提供了一种目标对象控制方法。本申请同时涉及一种目标对象控制装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的大规模单位移动时重叠以及混乱的技术缺陷。

根据本申请实施例的第一方面,提供了一种目标对象控制方法,包括:

获取多个待移动的目标对象,并基于所述多个目标对象中的每个目标对象与目标位置之间的关系,确定每个所述目标对象的第一向量;

以每个所述目标对象为原点,基于每个所述目标对象与预设半径内的至少一个其他目标对象的关系,确定每个所述目标向量的第二向量;

基于每个所述目标对象与虚拟对象之间的关系,确定每个所述目标对象的第三向量,其中,所述虚拟对象与每个所述目标对象距离最近的至少两个其他目标对象形成预定形状;

根据每个所述目标对象的第一向量、第二向量与第三向量确定每个所述目标对象的移动向量;

根据所述移动向量控制每个所述目标对象移动至目标位置。

根据本申请实施例的第二方面,提供了一种目标对象控制装置,包括:

第一向量确定模块,被配置为获取多个待移动的目标对象,并基于所述多个目标对象中的每个目标对象与目标位置之间的关系,确定每个所述目标对象的第一向量;

第二向量确定模块,被配置为以每个所述目标对象为原点,基于每个所述目标对象与预设半径内的至少一个其他目标对象的关系,确定每个所述目标向量的第二向量;

第三向量确定模块,被配置为基于每个所述目标对象与虚拟对象之间的关系,确定每个所述目标对象的第三向量,其中,所述虚拟对象与每个所述目标对象距离最近的至少两个其他目标对象形成预定形状;

移动向量确定模块,被配置为根据每个所述目标对象的第一向量、第二向量与第三向量确定每个所述目标对象的移动向量;

目标对象控制模块,被配置为根据所述移动向量控制每个所述目标对象移动至目标位置。

根据本申请实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述目标对象控制方法的步骤。

根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述目标对象控制方法的步骤。

本申请提供的目标对象控制方法及装置,其中,所述方法包括获取多个待移动的目标对象,并基于所述多个目标对象中的每个目标对象与目标位置之间的关系,确定每个所述目标对象的第一向量;以每个所述目标对象为原点,基于每个所述目标对象与预设半径内的至少一个其他目标对象的关系,确定每个所述目标向量的第二向量;基于每个所述目标对象与虚拟对象之间的关系,确定每个所述目标对象的第三向量,其中,所述虚拟对象与每个所述目标对象距离最近的至少两个其他目标对象形成预定形状;根据每个所述目标对象的第一向量、第二向量与第三向量确定每个所述目标对象的移动向量;根据所述移动向量控制每个所述目标对象移动至目标位置。具体的,所述目标对象控制方法通过获取的每个目标对象的三个向量,控制每个目标对象移动至目标位置的移动速度、角度以及每个目标对象之间的距离等,使得每个目标对象可以实现平滑不碰撞移动的同时,又能保持所有目标对象的移动队形,提升目标对象的移动真实感。

附图说明

图1是本申请一实施例提供的一种目标对象控制方法的流程图;

图2是本申请一实施例提供的一种目标对象控制方法中目标对象的示意图;

图3是本申请一实施例提供的一种目标对象控制方法中目标对象的第一向量的示意图;

图4是本申请一实施例提供的一种目标对象控制方法中目标对象与其对应的其他目标对象的示意图;

图5是本申请一实施例提供的一种目标对象控制方法中目标对象的第四向量的示意图;

图6是本申请一实施例提供的一种目标对象控制方法中目标对象的一种第五向量的示意图;

图7是本申请一实施例提供的一种目标对象控制方法中目标对象的另一种第五向量的示意图;

图8是本申请一实施例提供的一种目标对象控制方法中目标对象的第三向量的示意图;

图9是本申请一实施例提供的一种目标对象控制方法中多个目标对象的群体移动效果图;

图10是本申请一实施例提供的一种目标对象控制装置的结构示意图;

图11是本申请一实施例提供的一种计算设备的结构框图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。

在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

首先,对本申请一个或多个实施例涉及的名词术语进行解释。

向量:英语全称:euclidean vector,物理、工程等也称作矢量、也称为欧几里得向量,是数学、物理学和工程科学等多个自然科学中的基本概念。指一个同时具有大小和方向,且满足平行四边形法则的几何对象;其中,大小在本申请中可以理解为移动速度。

阵形:通常用来描述古代军队用于行动或作战时的布署方式。如鱼鳞阵、雁形阵……等。

等边三角形:又称正三边形,指三边相等的三角形,其三个内角相等,均为60°,它是锐角三角形的一种。

在本申请中,提供了一种目标对象控制方法,本申请同时涉及一种目标对象控制装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。

参见图1,图1示出了根据本申请一实施例提供的一种目标对象控制方法的流程图,具体包括以下步骤。

步骤102:获取多个待移动的目标对象,并基于所述多个目标对象中的每个目标对象与目标位置之间的关系,确定每个所述目标对象的第一向量。

具体实施时,所述目标对象控制方法可以应用于游戏场景中,实现对游戏画面中群体角色的移动进行控制;还可以应用于卡通、动漫视频场景中,实现对卡通、动漫视频帧中的群体角色的移动进行控制。实际应用中,所述目标对象控制方法应用的场景不同,其目标对象也不同;例如在游戏场景中,游戏画面中的群体角色即为多个目标对象,该多个目标对象可以为鱼群、鸟群或者是坦克群等等,而在卡通、动漫视频场景中,视频帧中的群体角色可以为多个目标对象,该多个目标对象可以为卡通人军队、组成动漫武打阵型的动漫人物等等。

参见图2,图2示出了根据本申请一实施例提供的一种目标对象控制方法中目标对象的示意图。

图2为游戏场景,图2中的画面为游戏画面,而图2中的坦克群则为本申请的多个目标对象。

为了便于理解,本申请中,均以所述目标对象控制方法应用于游戏场景中,实现对游戏画面中的群体角色的移动控制为例进行详细说明。

若目标对象为鱼,获取多个待移动的目标对象,则可以理解为获取当前游戏画面中的多个鱼。

在获取当前游戏画面中的多个鱼之后,基于所述多个鱼中每个鱼与目标位置之间的关系,确定每个鱼的第一向量;其中,目标位置可以理解为游戏场景中预设的目的地,例如鱼需要游到一个圆形的水池中,那么这个圆形的水池即是目标位置。

具体的,所述基于所述多个目标对象中的每个目标对象与目标位置之间的关系,确定每个所述目标对象的第一向量,包括:

获取所述多个目标对象中的每个目标对象在坐标轴中与目标位置之间的角度,以及获取每个所述目标对象的当前移动速度;

根据每个所述目标对象在坐标轴中与目标位置之间的角度,以及每个所述目标对象的当前移动速度,确定每个所述目标对象的第一向量。

其中,目标位置可以理解为目标对象最终待移动的目的地。

实际应用中,第一向量可以理解为每个目标对象指向目的地的向量V1,而向量V1包括两个参数:方向和大小,其中,方向可以以角度表示,大小可以以速度表示。

沿用上例,获取每个鱼在坐标轴中与目的地之间的角度,以及每个鱼的当前自身的移动速度,将其作为每个鱼的第一向量,其中,每个鱼的当前自身的移动速度均不相同。

参见图3,图3示出了根据本申请一实施例提供的一种目标对象控制方法中目标对象的第一向量的示意图。

图3中,三角形表示一个目标对象(例如鱼),箭头则指向该目标对象的目的地,而第一向量则是该目标对象指向目的地的第一向量V1。

本申请实施例中,每个目标对象的第一向量均是通过此种方式获取,获取所有目标对象对应的第一向量,可以保证所有目标对象能够以目的地为主要方向进行移动,以满足实际的目标对象移动需求。

步骤104:以每个所述目标对象为原点,基于每个所述目标对象与预设半径内的至少一个其他目标对象的关系,确定每个所述目标向量的第二向量。

其中,预设半径可以根据实际应用场景进行设置,本申请对此不做任何限定,例如设置为2厘米、3厘米等等。

具体的,所述以每个所述目标对象为原点,基于每个所述目标对象与预设半径内的至少一个其他目标对象的关系,确定每个所述目标向量的第二向量,包括:

以每个所述目标对象为原点,基于每个所述目标对象与预设半径内的至少一个其他目标对象相对应的反向向量,确定每个所述目标对象的第四向量;

基于每个所述目标对象在所述预设半径内的至少一个其他目标对象的平均向量,确定每个所述目标对象的第五向量;

根据所述第四向量和/或所述第五向量,确定每个所述目标向量的第二向量。

其中,每个目标对象与预设半径内的至少一个其他目标对象相对应的反向向量,可以理解为每个目标对象预设半径内的至少一个目标对象的中心,到其对应的目标对象的中心的反向向量。

实际应用中,以每个目标对象为原点,基于预设半径进行画圆,将每个目标对象对应的圆中包括的目标对象作为其他目标对象;然后基于所有其他目标对象相对于其目标对象的反向向量,确定每个目标对象的第四向量;基于所有其他目标对象的平均向量,确定每个目标对象的第五向量。

具体的,在获取第四向量和第五向量后,可以基于第四向量确定每个目标对象的第二向量,也可以基于第五向量确定每个目标对象的第二向量,又或者可以基于第四向量和第五向量确定每个目标对象的第二向量;实际应用中,第四向量使得目标对象之间产生反推力,在所有目标对象向目标位置移动的过程中,基于第四向量可以避免目标对象之间的重叠和碰撞;第五向量使得目标对象之间产生聚合力,在所有目标对象向目标位置移动的过程中,基于第五向量可以避免目标对象之间出现混乱和散掉的情况发生。因此基于第四向量确定的目标对象的第二向量,在所有目标对象向目标位置移动的过程中,可以在目标对象之间产生反推力,避免目标对象之间的重叠和碰撞;基于第五向量确定的目标对象的第二向量,在所有目标对象向目标位置移动的过程中,可以在目标对象之间产生聚合力,避免目标对象之间的混乱和散掉;而基于第四向量和第五向量确定的目标对象的第二向量,在所有目标对象向目标位置移动的过程中,既可以在目标对象之间产生反推力,避免目标对象之间的重叠和碰撞,又可以在目标对象之间产生聚合力,避免目标对象之间的混乱和散掉。

参见图4,图4示出了根据本申请一实施例提供的一种目标对象控制方法中目标对象与其对应的其他目标对象的示意图。

图4中包括目标对象1、目标对象2和目标对象3,以目标对象1为原点,基于预设半径进行画圆,将圆中的目标对象2和目标对象3作为目标对象1的其他目标对象;然后基于目标对象2和目标对象3的反向向量确定目标对象1的第四向量,基于目标对象2和目标对象3的平均向量,确定每个目标对象的第五向量。

具体实施时,目标对象的第四向量可以在所有的目标对象朝目标位置移动的过程中,可以与周围的目标对象之间产生反推力,避免目标对象之间发生碰撞和重叠的情况发生,而目标对象的第五向量可以在所有的目标对象朝目标位置移动的过程中,可以与周围的目标对象之间产生约束力,保证多个目标对象朝目标位置移动时可以保持一致性,避免出现混乱。

本申请另一实施例中,所述基于每个所述目标对象在所述预设半径内的至少一个其他目标对象对应的反向向量,确定每个所述目标对象的第四向量,包括:

确定每个所述目标对象在预设半径内的至少一个其他目标对象;

获取所述至少一个其他目标对象的每个其他目标对象在坐标轴中,与所述每个目标对象之间的反向角度;

获取每个其他目标对象与所述每个目标对象之间的距离信息;

根据所有其他目标对象在坐标轴中与所述每个目标对象之间的反向角度,以及所有其他目标对象与所述每个目标对象之间的距离信息,确定每个目标对象的第四向量。

其中,每个其他目标对象与所述每个目标对象之间的距离信息,可以理解为每个其他目标对象与对应的目标对象之间的反向距离,即反向移动速度。

沿用上例,以确定目标对象1的第四向量V2进行解释。

首先,获取目标对象1在预设半径内的目标对象2和目标对象3,然后获取目标对象2在坐标轴中与目标对象1之间的反向角度、目标对象3在坐标轴中与目标对象1之间的反向角度,以及获取目标对象2与目标对象1的反向距离、目标对象3与目标对象的反向距离。

最后,基于目标对象2在坐标轴中与目标对象1之间的反向角度、目标对象3在坐标轴中与目标对象1之间的反向角度,以及目标对象2与目标对象1的反向距离、目标对象3与目标对象的反向距离,确定目标对象1的第四向量。

具体实施时,根据所有其他目标对象在坐标轴中与所述每个目标对象之间的反向角度,以及所有其他目标对象与所述每个目标对象之间的距离信息,确定每个目标对象的第四向量,包括:

将所有其他目标对象在坐标轴中与所述每个目标对象之间的反向角度相加,以及将所有其他目标对象与所述每个目标对象之间的反向距离相加,以相加后的反向角度和反向距离作为每个目标对象的第四向量,

其中,其他目标对象与每个目标对象之间的距离越大,每个目标对象的第四向量越小;其他目标对象与每个目标对象之间的距离越小,每个目标对象的第四向量越大。

实际应用中,每个目标对象参数半径R内可能会存在多个其他目标对象,而每个其他目标对象均会产生一个反向向量,因此会存在多个反向向量,将多个反向向量相加之后,将最终相加后的反向向量作为目标对象的第四向量V2,即每个目标对象的第四向量V2的方向(即角度)为该目标对象预设半径R内其他目标对象与该目标对象连接方向的反向,大小(即移动速度)与其他目标对象与该目标对象的距离成反比。

参见图5,图5示出了根据本申请一实施例提供的一种目标对象控制方法中目标对象的第四向量的示意图。

图5中包括目标对象1、目标对象2、目标对象3、目标对象4、目标对象5、目标对象6,其中,以目标对象1为原点、预设半径R的圆中包括目标对象1、目标对象2和目标对象3,然后将目标对象2和目标对象3反向指向的向量之和作为目标对象1的第四向量。

具体实施时,将目标对象2的中心点与目标对象1的中心点连接,以及将目标对象3的中心点与目标对象1的中心点连接,将目标对象2的中心点与目标对象1的中心点之间的连线在坐标轴中的反方向(即角度)、目标对象3的中心点与目标对象1的中心点之间的连线在坐标轴中的反方向,以及目标对象2的中心点与目标对象1的中心点之间的连线的反向距离(即反向移动速度)、目标对象3的中心点与目标对象1的中心点之间的连线的反向距离相加之后的和,作为目标对象1的第四向量。

同时,在具体应用时,每个目标对象与相邻的目标对象的距离越近,该目标对象的第四向量就越大,反之越小。

本申请实施例中,通过每个目标对象在预设半径内的其他目标对象的反向向量作为每个目标对象的第四向量,在所有目标对象基于第四向量移动的过程中,可以与距离较近的目标对象之间会产生外推力,避免距离近的目标对象在移动的过程中发生重叠或者碰撞的现象发生,提升用户体验。以目标对象为鱼为例,获取每个鱼的第四向量,可以在鱼群向目标位置移动的过程中,鱼群中的每个鱼与周围的其他鱼之间产生反推力,避免与周围的鱼产生碰撞和重叠的情况发生。

本申请另一实施例中,所述基于每个所述目标对象在所述预设半径内的至少一个其他目标对象的平均向量,确定每个所述目标对象的第五向量,包括:

确定每个所述目标对象在预设半径内的至少一个其他目标对象;

获取所述至少一个其他目标对象中每个其他目标对象的当前向量;

根据所有其他目标对象的当前向量的平均值,确定每个所述目标对象的第五向量。

其中,当前向量可以理解为目标对象在当前画面中上一次移动的移动向量,即采用本申请的目标对象控制方法通过将获得的每个目标对象第一向量、第二向量、第三向量加权相加后,确定的移动向量。

首先,获取每个目标对象在预设半径内的至少一个其他目标对象;然后获取所述至少一个其他目标对象中所有其他目标对象的当前向量,然后将这些当前向量相加后取平均值,将其作为该目标对象的第五向量。

参见图6,图6示出了根据本申请一实施例提供的一种目标对象控制方法中目标对象的一种第五向量的示意图。

图6中包括目标对象1、目标对象2、目标对象3、目标对象4,其中,以目标对象1为原点、预设半径R的圆中包括目标对象1、目标对象2、目标对象3和目标对象4,然后获取目标对象2、目标对象3和目标对象1的当前向量,再将目标对象2、目标对象3和目标对象4的当前向量相加之后取平均,将计算后的平均值作为目标对象1的第五向量V3。

参见图7,图7示出了根据本申请一实施例提供的一种目标对象控制方法中目标对象的另一种第五向量的示意图。

图7中包括目标对象1、目标对象2、目标对象3、目标对象4,其中,以目标对象1为原点、预设半径R的圆中包括目标对象1、目标对象2、目标对象3和目标对象4,然后获取目标对象2、目标对象3和目标对象1的当前向量,再将目标对象2、目标对象3和目标对象4的当前向量相加之后取平均,将计算后的平均值作为目标对象1的第五向量V3。

本申请实施例中,以每个目标对象为原心,获取每个目标对象在预设半径内的其他目标对象,基于其他目标对象的当前向量的平均值作为每个目标对象的第五向量;在所有目标对象移动时,基于预设半径内的其他目标对象的当前向量约束每个目标对象的移动速度和方向,以保证每个目标对象与相邻的其他目标对象之间在移动的时候保持一致性,避免出现混乱。

具体实施时,所述根据所有其他目标对象的当前向量的平均值,作为每个所述目标对象的第五向量,包括:

将每个其他目标对象的目标移动速度乘以预设转向系数,以获得每个其他目标对象的转向移动速度;

根据所有其他目标对象的当前向量的角度以及转向移动速度的平均值,确定每个目标对象的第五向量。

具体的,当前向量包括目标角度和目标移动速度,而由于在游戏场景中,为了保证目标对象移动的真实性,目标对象的转向也是需要时间的,不会瞬间转向,避免目标对象出现较大幅度的跳转,影响用户体验,因此,会将每个目标对象在预设半径内的其他目标对象的当前向量中加入转向系数,以实现目标对象的转向平滑度。

实际应用中,在确定每个目标对象的其他目标对象的当前向量(即目标角度和目标移动速度)之后,将每个其他目标对象的目标移动速度乘以预设转向系数,获得每个其他目标对象的转向移动速度,然后将每个其他目标对象由转向移动速度和当前向量的角度(即目标角度)形成的目标向量进行加权求平均,从而获得每个目标对象的第五向量。

本申请实施例中,在所有目标对象移动时,基于每个目标对象的第五向量可以在所有目标对象转向时,控制其自身的转向移动速度和方向,实现所有目标对象的平滑转向,使得用户体验的真实感较强。仍以目标对象为鱼为例,获取每个鱼的第五向量,可以在鱼群向目标位置移动的过程中,控制其自身的转向移动速度和方向,实现平滑移动;并且使得鱼群中的每个鱼与相邻的其他鱼之间在移动的时候可以保持移动的一致性,避免与相邻的鱼在移动的过程中出现混乱。

步骤106:基于每个所述目标对象与虚拟对象之间的关系,确定每个所述目标对象的第三向量,其中,所述虚拟对象与每个所述目标对象距离最近的至少两个其他目标对象形成预定形状。

具体的,所述基于每个所述目标对象与虚拟对象之间的关系,确定每个所述目标对象的第三向量,包括:

基于每个所述目标对象与虚拟对象之间的关系,确定每个所述目标对象的第三向量,其中,所述虚拟对象与每个所述目标对象距离最近的两个其他目标对象形成等边三角形。

其中,虚拟对象可以根据实际应用进行设置,本申请对此不做任何限定,例如虚拟对象可以为一个点或者一个预设形状等。具体的,每个目标对象距离最近的两个其他目标对象确定虚拟对象的位置,将虚拟对象与该两个其他目标对象之间相连形成等边三角形。

具体实施时,由于每个目标对象的第四向量为产生反向推力的向量,若每个目标对象之间永远排斥的话,在目标对象整体移动时,目标对象之间就会散掉,而利用每个目标对象的第三向量可以让每个目标对象与其他目标对象之间产生关联性,使得目标对象整体移动时,会一直保持正常的队形进行移动。

本说明书另一实施例中,所述基于每个所述目标对象与虚拟对象之间的关系,确定每个所述目标对象的第三向量,包括:

获取每个所述目标对象在坐标轴中,与所述虚拟对象之间的角度;

获取每个所述目标对象的当前移动速度;

根据每个所述目标对象在坐标轴中与所述虚拟对象之间的角度,以及每个所述目标对象的当前移动速度,确定每个所述目标对象的第三向量。

实际应用中,先确定每个目标对象距离最近的两个其他目标对象,然后以确定的两个其他目标对象之间的连线为边,画等边三角形,然后将每个目标对象与对应的等边三角形之间的角度和每个目标对象的当前移动速度,作为每个目标对象的第三向量V4,其中,第三向量V4又可以看做每个目标对象指向由多个目标对象形成的队形位的向量。

参见图8,图8示出了根据本申请一实施例提供的一种目标对象控制方法中目标对象的第三向量的示意图。

图8中包括目标对象1、目标对象2、目标对象3、目标对象4、目标对象5、目标对象6,其中,以目标对象1为原点、预设半径R的圆中包括目标对象1、目标对象2、目标对象3,而目标对象2和目标对象3为与目标对象1最近的两个其他目标对象,然后基于目标对象2和目标对象3画等边三角形,再获取目标对象1与等边三角形的顶点之间的角度和目标对象1的当前移动速度,将其作为目标对象1的第三向量V4。

具体实施时,每个目标对象的第三向量中的方向为形成等边三角形的方向,即每个目标对象与等边三角形的顶点在坐标轴中的角度,而每个目标对象的第三向量中的大小(即移动速度)不固定,如果设置越大,表示目标对象回归阵型的速度越快,反之越慢。

本申请实施例中,通过获取指向最近两个目标对象且形成等边三角形的第三向量,在所有目标对象整体移动时,可以控制每个目标对象在移动过程中的队形,由于每个目标对象的第四向量为产生反向推力的向量,若每个目标对象之间永远排斥的话,在目标对象整体移动时,目标对象之间就会散掉,而利用每个目标对象的第三向量可以让每个目标对象与其他目标对象之间产生关联性,在移动的过程中每个目标对象的第四向量和第三向量使得目标对象之间,既不会碰撞重叠,又不会散掉,会一直保持正常的队形进行移动,提升用户体验。

仍以目标对象为鱼为例,获取每个鱼的第三向量,可以在鱼群向目标位置移动的过程中,鱼群中的每个鱼与周围的其他鱼之间产生关联性,在移动的过程中通过每个鱼的第四向量和第三向量使得鱼之间,既不会碰撞重叠,又不会散掉,会一直保持正常的队形进行移动,提升用户体验。

步骤108:根据每个所述目标对象的第一向量、第二向量与第三向量确定每个所述目标对象的移动向量。

具体的,所述根据每个所述目标对象的第一向量、第二向量与第三向量确定每个所述目标对象的移动向量,包括:

将每个所述目标对象的第一向量、第二向量与第三向量加权相加,以获得每个所述目标对象的移动向量。

具体实施时,在获得每个目标对象的第一向量、第二向量(即第四向量和第五向量)和第三向量之后,将这四个向量相加可以获得每个目标对象最终的移动向量,即移动向量,通过这个移动向量可以控制每个目标对象向目标位置的移动,以获得平滑的群体移动效果。具体的,可以通过如下公式进行目标向量的计算:

其中,V表示移动向量,V1表示第一向量,V2表示第四向量,V3表示第五向量,V4表示第三向量。

步骤110:根据所述移动向量控制每个所述目标对象移动至目标位置。

本申请实施例中,在获取每个目标对象的移动向量之后,可以基于每个目标对象对应的移动向量,控制目标对象的移动,使得每个目标对象可以基于对应的移动向量平滑、真实的移动到目标位置上,以实现所有目标对象的平滑移动的群体移动效果,提升用户体验。

参见图9,图9示出了根据本申请一实施例提供的一种目标对象控制方法中多个目标对象的群体移动效果图。

图9为当前多个目标对象向目标位置移动的群体平滑移动效果图。

具体实施时,若应用在视频帧中,每个视频帧中的多个目标对象向下一个视频帧的目标位置移动时也可以采用本申请的目标对象控制方法实现,本申请在此不做赘述。

本申请实施例提供的所述目标对象控制方法,通过获取的每个目标对象的三个向量,控制每个目标对象移动至目标位置的移动速度、角度以及每个目标对象之间的距离等,使得每个目标对象可以实现平滑不碰撞移动的同时,又能保持所有目标对象的移动队形,提升目标对象的移动真实感。

与上述方法实施例相对应,本申请还提供了目标对象控制装置实施例,图10示出了本申请一实施例提供的一种目标对象控制装置的结构示意图。如图10所示,该装置包括:

第一向量确定模块1002,被配置为获取多个待移动的目标对象,并基于所述多个目标对象中的每个目标对象与目标位置之间的关系,确定每个所述目标对象的第一向量;

第二向量确定模块1004,被配置为以每个所述目标对象为原点,基于每个所述目标对象与预设半径内的至少一个其他目标对象的关系,确定每个所述目标向量的第二向量;

第三向量确定模块1006,被配置为基于每个所述目标对象与虚拟对象之间的关系,确定每个所述目标对象的第三向量,其中,所述虚拟对象与每个所述目标对象距离最近的至少两个其他目标对象形成预定形状;

移动向量确定模块1008,被配置为根据每个所述目标对象的第一向量、第二向量与第三向量确定每个所述目标对象的移动向量;

目标对象控制模块1010,被配置为根据所述移动向量控制每个所述目标对象移动至目标位置。

可选的,所述第一向量确定模块1002,进一步被配置为:

获取所述多个目标对象中的每个目标对象在坐标轴中与目标位置之间的角度,以及获取每个所述目标对象的当前移动速度;

根据每个所述目标对象在坐标轴中与目标位置之间的角度,以及每个所述目标对象的当前移动速度,确定每个所述目标对象的第一向量。

可选的,所述第二向量确定模块1004,进一步被配置为:

以每个所述目标对象为原点,基于每个所述目标对象与预设半径内的至少一个其他目标对象相对应的反向向量,确定每个所述目标对象的第四向量;

基于每个所述目标对象在所述预设半径内的至少一个其他目标对象的平均向量,确定每个所述目标对象的第五向量;

根据所述第四向量和/或所述第五向量,确定每个所述目标向量的第二向量。

可选的,所述第二向量确定模块1004,进一步被配置为:

确定每个所述目标对象在预设半径内的至少一个其他目标对象;

获取所述至少一个其他目标对象的每个其他目标对象在坐标轴中,与所述每个目标对象之间的反向角度;

获取每个其他目标对象与所述每个目标对象之间的距离信息;

根据所有其他目标对象在坐标轴中与所述每个目标对象之间的反向角度,以及所有其他目标对象与所述每个目标对象之间的距离信息,确定每个目标对象的第四向量。

可选的,所述第二向量确定模块1004,进一步被配置为:

确定每个所述目标对象在预设半径内的至少一个其他目标对象;

获取所述至少一个其他目标对象中每个其他目标对象的当前向量;

根据所有其他目标对象的当前向量的平均值,确定每个所述目标对象的第五向量。

可选的,所述第二向量确定模块1004,进一步被配置为:

将每个其他目标对象的目标移动速度乘以预设转向系数,以获得每个其他目标对象的转向移动速度;

根据所有其他目标对象的当前向量的角度以及转向移动速度的平均值,确定每个目标对象的第五向量。

可选的,第三向量确定模块1006,进一步被配置为:

基于每个所述目标对象与虚拟对象之间的关系,确定每个所述目标对象的第三向量,其中,所述虚拟对象与每个所述目标对象距离最近的两个其他目标对象形成等边三角形。

可选的,第三向量确定模块1006,进一步被配置为:

获取每个所述目标对象在坐标轴中,与所述虚拟对象之间的角度;

获取每个所述目标对象的当前移动速度;

根据每个所述目标对象在坐标轴中与所述虚拟对象之间的角度,以及每个所述目标对象的当前移动速度,确定每个所述目标对象的第三向量。

本申请实施例提供的所述目标对象控制装置,通过获取的每个目标对象的三个向量,控制每个目标对象移动至目标位置的移动速度、角度以及每个目标对象之间的距离等,使得每个目标对象可以实现平滑不碰撞移动的同时,又能保持所有目标对象的移动队形,提升目标对象的移动真实感。

上述为本实施例的一种目标对象装置的示意性方案。需要说明的是,该目标对象装置的技术方案与上述的目标对象方法的技术方案属于同一构思,目标对象装置的技术方案未详细描述的细节内容,均可以参见上述目标对象方法的技术方案的描述。

参见图11,图11示出了根据本申请一个实施例提供的一种计算设备1100的结构框图。该计算设备1100的部件包括但不限于存储器1110和处理器1120。处理器1120与存储器1110通过总线1130相连接,数据库1150用于保存数据。

计算设备1100还包括接入设备1140,接入设备1140使得计算设备1100能够经由一个或多个网络1060通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备1140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。

在本申请的一个实施例中,计算设备1100的上述部件以及图11中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图11所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备1100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备1100还可以是移动式或静止式的服务器。

其中,处理器1120用于执行如下计算机可执行指令,所述处理器1120执行所述指令时实现所述的目标对象控制方法的步骤。

上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的目标对象控制方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述目标对象控制方法的技术方案的描述。

本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述目标对象控制方法的步骤。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的目标对象控制方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述目标对象控制方法的技术方案的描述。

上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

25页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:虚拟场景中虚拟对象的控制方法、装置及电子设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类