HI,欢迎来到起点商标网!
24小时服务QQ:2880605093

游戏角色的运动跟随方法及装置、存储介质、计算机设备与流程

2021-01-11 13:01:43|281|起点商标网
游戏角色的运动跟随方法及装置、存储介质、计算机设备与流程

本申请涉及计算机技术领域,尤其是涉及到一种游戏角色的运动跟随方法及装置、存储介质、计算机设备。



背景技术:

在传统的mmorpg游戏(multiplayeronlinerole-playinggame,大型多人在线角色扮演游戏)中,有大量的多人协同的玩法(比如多人副本,多人任务,大型游戏战场等),这些玩法有一个共同点:需要多人同时前往一个起始点开启玩法,在前往玩法的起始点的过程中往往需要经历一段漫长的路程,在这段赶路的过程中,通常都是非常枯燥乏味的,乏味的过程会大大降低玩家的游戏体验,然而这种赶路经历在游戏中并不少见,所以如何提高玩家在进入各个玩法中赶路的游戏体验变得非常重要。

随着游戏社交需求以及个人认同需求的快速发展,现有多数游戏采用了提供跟随功能来提升玩家体验,近一段时间游戏里跟随玩法呈现爆发性增长。当前比较普遍的移动跟随玩法的解决方案为:当第二角色需要跟随第一角色时,第一角色客户端会根据第一角色的移动路径确定第二角色的跟随路径,并由第一角色客户端将跟随路径发送给服务器,再由服务器转发到第二角色客户端中,第二角色客户端根据接收到的跟随路径控制第二角色移动,以展示第二角色对第一角色的跟随效果。上述解决方案存在两个缺陷:第一,跟随路径由第一角色客户端计算,客户端存在性能压力,容易导致客户端卡顿以及表现缺失;第二,玩家无法对游戏内的npc角色实现跟随。

综上,以上跟随方案存在的缺陷急需解决。



技术实现要素:

有鉴于此,本申请提供了一种游戏角色的运动跟随方法及装置、存储介质、计算机设备。

根据本申请的一个方面,提供了一种游戏角色的运动跟随方法,应用于服务器,包括:

接收角色跟随指令,其中,所述角色跟随指令包括目标角色标识以及跟随角色标识,所述目标角色为玩家角色或npc角色;

基于所述目标角色标识,获取目标角色的目标移动路径帧数据;

根据跟随角色对应的预设跟随帧数差以及所述目标移动路径帧数据,确定所述跟随角色对应的跟随移动路径帧数据,其中,所述跟随移动路径帧数据包括基于所述目标移动路径帧数据对应的位置进行插值处理而确定的数据帧,并将所述跟随移动路径帧数据发送至所述跟随角色标识对应的跟随角色终端中,以使所述跟随角色实现对所述目标角色的运动跟随。

具体地,所述目标移动路径帧数据包含的每个目标数据帧对应有目标帧时间以及目标帧位置;所述确定所述跟随角色对应的跟随移动路径帧数据,具体包括:

基于所述预设跟随帧数差以及所述目标数据帧,确定所述跟随移动路径帧数据中与所述目标数据帧对应的同步跟随数据帧,其中,所述同步跟随数据帧对应的跟随帧时间与所述目标数据帧对应的目标帧时间相同,所述同步跟随数据帧对应的跟随帧位置基于与相应的所述目标数据帧对应的目标跟随帧的位置确定,所述目标跟随帧为所述目标数据帧前向相差所述预设跟随帧数差的数据帧。

具体地,所述确定所述跟随角色对应的跟随移动路径帧数据,具体包括:

获取所述目标移动路径帧数据中第一目标数据帧对应的第一目标帧位置和第一目标帧时间,以及获取所述跟随角色的第一跟随帧位置,其中,所述第一目标数据帧为所述目标移动路径帧数据中的第一帧;

基于所述第一目标帧位置以及所述第一跟随帧位置做插值,得到与所述预设跟随帧数差数量匹配的初始跟随帧位置;

标注所述初始跟随帧位置对应的初始跟随帧时间,确定所述跟随移动路径帧数据中的初始跟随数据帧,其中,第一个初始跟随帧时间为所述第一目标帧时间。

具体地,所述确定所述跟随角色对应的跟随移动路径帧数据,具体包括:

获取所述目标移动路径帧数据中第一目标数据帧对应的第一目标帧位置和第二目标数据帧对应的第二目标帧位置,其中,所述第二目标数据帧为所述第一目标数据帧之后相差所述预设跟随帧数差数量的数据帧;

基于所述第一目标帧位置以及所述第二目标帧位置做插值,得到与所述预设跟随帧数差数量匹配的起步跟随帧位置,其中,所述起步跟随帧位置包括所述第二目标帧位置;

根据所述第一目标帧时间和所述第二目标帧时间标注所述起步跟随针位置对应的起步跟随帧时间,确定所述跟随移动路径帧数据中的起步跟随帧数据。

具体地,所述基于所述第一目标帧位置以及所述第二目标帧位置做插值之前,所述方法还包括:

获取所述第一目标数据帧与所述第二目标数据帧对应的全部的起步目标帧位置;

若所述起步目标帧位置存在重复,则基于所述第一目标帧位置以及所述第二目标帧位置做插值。

具体地,所述目标移动路径帧数据包含的每个目标数据帧还对应有目标帧状态,所述同步跟随数据帧对应的跟随帧状态为时间同步的所述目标数据帧之前相差所述预设跟随帧数差的目标数据帧对应的目标帧状态。

具体地,所述目标移动路径帧数据包括的每个目标数据帧还对应有目标帧速度;所述确定所述跟随角色对应的跟随移动路径帧数据,具体包括:

当所述目标数据帧中的任意一个第三目标数据帧对应的目标帧速度为零时,获取所述第三目标数据帧之前与所述预设跟随帧数差数量相当的停步目标数据帧对应的停步目标帧状态;

当所述停步目标帧状态包括多个时,获取状态发生变化的第四目标数据帧,并确定所述第四目标数据帧对应的第四目标帧位置;

根据所述第三目标数据帧对应的第三目标帧时间,获取时间同步的同步跟随数据帧对应的第二跟随帧位置;

基于所述第二跟随帧位置与所述第四目标帧位置之间的距离,确定所述跟随角色对应的停步跟随数据帧。

具体地,所述确定所述跟随角色对应的停步跟随数据帧,具体包括:

若所述第二跟随帧位置与所述第四目标帧位置之间的距离小于或等于预设停步跟随距离,则将所述第四目标帧位置作为所述跟随角色的第一停步位置,并根据所述第二跟随帧位置以及所述第一停步位置确定所述停步跟随数据帧。

具体地,所述确定所述跟随角色对应的停步跟随数据帧,具体包括:

若所述第二跟随帧位置与所第四目标帧位置之间的距离大于所述预设停步跟随距离,则基于所述第三目标数据帧对应的第三目标帧位置确定所述跟随角色的第二停步位置,并根据所述第二跟随帧位置以及所述第二停步位置确定所述停步跟随数据帧。

具体地,所述接收角色跟随指令,具体包括:

接收目标角色终端发送的所述角色跟随指令;和/或

接收所述跟随角色终端发送的所述角色跟随指令。

具体地,若所述跟随角色包括多个,则所述确定所述跟随角色对应的跟随移动路径帧数据之前,所述方法还包括:

分别确定每个所述跟随角色的跟随顺序,并按照所述跟随顺序分别确定每个所述跟随角色对应的预设跟随帧数差;

所述将所述跟随移动路径帧数据发送至所述跟随角色标识对应的跟随角色终端中,具体包括:

将所述跟随移动路径帧数据发送至各自对应的所述跟随角色终端中。

根据本申请的另一方面,提供了一种游戏角色的运动跟随装置,应用于服务器,包括:

跟随指令接收模块,用于接收角色跟随指令,其中,所述角色跟随指令包括目标角色标识以及至少一个跟随角色标识,所述目标角色为玩家角色或npc角色;

目标数据帧获取模块,用于基于所述目标角色标识,获取目标角色的目标移动路径帧数据;

跟随数据帧确定模块,用于根据跟随角色对应的预设跟随帧数差以及所述目标移动路径帧数据,确定所述跟随角色对应的跟随移动路径帧数据,其中,所述跟随移动路径帧数据包括基于所述目标移动路径帧数据对应的位置进行插值处理而确定的数据帧,并将所述跟随移动路径帧数据发送至所述跟随角色标识对应的跟随角色终端中,以使所述跟随角色实现对所述目标角色的运动跟随。

具体地,所述目标移动路径帧数据包含的每个目标数据帧对应有目标帧时间以及目标帧位置;所述跟随数据帧确定模块,具体包括:

同步跟随数据帧确定单元,用于基于所述预设跟随帧数差以及所述目标数据帧,确定所述跟随移动路径帧数据中与所述目标数据帧对应的同步跟随数据帧,其中,所述同步跟随数据帧对应的跟随帧时间与所述目标数据帧对应的目标帧时间相同,所述同步跟随数据帧对应的跟随帧位置基于与相应的所述目标数据帧对应的目标跟随帧的位置确定,所述目标跟随帧为所述目标数据帧前向相差所述预设跟随帧数差的数据帧。

具体地,所述跟随数据帧确定模块,具体包括:

初始帧时间获取单元,用于获取所述目标移动路径帧数据中第一目标数据帧对应的第一目标帧位置和第一目标帧时间,以及获取所述跟随角色的第一跟随帧位置,其中,所述第一目标数据帧为所述目标移动路径帧数据中的第一帧;

初始帧位置确定单元,用于基于所述第一目标帧位置以及所述第一跟随帧位置做插值,得到与所述预设跟随帧数差数量匹配的初始跟随帧位置;

初始跟随帧确定单元,用于标注所述初始跟随帧位置对应的初始跟随帧时间,确定所述跟随移动路径帧数据中的初始跟随数据帧,其中,第一个初始跟随帧时间为所述第一目标帧时间。

具体地,所述跟随数据帧确定模块,具体包括:

第一起步帧数据获取单元,用于获取所述目标移动路径帧数据中第一目标数据帧对应的第一目标帧位置和第二目标数据帧对应的第二目标帧位置,其中,所述第二目标数据帧为所述第一目标数据帧之后相差所述预设跟随帧数差数量的数据帧;

起步帧位置确定单元,用于基于所述第一目标帧位置以及所述第二目标帧位置做插值,得到与所述预设跟随帧数差数量匹配的起步跟随帧位置,其中,所述起步跟随帧位置包括所述第二目标帧位置;

起步帧数据确定单元,用于根据所述第一目标帧时间和所述第二目标帧时间标注所述起步跟随针位置对应的起步跟随帧时间,确定所述跟随移动路径帧数据中的起步跟随帧数据。

具体地,所述跟随数据帧确定模块还包括:

第二起步帧数据获取单元,用于基于所述第一目标帧位置以及所述第二目标帧位置做插值之前,获取所述第一目标数据帧与所述第二目标数据帧对应的全部的起步目标帧位置;

起步判断单元,用于若所述起步目标帧位置存在重复,则基于所述第一目标帧位置以及所述第二目标帧位置做插值。

具体地,所述目标移动路径帧数据包含的每个目标数据帧还对应有目标帧状态,所述同步跟随数据帧对应的跟随帧状态为时间同步的所述目标数据帧之前相差所述预设跟随帧数差的目标数据帧对应的目标帧状态。

具体地,所述目标移动路径帧数据包括的每个目标数据帧还对应有目标帧速度;所述跟随数据帧确定模块,具体包括:

停步帧状态获取单元,用于当所述目标数据帧中的任意一个第三目标数据帧对应的目标帧速度为零时,获取所述第三目标数据帧之前与所述预设跟随帧数差数量相当的停步目标数据帧对应的停步目标帧状态;

状态切换帧获取单元,用于当所述停步目标帧状态包括多个时,获取状态发生变化的第四目标数据帧,并确定所述第四目标数据帧对应的第四目标帧位置;

停步帧位置获取单元,用于根据所述第三目标数据帧对应的第三目标帧时间,获取时间同步的同步跟随数据帧对应的第二跟随帧位置;

停步跟随帧确定单元,用于基于所述第二跟随帧位置与所述第四目标帧位置之间的距离,确定所述跟随角色对应的停步跟随数据帧。

具体地,所述停步跟随帧确定单元,具体包括:

第一停步跟随帧确定子单元,用于若所述第二跟随帧位置与所述第四目标帧位置之间的距离小于或等于预设停步跟随距离,则将所述第四目标帧位置作为所述跟随角色的第一停步位置,并根据所述第二跟随帧位置以及所述第一停步位置确定所述停步跟随数据帧。

具体地,所述停步跟随帧确定单元,具体包括:

第二停步跟随帧确定子单元,用于若所述第二跟随帧位置与所第四目标帧位置之间的距离大于所述预设停步跟随距离,则基于所述第三目标数据帧对应的第三目标帧位置确定所述跟随角色的第二停步位置,并根据所述第二跟随帧位置以及所述第二停步位置确定所述停步跟随数据帧。

具体地,所述跟随指令接收模块,具体包括:

第一跟随指令接收单元,用于接收目标角色终端发送的所述角色跟随指令;和/或

第二跟随指令接收单元,用于接收所述跟随角色终端发送的所述角色跟随指令。

具体地,所述跟随数据帧确定模块还包括:

跟随帧数差确定单元,用于若所述跟随角色包括多个,则所述确定所述跟随角色对应的跟随移动路径帧数据之前,分别确定每个所述跟随角色的跟随顺序,并按照所述跟随顺序分别确定每个所述跟随角色对应的预设跟随帧数差;

数据发送单元,用于将所述跟随移动路径帧数据发送至各自对应的所述跟随角色终端中。

依据本申请又一个方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述游戏角色的运动跟随方法。

依据本申请再一个方面,提供了一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述游戏角色的运动跟随方法。

借由上述技术方案,本申请提供的一种游戏角色的运动跟随方法及装置、存储介质、计算机设备,服务器根据角色跟随指令,获取目标角色对应的目标移动路径帧数据,从而根据预设跟随帧数差在目标移动路径帧数据的基础上确定跟随角色对应的跟随移动路径帧数据,并将该跟随移动路径帧数据发送到跟随角色终端中,使得跟随角色终端按照跟随移动路径帧数据控制跟随角色逐帧移动,以跟随目标角色。本申请实施例相比与现有技术,将确定跟随移动路径帧数据的繁琐过程交由高性能的服务器处理,大大提升了处理效率,避免客户端性能压力过大导致卡顿、丢帧、表现缺失,甚至跟随过程中出现跟丢的问题,另一方面,解决了现有技术无法实现对游戏场景内的npc角色进行跟随的问题,为游戏开发阶段增加游戏玩法提供了技术支持,也为游戏体验阶段玩家体验更多玩法提供了保障,提高了玩家的游戏体验以及游戏产品的竞争力。

上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1示出了本申请实施例提供的一种游戏角色的运动跟随方法的流程示意图;

图2示出了本申请实施例提供的另一种游戏角色的运动跟随方法的流程示意图;

图3示出了本申请实施例提供的另一种游戏角色的运动跟随方法的流程示意图;

图4示出了本申请实施例提供的另一种游戏角色的运动跟随方法的流程示意图;

图5示出了本申请实施例提供的另一种游戏角色的运动跟随方法的流程示意图;

图6示出了本申请实施例提供的一种游戏角色的运动跟随装置的结构示意图;

图7示出了本申请实施例提供的另一种游戏角色的运动跟随装置的结构示意图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

在本实施例中提供了一种游戏角色的运动跟随方法,应用于服务器,如图1所示,该方法包括:

步骤101,接收角色跟随指令,其中,角色跟随指令包括目标角色标识以及至少一个跟随角色标识,目标角色为玩家角色或npc角色;

步骤102,基于目标角色标识,获取目标角色的目标移动路径帧数据;

步骤103,根据跟随角色对应的预设跟随帧数差以及目标移动路径帧数据,确定跟随角色对应的跟随移动路径帧数据,其中,跟随移动路径帧数据包括基于目标移动路径帧数据进行插值处理而确定的数据帧,并将跟随移动路径帧数据发送至跟随角色标识对应的跟随角色终端中,以使跟随角色实现对目标角色的运动跟随。

本申请实施例应用于游戏服务器,服务器接收到来自玩家客户端的角色跟随指令之后,通过对角色跟随指令进行解析得到目标角色标识以及跟随角色标识,从而确定该指令指示的被跟随角色即目标角色,以及跟随角色。其中,跟随角色可以为一个或多个,该角色跟随指令可以来自目标角色客户端,例如在多人协同游戏中,玩家在游戏场景内进行组队,由队长发起队伍跟随指令,命令队伍内的一个或多个队员跟随自己,该角色跟随指令也可以来自跟随角色客户端,例如玩家a在游戏场景内点击玩家b的头像发起跟随,玩家a跟随玩家b在游戏场景内移动。另外,该角色跟随指令可以是玩家对玩家的跟随,例如玩家a跟随玩家b,也可以是玩家对游戏场景内npc的跟随,例如玩家a跟随游戏场景内的npc角色“小渔村村长”。

接收角色跟随指令之后,服务器根据目标角色对应的角色标识确定目标角色客户端,然后从目标角色客户端中获取目标角色对应的目标移动路径帧数据,该目标移动路径帧数据为以帧为单位记录的在角色跟随指令创建开始及以后目标角色的移动路径,例如游戏场景内的帧率为10hz,即1秒用10帧画面进行表现,角色跟随指令在1点整创建,那么获取角色在1点整以及1点整以后的数据帧,即1点整、1点0分0.1秒、1点0分0.1秒对应的数据帧,该数据帧中至少应包括目标角色位置数据以及能够表示该数据帧对应时间的标识,例如可以采用数据帧对应时间的标识可以采用编号形式,具体可以用第1帧表示目标角色在1点整的数据帧,第2帧标识目标角色在1点0分0.1秒的数据帧……,也可以采用该数据帧对应的实际时间或对实际时间的编码数据来表示。另外,在目标角色客户端中,该客户端可以实时对目标角色的全部移动路径帧数据进行记录,以便服务器可以随时调用目标角色任意时间的历史数据;也可以在角色跟随指令被创建后对目标角色的移动路径帧数据进行记录,为其他角色跟随目标角色提供数据支持;也可以对目标角色产生的最新移动路径帧数据进行记录,例如记录1分钟内的移动路径帧数据,更早的数据删除。

服务器获取到目标角色对应的目标移动路径帧数据之后,基于该数据以及预先设置的跟随帧数差确定跟随角色的移动路径帧数据,其中,预设跟随帧数差是指跟随角色的移动路径与目标角色的移动路径相差的帧数,当跟随角色包括多个时,可以根据跟随角色的跟随顺序依次确定多个跟随角色对应的跟随帧数差,跟随帧数差可以随着跟随顺序依次递增,例如第一个跟随角色对应的预设跟随帧数差为5帧,第二个跟随角色对应的预设跟随帧数差为8帧等等,假设目标角色对应于一个跟随角色,该跟随角色对应的预设跟随帧数差为5帧,在跟随状态下,目标角色如果当前所在的位置为a,那么跟随角色在0.5秒(预设跟随帧数差/帧率=5/10=0.5)之后到达a。确定跟随移动路径帧数据之后,服务器将跟随移动路径帧数据发送到跟随角色客户端中,跟随角色客户端可以根据接收到的该跟随移动路径帧数据控制跟随角色移动,以实现跟随角色能够跟随目标角色移动的效果,跟随角色的玩家可以跟随目标角色移动,不需要跟随玩家进行操作。

另外,在一些特殊的跟随阶段可以基于目标移动路径帧数据对应的位置以及跟随角色对应的位置进行插值确定跟随角色的跟随移动路径帧数据。例如,跟随角色的初始跟随阶段,此时角色跟随指令已经下达,但由于存在预设跟随帧数差,跟随角色还没有开始对目标角色进行跟随,可以通过基于跟随角色的所在位置以及目标角色的目标移动路径帧数据对应的目标角色初始位置进行插值,从而基于插值结果确定跟随角色的初始跟随数据帧。再例如,目标角色在连续的几帧中表现出移动速度忽快忽慢,比如第一帧到第二帧移动了10米,第二帧到第三帧移动了1米,第三帧到第四帧移动了8米……,这时可以通过将这几帧数据中的第一帧和最后一帧对应的位置进行插值的方式,得到可以表现出平滑移动效果的跟随数据帧位置。

通过应用本实施例的技术方案,服务器根据角色跟随指令,获取目标角色对应的目标移动路径帧数据,从而根据预设跟随帧数差在目标移动路径帧数据的基础上确定跟随角色对应的跟随移动路径帧数据,并将该跟随移动路径帧数据发送到跟随角色终端中,使得跟随角色终端按照跟随移动路径帧数据控制跟随角色逐帧移动,以跟随目标角色。本申请实施例相比与现有技术,将确定跟随移动路径帧数据的繁琐过程交由高性能的服务器处理,大大提升了处理效率,避免客户端性能压力过大导致卡顿、丢帧、表现缺失,甚至跟随过程中出现跟丢的问题,另一方面,解决了现有技术无法实现对游戏场景内的npc角色进行跟随的问题,为游戏开发阶段增加游戏玩法提供了技术支持,也为游戏体验阶段玩家体验更多玩法提供了保障,提高了玩家的游戏体验以及游戏产品的竞争力。

进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例的具体实施过程,提供了另一种游戏角色的运动跟随方法,如图2所示,该方法包括:

为了提高跟随功能的表现效果,本申请实施例提供了多种确定跟随移动路径帧数据的方式,多种实施方式可以用于目标跟随的不同阶段,具体步骤103可以包括:

方式一,在跟随角色的同步跟随阶段,如图2所示,步骤103具体包括:

步骤103-1,基于预设跟随帧数差以及目标数据帧,确定跟随移动路径帧数据中与目标数据帧对应的同步跟随数据帧,其中,同步跟随数据帧对应的跟随帧时间与目标数据帧对应的目标帧时间相同,同步跟随数据帧对应的跟随帧位置基于与相应的目标数据帧对应的目标跟随帧的位置确定,目标跟随帧为目标数据帧前向相差预设跟随帧数差的数据帧。

在上述实施例中,目标移动路径帧数据包含的每个目标数据帧对应有目标帧时间以及目标帧位置。同步跟随阶段是指跟随角色完全按照目标角色的移动轨迹移动的阶段,与此相对的,还包括异步跟随阶段,例如在目标角色的起步阶段,目标角色可能存在走走停停的现象,为了提升跟随表现效果,跟随角色可以不按照目标角色走走停停的方式移动,而是以一种较为平滑的方式移动,这时跟随角色可以不按照目标角色对应的目标数据帧的目标帧位置来移动。

对于同步跟随阶段,跟随移动路径帧数据中对应有同步跟随数据帧,在实际游戏场景内的跟随过程中,大部分的跟随过程都属于同步跟随,本申请实施例中采用每个目标数据帧对应有目标帧时间,该目标帧时间用于反应这一帧数据对应的实际时间或者游戏世界时间,同步跟随数据帧对应的跟随帧时间与目标数据帧对应的目标帧时间相同,

例如跟随角色在1点整开始对目标角色跟随,对目标角色在1点零0.5秒以后的移动路径进行同步跟随,假设预设跟随帧数差为5,游戏帧率为10hz,跟随角色与目标角色有0.5秒的跟随时间差,那么跟随角色应在1点零1秒时,对目标角色在1点零0.5秒的移动特征进行跟随。可以先确定跟随角色的同步跟随开始时间1点零1秒,在目标移动路径帧数据中找到与1点零1秒对应的数据帧,将1点零1秒确定为同步跟随帧对应的跟随帧时间,然后向前偏移5帧,获取1点零0.5秒的目标数据帧对应目标帧位置,将该位置确定为同步跟随数据帧的位置,并且该同步跟随帧对应的跟随帧时间为1点零1秒,再例如同步跟随帧对应的跟随帧时间为1点零1.1秒,那么该同步跟随帧对应的跟随帧位置为时间为1点零0.6秒的目标帧对应的位置。以此类推,确定全部同步跟随帧,进而确定跟随移动路径帧数据。

方式二,在跟随角色的初始跟随阶段,如图3所示,步骤103具体包括:

步骤103-2-1,获取目标移动路径帧数据中第一目标数据帧对应的第一目标帧位置和第一目标帧时间,以及获取跟随角色的第一跟随帧位置,其中,第一目标数据帧为目标移动路径帧数据中的第一帧;

步骤103-2-2,基于第一目标帧位置以及第一跟随帧位置做插值,得到与预设跟随帧数差数量匹配的初始跟随帧位置;

步骤103-2-3,标注初始跟随帧位置对应的初始跟随帧时间,确定跟随移动路径帧数据中的初始跟随数据帧,其中,第一个初始跟随帧时间为第一目标帧时间。

在上述实施例中,跟随角色的初始跟随阶段是指角色跟随指令已经下达,但由于存在预设跟随帧数差,跟随角色还没有开始对目标角色进行跟随的阶段,例如预设跟随帧数差为5,跟随角色如果想要跟随目标角色移动,需要等到目标角色移动5帧以后再开始移动。为了解决跟随角色在这5帧图像的展示时间表现为等待状态而导致跟随展示效果差的问题,本申请实施例对上述初始跟随阶段设置了初始跟随数据帧,使得跟随角色可以按照初始跟随数据帧移动,避免原地等待。具体来说,获取目标移动路径帧数据中的第一帧,作为第一目标数据帧,获取第一目标数据帧对应的第一目标帧位置和第一目标帧时间,也就是目标角色的初始位置,将第一目标帧时间作为跟随角色的跟随开始时间,从这个时间开始跟随角色进入跟随状态,该时间对应的跟随角色数据帧为跟随角色的第一跟随帧,进一步获取跟随角色在跟随开始时间的位置,即第一跟随帧位置,从而对第一目标帧位置和第一跟随帧位置做插值,根据插值结果确定跟随角色的初始跟随数据帧,其中,插值结果作为初始跟随数据帧的位置信息,初始跟随数据帧的时间信息与目标跟随数据帧同步。

例如,预设跟随帧数差为5,获取目标角色对应的第一目标数据帧的时间为1点整,位置为a,获取跟随角色在1点整的位置b,那么对位置a和位置b进行插值处理,得到包括位置b在内的4个插值位置,插值1、插值2、插值3、插值4,分别按照插值位置与位置a距离从大到小的顺序标注对应的时间信息,位置b对应的时间为1点整、插值1对应的时间为1点零0.1秒、插值2对应的时间为1点零0.2秒……。从而确定初始跟随数据帧,跟随角色按照初始跟随数据帧进行移动,可以在跟随开始的前5帧图像中也表现为移动状态向目标角色靠近,以免跟随角色客户端展示跟随角色的呆滞等待效果,提升游戏场景内的跟随状态表现力。

方式三,在跟随角色的起步跟随阶段,如图4所示,步骤103具体包括:

步骤103-3-1,获取目标移动路径帧数据中第一目标数据帧对应的第一目标帧位置和第二目标数据帧对应的第二目标帧位置,其中,第二目标数据帧为第一目标数据帧之后相差预设跟随帧数差数量的数据帧;

步骤103-3-2,基于第一目标帧位置以及第二目标帧位置做插值,得到与预设跟随帧数差数量匹配的起步跟随帧位置,其中,起步跟随帧位置包括第二目标帧位置;

步骤103-3-3,根据第一目标帧时间和第二目标帧时间标注起步跟随针位置对应的起步跟随帧时间,确定跟随移动路径帧数据中的起步跟随帧数据。

在上述实施例中,跟随角色的起步跟随阶段是指跟随角色对目标角色起步移动路径的跟随阶段,例如角色跟随指令下达以后,目标角色开始从原来的停止状态变为移动状态,目标角色开始移动的短暂时间内可能处于走走停停的踌躇不前的状态,如果跟随角色完全按照目标角色的移动路径逐帧跟随,那么跟随角色也将呈现这种状态,导致跟随表现力下降,因此本申请实施例设置跟随角色的起步跟随帧,使跟随角色在对目标角色的起步阶段进行跟随时可以按照起步跟随帧进行跟随,使得跟随路径平滑,提升跟随效果。

具体来说,获取目标移动路径帧数据中的第一帧,作为第一目标数据帧,以及与第一目标数据帧相差预设跟随帧数差的第二目标数据帧,并获取第一目标数据帧对应的第一目标帧位置和第二目标数据帧对应的第二目标帧位置,例如预设跟随帧数差为5,第一目标数据帧为1点整对应的数据帧,第二目标数据帧则为1点零0.5秒对应的数据帧。进一步,基于上述的第一目标帧位置和第二目标帧位置做插值,得到包含第二目标帧位置在内的5个插值位置(5为预设跟随帧数差)作为起步跟随帧位置,而后再分别对每个起步跟随帧位置依次标注相应的时间信息,得到完整的起步跟随帧,并将起步跟随帧作为跟随移动路径帧数据的一部分发送到跟随角色终端中,指导跟随角色的跟随移动路径,使得跟随角色在起步阶段的移动趋于平滑,提升跟随效果。

另外,在上述实施例中,如果发起角色跟随时,目标角色没有表现为走走停停的起步状态,那么直接按照目标角色对应的目标数据帧确定跟随角色的跟随数据帧即可,不需要对目标数据帧中的位置信息进行平滑处理,具体地,步骤103-3-1之后,步骤103-3-2之前,还可以包括:获取第一目标数据帧与第二目标数据帧对应的全部的起步目标帧位置;若起步目标帧位置存在重复,则执行步骤103-3-2。其中,如果获取的起步目标帧位置存在重复,说明目标角色在跟随指令开始之后表现为走走停停的起步状态,应按照上述方法进行起步状态的平滑处理。

方式四,在跟随角色的停步跟随阶段,如图5所示,步骤103具体包括:

步骤103-4-1,当目标数据帧中的任意一个第三目标数据帧对应的目标帧速度为零时,获取第三目标数据帧之前与预设跟随帧数差数量相当的停步目标数据帧对应的停步目标帧状态;

步骤103-4-2,当停步目标帧状态包括多个时,获取状态发生变化的第四目标数据帧,并确定第四目标数据帧对应的第四目标帧位置;

步骤103-4-3,根据第三目标数据帧对应的第三目标帧时间,获取时间同步的同步跟随数据帧对应的第二跟随帧位置;

步骤103-4-4,基于第二跟随帧位置与第四目标帧位置之间的距离,确定跟随角色对应的停步跟随数据帧。

在上述实施例中,首先应说明的是,目标移动路径帧数据包含的每个目标数据帧还对应有目标帧状态,同步跟随数据帧对应的跟随帧状态为时间同步的目标数据帧之前相差预设跟随帧数差的目标数据帧对应的目标帧状态。也就是说,跟随数据帧除了跟随相应目标数据帧的位置外,还跟随目标数据帧的状态,其中,目标帧状态可以包括目标角色的飞行状态、步行状态等等。目标角色在位置a为飞行状态,那么跟随角色跟随到位置a时也应为飞行状态,目标角色在位置b由飞行状态切换为步行状态,那么跟随角色跟随到位置b时也应从飞行状态切换为步行状态。在此基础上,存在一些较为特殊的情况,例如目标角色在位置c由飞行状态切换为步行状态后很快停止在位置d,如果按照同步跟随的方式,跟随角色也应该在位置c由飞行状态切换为步行状态后停止在位置d,但是若按此方式跟随,跟随角色将和目标角色停止在相同的位置,这会造成游戏场景内多个角色重叠展示效果差,因此,在目标角色停止移动时,跟随角色应与目标角色保持一段距离停止,此外在停步阶段如果目标角色的状态发生了变化,可以通过上述实施例来确定跟随角色的停步跟随数据帧。

具体来说,首先,获取目标角色在停步阶段对应的数据帧,如果目标数据帧对应的速度为零,说明目标角色在该帧的相应位置停止移动,因此获取目标数据帧中目标帧数据为零的第三目标数据帧,以及包括第三目标数据帧在内的之前的5个数据帧(5为预设跟随帧数差)作为停步目标数据帧;其次,通过获取停步目标数据帧对应的停步目标帧状态来判断目标角色在停步阶段是否发生状态切换,若停步目标帧状态包括多个说明目标角色在停步阶段发生了状态切换;然后,在确定目标角色在停步阶段发生了状态切换之后,获取发生状态切换的第四目标数据帧以及第四目标数据帧对应的第四目标帧位置,即目标角色发生状态切换的位置;接着,获取跟随角色在第三目标帧时间(第三目标帧时间即目标角色停止移动的时间)所在的位置,即上述第二跟随帧位置;最后,根据第二跟随位置与第四目标帧位置的距离大小设定跟随角色的停步跟随数据帧,即根据目标角色发生状态切换的位置与跟随角色在目标角色停止移动的时间所在的位置之间的距离来确定停步跟随数据帧。

在上述实施例的步骤103-4-4中,具体地,若第二跟随帧位置与第四目标帧位置之间的距离小于或等于预设停步跟随距离,则将第四目标帧位置作为跟随角色的第一停步位置,并根据第二跟随帧位置以及第一停步位置确定停步跟随数据帧。以及,若第二跟随帧位置与所第四目标帧位置之间的距离大于预设停步跟随距离,则基于第三目标数据帧对应的第三目标帧位置确定跟随角色的第二停步位置,并根据第二跟随帧位置以及第二停步位置确定停步跟随数据帧。

在该实施例中,假设目标角色在停步阶段由飞行状态切换为步行状态,目标角色在位置c由飞行状态切换为步行状态后很快停止在位置d,目标角色停止在位置d时跟随角色移动到位置e,由于目标角色停止在位置d之后不再移动,因此应根据位置e与位置d的距离确定跟随角色的停步跟随数据帧。如果位置e与位置d的距离较近(小于或等于预设停步跟随距离),说明目标角色停止移动时跟随角色与之距离较近,为了体现出跟随角色的状态跟随目标角色的状态发生切换,那么使跟随角色移动到位置c后停止移动,即将第四目标帧位置(目标角色的状态切换位置)作为跟随角色的第一停步位置,并基于第四目标帧位置设置停步跟随数据帧(要保证停步跟随数据帧的最后一帧对应的位置为第四目标帧位置),由于跟随角色的状态跟随目标角色的状态,因此跟随角色按照停步跟随数据帧移动可以表现为跟随角色跟随目标角色移动到位置c并停止,且在位置c之前表现为飞行状态,在位置c表现为步行状态。

如果位置e与位置d的距离较远(大于预设停步跟随距离),说明目标角色停止移动时距离跟随角色较远,为了体现跟随角色对目标角色的在位置和状态层面上的跟随,并且使跟随角色在停止时与目标角色不发生重叠,基于位置d(第三目标帧位置)确定跟随角色的停步位置,即根据目标角色的移动停止位置确定跟随角色的停步跟随数据帧,例如基于目标角色移动方向将目标角色途径的与位置d距离一定长度的位置确定为第二停步位置f(例如在游戏场景内距离位置d0.5米的位置确定为停步位置),并基于第二停步位置设置停步跟随数据帧,由于跟随角色的状态跟随目标角色的状态,因此跟随角色按照停步跟随数据帧移动可以表现为跟随角色跟随目标角色移动到位置f并停止,且跟随角色在位置c之前表现为飞行状态,在位置c和之后表现为步行状态。

通过上述四种实施例确定跟随数据帧,使得跟随角色在初始阶段可以表现为向目标角色移动而不是呆滞的原地等待,在起步阶段可以平滑起步避免完全跟随目标角色可能表现为走走停停的卡顿状态,在同步阶段可以完全跟随目标角色的位置和状态移动,在停步阶段能够保证完全体现目标角色的状态切换过程且停止在与目标角色不发生重叠的位置,以上方式均起到了提升跟随角色在跟随过程中的表现效果的技术效果,提升了用户游戏体验,并且搭配高性能的服务器进行上述计算,保证了计算准确,不会给客户端带来性能上的压力。

另外,在本申请任一实施例中,具体地,若跟随角色包括多个,则分别确定每个跟随角色的跟随顺序,并按照跟随顺序确定每个跟随角色对应的预设跟随帧数差。相应的,将跟随移动路径帧数据发送至各自对应的跟随角色终端中。

在该实施例中,一个目标角色可以对应多个跟随角色,例如游戏场景内的游戏队伍里包括3个人,队长发起队内跟随,其他两名队员可以跟随队长,为了避免每个队员在跟随过程中不重叠显示,针对这种情况可以设置多个预设跟随帧数差,例如跟随角色1对应的跟随帧数差为5,跟随角色2对应的跟随帧数差为10。在此基础上,按照本申请实施例提供的跟随移动路径帧数据确定方法,分别确定每个跟随角色对应的跟随移动路径帧数据,并发送至相应的跟随角色终端中,以使多个角色对目标角色进行跟随时不会发生角色重叠,提升跟随显示效果。

进一步的,作为图1方法的具体实现,本申请实施例提供了一种游戏角色的运动跟随装置,应用于服务器,如图6所示,该装置包括:

跟随指令接收模块61,用于接收角色跟随指令,其中,角色跟随指令包括目标角色标识以及至少一个跟随角色标识,目标角色为玩家角色或npc角色;

目标数据帧获取模块62,用于基于目标角色标识,获取目标角色的目标移动路径帧数据;

跟随数据帧确定模块63,用于根据跟随角色对应的预设跟随帧数差以及目标移动路径帧数据,确定跟随角色对应的跟随移动路径帧数据,其中,跟随移动路径帧数据包括基于目标移动路径帧数据对应的位置进行插值处理而确定的数据帧,并将跟随移动路径帧数据发送至跟随角色标识对应的跟随角色终端中,以使跟随角色实现对目标角色的运动跟随。

在具体的应用场景中,如图7所示,目标移动路径帧数据包含的每个目标数据帧对应有目标帧时间以及目标帧位置;跟随数据帧确定模块63,具体包括:

同步跟随数据帧确定单元6301,用于基于预设跟随帧数差以及目标数据帧,确定跟随移动路径帧数据中与目标数据帧对应的同步跟随数据帧,其中,同步跟随数据帧对应的跟随帧时间与目标数据帧对应的目标帧时间相同,同步跟随数据帧对应的跟随帧位置基于与相应的目标数据帧对应的目标跟随帧的位置确定,目标跟随帧为目标数据帧前向相差预设跟随帧数差的数据帧。

在具体的应用场景中,如图7所示,跟随数据帧确定模块63,具体包括:

初始帧时间获取单元6302,用于获取目标移动路径帧数据中第一目标数据帧对应的第一目标帧位置和第一目标帧时间,以及获取跟随角色的第一跟随帧位置,其中,第一目标数据帧为目标移动路径帧数据中的第一帧;

初始帧位置确定单元6303,用于基于第一目标帧位置以及第一跟随帧位置做插值,得到与预设跟随帧数差数量匹配的初始跟随帧位置;

初始跟随帧确定单元6304,用于标注初始跟随帧位置对应的初始跟随帧时间,确定跟随移动路径帧数据中的初始跟随数据帧,其中,第一个初始跟随帧时间为第一目标帧时间。

在具体的应用场景中,如图7所示,跟随数据帧确定模块63,具体包括:

第一起步帧数据获取单元6305,用于获取目标移动路径帧数据中第一目标数据帧对应的第一目标帧位置和第二目标数据帧对应的第二目标帧位置,其中,第二目标数据帧为第一目标数据帧之后相差预设跟随帧数差数量的数据帧;

起步帧位置确定单元6306,用于基于第一目标帧位置以及第二目标帧位置做插值,得到与预设跟随帧数差数量匹配的起步跟随帧位置,其中,起步跟随帧位置包括第二目标帧位置;

起步帧数据确定单元6307,用于根据第一目标帧时间和第二目标帧时间标注起步跟随针位置对应的起步跟随帧时间,确定跟随移动路径帧数据中的起步跟随帧数据。

在具体的应用场景中,如图7所示,跟随数据帧确定模块63还包括:

第二起步帧数据获取单元6308,用于基于第一目标帧位置以及第二目标帧位置做插值之前,获取第一目标数据帧与第二目标数据帧对应的全部的起步目标帧位置;

起步判断单元6309,用于若起步目标帧位置存在重复,则基于第一目标帧位置以及第二目标帧位置做插值。

在具体的应用场景中,目标移动路径帧数据包含的每个目标数据帧还对应有目标帧状态,同步跟随数据帧对应的跟随帧状态为时间同步的目标数据帧之前相差预设跟随帧数差的目标数据帧对应的目标帧状态。

在具体的应用场景中,如图7所示,目标移动路径帧数据包括的每个目标数据帧还对应有目标帧速度;跟随数据帧确定模块63,具体包括:

停步帧状态获取单元6310,用于当目标数据帧中的任意一个第三目标数据帧对应的目标帧速度为零时,获取第三目标数据帧之前与预设跟随帧数差数量相当的停步目标数据帧对应的停步目标帧状态;

状态切换帧获取单元6311,用于当停步目标帧状态包括多个时,获取状态发生变化的第四目标数据帧,并确定第四目标数据帧对应的第四目标帧位置;

停步帧位置获取单元6312,用于根据第三目标数据帧对应的第三目标帧时间,获取时间同步的同步跟随数据帧对应的第二跟随帧位置;

停步跟随帧确定单元6313,用于基于第二跟随帧位置与第四目标帧位置之间的距离,确定跟随角色对应的停步跟随数据帧。

在具体的应用场景中,图中未示出,停步跟随帧确定单元6313,具体包括:

第一停步跟随帧确定子单元63131,用于若第二跟随帧位置与第四目标帧位置之间的距离小于或等于预设停步跟随距离,则将第四目标帧位置作为跟随角色的第一停步位置,并根据第二跟随帧位置以及第一停步位置确定停步跟随数据帧。

在具体的应用场景中,图中未示出,停步跟随帧确定单元,具体包括:

第二停步跟随帧确定子单元63132,用于若第二跟随帧位置与所第四目标帧位置之间的距离大于预设停步跟随距离,则基于第三目标数据帧对应的第三目标帧位置确定跟随角色的第二停步位置,并根据第二跟随帧位置以及第二停步位置确定停步跟随数据帧。

在具体的应用场景中,如图7所示,跟随指令接收模块61,具体包括:

第一跟随指令接收单元6101,用于接收目标角色终端发送的角色跟随指令;和/或

第二跟随指令接收单元6102,用于接收跟随角色终端发送的角色跟随指令。

在具体的应用场景中,如图7所示,跟随数据帧确定模块63还包括:

跟随帧数差确定单元6314,用于若跟随角色包括多个,则确定跟随角色对应的跟随移动路径帧数据之前,分别确定每个跟随角色的跟随顺序,并按照跟随顺序分别确定每个跟随角色对应的预设跟随帧数差;

数据发送单元6315,用于将跟随移动路径帧数据发送至各自对应的跟随角色终端中。

需要说明的是,本申请实施例提供的一种游戏角色的运动跟随装置所涉及各功能单元的其他相应描述,可以参考图1至图5方法中的对应描述,在此不再赘述。

基于上述如图1至图5所示方法,相应的,本申请实施例还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述如图1至图5所示的游戏角色的运动跟随方法。

基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。

基于上述如图1至图5所示的方法,以及图6至图7所示的虚拟装置实施例,为了实现上述目的,本申请实施例还提供了一种计算机设备,具体可以为个人计算机、服务器、网络设备等,该计算机设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1至图5所示的游戏角色的运动跟随方法。

可选地,该计算机设备还可以包括用户接口、网络接口、摄像头、射频(radiofrequency,rf)电路,传感器、音频电路、wi-fi模块等等。用户接口可以包括显示屏(display)、输入单元比如键盘(keyboard)等,可选用户接口还可以包括usb接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如蓝牙接口、wi-fi接口)等。

本领域技术人员可以理解,本实施例提供的一种计算机设备结构并不构成对该计算机设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。

存储介质中还可以包括操作系统、网络通信模块。操作系统是管理和保存计算机设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与该实体设备中其它硬件和软件之间通信。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现服务器根据角色跟随指令,获取目标角色对应的目标移动路径帧数据,从而根据预设跟随帧数差在目标移动路径帧数据的基础上确定跟随角色对应的跟随移动路径帧数据,并将该跟随移动路径帧数据发送到跟随角色终端中,使得跟随角色终端按照跟随移动路径帧数据控制跟随角色逐帧移动,以跟随目标角色。本申请实施例相比与现有技术,将确定跟随移动路径帧数据的繁琐过程交由高性能的服务器处理,大大提升了处理效率,避免客户端性能压力过大导致卡顿、丢帧、表现缺失,甚至跟随过程中出现跟丢的问题,另一方面,解决了现有技术无法实现对游戏场景内的npc角色进行跟随的问题,为游戏开发阶段增加游戏玩法提供了技术支持,也为游戏体验阶段玩家体验更多玩法提供了保障,提高了玩家的游戏体验以及游戏产品的竞争力。

本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。

起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。

此文章来源于网络,如有侵权,请联系删除

相关标签: 游戏帧数帧数
tips