CN116603239B - 数据处理方法、装置及相关设备 - Google Patents

数据处理方法、装置及相关设备 Download PDF

Info

Publication number
CN116603239B
CN116603239B CN202310893476.1A CN202310893476A CN116603239B CN 116603239 B CN116603239 B CN 116603239B CN 202310893476 A CN202310893476 A CN 202310893476A CN 116603239 B CN116603239 B CN 116603239B
Authority
CN
China
Prior art keywords
grid
map
virtual
space
influence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202310893476.1A
Other languages
English (en)
Other versions
CN116603239A (zh
Inventor
汪胜蕾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202310893476.1A priority Critical patent/CN116603239B/zh
Publication of CN116603239A publication Critical patent/CN116603239A/zh
Application granted granted Critical
Publication of CN116603239B publication Critical patent/CN116603239B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/56Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/65Methods for processing data by generating or executing the game program for computing the condition of a game character

Abstract

本申请实施例公开了数据处理方法、装置及相关设备,可应用于数据处理技术领域。其中方法包括:获取针对第一虚拟对象发送的对象移动请求;在基于对象移动请求将第一虚拟对象在业务空间中的位置由第一空间位置移动至第二空间位置时,确定第一位置影响范围和第二位置影响范围;获取与第一空间位置和第二空间位置相关联的空间跨度参数,在空间跨度参数满足业务空间对应的空间跨度影响条件时,基于第一位置影响范围和第二位置影响范围,确定位置影响变更范围;在位置影响变更范围内存在与第一虚拟对象相关联的虚拟业务对象时,对虚拟业务对象的对象状态进行状态优化。采用本申请实施例,有助于减少服务器针对虚拟业务对象的资源消耗。

Description

数据处理方法、装置及相关设备
技术领域
本申请涉及数据处理技术领域,尤其涉及数据处理方法、装置及相关设备。
背景技术
在一些涉及虚拟对象的虚拟场景中,例如游戏场景中,虚拟场景的地图中可以配置一些能够与玩家对应的虚拟对象进行互动的非玩家控制角色(NPC)。通常情况下,服务器需要对地图中的所有NPC的单一工作状态进行无差别维护。
然而,发明人在实践过程中发现,虚拟环境空间中的地图上的NPC的状态维护需要消耗计算资源,一旦地图中的NPC数量较多,则就需要消耗大量计算资源去对所有NPC的单一工作状态进行维护,导致服务器的计算资源开销较大。
发明内容
本申请实施例提供了一种数据处理方法、装置及相关设备,能够根据虚拟对象在业务空间中的位置对位置变更影响范围内的虚拟业务对象的对象状态进行优化,有助于减少服务器针对虚拟业务对象的资源消耗。
本申请实施例一方面提供了一种数据处理方法,方法包括:
获取针对业务空间中的第一虚拟对象发送的对象移动请求;对象移动请求用于指示将第一虚拟对象在业务空间中的位置由第一空间位置移动至第二空间位置;
在基于对象移动请求将第一虚拟对象在业务空间中的位置由第一空间位置移动至第二空间位置时,确定第一空间位置对应的第一位置影响范围和第二空间位置对应的第二位置影响范围;
获取与第一空间位置和第二空间位置相关联的空间跨度参数,在空间跨度参数满足业务空间对应的空间跨度影响条件时,基于第一位置影响范围和第二位置影响范围,确定与第一虚拟对象相关联的位置影响变更范围;
在位置影响变更范围内存在与第一虚拟对象相关联的虚拟业务对象时,对虚拟业务对象的对象状态进行状态优化;虚拟业务对象为位置影响变更范围内不同于第一虚拟对象的对象。
本申请实施例一方面提供了一种数据处理装置,装置包括:
请求获取模块,用于获取针对业务空间中的第一虚拟对象发送的对象移动请求;对象移动请求用于指示将第一虚拟对象在业务空间中的位置由第一空间位置移动至第二空间位置;
影响范围确定模块,用于在基于对象移动请求将第一虚拟对象在业务空间中的位置由第一空间位置移动至第二空间位置时,确定第一空间位置对应的第一位置影响范围和第二空间位置对应的第二位置影响范围;
变更范围确定模块,用于获取与第一空间位置和第二空间位置相关联的空间跨度参数,在空间跨度参数满足业务空间对应的空间跨度影响条件时,基于第一位置影响范围和第二位置影响范围,确定与第一虚拟对象相关联的位置影响变更范围;
状态优化模块,用于在位置影响变更范围内存在与第一虚拟对象相关联的虚拟业务对象时,对虚拟业务对象的对象状态进行状态优化;虚拟业务对象为位置影响变更范围内不同于第一虚拟对象的对象。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本申请实施例提供的方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例提供的方法。
采用本申请实施例,可以在业务空间(如虚拟游戏空间)中,确定虚拟对象(如第一虚拟对象)所在的位置对应的位置影响范围(如第一位置影响范围、第二位置影响范围),从而在虚拟对象由一个位置移动至另一位置时,基于位置影响变更范围确定是否对位置影响变更范围内的虚拟业务对象的对象状态进行优化,由此可以根据虚拟对象在业务空间中的位置对位置变更影响范围内的虚拟业务对象的对象状态进行优化,而不需要无差别维护业务空间中的所有NPC的状态,有助于减少服务器针对虚拟业务对象的资源消耗。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据处理系统的结构示意图;
图2是本申请实施例提供的一种数据交互场景的示意图;
图3是本申请实施例提供的一种数据处理方法的流程示意图1;
图4是本申请实施例提供的一种移动路径的示意图;
图5是本申请实施例提供的一种位置影响范围的示意图;
图6是本申请实施例提供的另一种位置影响范围的示意图;
图7是本申请实施例提供的一种确定第二位置影响范围的示意图1;
图8是本申请实施例提供的一种确定第二位置影响范围的示意图2;
图9是本申请实施例提供的一种第二位置影响范围的变化过程的效果示意图1;
图10是本申请实施例提供的一种第二位置影响范围的确定过程的效果示意图2;
图11是本申请实施例提供的一种第二位置影响范围的确定过程的效果示意图3;
图12是本申请实施例提供的一种第二位置影响范围的确定过程的效果示意图4;
图13是本申请实施例提供的一种第二位置影响范围的确定过程的效果示意图5;
图14是本申请实施例提供的一种位置影响范围的示意图;
图15是本申请实施例提供的一种位置影响变更范围的示意图;
图16是本申请实施例提供的一种数据处理方法的流程示意图2;
图17是本申请实施例提供的一种对象状态优化过程的流程示意图;
图18是本申请实施例提供的一种工作子状态切换过程的示意图;
图19是本申请实施例提供的一种数据处理方法的流程示意图3;
图20是本申请实施例提供的一种对象状态优化过程的流程示意图;
图21是本申请实施例提供一种状态切换过程的示意图;
图22是本申请实施例提供的一种数据处理装置的结构示意图;
图23是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先,针对本申请实施例中涉及的名词进行简单介绍。
虚拟场景:应用程序在终端上运行时提供(或显示)的场景,该虚拟场景是指营造出的供虚拟对象进行活动的场景。虚拟场景可以是二维虚拟场景、2.5维虚拟场景或三维虚拟场景等。该虚拟场景可以是对真实世界的仿真场景,也可以是半仿真半虚构的场景,也可以是纯虚构的场景。虚拟场景中可以包括场景地图(也可简称地图),该场景地图中可以包括多种场景模型,例如,该多种场景模型可以为城堡、栏杆、楼梯、墙壁、树木、飞行器以及海洋等等。为了便于描述,在游戏场景中的场景地图,也可以称为游戏地图。可以理解的是,该虚拟场景,也可以称为虚拟空间,或者业务空间,此处不做限制。
虚拟对象:是指在虚拟场景中可活动的虚拟角色,该可活动的虚拟角色可以是虚拟人物、虚拟动物、动漫人物等。虚拟场景中包括多个虚拟对象,每个虚拟对象在虚拟场景中具有自身的形状和体积,占据虚拟场景中的一部分空间。可选地,该虚拟对象是通过在客户端上的操作进行控制的角色,例如,交互对象(也可以称为业务对象、玩家等)可通过外设部件(如键盘、鼠标、手柄等)或点击触摸显示屏的方式操控虚拟对象;或者,该虚拟对象可以为设置在虚拟场景中的非玩家角色(Non-Player Character,NPC)。可选地,该虚拟场景中的虚拟对象的数量是预设设置的,或者是根据加入该虚拟场景的客户端的数量动态确定的,本申请实施例对此不作限定。可以理解的是,每个虚拟对象在虚拟场景中具有自身的形状和体积,占据虚拟场景中的一部分空间。示例性地,当虚拟场景为三维虚拟场景时,虚拟对象是基于动画骨骼技术创建的三维立体模型。
非玩家控制角色(Non-Player Character,NPC):开发者在某个具体的虚拟场景中预先设置的不受玩家操控的对象。该非玩家控制角色也可以在虚拟场景中具有自身的形状和体积,占据虚拟场景中的一部分空间。可以理解的是,为了便于描述,本申请实施例,可以将业务对象(即用户)可操控的虚拟对象称为第一类型虚拟对象、角色虚拟对象等等;将不受用户操控的对象(如NPC)统称为第二类型虚拟对象、非玩家虚拟对象等等。可以理解的是,第一类型虚拟对象与第二类型虚拟对象的对象类型不同。
响应于:用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
云游戏(Cloud gaming)又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行高品质游戏。玩家的终端设备无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。用户在体验云游戏时,其本质是在对云游戏的音视频码流进行操作,如通过触屏、键盘鼠标、摇杆等生成输入事件数据,然后通过网络传输到服务器端中的虚拟云客户端,进而云虚拟客户端进行事件的处理和渲染得到游戏画面,服务器可以基于云虚拟客户端生成的游戏画面生成视频流数据,并将视频流数据发送到终端设备中的应用客户端中进行显示,以达到操作云游戏的目的。
请参见图1,图1是本申请实施例提供的一种数据处理系统的结构示意图。如图1所示,该数据处理系统中可以包括终端设备(如设备11a、设备12a、设备13a)和服务器200a。可以理解的是,图1中的终端设备和服务器的数目仅仅是示意性的,根据实现需要,可以具有任意数目的终端设备和服务器。终端设备(如设备11a、设备12a、设备13a)可以通过网络(即通过有线、无线通信链路或者光纤电缆等等连接方式提供通信链路的介质)与服务器进行通信,进而进行数据的传输。
可以理解的是,终端设备(如设备12a)上可以运行有客户端,该客户端可以是为用户(也称业务对象、操作对象)提供本地服务的程序。服务器200a可以为客户端所对应的服务器,该服务器200a中可以运行有用于向客户端提供资源、服务数据等服务的程序。可以理解的是,终端设备上运行的客户端也可以称为应用客户端、业务客户端等等。例如,该客户端可以为游戏客户端、虚拟社交客户端等等。可选的,该客户端可以为云应用客户端,例如,该云应用客户端可以为云游戏的应用客户端。
可以理解的是,终端设备(如设备12a)可以包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器、智能音箱、智能家电等,此处不做限制。该服务器200a可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,此处不做限制。
可以理解的是,此处以传统游戏为例,对上述数据处理系统架构中的终端设备(例如终端设备11a)与服务器200a之间的数据交互过程进行阐述。请参见图2,图2是本申请实施例提供的一种数据交互场景的示意图。终端设备11a中可以运行有客户端1,客户端1所运行的游戏的游戏地图中可以包括多个虚拟对象,例如,可以包括对象图1中的虚拟对象21a和虚拟对象22a。其中,虚拟对象21a可以为对象A可操控的虚拟对象(即第一类型虚拟对象),虚拟对象22a可以为非玩家角色(即第二类型虚拟对象)。对象A可以在运行于终端设备11a的客户端1中执行针对虚拟对象21a的对象操作(如按下键盘的方向按键中用于指示操控游戏中的虚拟对象21a向右移动的方向按键的操作),对象A执行对象操作时客户端1所显示的画面可以如图2中的201a所示,此时虚拟对象21a的位置影响范围为位置影响范围23a,虚拟对象22a在位置影响范围23a之外,该虚拟对象22a的对象状态可以为待工作状态。可以理解的是,图2所示的位置影响范围23a仅为示例性展示,不代表实际游戏过程中会显示该位置影响范围23a,在实际应用场景中,在游戏画面中可以显示第一类型虚拟对象的位置影响范围,也可以不显示第一类型虚拟对象的位置影响范围,此处不做限定。客户端1可以响应于该对象操作,生成该对象操作所对应的操作请求(例如,生成用于指示操控虚拟对象向左移动的对象移动请求),进而设备11a可以向服务器200a发送该对象移动请求(即步骤S21);服务器200a可以获取对象移动请求,基于对象移动请求确定虚拟对象21a的移动结果,如该移动结果可以为移动路径;基于对象移动请求确定虚拟对象21a的从业务空间中的第一空间位置移动至第二空间位置的位置影响变更范围(即第一空间位置的位置影响范围与第二空间位置的位置影响范围不同的区域)。该第一空间位置和第二空间位置可以为移动路径上的相邻两个采样位置,位置影响范围为虚拟对象(如虚拟对象21a周围的一个可以影响其中的第二类型虚拟对象的对象状态的范围)。在位置影响变更范围内存在对虚拟对象22a时,对虚拟对象22a的对象状态进行状态优化,如由待工作状态优化为工作状态;确定状态优化后的虚拟对象22a的对象动作的动作标识。进而服务器200a可以向终端设备11a返回虚拟对象21a的移动结果(例如,该移动结果可以为计算得到的移动路径),以及虚拟对象22a对应的动作标识(即步骤S23)。可以理解的是,该移动结果和动作标识可以为分别发送至终端设备的。进而在客户端1中可以基于移动结果移动虚拟对象21a,并且操控虚拟对象22a执行所接收到的动作标识对应的对象动作,其中,执行完毕对象移动请求后(即虚拟对象21a移动至对象移动请求的目的位置后)的客户端1所显示的画面可以如图2中的202a所示,其中虚拟对象21a进行了移动,移动后的虚拟对象21a的位置影响范围为位置影响范围24a,该位置影响范围24a内包括虚拟对象22a,虚拟对象22a的对象状态为工作状态,且执行服务器返回的动作标识所对应的对象动作。
可以理解的是,虚拟场景中的第二类型虚拟对象的对象状态,可以使用状态机来实现。状态机是游戏中一种常用的控制个体执行流程的方式。它包含了有限个的状态和状态间的转换条件。同一时间内,个体(即第二类型虚拟对象)只会存在某一个状态中,状态机需要从一个状态转换到另外一个来执行不同状态下动作。例如,NPC的对象状态为巡逻状态,则NPC会在一定路径间来回移动,NPC的巡逻行为就会在服务器上产生寻路,移动等计算开销,当地图中的NPC数量非常多时,服务器的AI模块(即基于人工智能确定NPC的状态的模块)所占用的计算资源也会非常高。可以理解的是,当NPC距离玩家角色(即场景地图中的任一第一类型虚拟对象)很远(即在位置影响范围之外)时,可以简化NPC的行为(也就是使NPC处于待工作状态,并执行待工作状态所对应的计算复杂度较低的动作),因为此时NPC距离玩家角色较远(即在位置影响范围之外),玩家(即业务对象)不太容易关注到这些NPC的AI行为,NPC的行为简化也不会影响玩家的体验。另外,当NPC距离角色比较近时,NPC为工作状态,从而NPC可以进行更复杂的操作,由此丰富距离玩家角色较近的NPC的动画效果,提升玩家的体验。由于待工作状态的第二类型虚拟对象的行为复杂度较低,所消耗的计算资源对量较少,则将距离玩家较远的NPC调整为待工作状态,显然有助于减少服务器的计算资源的消耗。例如,大世界RPG游戏中,虽然场景中有很多NPC,但是只有角色周围的这些NPC才会执行工作状态的行为逻辑,其他大部分NPC都处于睡眠状态(即待工作状态),可以大量减少服务器上AI的计算开销。
可以理解的是,本申请实施例可以应用于游戏场景中,即本申请实施例中的虚拟场景(也称业务空间、虚拟空间)可以为虚拟游戏空间。该游戏可以为传统游戏,也可以为云游戏,相应的,上述运行于终端设备的客户端可以为传统游戏的应用客户端,也可以为云游戏的应用客户端。其中,云游戏和传统游戏之间最大的区别在于游戏处理和渲染的位置,传统游戏需要将游戏软件安装在用户的终端设备上,游戏的处理和渲染任务由终端设备在本地完成;而云游戏则是将游戏处理和渲染的任务全部交给云端服务器处理,通过互联网将游戏画面和声音传输到终端设备上。相应的,在游戏场景中可以包括相应的场景地图,也称为游戏地图,游戏地图上可以配置有一定数量的NPC(例如,玩家可以攻击的敌人、为玩家提供一些游戏信息或触发剧情的对象),NPC的工作状态可以为用于巡逻、战斗等状态,待工作状态可以为静止或展示简单的休闲动作的状态。服务器可以对游戏地图中的NPC的行为进行计算,如服务器可以通过计算控制NPC寻路和移动。可以理解的是,用户可以在游戏中可以有一个或多个可控制的虚拟对象,进而用户可以通过外联设备(如鼠标、键盘、手柄等)或点击触摸显示屏的方式操控相应的虚拟对象,如可以控制相应的虚拟对象移动、与NPC进行交互(如对话、战斗)等等。
可以理解的是,本申请实施例中的游戏可以为多种类型的游戏。该游戏可以为网络游戏,也称在线游戏,一般指多名玩家通过电脑网络互动娱乐的电子游戏。例如,该游戏可以为动作游戏(Action Game),动作游戏是电子游戏中的一种,它强调玩家的反应能力和手眼的配合。往往存在多个技能连续配合释放,形成连击的形式的玩法。又如,该游戏可以为角色扮演游戏(RPG),在RPG游戏中,玩家扮演虚拟世界中的一个或者几个队员角色在特定场景下进行游戏。通常这类游戏都是由玩家扮演冒险者在游戏世界中漫游,而一路上的各种遭遇(如战斗、交谈、会见重要人物等)则是玩家人物成长及游戏进行的重要关键所在。可选的,该游戏还可以为射击类游戏(FPS)、多人在线竞技游戏(MOBA)等等,此处不做限定。
可以理解的是,本申请实施例还可以应用于虚拟社交场景中,在虚拟社交场景中,对象可以虚拟形象的方式出现。这里的虚拟形象既可以是对象根据自身需要预先配置好的虚拟形象,例如,从形象资源库中选取相应的形象资源(例如虚拟穿戴物品、妆容、发型等)组合而成,也可以是基于对象的真实形象所重构的贴合该对象的虚拟形象,例如应用客户端上的渲染引擎根据采集到的真实对象数据(例如对象的脸型、发型、衣物等)所渲染得到的虚拟形象。其中,虚拟社交场景是指通过虚拟增强的物理现实,呈现收敛性和物理持久性特征的,基于未来互联网,具有链接感知和共享特征的3D(即Three Dimensions的简称)虚拟空间,或者是交互性、沉浸式和协作性的世界,正如物理宇宙是空间上互连的一系列世界,虚拟社交场景也可以视为众多世界的集合。可以理解的是,在一些虚拟社交场景中,也可以包括相应的场景地图,也可以称为虚拟社交地图,在虚拟社交地图上也可以配置有一定数量的NPC(例如,虚拟社交场景中的餐厅的服务员、维护城市秩序的管理员等等),NPC的工作状态可以为按一定路径移动的状态、进行动作展示的状态等状态,待工作状态可以为静止或展示简单的休闲动作的状态。服务器可以对虚拟社交地图中的NPC的行为进行计算,如服务器可以通过计算控制NPC寻路和移动。可以理解的是,用户可以通过外联设备(如鼠标、键盘、手柄、动作捕捉装置等等)或点击触摸显示屏的方式操控相应的虚拟对象,如可以控制相应的虚拟对象移动、与NPC进行交互(如对话)等等。
可以理解的是,本申请实施例还可以应用于导航场景、虚拟现实(VirtualReality,缩写为VR)场景等等场景中。例如,在导航场景中(如自动驾驶、车载导航、手机导航等),场景地图可以为导航地图,导航场景中的第一类型虚拟对象可以为用于代表用户位置的对象(即用户可以通过自身在现实空间中的移动来操控导航地图中的对应的虚拟对象进行移动);导航场景中的第二类型虚拟对象可以为地图中的虚拟元素(如虚拟建筑、虚拟设施、虚拟人物等)。相应的,该第二类型虚拟对象的工作状态可以为用于展示虚拟对象的精细的模型的状态,如可以展示出虚拟建筑的颜色、纹理等;待工作状态可以为用于展示虚拟对象的较为粗糙的模型的状态,如仅展示虚拟建筑的轮廓。可以理解的是,相较于生成粗糙的模型来说,生成精细的模型需要消耗更多的计算资源,本申请实施例能够使距离用户对应的虚拟对象较远的虚拟建筑、虚拟设施展示粗糙的模型(即工作状态),以减少服务器针对这些虚拟建筑、虚拟设施的计算资源的消耗,并且可以使距离用户对应的虚拟对象较近的虚拟建筑、虚拟设备展示精细的模型,有助于丰富地图中的虚拟元素的展示效果。又如,在虚拟现实(VR)场景中,场景地图可以为虚拟现实地图,该虚拟现实地图中也可以包括用户可操控的虚拟对象,以及用户不可操控的第二类型虚拟对象(如NPC),其相关描述可以参照虚拟游戏地图的相关描述上述,此处不做赘述。
进一步地,请参见图3,图3是本申请实施例提供的一种数据处理方法的流程示意图1。该方法可由上述的服务器执行来执行,比如,上述的服务器200a。该方法至少可以包括以下步骤S101-步骤S104。
S101、获取针对业务空间中的第一虚拟对象发送的对象移动请求;对象移动请求用于指示将第一虚拟对象在业务空间中的位置由第一空间位置移动至第二空间位置。
其中,该业务空间可以为上述的在终端上运行时提供(或显示)的场景。该业务空间可以为虚拟游戏空间,也可以为虚拟社交空间等等,此处不做限定。该第一虚拟对象可以为业务空间中的可以由业务对象操控的任一虚拟对象,即该第一虚拟对象可以为业务空间中的第一类型虚拟对象。
该对象移动请求可以为用于指示对第一虚拟对象进行移动的请求。可以理解的是,该对象移动请求中可以包括待移动的虚拟对象的对象标识,进而服务器可以在获取到对象移动请求时,确定需要进行移动的第一虚拟对象。可选的,该对象移动请求中可以包括移动的方向的方向信息,例如,业务对象通过手柄操控第一虚拟对象向左移动,则该对象移动请求中可以包括向左的方向信息,其具体可以表示为手柄的遥杆的左方向的键值。可选的,该对象移动请求可以包括需要移动至的目的位置的位置信息,例如,业务对象(也称操作对象)A可以在客户端中点击(如用鼠标进行点击或者点击触摸屏)用于指示移动第一虚拟对象的控件,则该对象移动请求中可以包括需要移动至的目的位置的位置信息。
可选的,该对象移动请求是在第一业务客户端响应于第一虚拟对象对应的第一操作对象的移动操作时,由第一业务客户端所发送的。其中,该第一业务客户端可以为第一操作对象所对应的直接发送对象移动请求的业务客户端,该第一操作对象可以为第一虚拟对象对应的操作对象,操作对象可以为用于操控对应的虚拟对象的对象,也就是说,第一操作对象可以为用于操控第一虚拟对象的对象。可以理解的是,该移动操作可以为上述的通过外接设备(如键盘、鼠标、手柄等)或点击触摸显示屏的方式移动虚拟对象的操作。例如,该移动操作可以为通过键盘的方向按键控制虚拟对象按一定方向进行移动的操作;又如,该移动操作可以为通过鼠标点击目的位置(或者点击虚拟方向按键)以操控虚拟对象向目的位置移动的操作;又如,该移动操作可以为通过手柄的方向键或摇杆操控虚拟对象移动的操作;又如,该移动操作可以为通过在触摸显示屏中点击目的位置(或者点击虚拟方向按键、滑动方向轮盘等)操控虚拟对象移动的操作。
可选的,对象移动请求是基于第二业务客户端发送的技能触发请求对应的技能命中结果所确定的;技能触发请求是第二业务客户端响应于第二虚拟对象对应的第二操作对象针对第一虚拟对象发起的技能触发操作时,由第二业务客户端所发送的;技能命中结果用于表征第二虚拟对象所发起的技能触发请求所指示的技能命中第一虚拟对象;第二虚拟对象为不同于第一虚拟对象的对象。
其中,该第二业务客户端可以为发送技能触发请求的业务客户端,该第二业务客户端可以是与第一业务客户端运行于不同终端设备上的针对同一应用的客户端,或者,该第二业务客户端可以是与第一业务客户端登录有针对同一应用的不同应用账号的客户端。可以理解的是,该第二虚拟对象为不同于第一虚拟对象的对象,该第二虚拟对象属于第一类型虚拟对象,第二操作对象为第二虚拟对象的操作对象,即用于操控第二虚拟对象的对象。该技能触发操作可以为针对技能控件的触发操作,如通过鼠标点击技能控件、在触摸显示屏中点击技能控件等等,此处不做限定。可以理解的是,该第二虚拟对象也可以关联对应的对象位置影响范围,第二虚拟对象关联的对象位置影响范围可以称为第二对象位置影响范围。
其中,此处的技能(也称游戏技能),是指在游戏(如角色扮演游戏)中的一种玩法,一个技能对应于一系列的规则,使用时可以对自身或目标产生特定的效果。可以理解的是,此处由第二业务客户端发送的技能触发请求所指示的技能可以为使命中的对象进行移动的技能,例如,该技能触发请求所指示的技能可以是用于击退命中的对象、拉拢一定范围内的对象等形式的技能,此处不做限定。可以理解的是,该技能命中结果可以是技能触发请求所指示的技能命中第一虚拟对象的结果。例如,第二操作对象发起用于击退的第一虚拟对象的技能触发请求,进而服务器可以在基于技能触发请求确定技能命中第一虚拟对象时(即得到技能命中结果时),确定针对第一虚拟对象的对象移动请求。具体的,可以基于技能触发请求所指示的技能的技能信息确定第一虚拟对象的移动路径,以便于服务器可以基于第二虚拟对象所发起的技能操控技能命中的第一虚拟对象进行移动。
可选的,该对象移动请求还可以是基于第一业务客户端发送的针对位移技能的技能触发请求的请求执行结果进行确定的。该请求执行结果可以用于指示第一虚拟对象发起技能触发请求所指示的位移技能。可以理解的是,位移技能可以是指在可以使第一虚拟对象自身进行产生位移(即进行移动)的技能,例如,位移技能可以是通过跑、跳、滑动、传送等能产生位置移动的运动技能。可选的,该对象移动请求还可以是基于第二类型虚拟对象所发起的技能的技能命中结果所生成的。例如,第二类型虚拟对象在处于战斗状态时,发起用于击退的第一虚拟对象的技能触发请求,进而服务器可以在基于技能触发请求确定技能命中第一虚拟对象时(即得到技能命中结果时),确定针对第一虚拟对象的对象移动请求。
可以理解的是,业务空间中的位置(也称业务空间中的空间位置)用于描述物体(如此次的第一虚拟对象)在业务空间中所处的位置,可以理解的是,业务控件中的对象(如第一虚拟对象)的位置可以是通过业务空间所对应的坐标系中的坐标信息进行表示。其中,第一空间位置可以为对象移动请求所对应的移动路径上的第i个移动位置,第二空间位置可以为对象移动请求所对应的移动路径上的第i+1个移动位置,i为正整数,且i小于移动路径上的采样位置的数量。换言之,第二空间位置可以为对象移动请求所对应的移动路径上的第一空间位置的下一空间位置,该下一空间位置可以为在移动路径上进行移动时的下一个需要移动至的空间位置。可以理解的是,对象移动请求所对应的移动路径可以为从起始位置移动到目的位置的一条路径,该起始位置可以为服务器接收到该移动请求时第一虚拟对象在业务空间中的位置,目的位置可以为基于对象移动请求进行移动的目的地的位置。
该移动路径可以由服务器基于对象移动请求进行计算得到。可以理解的是,该移动路径可以表示为多个采样位置,换言之,将各个采样位置按照一定顺序连接起来就是该移动路径。可以理解的是,移动路径上的采样位置的数量越多,则该移动路径越流畅。
例如,请参见图4,图4是本申请实施例提供的一种移动路径的示意图。如图4所示,对象移动请求所指示的移动路径的起始位置为K0,目的位置为K11。起始位置K1与目的位置K11之间可以有多个采样位置,例如采样位置K1、K2、......、K9、K10、K11等等(起始位置K1与目的位置K11也可以为移动路径上的采样位置)。可以理解的是,在第一虚拟对象在基于对象移动请求所对应的移动路径进行移动时,可以先将起始位置K0作为第一空间位置,则将K1作为第二空间位置;在第一虚拟对象移动至了K1时,可以将K1作为新的第一空间位置,将K2作为新的第二空间位置,以此类推,不断更新第一空间位置和第二空间位置,直至第一虚拟对象移动至目的位置K11,则完成对此次对象移动请求所指示的移动操作。可以理解的是,在基于移动路径移动至下一采样位置的时机可以根据预设的时间间隔进行确定,如每间隔0.5ms进行一次移动。
可以理解的是,在一些场景中,该对象移动请求所指示的移动路径上可以仅包括对象移动请求所指示的起始位置和目的位置,例如对象移动请求为基于第一操作对象触发的传送到指定位置的技能,则计算得到的移动路径上仅包括起始位置和目的位置,该对象移动请求所指示的起始位置为第一空间位置,目的位置可以为第二空间位置。
S102、在基于对象移动请求将第一虚拟对象在业务空间中的位置由第一空间位置移动至第二空间位置时,确定第一空间位置对应的第一位置影响范围和第二空间位置对应的第二位置影响范围。
其中,第一位置影响范围可以为第一虚拟对象在第一空间位置时,可以影响到第二类型虚拟对象的对象状态的范围,也称第一位置影响区域。换言之,第一虚拟对象在第一空间位置时,可以使得第一位置影响范围内的第二类型虚拟对象的对象状态为工作状态。第二位置影响范围可以为第一虚拟对象在第二空间位置时,可以影响到第二类型虚拟对象的对象状态的范围,也称第二空间位置影响区域。换言之,第一虚拟对象在第二空间位置时,可以使得第二位置影响范围内的第二类型虚拟对象的对象状态为工作状态。也就是说,位置影响范围可以为第一类型虚拟对象所在的位置能够影响到第二类型虚拟对象的对象状态的范围。可以理解的是,第一位置影响范围和第二位置影响范围为同一虚拟对象(即第一虚拟对象)在不同位置(即第一空间位置和第二空间位置)的对象位置影响范围,换言之,第一虚拟对象在从第一空间位置移动到第二空间位置时,可以将第一虚拟对象的位置影响范围(也称对象位置影响范围)由第一位置影响范围更新为第二位置影响范围。为了便于描述,可以将第一虚拟对象对应的位置影响范围(也称对象位置影响范围)称为第一对象位置影响范围,第一虚拟对象在第一空间位置时,第一对象位置影响范围为第一位置影响范围;第一虚拟对象在第二空间位置时,第一对象位置影响范围为第二位置影响范围。
具体的,对象移动请求是在第一业务客户端响应于第一虚拟对象对应的第一操作对象的移动操作时,由第一业务客户端所发送的;业务空间包括虚拟游戏空间,第一操作对象为用于操控第一虚拟对象在虚拟游戏空间中的游戏地图的地图可行区域上移动的对象,地图可行区域是由与第一业务客户端相关联的游戏引擎对游戏地图进行区域网格划分之后所得到的;游戏地图包括有M个地图栅格;M为大于1的正整数;一个地图栅格对应一个栅格标识;那么,在基于对象移动请求将第一虚拟对象在业务空间中的位置由第一空间位置移动至第二空间位置时,确定第一空间位置对应的第一位置影响范围和第二空间位置对应的第二位置影响范围,可以包括以下步骤:基于对象移动请求确定第一虚拟对象在游戏空间中的游戏地图,获取游戏地图对应的地图可行区域,将第一空间位置映射至地图可行区域中的地图位置作为第一地图位置,且将第二空间位置映射至地图可行区域中的地图位置作为第二地图位置;进一步的,在将第一业务对象在地图可行区域中的地图位置由第一地图位置变更为第二地图位置时,确定将第一虚拟对象在业务空间中的位置由第一空间位置移动至第二空间位置;进一步的,确定第一空间位置所在的第一地图栅格的栅格标识,以及第二空间位置所在的第二地图栅格的栅格标识;进一步的,在第一地图栅格的栅格标识与第二地图栅格的栅格标识相同时,获取基于第一地图栅格确定的第一空间位置对应的第一位置影响范围,并基于第一位置影响范围确定第二空间位置对应的第二位置影响范围。
可以理解的是,该虚拟游戏空间也可以称为游戏空间、游戏场景等等。虚拟游戏空间中的游戏地图可以包括地图可行区域,地图可行区域可以为游戏地图中,能够被虚拟对象在其中移动行走(可达)的区域称为可行区域,不能够被虚拟对象在其中移动行走(可达)的区域称为不可行区域。游戏引擎可以为一个已经编写好的可编辑的游戏系统,也可以指一些交互式实时图像应用程序的核心组件,游戏引擎可以用于为游戏开发者提供游戏开发所需的各种工具,从而降低了游戏开发的复杂度,让开发者更简便快速地制作游戏。可以理解的是,游戏引擎对游戏地图进行区域网格划分,也就是将游戏地图划分为多个区域网格(如三角形、四边形等网格),进而游戏引擎可以基于区域网格划分的游戏地图确定出地图可行区域,这个过程也可以称为地图烘焙。
可以理解的是,M个地图栅格可以为对游戏进行栅格划分得到的,也可以简称为栅格。可以理解的是,该M个栅格可以为按照一定尺寸划分的正方形栅格、矩形栅格、多边形栅格(如正三角形栅格)等等,每个栅格的大小可以相同。通常来说,为了便于计算,该M个栅格可以为正方形栅格。可以理解的是,栅格的尺寸可以根据实际情况进行确定,如栅格的尺寸为可以根据地图尺寸选择的合适的尺寸,此处不做限定。例如,可以将游戏地图划分为大小为30m X 30m的正方形栅格,即每个地图栅格的大小为30m X 30m。可以理解的是,游戏地图的地图栅格可以在游戏场景中进行显示,也可以不进行显示(而只用于进行后台的计算,如用于计算NPC的状态时使用),此处不做限定。
可以理解的是,每个地图栅格可以对应一个栅格标识,该栅格标识可以用于唯一标识一个地图栅格,也可以称为栅格索引。可选的,地图栅格的栅格标识可以用栅格在地图中的位置进行表示,如栅格标识为(3,4),表示该地图栅格为游戏地图中的第三行第4列的地图栅格;可选的,地图栅格的栅格标识可以为对每个地图栅格的序号,如地图栅格的标识可以为1、2、3.....m等序号来标识每个地图栅格。
可以理解的是,每个地图栅格可以关联有对应的第二类型虚拟对象(即NPC)列表。第二类型虚拟对象列表中包括相应地图栅格内的第二类型虚拟对象的对象标识(即第二类型对象标识),该第一类型对象标识用于唯一标识一个第二类型虚拟对象。若地图栅格内不存在第二类型虚拟对象,则第二类型虚拟对象列表为空。可选的,每个地图栅格可以关联有对应的第一类型虚拟对象列表,其中,第一类型虚拟对象列表中包括相应地图栅格内的第一类型虚拟对象的对象标识(即第一类型对象标识),该第一类型对象标识用于唯一标识一个第一类型虚拟对象。若地图栅格内不存在第一类型虚拟对象,则第一类型虚拟对象列表为空。
可以理解的是,在对象移动请求中可以携带请求移动第一虚拟对象的游戏地图的地图标识,进而服务器在获取到对象移动请求时,可以基于对象移动请求中的地图标识确定该地图标识所对应的游戏地图。
可以理解的是,游戏地图对应的地图可行区域可以理解为一个地图可行区域的单独的图层,第一虚拟对象在虚拟游戏空间中的位置是基于虚拟游戏空间所对应的空间坐标系确定的,而在地图可行区域中的地图位置是基于地图可行区域所对应的地图坐标系所确定的。虚拟游戏空间对应的空间坐标系与地图可行区域所对应的地图坐标系可以为不同坐标系,因此,在地图可行区域中移动第一虚拟对象时,需要将第一虚拟对象在业务空间中的位置映射到地图可行区域对应的地图坐标系中,得到相应的地图位置,进而可以在将第一虚拟对象的地图位置由一个地图位置(第一地图位置)变更为另一地图位置(第二地图位置)时,确定将第一虚拟对象由一个空间位置(第一空间位置)移动至另一空间位置(第二空间位置)。
可以理解的是,第一地图位置可以为将第一空间位置映射到地图可行区域对应的地图坐标系得到的地图位置,即可以为将第一空间位置映射到地图可行区域中的地图位置。第二地图位置可以为将第二空间位置映射到地图可行区域对应的地图坐标系得到的地图位置,即可以为将第二空间位置映射到地图可行区域中的地图位置。
可以理解的是,在响应于对象移动请求对第一虚拟对象进行移动时,可以在游戏地图中的同一个栅格内进行移动,也可以为从游戏地图中的一个栅格移动至另一个栅格(即跨栅格移动)。
可以理解的是,第一地图栅格可以为第一空间位置所在的地图栅格,第二地图栅格可以为第二空间位置的地图栅格。第一地图栅格的栅格标识与第二地图栅格的栅格标识相同,可以表示第一地图栅格与第二地图栅格为同一地图栅格,即第一虚拟对象在由第一空间位置移动至第二空间位置时,是在同一栅格内进行移动,即不跨栅格移动。第一地图栅格的栅格标识与第二地图栅格的栅格标识不同,可以表示第一地图栅格与第二地图栅格为不同地图栅格,即第一虚拟对象在由第一空间位置移动至第二空间位置时,是由一个地图栅格移动至另一地图栅格,即跨栅格移动。可以理解的是,为了便于描述,可以将虚拟对象的位置所在的地图栅格称为对象地图栅格,第一虚拟对象的位置所在的地图栅格为第一对象地图栅格,则上述的第一地图栅格和第二地图栅格为第一对象在不同位置所对应的第一对象地图栅格,可以理解是,在第一虚拟对象由第一空间位置移动到第二空间位置时,可以将第一对象地图栅格由第一地图栅格更新为第二地图栅格。
可选的,确定第一虚拟对象是否跨栅格移动,还可以为基于第一空间位置与第二空间位置确定位移,并确定位移与地图栅格的边界是否存在交点来确定第一虚拟对象是否跨栅格移动,若存在交点,则表示第一虚拟对象跨栅格移动,反之,若不存在交点,则表示第一虚拟对象不跨栅格移动。
可以理解的是,第一位置影响范围是在第一虚拟对象移动至第一空间位置时就进行计算得到的,因此,在需要将第一虚拟对象由第一空间位置移动至第二空间位置时,可以直接获取第一位置影响范围。可以理解的是,该第一位置影响范围可以是在该第一空间位置为第二空间位置时所确定的,具体确定方式可以参照后续确定第二位置影响范围的相关描述。可以理解的是,第一位置影响范围可以从影响范围数据库中进行获取,该影响范围数据库中可以用于存储各个虚拟对象所对应的位置影响范围,每个位置影响范围可以随着第一虚拟对象的移动进行更新,该第一位置影响范围也就是影响范围数据库中所存储的第一虚拟对象的最新位置(即第一空间位置)的位置影响范围。该影响范围数据库可以部署在服务器本地存储中,由此可以提升获取到位置影响范围的速率;该影响范围数据库中也可以部署在服务器可访问的其他远程设备中,由此减少服务器本身的数据存储压力,此处不做限制。可以理解的是,在确定了第二位置影响范围后,可以基于确定的第二位置影响范围对影响范围数据库中所吨出的第一虚拟对象的位置影响范围进行更新,以便于在移动至第二空间位置的下一空间位置时,获取该更新后的位置影响范围作为第一位置影响范围。可以理解的是,在确定第一虚拟对象的位置影响范围时,可以尽量使得位置影响范围的中心靠近第一虚拟对象的位置,由此可以使得第一虚拟对象可影响的范围分布更均匀。
可以理解的是,针对跨栅格移动第一虚拟对象与在同一个栅格内进行移动第一虚拟对象(即不跨栅格移动),所采用的确定第一虚拟对象的新的位置影响范围(即第二位置影响范围)的方式可以不同。其中,在不跨栅格移动时,可以基于第一位置影响范围确定第二位置影响范围。在跨栅格移动时,可以基于第二空间位置所在的栅格确定第二位置影响范围。
具体的,基于第一位置影响范围确定第二空间位置对应的第二位置影响范围,可以包括:将第一位置影响范围确定为第二空间位置对应的第二位置影响范围;第二位置影响范围与第一位置影响范围相同。
其中,可以理解的是,在不跨网格移动时,第二位置影响范围是与第一位置影响范围相同的,也就是直接将第一位置影响范围确定为第二位置影响范围。由此可以在不跨栅格移动时,快速基于第一位置影响范围确定第二位置影响范围,由此可以减少对于位置影响范围的计算量,提升位置影响范围的计算效率。
可以理解的是,直接将第一位置影响范围确定为第二空间位置对应的第二位置影响范围,可以是在第一对象位置影响范围(即第一虚拟对象对应的位置影响范围)是以第一对象地图栅格(即第一虚拟对象的位置所在的地图栅格)的中心位置进行中心对称的区域时所采用的方式。例如,该位置影响范围可以为以第一对象地图栅格为中心位置进行中心对称的矩形区域,例如,位置影响范围可以为2j+1 X 2j+1栅格的矩形区域(即矩形区域的边长为2j+1个地图栅格),j正整数,即位置影响范围为边长是奇数数量的栅格的矩形区域,如3 X 3栅格、5 X 5栅格等等。可以理解的是,以第一对象地图栅格位置为中心确定第一虚拟对象的位置影响范围时,可以尽量使得第一虚拟对象的位置靠近位置影响范围的中心。
例如,请参见图5,图5是本申请实施例提供的一种位置影响范围的示意图。如图5所示,第一虚拟对象510a的位置所在的地图栅格(即第一对象地图栅格)为地图栅格520a,第一虚拟对象的位置影响范围为位置影响范围530a,可以看到,位置影响范围530a为一个3X 3栅格的矩形区域,且位置影响范围530a是以地图栅格520a为中心的。
又如,请参见图6,图6是本申请实施例提供的另一种位置影响范围的示意图。如图6所示,第一虚拟对象610a的位置所在的地图栅格为地图栅格620a,第一虚拟对象的位置影响范围为位置影响范围630a,可以看到,该位置影响范围630a是以地图栅格620a的中心位置进行中心对称的。
可以理解的是,在一些场景中,若需要的位置影响范围中的地图栅格不能以第一虚拟对象的位置所在的地图栅格的中心位置进行中心对称,则可以对第一虚拟对象的位置所在的地图栅格(即第一对象地图栅格)进行区域划分,进而基于第一虚拟对象的位置所在的区域划分子区域确定位置影响范围。
具体的,基于第一位置影响范围确定第二空间位置对应的第二位置影响范围,可以包括以下步骤:将与第二地图栅格具有相同栅格标识的第一地图栅格,确定为区域划分栅格;第一空间位置与第二空间位置均处于区域划分栅格中;区域划分栅格包括K个栅格划分子区域;K为大于1的正整数;一个栅格划分子区域对应一个区域标识;进一步的,在K个栅格划分子区域中,将第一空间位置所在的栅格划分子区域确定为第一栅格划分子区域,且将第二空间位置所在的栅格划分子区域确定为第二栅格划分子区域;进一步的,确定第一栅格划分子区域的区域标识,且确定第二栅格划分子区域的区域标识;进一步的,在第一栅格划分子区域的区域标识和第二栅格划分子区域的区域标识不同时,基于第二栅格划分子区域确定第二空间位置对应的第二位置影响范围;第二位置影响范围与第一位置影响范围中存在部分相同的位置影响范围。
可以理解的是,该区域划分栅格是指与第二地图栅格具有相同栅格标识的第一地图栅格,也就是说,该区域划分栅格可以为第一地图栅格,或者与第一地图栅格相同的第二地图栅格,该区域划分栅格中可以包括第一空间位置以及第二空间位置。可以理解的是,该区域划分栅格包括K个栅格划分子区域(也可以称为子区域、划分子区域),例如,该区域划分栅格可以包括平分的四个矩形区域。
可以理解的是,在区域划分栅格中,每个栅格划分子区域可以关联有对应的区域标识,该区域标识可以用于唯一标识一个地图栅格中的栅格划分子区域。可选的,栅格划分子区域的区域标识可以由所属的地图栅格和区域序号进行表示,如一个地图栅格的栅格标识为(3,4),其中的栅格划分子区域的序号分别为1、2、3、4,则该地图栅格中的栅格划分子区域的区域标识可以表示为3-4-1、3-4-2、3-4-3、3-4-4。本申请实施例还可以通过其他方式表示栅格划分子区域的区域标识,此处不做限定。
可选的,在本申请实施例中,可以基于游戏地图中的每个地图栅格的中心位置确定平行于地图栅格的横轴的中心线,以及平行于地图栅格的纵轴的中心线,由此可以将每个地图栅格等分为4个矩形区域,进而在确定了区域划分栅格时,可以确定区域划分栅格包括K个栅格划分子区域,即4个矩形区域。可以理解的是,在场景地图中可能存在多个第一类型虚拟对象,即可能需要确定多个第一类型虚拟对象对应的区域划分栅格,则基于上述方式可以批量性的将各个地图栅格均划分为多个栅格划分子区域,并且确定每个栅格划分子区域的区域标识,在确定每个第一类型虚拟对象对应的区域划分栅格时,不需要再单独的对每个区域划分栅格进行子区域的划分,有助于减少服务器的计算量。
其中,第一栅格划分子区域可以为第一空间位置所在的栅格划分子区域,第二栅格划分子区域可以为第二空间位置所在的栅格划分子区域。可以理解的是,第一栅格划分子区域的区域标识和第二栅格划分子区域的区域标识相同,则可以表示第一栅格划分子区域与第二栅格划分子区域为区域划分栅格中的同一栅格划分子区域,也就是说,第一虚拟对象在由第一空间位置移动至第二空间位置时,是在同一区域划分栅格内的同一栅格划分子区域内进行移动,即不跨区域移动;第一栅格划分子区域的区域标识和第二栅格划分子区域的区域标识不同,则可以表示第一栅格划分子区域与第二栅格划分子区域为区域划分栅格中的不同栅格划分子区域,也就是说,第一虚拟对象在由第一空间位置移动至第二空间位置时,是由区域划分栅格内的一个栅格划分子区域移动至另一栅格划分子区域,即跨区域移动。进一步可以理解的是,针对在区域划分栅格中跨区域移动与不跨区域移动,所采用的确定第一虚拟对象的新的位置影响范围(即第二位置影响范围)的方式可以不同。其中,在不区域格移动时,可以将第一位置影响范围确定为第二位置影响范围。在跨区域移动时,可以基于第二空间位置所在的第二栅格划分子区域确定第二位置影响范围。
具体的,基于第二栅格划分子区域确定第二空间位置对应的第二位置影响范围,可以包括以下步骤:基于区域划分栅格的中心位置确定第一坐标系原点,基于区域划分栅格的横轴确定第一坐标轴,且基于区域划分栅格的纵轴确定第二坐标轴;进一步的,基于第一坐标系原点、第一坐标轴以及第二坐标轴构建区域划分栅格对应的第一栅格坐标系;第一栅格坐标系中包括N个第一栅格空间方向;N为大于1的正整数;基于第二栅格划分子区域在第一栅格坐标系中的区域分布位置,从N个第一栅格空间方向中确定与第二栅格划分子区域相关联的第一类型区域影响方向以及第二类型区域影响方向;进一步的,基于与第二栅格划分子区域相关联的第一类型区域影响方向以及第二类型区域影响方向,确定N个第一栅格空间方向对应的关联栅格数量;第一类型区域影响方向对应的关联栅格数量大于第二类型区域影响方向对应的关联栅格数量;进一步的,基于N个第一栅格空间方向对应的关联栅格数量,在N个第一栅格空间方向上确定与区域划分栅格相连接的相应关联栅格数量的第一关联栅格,得到多个第一关联栅格;进一步的,基于区域划分栅格和多个第一关联栅格确定第二空间位置对应的第二位置影响范围。
其中,可以理解的是,该第一栅格坐标系可以为基于区域划分栅格所构建的坐标系。该第一坐标系原点可以为区域划分栅格的中心位置。例如,该区域划分栅格为矩形区域时,该区域划分栅格的中心位置可以为区域划分栅格的对角线的交点。可以理解的是,该第一坐标轴和第二坐标轴可以为一个平面坐标系的两个坐标轴,第一坐标轴和第二坐标轴可以相互垂直,例如,第一坐标轴为x轴,第二坐标轴为y轴。可以理解的是,区域划分栅格的横轴和纵轴可以为相互垂直的两条轴线,该横轴和纵轴不特指横向和纵向的轴线,若区域划分栅格的一条边为横轴,另一条边即为纵轴,此处不做限定。可以理解的是,基于区域划分栅格的横轴确定第一坐标轴,可以为经过区域划分栅格的中心位置确定一条平行于横轴的坐标轴作为第一坐标轴;基于区域划分栅格的纵轴确定第二坐标轴,可以为经过区域划分栅格的中心位置确定一条平行于纵轴的坐标轴作为第二坐标轴。进而可以基于第一坐标系原点、第一坐标轴和第二坐标轴确定第一栅格坐标系。
可以理解的是,在该第一栅格坐标系中,还可以确定出N个第一栅格空间方向,也称第一栅格方向。该第一栅格空间方向可以为基于第一坐标系原点所确定的用于确定位置影响范围中的地图栅格的方向。可以理解的是,该第一栅格空间方向可以包括第一栅格坐标系中的第一坐标轴的正轴方向和负轴方向,第二坐标轴的正轴方向和负轴方向,即N为4。
可以理解的是,该区域分布位置可以用于指示第二栅格划分子区域在第一栅格坐标系中的分布的位置。例如,该区域分布位置可以用于指示第二栅格划分子区域分布在第一栅格坐标系中的第一象限、第二象限、第三象限、第四象限等等。可以理解的是,第一类型区域影响方向可以为第二栅格划分子区域的区域分布位置所关联的方向,第二类型区域影响方向可以为N个第一栅格空间方向中除第一类型区域影响方向外的其他方向。例如,在第二栅格划分子区域的区域分布位置为第一象限时,第一类型影响方向可以为第一坐标轴正轴方向、第二坐标轴正轴方向,则除这两个方向外的其他第一栅格空间方向均为第二类型区域影响方向,即第一坐标轴的负轴方向、第二坐标轴的负轴方向。又如,在第二栅格划分子区域的区域分布位置为第二象限时,第一类型影响方向可以为第一坐标轴负轴方向、第二坐标轴正轴方向,则除这两个方向外的其他第一栅格空间方向均为第二类型区域影响方向,即第一坐标轴的正轴方向、第二坐标轴的负轴方向。
可以理解的是,基于区域划分栅格确定第二空间位置对应的第二位置影响范围,可以是在第一对象位置影响范围(即第一虚拟对象对应的位置影响范围)是无法以第一对象地图栅格(即第一虚拟对象的位置所在的地图栅格)的中心位置进行中心对称的区域时所采用的方式,即位置影响范围的影响范围图形无法基于第一对象地图栅格的中心位置进行中心对称。该影响范围图形可以为预设的第一虚拟对象的第一对象位置影响范围的轮廓。例如,该位置影响范围可以为2j X 2j栅格的矩形区域,j正整数,即位置影响范围中为边长为偶数数量的栅格的矩形区域,如2 X 2栅格、4 X 4栅格等等。可以理解的是,在第一对象位置影响范围(即第一虚拟对象对应的位置影响范围)是无法以第一对象地图栅格(即第一虚拟对象的位置所在的地图栅格)的中心位置进行中心对称的区域时,基于区域划分栅格中的第一虚拟对象的位置所在的栅格划分子区域确定第一虚拟对象的位置影响范围时,可以尽量使得第一虚拟对象的位置靠近位置影响范围的中心。
可以理解的是,关联栅格数量可以为与第二栅格划分子区域相关联的每个第一栅格空间方向上用于确定第二位置影响范围的栅格的数量。可以理解的是,该第一类型区域影响方向可以为在确定位置影响范围时,在对应方向上的关联栅格数量更大(相较于第二类型区域影响方向来说)的第一栅格空间方向。该第二类型区域影响方向可以为在确定位置影响范围时,在对应方向上的关联栅格数量更小(相较于第一类型区域影响方向来说)的第一栅格空间方向。也就是说,第一类型区域影响方向对应的关联栅格数量大于第二类型区域影响方向对应的关联栅格数量。可以理解的是,关联栅格数量可以是基于预设的影响范围图形所确定的,例如,该影响范围图形为4 X 4栅格的矩形,第一虚拟对象的第二空间位置在第一坐标系的第二象限时,则第一类型区域影响方向(如第一坐标轴的负轴方向,第二坐标轴的正轴方向)对应的为关联栅格数量为2,第二类型区域影响方向(如第一坐标轴的正轴方向,第二坐标轴的负轴方向)对应的关联栅格数量为1,以使得能够得到的位置影响范围的一条边的边长为第一坐标轴的负轴方向上的2个地图栅格、区域划分栅格以及第一坐标轴的正轴方向上的1个地图栅格所组成的4个栅格,另一条边的边长为第二坐标轴的正轴方向上的2个地图栅格、区域划分栅格以及第二坐标轴的负轴方向上的2个地图栅格所组成的4个栅格。
可以理解的是,第一关联栅格可以为用于确定第二位置影响范围的与区域划分栅格关联的地图栅格。可以理解的是,在任一第一栅格空间方向上确定与区域划分栅格相连接的相应关联栅格数量的第一关联栅格,可以为在以坐标系原点为中心的任一第一栅格空间方向上确定一条射线,该射线所经过的与区域划分栅格相连接的相应关联栅格数量的地图栅格为第一关联栅格。可以理解的是,与区域划分栅格相连接的相应关联栅格数量的第一关联栅格,可以为与区域划分栅格在相应第一栅格空间方向上相邻的一个地图栅格或多个地图栅格。例如,若第一栅格方向1对应的关联栅格数量为1,则第一栅格方向1上的第一关联栅格为与区域划分栅格在第一栅格方向上直接相邻(即与区域划分栅格共享一个边或者顶点的地图栅格)的1个地图栅格;若第一栅格方向1对应的关联栅格数量为2,则第一栅格方向1上的第一关联栅格包括与区域划分栅格在第一栅格方向上直接相邻(即与区域划分栅格共享一个边或者顶点的)的一个地图栅格A以及与该直接相邻的地图栅格A相邻的地图栅格B。
可以理解的是,基于区域划分栅格确定第二空间位置对应的第二位置影响范围,可以是基于预设的影响范围图形与多个第一关联栅格第二位置影响范围。可以理解的是,所确定的第二位置影响范围的区域图形即为预设的影响范围图形。例如,该范围影响图形可以为3 X 3栅格的矩形、4 X 4栅格的矩形、半径为r的圆形等等。该影响范围图形可以为预设的第一虚拟对象的第一对象位置影响范围的轮廓。例如,该范围影响图形可以为4 X 4栅格的矩形,在第二栅格划分子区域的区域分布位置为第一象限时,第一类型影响方向可以为第一坐标轴正轴方向、第二坐标轴正轴方向,其对应的关联栅格数量为2,则第二类型区域影响方向为第一坐标轴的负轴方向、第二坐标轴的负轴方向,其对应的关联栅格数量为1,进而,可以基于各个第一关联栅格以及区域划分栅格确定范围影响图形所对应的区域,并将所确定的区域确定为第二位置影响范围。
例如,请参见图7,图7是本申请实施例提供的一种确定第二位置影响范围的示意图1。如图7所示,第一虚拟对象710a所在的地图栅格为区域划分栅格720a,进而可以基于区域划分栅格720a的中心位置构建坐标系(即与区域划分栅格关联的第一坐标系),其中,所构建的坐标系中以区域划分栅格的中心位置为原点,坐标轴包括第一坐标轴和第二坐标轴。坐标系中包括的栅格空间方向可以包括第一坐标轴正轴方向、第二坐标轴正轴方向、第一坐标轴的负轴方向和第二坐标轴的负轴方向这4个栅格空间方向。若所需要确定的位置影响范围为4 X 4栅格的矩形区域,则在确定每个栅格空间方向上的第一关联栅格时,可以在第一类型区域影响方向上确定2个地图栅格,在第二类型区域影响方向上确定1个地图栅格,由此可以为确定出第一关联栅格730a。然后可以基于区域划分栅格720a和第一关联栅格730a确定4 X 4栅格的矩形区域,将所确定的矩形区域确定为第二位置影响范围740a,可以看到,第二位置影响范围740a可以为4 X 4栅格的矩形区域。
可选的,在第一栅格划分子区域的区域标识和第二栅格划分子区域的区域标识相同时,可以将第一位置影响范围确定为第二位置影响范围。
可选的,在第一地图栅格的栅格标识与第二地图栅格的栅格标识不同时,获取基于第一地图栅格确定的第一空间位置对应的第一位置影响范围,并基于第二地图栅格确定第二空间位置对应的第二位置影响范围。
可以理解的是,获取第一位置影响范围的方式可以参照上述在第一地图栅格的栅格标识与第二地图栅格的栅格标识相同时获取第一位置影响范围的相关描述,此处不做赘述。
具体的,基于第二地图栅格确定第二空间位置对应的第二位置影响范围,可以包括以下步骤:基于第二地图栅格的中心位置确定第一坐标系原点,基于第二地图栅格的横轴确定第三坐标轴,且基于第二地图栅格的纵轴确定第四坐标轴;进一步的,基于坐标系原点、第三坐标轴以及第四坐标轴构建第二地图栅格对应的第二栅格坐标系;第二栅格坐标系中包括K个第二栅格空间方向;K为大于1的正整数;进一步的,分别确定K个第二栅格空间方向对应的关联栅格数量,且基于K个第二栅格空间方向对应的关联栅格数量,在K个第二栅格空间方向上确定与第二地图栅格相连接的相应关联栅格数量的第二关联栅格,得到多个第二关联栅格;进一步的,基于第二地图栅格和多个第二关联栅格确定第二空间位置对应的第二位置影响范围。
可以理解的是,该第二栅格坐标系可以为基于第二地图栅格所构建的坐标系。该第二坐标系原点可以为第二地图栅格的中心位置。例如,该第二地图栅格为矩形区域时,该第二地图栅格的中心位置可以为区域划分栅格的对角线的交点。可以理解的是,该第三坐标轴和第四坐标轴可以为一个平面坐标系的两个坐标轴,第三坐标轴和第四坐标轴可以相互垂直,例如,第三坐标轴为x轴,第四坐标轴为y轴。可以理解的是,第二地图栅格的横轴和纵轴可以为相互垂直的两条轴线,该横轴和纵轴不特指横向和纵向的轴线,若第二地图栅格的一条边为横轴,另一条边即为纵轴,此处不做限定。可以理解的是,基于第二地图栅格的横轴确定第三坐标轴,可以为经过第二地图栅格的中心位置确定一条平行于横轴的坐标轴作为第三坐标轴;基于第二地图栅格的纵轴确定第四坐标轴,可以为经过第二地图栅格的中心位置确定一条平行于纵轴的坐标轴作为第四坐标轴。进而可以基于第二坐标系原点、第三坐标轴和第四坐标轴确定第二栅格坐标系。
可以理解的是,在该第二栅格坐标系中,还可以确定出K个第二栅格空间方向,也称第二栅格方向。该第二栅格空间方向可以为基于第二坐标系原点所确定用于确定位置影响范围中的地图栅格的方向。可以理解的是,该第二栅格空间方向可以包括第二栅格坐标系中的第三坐标轴的正轴方向和负轴方向,第四坐标轴的正轴方向和负轴方向,N可以为4。可以理解的是,N个第一栅格空间方向与K个第二栅格空间方向的可以相同,也可以不同,此处不做限定。
可以理解的是,在第一虚拟对象跨栅格移动时,基于第二地图栅格确定第二位置影响范围,可以是在第一对象位置影响范围(即第一虚拟对象对应的位置影响范围)是以第一对象地图栅格(即第一虚拟对象的位置所在的地图栅格)的中心位置进行中心对称的区域时所采用的方式,即位置影响范围的影响范围图形无法基于第一对象地图栅格的中心位置进行中心对称。
可以理解的是,每个第二栅格空间方向对应的关联栅格数量可以使得最终得到的关联栅格是基于第一对象地图栅格的中心位置进行中心对称的。可以理解的是,关联栅格数量可以是基于预设的影响范围图形所确定的,每个第二栅格空间方向对应的关联栅格数量可以相同。例如,K个第二栅格空间方向中的每个第二栅格空间方向对应的关联栅格数量均为j个(j为正整数),则可以使得确定的第二位置影响范围为2j+1 X 2j+1栅格的矩形区域,如3 X 3栅格、5 X 5栅格的矩形区域。例如,影响范围图形为3 X 3栅格的矩形,则每个第二栅格空间方向(如第三坐标轴的正轴方向和负轴方向,第四坐标轴的正轴方向和负轴方向)对应的关联栅格数量可以为1,则可以使得能够得到位置影响范围的一条边的边长为第三坐标轴的负轴方向上的1个地图栅格、第二地图栅格以及第三坐标轴的正轴方向上的1个地图栅格所组成的3个栅格,另一条边的边长为第四坐标轴的正轴方向上的1个地图栅格、第二地图栅格以及第四坐标轴的负轴方向上的2个地图栅格所组成的3个栅格。
可以理解的是,基于第二地图栅格和多个第二关联栅格确定第二空间位置对应的第二位置影响范围,可以是基于预设的影响范围图形与多个第二关联栅格确定第二位置影响范围。可以理解的是,所确定的第二位置影响范围可以为即为预设的影响范围图形所对应的区域。该影响范围图形可以为预设的第一虚拟对象的第一对象位置影响范围的轮廓。例如,该影响范围图形可以为3 X 3栅格的矩形区域,则每个第二栅格空间方向对应的关联栅格数量可以为1,进而可以基于各个第一关联栅格以及第二地图栅格确定范围影响图形所对应的区域,并将所确定的区域确定为第二位置影响范围。
例如,请参见图8,图8是本申请实施例提供的一种确定第二位置影响范围的示意图2。如图8所示,第一虚拟对象810a所在的地图栅格为第二地图栅格820a,进而可以基于第二地图栅格820a的中心位置构建坐标系(即与第二地图栅格关联的第二坐标系),其中,所构建的坐标系中以第二地图栅格820a的中心位置为原点,坐标轴包括第三坐标轴和第四坐标轴。坐标系中包括的栅格空间方向可以包括第三坐标轴正轴方向、第四坐标轴正轴方向、第三坐标轴的负轴方向和第四坐标轴的负轴方向这4个栅格空间方向。若所需要确定的位置影响范围为3 X 3栅格的矩形区域,则在确定每个栅格空间方向上的关联栅格数量时,每个栅格空间方向上的关联栅格数量均为1,由此可以为确定出第二关联栅格830a。然后可以基于多个第二关联栅格和第二地图栅格确定3 X 3栅格的矩形区域,并将该矩形区域确定为第二位置影响范围840a,可以看到,第二位置影响范围840a可以为3 X 3栅格的矩形区域。
可以理解的是,若第一虚拟对象跨网格移动,且第一对象位置影响范围(即第一虚拟对象对应的位置影响范围)是无法以第一对象地图栅格(即第一虚拟对象的位置所在的地图栅格)的中心位置进行中心对称的区域,则可以基于第二空间位置在第二地图栅格中所在的栅格划分子区域确定第二位置影响范围。
具体的,在第一地图栅格的栅格标识与第二地图栅格的栅格标识不同时,确定第一地图栅格中的栅格划分子区域以及第二地图栅格中的栅格划分子区域,将第一空间位置在第一地图栅格中所在的栅格划分子区域确定为第一栅格划分子区域,将第二空间位置在第二地图栅格中所在的栅格划分子区域确定为第三栅格子区域;若第三栅格划分子区域为第一栅格划分子区域的关联子区域,则可以将第一位置影响范围确定为第二位置影响范围;若第三栅格划分子区域不为第一栅格划分子区域的关联子区域,则可以基于第二地图栅格中的第三栅格子区域确定第二位置影响范围。
其中,可以理解的是,该关联子区域可以为与第一栅格划分子区域共用同一区域边界的栅格划分子区域,或者,与第一栅格划分子区域共用同一栅格顶点的栅格划分子区域,或者可以为与第一栅格划分子区域共享同一区域边界的栅格划分子区域以及与第一栅格划分子区域共享同一栅格顶点两种类型的栅格划分子区域。可以理解的是,若第三栅格划分子区域为第二地图栅格中的第一栅格划分子区域的关联子区域,则第二地图栅格为与第一地图栅格的相邻的地图栅格,即第二地图栅格与第一地图栅格共用一条边或者一个顶点。
此处结合图示,分情况阐述第一虚拟对象进行移动时,确定第二位置影响范围的方式。
请参见图9,图9是本申请实施例提供的一种第二位置影响范围的确定过程的效果示意图1。如图9所示,第一虚拟对象的位置影响范围为3 X 3栅格的矩形区域,该位置影响范围以第一虚拟对象所在的地图栅格的中心位置进行中心对称。在将第一虚拟对象由第一空间位置910a移动至第二空间位置910b时,若第一空间位置910a与第二空间位置910b在同一地图栅格,则将第一位置影响范围920a确定为第二位置影响范围920b,即第一位置影响范围920a与第二位置影响范围920b相同。
请参见图10,图10是本申请实施例提供的一种第二位置影响范围的确定过程的效果示意图2。如图10所示,第一虚拟对象的位置影响范围为3 X 3栅格的矩形区域,该位置影响范围以第一虚拟对象所在的地图栅格的中心位置进行中心对称。在将第一虚拟对象由第一空间位置1010a移动至第二空间位置1010b时,若第一空间位置1010a与第二空间位置1010b在不同地图栅格,则基于第二空间位置确定第二位置影响范围1020b,也就是说,第一位置影响范围1020a与第二位置影响范围1020b不同。
请参见图11,图11是本申请实施例提供的一种第二位置影响范围的确定过程的效果示意图3。如图11所示,第一虚拟对象的位置影响范围为4 X 4栅格的矩形区域,该位置影响范围不能以第一虚拟对象所在的地图栅格的中心位置进行中心对称,进而在确定虚拟对象的对象位置影响范围时,需要对地图栅格划分为多个栅格划分子区域以确定位置影响范围。在将第一虚拟对象由第一空间位置1110a移动至第二空间位置1110b时,若第一空间位置1110a与第二空间位置1110b在同一地图栅格中的同一栅格划分子区域,则将第一位置影响范围1120a确定为第二位置影响范围1120b,即第一位置影响范围1120a与第二位置影响范围1120b相同。
请参见图12,图12是本申请实施例提供的一种第二位置影响范围的确定过程的效果示意图4。如图12所示,第一虚拟对象的位置影响范围为4 X 4栅格的矩形区域,该位置影响范围的形状不能以第一虚拟对象所在的地图栅格的中心位置进行中心对称,进而在确定虚拟对象的对象位置影响范围时,需要对地图栅格划分为多个栅格划分子区域以确定位置影响范围。在将第一虚拟对象由第一空间位置1210a移动至第二空间位置1210b时,若第一空间位置1210a与第二空间位置1210b在同一地图栅格中的不同栅格划分子区域,则基于第二空间位置所在的区栅格划分子区域确定第二位置影响范围1220b,具体确定过程参照上述相关描述,此处不做赘述。可以理解的是,第一位置影响范围1220a与第二位置影响范围1220b可以不同,但可以包含部分相同的位置影响范围,即可以至少包括该区域划分栅格这一相同的位置影响范围。
请参见图13,图13是本申请实施例提供的一种第二位置影响范围的确定过程的效果示意图5。如图13所示,第一虚拟对象的位置影响范围为4 X 4栅格的矩形区域,该位置影响范围不能以第一虚拟对象所在的地图栅格的中心位置进行中心对称,进而在确定虚拟对象的对象位置影响范围时,需要对地图栅格划分为多个栅格划分子区域以确定位置影响范围。如图13所示,第一空间位置1310a所在的栅格划分子区域(即第一栅格划分子区域1330a)的关联子区域可以为关联子区域1340a,即可以与第一栅格划分子区域1330a共享一条边的地图栅格以及共享栅格顶点(简称顶点)的地图栅格。在将第一虚拟对象由第一空间位置1310a移动至第二空间位置1310b时,若第一空间位置1310a与第二空间位置1310b属于不同地图栅格,但第二空间位置1310b所在的栅格划分子区域为第一空间位置1310a所在的栅格划分子区域的关联子区域(即第二空间位置1310b所在的栅格划分子区域为关联子区域1340a中的栅格划分子区域),则将第一位置影响范围1320a确定为第二位置影响范围1320b,即第一位置影响范围1320a与第二位置影响范围1320b相同。可以理解的是,若第二空间位置所在的栅格划分子区域不为第一空间位置所在的栅格划分子区域的关联子区域,则需要基于第二空间位置所在的栅格划分子区域确定第二位置影响范围,其具体的计算过程可以参照上述图7的相关描述,此处不做赘述。
可以理解的是,上述描述的确定第一虚拟对象的第一对象位置影响范围可以为在场景地图(例如游戏地图)中划分地图栅格,进而基于地图栅格确定对象位置影响范围。本申请实施例中,还可以直接以第一虚拟对象所在的位置为中心以及预设半径确定一个圆形区域,作为对象位置影响范围。具体的,以第一空间位置为圆心确定第一圆形区域,将第一圆形区域确定为第一位置影响范围,以第二空间位置为圆心确定第二圆形区域,将第二圆形区域确定为第二位置影响范围。其中,第一圆形区域为以第一空间位置为圆心确定的圆形区域,第二圆形区域为以第二空间位置为圆心确定的圆形区域。
例如,请参见图14,图14是本申请实施例提供的一种位置影响范围的示意图。如图14所示,第一虚拟对象的位置影响范围为以所在位置为圆心的圆形区域,第一位置影响范围为以第一空间位置1410a为圆心确定的圆形区域。在由第一空间位置1410a移动至第二空间位置1410b时,以第二空间位置1410b为圆心确定第二位置影响范围1420b。
可以理解的是,基于上述描述,在确定第二位置影响范围时,确定第一空间位置对应的第一位置影响范围和第二空间位置对应的第二位置影响范围可以包括:获取影响范围图形,基于影响范围图形确定影响范围确定策略;在影响范围确定策略为第一影响范围确定策略时,确定第一空间位置所在的第一地图栅格的栅格标识,以及第二空间位置所在的第二地图栅格的栅格标识;在第一地图栅格的栅格标识与第二地图栅格的栅格标识相同时,获取基于第一地图栅格确定的第一空间位置对应的第一位置影响范围,并将第一位置影响范围确定为第二空间位置对应的第二位置影响范围;在第一地图栅格的栅格标识与第二地图栅格的栅格标识不同时,获取基于第一地图栅格确定的第一空间位置对应的第一位置影响范围,并基于第二地图栅格确定第二空间位置对应的第二位置影响范围。其基于第二地图栅格确定第二空间位置对应的第二位置影响范围,具体可以包括:基于第二地图栅格的中心位置确定第一坐标系原点,基于第二地图栅格的横轴确定第三坐标轴,且基于第二地图栅格的纵轴确定第四坐标轴;基于坐标系原点、第三坐标轴以及第四坐标轴构建第二地图栅格对应的第二栅格坐标系;第二栅格坐标系中包括K个第二栅格空间方向;K为大于1的正整数;分别确定K个第二栅格空间方向对应的关联栅格数量,且基于K个第二栅格空间方向对应的关联栅格数量,在K个第二栅格空间方向上确定与第二地图栅格相连接的相应关联栅格数量的第二关联栅格,得到多个第二关联栅格;基于第二地图栅格和多个第二关联栅格确定第二空间位置对应的第二位置影响范围。其中,该第一影响范围确定策略可以是在影响范围图形为以第一对象地图栅格(即第一虚拟对象的位置所在的地图栅格)的中心位置进行中心对称的图形时的影响范围确定策略,如影响范围图形为3 X 3栅格的矩形、5 X 5栅格的矩形等等。简单来说,该第一影响范围策略也就是,在第一虚拟对象不跨栅格移动时,保持位置影响范围不变(即第一位置影响范围与第二位置影响范围相同),在第一虚拟对象跨栅格移动时,以移动后的位置所在的地图栅格为中心确定新的位置影响范围,由此可以不需要在移动至移动路径上的每个位置时均进行一次位置影响范围的重新计算,有助于减少服务器的计算资源的消耗。
可选的,在影响范围确定策略为第二影响范围确定策略时,确定第一空间位置所在的第一地图栅格的栅格标识,以及第二空间位置所在的第二地图栅格的栅格标识;在第一地图栅格的栅格标识与第二地图栅格的栅格标识相同时,获取基于第一地图栅格确定的第一空间位置对应的第一位置影响范围;将与第二地图栅格具有相同栅格标识的第一地图栅格,确定为区域划分栅格;第一空间位置与第二空间位置均处于区域划分栅格中;区域划分栅格包括K个栅格划分子区域;K为大于1的正整数;一个栅格划分子区域对应一个区域标识;在K个栅格划分子区域中,将第一空间位置所在的栅格划分子区域确定为第一栅格划分子区域,且将第二空间位置所在的栅格划分子区域确定为第二栅格划分子区域;确定第一栅格划分子区域的区域标识,且确定第二栅格划分子区域的区域标识;在第一栅格划分子区域的区域标识和第二栅格划分子区域的区域标识不同时,基于第二栅格划分子区域确定第二空间位置对应的第二位置影响范围;第二位置影响范围与第一位置影响范围中存在部分相同的位置影响范围;在第一栅格划分子区域的区域标识和第二栅格划分子区域的区域标识相同时,将第一位置影响范围确定为第二空间位置对应的第二位置影响范围。其中,基于第二栅格划分子区域确定第二空间位置对应的第二位置影响范围参照上述描述,此处不做赘述。在第一地图栅格的栅格标识与第二地图栅格的栅格标识不同时,获取基于第一地图栅格确定的第一空间位置对应的第一位置影响范围,将第一空间位置在第一地图栅格中所在的栅格划分子区域确定为第一栅格划分子区域,将第二空间位置在第二地图栅格中所在的栅格划分子区域确定为第三栅格子区域;若第三栅格划分子区域为第一栅格划分子区域的关联子区域,则可以将第一位置影响范围确定为第二位置影响范围;若第三栅格划分子区域不为第一栅格划分子区域的关联子区域,则可以基于第二地图栅格确定第二位置影响范围。其中,该第二影响范围确定策略可以是在影响范围图形为无法以第一对象地图栅格(即第一虚拟对象的位置所在的地图栅格)的中心位置进行中心对称的图形时的影响范围确定策略,如影响范围图形为4 X 4栅格的矩形、2 X 2栅格的矩形等等。简单来说,该第二影响范围策略也就是,在第一虚拟对象不跨栅格移动时,确定第一虚拟对象是否跨区域(即跨栅格划分子区域)移动,在跨区域移动时,基于移动后的位置所在的栅格划分子区域确定新的位置影响范围,在不跨区域移动时,保持位置影响范围不变即第一位置影响范围与第二位置影响范围相同);在第一虚拟对象跨栅格移动时,可以确定第二空间位置所在的栅格划分子区域是否为第一栅格划分子区域的关联子区域,如果是,则可以保持位置影响范围不变,如果不是,才重新基于移动后的位置所在的栅格划分子区域确定新的位置在影响范围。由此可以不需要在移动至移动路径上的每个位置时均进行一次位置影响范围的重新计算,有助于减少服务器的计算资源的消耗。
可选的,在影响范围确定策略为第三影响范围确定策略时,以第一空间位置为圆心确定第一圆形区域,将第一圆形区域确定为第一位置影响范围,以第二空间位置为圆心确定第二圆形区域,将第二圆形区域确定为第二位置影响范围。可以理解的是,第三影响范围确定策略是指影响范围图像为圆形时的影响范围确定策略。
可以理解的是,本申请实施例还可以应用于虚拟社交场景中,即业务空间包括虚拟社交空间,虚拟社交空间中包括虚拟社交地图,虚拟社交地图中也可以包括地图可行区域。可以理解的是,上述游戏地图可以属于业务空间中的场景地图,场景地图还可以包括该虚拟社交地图。该虚拟社交地图中也可以为划分多个地图栅格,进而在虚拟社交空间中的确定第一虚拟对象的第一对象位置影响范围的方法可以参照上述在游戏地图中确定第一虚拟对象的第一对象影响范围的相关描述,此处不做赘述。
S103、获取与第一空间位置和第二空间位置相关联的空间跨度参数,在空间跨度参数满足业务空间对应的空间跨度影响条件时,基于第一位置影响范围和第二位置影响范围,确定与第一虚拟对象相关联的位置影响变更范围。
可以理解的是,该空间跨度参数可以为用于指示第一虚拟对象在业务空间中由第一空间位置移动至第二空间位置时用于表征所移动的空间跨度的参数。可选的,该空间跨度参数可以为用于表征第一虚拟对象是否跨栅格移动的参数,如该空间跨度参数可以包括第一空间位置所在的第一地图栅格的栅格标识、与第二空间位置所在的第二地图栅格的栅格标识。可选的,该空间跨度参数可以为用于表征第一虚拟对象是否在第一地图栅格中跨区域移动的参数,如该空间跨度参数可以包括第一空间位置所在的第一地图栅格的栅格标识、与第二空间位置所在的第二地图栅格的栅格标识,以及第一栅格划分子区域的区域标识、第二栅格划分子区域的区域标识,或者,空间跨度参数可以包括第一栅格划分子区域的区域标识、第二栅格划分子区域的区域标识。
该位置影响变更范围可以为第二位置影响范围与第一位置影响范围不同的范围,换言之,该位置影响范围可以包括第一位置影响范围与第二位置影响范围的并集中,除去第一位置影响范围与第二位置影响范围交叠的区域外的其他区域。
该空间跨度影响条件可以为进行位置影响变更范围的计算所需要满足的条件。简单来说,该空间跨度影响条件可以为第一虚拟对象跨栅格移动,或者第一虚拟对象在第一地图栅格中跨区域移动的条件。可以理解的是,由于位置影响变更范围的计算需要涉及到多个栅格,一旦所涉及到的栅格数量较多,则计算位置影响变更范围的计算量就会大大增加,而本申请实施例中可以只在空间跨度参数满足空间跨度影响条件时(即第一虚拟对象在跨地图栅格移动或者在第一地图栅格中跨区域移动时),才进行位置影响变更范围的计算,而在同一栅格内移动,或者在同一栅格内的统一栅格划分子区域中移动时,不进行位置影响变更范围的计算,由此可以不需要每次移动都进行位置影响变更范围的计算,并且,判断空间跨度参数是否满足空间跨度影响条件通常只需要涉及到一到两个地图栅格的数据,计算量较小,进而通过空间跨度影响条件的判断可以有助于减少服务器的计算量,从而提升服务器在游戏过程中的响应效率。
具体的,对象移动请求是在第一业务客户端响应于第一虚拟对象对应的第一操作对象的移动操作时,由第一业务客户端所发送的;业务空间包括虚拟游戏空间,虚拟游戏空间中的游戏地图包括有M个地图栅格;M为大于1的正整数;一个地图栅格对应一个栅格标识;那么,获取与第一空间位置和第二空间位置相关联的空间跨度参数,可以包括以下步骤:获取第一空间位置所在的第一地图栅格的栅格标识,以及第二空间位置所在的第二地图栅格的栅格标识;进一步的,基于第一地图栅格的栅格标识和第二地图栅格的栅格标识确定与第一空间位置和第二空间位置相关联的空间跨度参数。
进一步的,在空间跨度参数中的第一地图栅格的栅格标识与第二地图栅格的栅格标识不同时,确定空间跨度参数满足业务空间对应的空间跨度影响条件。
可以理解的是,在空间跨度参数中的第一地图栅格的栅格标识与第二地图栅格的栅格标识相同时,确定空间跨度参数不满足业务空间对应的空间跨度影响条件。
可以理解的是,该空间跨度影响条件可以为第一地图栅格的栅格标识与第二地图栅格的栅格标识不同,也就是说,该空间跨度影响条件可以为跨栅格移动。可以理解的是,空间跨度影响条件可以为第一地图栅格的栅格标识与第二地图栅格的栅格标识不同,可以是在第一对象位置影响范围(即第一虚拟对象对应的位置影响范围)是以第一对象地图栅格(即第一虚拟对象的位置所在的地图栅格)的中心位置进行中心对称的区域时所采用的方式,换言之,在这种情况下,第一虚拟对象跨栅格移动,则第一对象位置影响范围会发生变化(即第二位置影响范围与第一位置影响范围不同),从而可以计算相应的位置影响变更范围;第一虚拟对象在同一地图栅格中移动,则第一对象位置影响范围不会发生变化(即第二位置影响范围与第一位置影响范围相同),进而不需要计算位置影响变更范围,由此减少计算量。
可选的,对象移动请求是在第一业务客户端响应于第一虚拟对象对应的第一操作对象的移动操作时,由第一业务客户端所发送的;业务空间包括虚拟游戏空间,虚拟游戏空间中的游戏地图包括有M个地图栅格;M为大于1的正整数;一个地图栅格对应一个栅格标识;那么,获取与第一空间位置和第二空间位置相关联的空间跨度参数,可以包括:获取第一空间位置所在的第一地图栅格的栅格标识,以及第二空间位置所在的第二地图栅格的栅格标识;进一步的,在第一地图栅格的栅格标识和第二地图栅格的栅格标识相同时,将与第二地图栅格具有相同栅格标识的第一地图栅格,确定为区域划分栅格;第一空间位置与第二空间位置均处于区域划分栅格中;区域划分栅格包括K个栅格划分子区域;K为大于1的正整数;一个栅格划分子区域对应一个区域标识;第一空间位置所在的栅格划分子区域为第一栅格划分子区域,第二空间位置所在的栅格划分子区域为第二栅格划分子区域;进一步的,确定第一空间位置所在的第一栅格划分子区域的区域标识,确定第二空间位置所在的第二栅格划分子区域的区域标识;进一步的,将第一栅格划分子区域的区域标识与第二栅格划分子区域的区域标识,确定为空间跨度参数。
进一步的,在空间跨度参数中的第一栅格划分子区域的区域标识与第二栅格划分子区域的区域标识不同时,确定空间跨度参数满足业务空间对应的空间跨度影响条件。
可以理解的是,在空间跨度参数中的第一栅格划分子区域的区域标识与第二栅格划分子区域的区域标识相同时,确定空间跨度参数不满足业务空间对应的空间跨度影响条件。
可以理解的是,该空间跨度影响条件可以为第一栅格划分子区域的区域标识与第二栅格划分子区域的区域标识不同,并且该第一地图栅格和第二地图栅格的地图标识相同,也就是说,该空间跨度影响条件可以为在同一地图栅格中跨区域移动。可以理解的是,空间跨度影响条件可以为第一栅格划分子区域的区域标识与第二栅格划分子区域的区域标识不同,可以是在第一对象位置影响范围(即第一虚拟对象对应的位置影响范围)是无法以第一对象地图栅格(即第一虚拟对象的位置所在的地图栅格)的中心位置进行中心对称的区域时所采用的方式,换言之,在这种情况下,第一虚拟对象在同一地图栅格中跨区域移动,则第一对象位置影响范围会发生变化(即第二位置影响范围与第一位置影响范围不同),从而可以计算相应的位置影响变更范围;第一虚拟对象在同一栅格划分子区域中移动,则第一对象位置影响范围不会发生变化(即第二位置影响范围与第一位置影响范围相同),进而不需要计算位置影响变更范围,由此减少计算量。
可选的,在第一地图栅格的栅格标识和第二地图栅格的栅格标识不同时,确定第一地图栅格中的栅格划分子区域以及第二地图栅格中的栅格划分子区域,将第一空间位置在第一地图栅格中所在的栅格划分子区域确定为第一栅格划分子区域,将第二空间位置在第二地图栅格中所在的栅格划分子区域确定为第三栅格子区域;确定第一空间位置所在的第一栅格划分子区域的区域标识,且确定第二空间位置所在的第三栅格划分子区域的区域标识,将第一栅格划分子区域的区域标识和第三栅格划分子区域的区域标识确定为空间跨度参数。
进一步的,在基于空间跨度参数中的第一栅格划分子区域的区域标识与第三栅格划分子区域的区域标识确定第三栅格划分子区域不为第一栅格划分子区域的关联子区域时,确定空间跨度参数满足业务空间对应的空间跨度影响条件。可选的,在不同地图栅格中互为关联子区域的各个栅格划分子区域的区域标识中可以包括一个相同的关联区域标识符,由此在获取到控件跨度参数时,通过对第一栅格划分子区域的区域标识中的关联区域标识符(即第一关联区域标识符),与第三栅格划分子区域的区域标识中的关联区域标识符(即第二关联区域标识符)中的关联区域标识符进行比对,得到比对结果;在比对结果指示第一栅格划分子区域的区域标识中的关联区域标识符(即第一关联区域标识符),与第三栅格划分子区域的区域标识中的关联区域标识符(即第二关联区域标识符)不同时,确定第三栅格划分子区域不为第一栅格划分子区域的关联子区域,进而确定空间跨度参数满足业务空间对应的空间跨度影响条件;在比对结果指示第一栅格划分子区域的区域标识中的关联区域标识符(即第一关联区域标识符),与第三栅格划分子区域的区域标识中的关联区域标识符(即第二关联区域标识符)相同时,确定第三栅格划分子区域为第一栅格划分子区域的关联子区域,进而确定空间跨度参数不满足业务空间对应的空间跨度影响条件。由此可以通过区域标识中的关联区域标识符快速确定出第一栅格划分子区域与第二栅格划分子区域是否互为关联子区域,减少服务器的计算量。
可以理解的是,该空间跨度影响条件可以为第三栅格划分子区域不为第一栅格划分子区域的关联子区域,也就是说,该空间跨度影响条件可以为在不同地图栅格中的互为关联子区域的区域内移动。可以理解的是,空间跨度影响条件为第三栅格划分子区域不为第一栅格划分子区域的关联子区域,可以是在第一对象位置影响范围(即第一虚拟对象对应的位置影响范围)是无法以第一对象地图栅格(即第一虚拟对象的位置所在的地图栅格)的中心位置进行中心对称的区域时所采用的方式,换言之,在这种情况下,第一虚拟对象在跨地图栅格移动时,若移动至的栅格划分子区域为关联子区域,第一对象位置影响范围也可以保持不变(即第二位置影响范围与第一位置影响范围相同),进而不需要计算位置影响变更范围,由此减少计算量。
具体的,对象移动请求是在第一业务客户端响应于第一虚拟对象对应的第一操作对象的移动操作时,由第一业务客户端所发送的;业务空间包括虚拟游戏空间,虚拟游戏空间中的游戏地图包括有M个地图栅格;M为大于1的正整数;那么,基于第一位置影响范围和第二位置影响范围,确定与第一虚拟对象相关联的位置影响变更范围,可以包括以下步骤:基于第一位置影响范围和第二位置影响范围中的相同位置影响范围,确定影响范围交叠区域;进一步的,将第二位置影响范围中除影响范围交叠区域之外的位置影响范围,确定为第一影响变更范围;进一步的,将第一位置影响范围中除影响范围交叠区域之外的位置影响范围,确定为第二影响变更范围;进一步的,基于第一影响变更范围和第二影响变更范围,确定与第一虚拟对象相关联的位置影响变更范围。
其中,可以理解的是,影响范围交叠区域可以为第一位置影响范围和第二位置影响范围中的相同位置影响范围。该第一影响变更范围为第二位置影响范围中除影响范围交叠区域之外的位置影响范围,确定为第一影响变更范围,换言之,该第一影响变更范围可以为第一对象位置影响范围在更新为第二位置影响范围时所增加的区域,也称第一虚拟对象新进入的区域。第二影响变更范围为第一位置影响范围中除影响范围交叠区域之外的位置影响范围,换言之,该第一影响变更范围可以为第一对象位置影响范围在更新为第二位置影响范围时所减少的区域,也称第一虚拟对象离开的区域。
例如,请参见图15,图15是本申请实施例提供的一种位置影响变更范围的示意图。如图15所示,在第一虚拟对象由第一空间位置1510移动至第二空间位置1520时,进行了跨栅格移动,且位置影响范围发生了变化。在场景地图中,除了有第一虚拟对象,还可以包括第二类型虚拟对象(NPC)。第一空间位置1510所对应的位置影响范围为第一位置影响范围1530;第二空间位置1520所对应的位置影响范围为第二位置影响范围1540(即1540所示区域中的完整地图栅格)。第一位置影响范围1530与第二位置影响范围1540之间的相同的位置影响范围为影响范围交叠区域。进而可以看到,位置影响变更范围可以包括第一影响变更范围1550以及第二影响变更范围1560。
S104、在位置影响变更范围内存在与第一虚拟对象相关联的虚拟业务对象时,对虚拟业务对象的对象状态进行状态优化;虚拟业务对象为位置影响变更范围内不同于第一虚拟对象的对象。
可以理解的是,该虚拟业务对象可以为位置影响变更范围内不同于第一虚拟对象的对象,该虚拟业务对象可以是第二类型虚拟对象,如为游戏场景中的NPC。对虚拟业务对象的对象状态进行状态优化,可以用于指示对虚拟业务对象的对象状态进行调整,以调整为更优的对象状态。
可以理解的是,如上述,第二类型虚拟对象的对象状态可以包括工作状态和待工作状态,也就是说,虚拟业务对象的对象状态可以包括工作状态和待工作状态。工作状态可以为指示虚拟业务对象进行工作的状态,如虚拟业务对象在工作状态时,可以进行巡逻,即按照服务器计算的巡逻路径进行移动;又如,虚拟业务对象在工作状态时,可以进行表演,即执行预设的动作。而待工作状态可以用于指示虚拟业务对象不进行工作的状态,也称睡眠状态,如虚拟业务对象在待工作状态时,可以处于静止状态,或者执行简单的待机动作,或者执行简单的巡逻(如按照相较于处于工作状态的巡逻路径更简单的巡逻路径进行巡逻)。可以理解的是,在虚拟业务对象处于待工作状态时,服务器可以不需要对计算虚拟业务对象的执行动作或移动路径进行复杂的计算,换言之,相较于处于工作状态时的虚拟业务对象,在虚拟业务对象处于待工作状态时,虚拟业务对象的动作复杂度更小,服务器所需要消耗的计算量更少,由此有助于减少服务器的负载,进而服务器有更多的计算资源去处理其他的请求,提升服务器的响应效率。
可以理解的是,对虚拟业务对象的对象状态进行状态优化,可以包括虚拟业务对象由工作状态调整为待工作状态,由此可以减少服务器的计算资源的占用,实现了对象状态的状态优化。对虚拟业务对象的对象状态进行状态优化,可以包括虚拟业务对象由待工作状态调整为工作状态,由此可以提升虚拟业务对象的互动性,提升游戏体验,实现了对象状态的状态优化。
可以理解的是,在对虚拟业务对象的对象状态进行状态优化后,可以确定状态优化后的对象状态对应的对象动作,以便于在业务客户端显示虚拟业务对象执行优化后的对象状态对应的对象动作。可以理解的是,待工作状态对应的对象动作的复杂度可以小于工作状态对应的对象动作的复杂度,因此通过本申请实施例对远离玩家角色的第二类型虚拟对象的对象状态确定为待工作状态,进而服务器用于维护处于待工作状态的第二类型虚拟对象所需要消耗的计算资源更少。
可以理解的是,第一虚拟对象的位置影响范围(即第一对象位置影响范围)的大小可以根据服务器的资源占用信息(如CPU使用率)进行动态变化,换言之,可以根据服务器的资源占用信息动态调整第一类型虚拟对象的位置影响范围的影响范围图形。例如,在资源占用信息所指示的资源占用比值降低时,对第一对象位置影响范围进行增大(即获取到的影响范围图形的面积更大),反之,在资源占用信息所指示的资源占用比值增大时,对第一对象位置影响范围进行减小(即获取到的影响范围图形的面积更小)。具体的,位置影响范围包括的地图栅格的数量(即第一类型虚拟对象所能激活的地图栅格的数量)可以根据服务器的CPU使用率进行动态变化。当资源占用信息(如CPU使用率)比较低时,此时CPU计算资源还有比较多的冗余,可以激活较多的格子。当资源占用信息(如CPU使用率)比较高时,此时可能处于过载的状态,激活较少的格子(即栅格),节省计算开销。激活的格子(栅格)数量根据实际负载动态变化可以更好的保护场景进程,防止过载。例如,CPU使用率小于60%时,位置影响范围中可以包括16个地图栅格(即位置影响范围为4 X 4栅格的矩形区域);CPU使用率为60%-80%时,位置影响范围中可以包括9个地图栅格(即位置影响范围为3 X 3栅格的矩形区域);CPU使用率为大于80%时,位置影响范围中可以包括4个地图栅格(即为2 X 2栅格的矩形区域)。
请参见图16,图16是本申请实施例提供的一种数据处理方法的流程示意图2。该方法可由上述的服务器执行来执行,比如,上述的服务器200a。该方法至少可以包括以下步骤S201-步骤S205。
S201、获取针对业务空间中的第一虚拟对象发送的对象移动请求;对象移动请求用于指示将第一虚拟对象在业务空间中的位置由第一空间位置移动至第二空间位置。
S202、在基于对象移动请求将第一虚拟对象在业务空间中的位置由第一空间位置移动至第二空间位置时,确定第一空间位置对应的第一位置影响范围和第二空间位置对应的第二位置影响范围。
S203、获取与第一空间位置和第二空间位置相关联的空间跨度参数,在空间跨度参数满足业务空间对应的空间跨度影响条件时,基于第一位置影响范围和第二位置影响范围,确定与第一虚拟对象相关联的位置影响变更范围。
其中,步骤S201-S203可以参照上述步骤S101-S103的相关描述,此处不做赘述。
S204、在第一影响变更范围中的地图栅格的栅格状态为栅格待激活状态时,将栅格状态为栅格待激活状态的地图栅格确定为第一类型栅格,将第一影响变更范围中的第一类型栅格的栅格状态由栅格待激活状态配置为栅格激活状态。
其中,可以理解的是,第一类型栅格为第一影响变更范围中栅格状态为栅格待激活状态的地图栅格。如上述,位置影响变更范围包括第一影响变更范围;第一影响变更范围为第二位置影响范围中除影响范围交叠区域之外的位置影响范围;影响范围交叠区域是由第一位置影响范围和第二位置影响范围中的相同位置影响范围所确定的;第一影响变更范围中包括一个或多个地图栅格。
其中,可以理解的是,栅格待激活状态(也称待激活状态)用于指示地图栅格暂时未激活,处于栅格待激活状态的地图栅格内的第二类型虚拟对象的对象状态均为待工作状态。栅格激活状态(也称激活状态)用于指示地图栅格已激活,处于栅格激活状态的地图栅格内的第二类型虚拟对象的对象状态均为工作状态。进一步可以理解的是,在第一类型虚拟对象(如第一虚拟对象)关联的对象位置影响范围内的地图栅格的栅格状态均为栅格激活状态,不属于任一虚拟对象(如第一虚拟对象)关联的对象位置影响范围内的地图栅格的栅格状态均为栅格待激活状态。
可以理解的是,若第一影响变更范围中的地图栅格为栅格待激活状态,则可以表示在第一虚拟对象的对象位置影响范围进入该地图栅格(即第一类型栅格)时,可以激活该第一类型栅格,即由栅格待激活状态调整为栅格激活状态。
可选的,第一类型栅格为第一影响变更范围中的第一类型变更栅格中的地图栅格;第一类型变更栅格中的地图栅格包括第二类型栅格;第二类型栅格不同于第一类型栅格;第二类型栅格为第一影响变更范围中的栅格状态为栅格激活状态的地图栅格;第二类型栅格属于与第三虚拟对象关联的对象位置影响范围中的地图栅格;第三虚拟对象为不同于第一虚拟对象的对象;那么,本申请实施例还可以包括:维持第一影响变更范围中的第二类型栅格的栅格状态为栅格激活状态。
可以理解的是,第一类型变更栅格是指第一影响变更范围中的地图栅格。第二类型栅格为第一影响变更范围中的栅格状态为栅格激活状态的地图栅格。
可以理解的是,第三虚拟对象可以为第一虚拟对象外的任一第一类型虚拟对象。第三虚拟对象关联的对象位置影响范围的确定方式,可以参照上述确定第一虚拟对象对应的第一对象位置影响范围的相关描述。为了便于描述,可以将第三虚拟对象关联的对象位置影响范围,也就是第三虚拟对象可以影响到第二类型虚拟对象的对象状态的范围,也可以称为第三对象位置影响范围。可以理解的是,此处的第三虚拟对象关联的对象位置影响范围,可以为在第一虚拟对象移动至第二空间位置时,第三虚拟对象所在位置对应的位置影响范围。
可以理解的是,第二类型栅格的栅格状态为栅格激活状态,是由于第一虚拟对象在移动至第二空间位置前,其他虚拟对象(如第三虚拟对象)已对该地图栅格进行了激活,则第一虚拟对象在移动至第二空间位置时,第一变更影响范围中存在已被激活的第二类型栅格,进而不需要对栅格状态进行调整,维持第二类型栅格的栅格激活状态即可。
进一步可以理解的是,在维持第一影响变更范围中的第二类型栅格的栅格状态为栅格激活状态时,不需要对第二类型栅格上的虚拟业务对象的对象状态进行调整,由此可以通过判定第一影响变更范围中的地图栅格为栅格激活状态,来确定是否需要对地图栅格上的虚拟业务对象的对象状态进行状态优化。显然,在第一影响变更范围中的地图栅格为栅格待激活状态(即存在第一类型栅格)时,可以对第一影响变更范围中为栅格待激活状态的地图栅格(即第一类型栅格)内的虚拟业务对象的对象状态进行状态优化,在第一影响变更范围中的地图栅格已经为栅格激活状态(即存在第二类型栅格)时,直接维持原对象状态即可,不需要对为栅格激活状态的地图栅格(即第二类型栅格)内的虚拟业务对象的对象状态进行状态优化,减少了状态调整的资源消耗,由此可以通过判断地图栅格的栅格状态减少服务器对于虚拟业务对象的状态维护的资源消耗。
可以理解的是,在一些场景中,该第一类型变更栅格中可以仅包括第一类型栅格,也可以仅包括第二类型栅格,还可以同时包括第一类型栅格和第二类型栅格,此处不做限定。
S205、在第一类型栅格内存在对象状态为待工作状态的第一虚拟业务对象时,将第一虚拟业务对象的对象状态由待工作状态优化为工作状态。
可以理解的是,第一虚拟业务对象可以为第一类型栅格内存在的对象状态为待工作状态的虚拟业务对象。第一类型栅格内存在的虚拟业务对象可以通过第一类型栅格对应的第二类型虚拟对象列表进行确定。可以理解的是,该第一虚拟业务对象属于第二类型虚拟对象。可以理解的是,第一类型栅格内存在的第一虚拟业务对象的数量此处不做限定。若第一虚拟业务对象的数量为多个,则可以将每个第一虚拟业务对象的对象状态均由待工作状态优化为工作状态。
可以理解的是,将第一虚拟业务对象的对象状态由待工作状态优化为工作状态,可以包括:在将第一类型栅格配置为栅格激活状态时,生成栅格激活信息,进而向第一虚拟业务对象对应的状态机发送该栅格激活信息,该栅格激活信息可以用于指示将状态机所指示的对象状态由待工作状态调整为工作状态。进一步可以理解的是,在第一虚拟业务对象的数量为多个时,可以向每个第一虚拟业务对象对应的状态机发送该栅格激活信息。
此处结合图示,对针对第一影响变更范围内的虚拟业务对象的对象状态的处理过程。请参见图17,图17是本申请实施例提供的一种对象状态优化过程的流程示意图。如图17所示,在第一虚拟对象由第一空间位置移动至第二空间位置(步骤S1701)时,可以判断是否存在第一影响变更范围(步骤S1702),也就是判断第一虚拟对象是否进入了新的地图栅格,也就是可以判断空间跨度参数是否满足空间跨度影响条件,若满足,则可以确定存在第一影响变更范围,若不满足,则确定不存在第一影响变更范围;若不存在第一影响变更范围,则不进行处理(步骤S1703),即维持原有状态;若存在第一影响变更范围,则第一影响变更范围中的地图栅格是否激活(步骤S1704),即判断第一影响变更范围中是否存在栅格状态为栅格激活状态的地图栅格,其中,第一影响变更范围中的地图栅格已激活的栅格可以称为第二类型栅格,第一影响变更范围中的地图栅格未激活的栅格可以称为第一类型栅格。若第一影响变更范围中的地图栅格已激活,则维持激活状态,不用重复处理(步骤S1705);若第一影响变更范围中的地图栅格未激活,则判断未激活的地图栅格中是否存在虚拟业务对象(步骤S1706);若不存在虚拟业务对象,则将未激活的地图栅格(即地图栅格的栅格状态为栅格待激活状态的地图栅格)调整为激活状态(步骤S1707);若存在虚拟业务对象,则将未激活的地图栅格调整为激活状态,并将调整为激活状态的地图栅格内的虚拟业务对象的对象状态优化为工作状态(步骤S1708)。也就是说,在第一影响变更范围中的地图栅格未激活时,则可以将未激活的地图栅格调整为激活状态,若该地图栅格内存在虚拟业务对象,则可以将该虚拟业务对象的对象状态由待工作状态优化为工作状态,换言之,若第一虚拟对象在进入新的地图栅格时,若其他第一类型虚拟对象(即第三虚拟对象)已经对该新进入的地图栅格进行激活,则只需要维持原本的状态即可,若没有其他第一类型虚拟对象(即第三虚拟对象)对该新进入的地图栅格进行激活,则需要对新进入的地图栅格进行激活,进而将对应的虚拟业务对象的对象状态调整为待工作状态。
可选的,工作状态包括多个工作子状态;多个工作子状态中包括第一工作子状态和第二工作子状态;第一工作子状态不同于第二工作子状态;那么,本申请实施例还可以包括:在第一虚拟业务对象的所处的工作状态为第一工作子状态时,且第一虚拟业务对象达到第二工作子状态对应的子状态切换条件时,将第一虚拟业务对象由第一工作子状态切换为第二工作子状态。
可以理解的是,该工作子状态可以为工作状态下包括子状态。该第一工作子状态和第二工作子状态可以为工作状态下的任意两个不同的工作子状态。可以理解的是,此处不对工作状态所包括的动作子状态的数量进行限定,此处以第一工作子状态和第二工作子状态为例进行描述。可以理解的是,每个工作子状态都可以关联有对应的对象动作,进而可以在调整为对应的工作子状态时,可以为执行相应的工作子状态的对象动作。
例如,该工作子状态可以为巡逻状态、表演状态、警戒状态、战斗状态、战斗失败状态等等,此处不做限制。其中,巡逻状态可以为按照服务器计算的巡逻路径进行移动的状态。表演状态可以为执行一定表演动作的状态,如跳舞、鼓掌等动作。警戒状态可以为在虚拟业务对象周围的一定范围内存在虚拟对象时,所展示的状态,可以在虚拟业务对象关联展示一个警戒标识(如感叹号),虚拟业务对象的眼睛或其他部位显示为警戒颜色(如红色),显示虚拟业务对象对应的警戒范围等等,此处不做限定。该战斗状态可以为虚拟业务对象可主动向虚拟业务对象发起攻击的状态。该战斗失败状态可以为虚拟业务对象战斗失败(如被虚拟业务对象攻击且对应的精力值(如血条)消耗完)时所展示的状态,例如,该战斗失败状态可以表现为虚拟对象执行一个躺倒的动作。
可以理解的是,在第一虚拟业务对象的对象状态由待工作状态优化为工作状态时,可以由待工作状态具体调整为工作状态中的某个工作子状态,如调整为第一工作子状态。可以理解的是,在第一虚拟业务对象处于工作状态时,可以在多个工作子状态之间进行状态切换。
可以理解的是,该子状态切换条件可以为切换为对应的工作子状态所需要满足的条件。例如,第一工作子状态为巡逻状态,第二工作子状态为警戒状态,则在第一虚拟业务对象达到警戒状态的子状态切换条件时,将第一虚拟业务对象由巡逻状态切换为警戒状态。
例如,请参见图18,图18是本申请实施例提供的一种工作子状态切换过程的示意图。如图所示,工作状态中的工作子状态可以包括第一工作子状态、第二工作子状态、第三工作子状态、第四工作子状态、第五工作子状态。此处仅为示例,不对工作状态所包括的工作子状态的数量进行限定。例如,第一工作子状态可以为巡逻状态,第二工作子状态可以为警戒状态,第三工作子状态可以为战斗状态、第四工作子状态可以为战斗失败状态,第五工作子状态可以为表演状态。可以理解的是,上述每个工作子状态仅为一个示例,其还可以为聊天状态、持续射击状态(如持续向某个方向进行射击),等等,此处不做限定。可以理解的是,工作子状态之间可以相互之间进行切换,也可以仅能从一个状态切换为另一状态,此处不做限制。其每个工作子状态对应的对象操作可以参照上述描述,此处不做赘述。可以理解的是,在第一工作子状态为巡逻状态时,若虚拟业务对象的警戒范围内出现虚拟对象(即条件1),则可以由巡逻状态切换为警戒状态(即第二工作子状态),并且,在警戒状态时,若警戒范围内没有虚拟对象(即条件2,如虚拟对象离开警戒范围),则可以由警戒状态切换为巡逻状态。在巡逻状态(即第一工作子状态)时,若虚拟业务对象达到表演条件(即条件4,如获取到虚拟对象点击用于指示虚拟业务对象进行表演请求,该请求可以为业务客户端响应于操作对象点击指示虚拟业务对象进行表演的控件的操作生成的),则可以由巡逻状态切换为表演状态(即第五工作子状态)时,并且,在虚拟业务对象表演结束(即条件5)时,可以由表演状态切换为巡逻状态。在处于表演状态(即第五工作子状态)时时,若虚拟业务对象的战斗范围内出现敌人(即条件6),则可以由表演状态切换为战斗状态(即第三工作子状态)时,在处于战斗状态(即第三工作子状态)时时,若达到表演条件(即条件7),则可以切换为表演状态(即第五工作子状态)时。可以理解的是,在处于警戒状态(即第二工作子状态)时时,在战斗范围内出现虚拟对象(即条件8),则可以由警戒状态切换为战斗状态(即第三工作子状态)时。可以理解的是,警戒范围可以为用于指示虚拟业务对象进入警戒状态时虚拟对象所需进入的范围,战斗范围可以为用于指示虚拟业务对象进入战斗状态时虚拟对象所需进入的范围。虚拟业务对象可以为在巡逻状态、警戒状态或战斗状态受到虚拟对象的攻击,且战斗失败(即条件3)时所切换为的战斗失败状态(即第四工作子状态)。
请参见图19,图19是本申请实施例提供的一种数据处理方法的流程示意图3。该方法可由上述的服务器执行来执行,比如,上述的服务器200a。该方法至少可以包括以下步骤S301-步骤S305。
S301、获取针对业务空间中的第一虚拟对象发送的对象移动请求;对象移动请求用于指示将第一虚拟对象在业务空间中的位置由第一空间位置移动至第二空间位置。
S302、在基于对象移动请求将第一虚拟对象在业务空间中的位置由第一空间位置移动至第二空间位置时,确定第一空间位置对应的第一位置影响范围和第二空间位置对应的第二位置影响范围。
S303、获取与第一空间位置和第二空间位置相关联的空间跨度参数,在空间跨度参数满足业务空间对应的空间跨度影响条件时,基于第一位置影响范围和第二位置影响范围,确定与第一虚拟对象相关联的位置影响变更范围。
其中,步骤S301-S303可以参照上述步骤S101-S103的相关描述,此处不做赘述。
S304、在第二影响变更范围中的地图栅格不与第四虚拟对象关联的对象位置影响范围重叠时,将不与第四虚拟对象关联的对象位置影响范围重叠的地图栅格确定为第三类型栅格,将第二影响变更范围中的第三类型栅格的栅格状态由栅格激活状态配置为栅格待激活状态;第四虚拟对象为不同于第一虚拟对象的对象。
可以理解的是,第三类型栅格为第二影响变更范围中不与第四虚拟对象关联的对象位置影响范围重叠的地图栅格。可以理解的是,第四虚拟对象关联的对象位置影响范围,也就是第四虚拟对象可以影响到第二类型虚拟对象的对象状态的范围,也可以称为第四对象位置影响范围。可以理解的是,此处的第四虚拟对象关联的对象位置影响范围,可以为在第一虚拟对象移动至第二空间位置时,第四虚拟对象所在位置对应的位置影响范围。如上述,位置影响变更范围包括第二影响变更范围;第二影响变更范围为第一位置影响范围中除影响范围交叠区域之外的位置影响范围;影响范围交叠区域是由第一位置影响范围和第二位置影响范围中的相同位置影响范围所确定的;第二影响变更范围中包括一个或多个地图栅格。
其中,第四虚拟对象可以为第一虚拟对象外的任一虚拟对象。可以理解的是,该第四虚拟对象与第三虚拟对象可以为同一虚拟对象,也可以为不同虚拟对象,此处做限定。可以理解的是,第四虚拟对象关联的位置影响范围的确定方式,可以参照上述确定第一虚拟对象对应的第一对象位置影响范围的相关描述。为了便于描述,可以将第四虚拟对象关联的对象位置影响范围称为第三对象位置影响范围。
可以理解的是,若第二影响变更范围中的地图栅格不与第四虚拟对象的位置影响范围重叠,则可以表示在第一虚拟对象的对象位置影响范围离开该地图栅格(即第三类型栅格)时,该第三类型栅格不再激活,即由栅格激活状态调整为栅格待激活状态。
可选的,第三类型栅格为第二影响变更范围中的第二类型变更栅格中的地图栅格;第二类型变更栅格中的地图栅格包括第四类型栅格;第四类型栅格不同于第三类型栅格;第四类型栅格为第二影响变更范围中的与第四虚拟对象关联的对象位置影响范围重叠的地图栅格;那么本身申请实施例还包括:维持第二影响变更范围中的第四类型栅格的栅格状态为栅格激活状态。
其中,第二类型变更栅格是指第二影响变更范围中的地图栅格,具体的,第四类型栅格可以为第二影响变更范围中的第二类型变更栅格中与第四虚拟对象关联的对象位置影响范围重叠的地图栅格。
可以理解的是,维持第二影响变更范围中的第四类型栅格的栅格状态为栅格激活状态,是由于第一虚拟对象在移动至第二空间位置后,其他虚拟对象(如第四虚拟对象)关联的对象位置影响范围中包括该地图栅格,即使第一虚拟对象离开了该地图栅格,仍可以使得该地图栅格为栅格激活状态,换言之,只要一个地图栅格属于任一虚拟对象的对象位置影响范围,则该地图栅格的栅格状态为激活状态。由此第一虚拟对象在移动至第二空间位置时,若第二变更影响范围中存在第四类型栅格,则不需要对该第四类型栅格状态进行调整,维持第四类型栅格的栅格激活状态即可。
进一步可以理解的是,在维持第二影响变更范围中的第四类型栅格的栅格状态为栅格激活状态时,不需要对第四类型栅格上的虚拟业务对象的对象状态进行调整,由此可以通过判定第二影响变更范围中的地图栅格是否与第四虚拟对象关联的对象位置影响范围重叠,来确定是否需要对地图栅格上的虚拟业务对象的对象状态进行状态优化。显然,在第二影响变更范围中的地图栅格不与第四虚拟对象关联的对象位置影响范围重叠(即存在第三类型栅格)时,可以对不与第四虚拟对象关联的对象位置影响范围重叠的地图栅格(即第三类型栅格)内的虚拟业务对象的对象状态进行状态优化;在第二影响变更范围中的地图栅格与第四虚拟对象关联的对象位置影响范围重叠(即存在第四类型栅格)时,直接维持原对象状态即可,不需要对与第四虚拟对象关联的对象位置影响范围重叠的地图栅格(即第四类型栅格)内的虚拟业务对象的对象状态进行优化,减少了状态调整的资源消耗,由此可以通过判断地图栅格的栅格状态减少服务器对于虚拟业务对象的状态维护的资源消耗。
可以理解的是,在一些场景中,该第二类型变更栅格中可以仅包括第三类型栅格,也可以仅包括第四类型栅格,还可以同时包括第三类型栅格和第四类型栅格,此处不做限定。
S305、在第三类型栅格内存在对象状态为工作状态的第二虚拟业务对象时,将第二虚拟业务对象的对象状态由工作状态优化为待工作状态。
可以理解的是,第二虚拟业务对象可以为第三类型栅格内存在的对象状态为工作状态的虚拟业务对象。该第二虚拟业务对象属于第二类型虚拟对象。第三类型栅格内存在的虚拟业务对象可以通过第三类型栅格对应的第二类型虚拟对象列表进行确定。可以理解的是,第三类型栅格内存在的第二虚拟业务对象的数量此处不做限定。若第一虚拟业务对象的数量为多个,则可以将每个第二虚拟业务对象的对象状态均由待工作状态优化为工作状态。其中,可以理解的是,该第二虚拟业务对象与第一虚拟业务对象可以为不同虚拟业务对象。
可以理解的是,将第二虚拟业务对象的对象状态由工作状态优化为待工作状态,可以包括:在将第三类型栅格配置为栅格待激活状态时,生成栅格待激活信息,进而向第一虚拟业务对象对应的状态机发送该栅格待激活信息,该栅格待激活信息可以用于指示将状态机所指示的对象状态由工作状态调整为待工作状态。进一步可以理解的是,在第二虚拟业务对象的数量为多个时,可以向每个第二虚拟业务对象对应的状态机发送该栅格待激活信息。
此处结合图示,对针对第二影响变更范围上的虚拟业务对象的对象状态的处理过程。请参见图20,图20是本申请实施例提供的一种对象状态优化过程的流程示意图。如图20所示,在第一虚拟对象由第一空间位置移动至第二空间位置(步骤S2001)时,可以判断是否存在第二影响变更范围(步骤S2002),也就是判断第一虚拟对象是否离开了原有的地图栅格,也就是可以判断空间跨度参数是否满足空间跨度影响条件,若满足,则可以确定存在第二影响变更范围,若不满足,则确定不存在第二影响变更范围;若不存在第二影响变更范围,则不进行处理(步骤S2003),即维持原有状态;若存在第二影响变更范围,则判断第二影响变更范围中的地图栅格是否与其他虚拟对象(如第四虚拟对象)关联的对象位置影响范围重叠(步骤S2004),即判断第二影响变更范围中的地图栅格是否属于其他虚拟对象的位置影响范围,其中,第二影响变更范围中与其他虚拟对象(如第四虚拟对象)关联的对象位置影响范围重叠的地图栅格可以称为第四类型栅格,第二影响变更范围中不与其他虚拟对象(如第四虚拟对象)关联的对象位置影响范围重叠的地图栅格可以称为第三类型栅格。若第二影响变更范围中的地图栅格与其他虚拟对象(如第四虚拟对象)关联的对象位置影响范围重叠,则维持激活状态,不用重复处理(步骤S2005);若第二影响变更范围中的地图栅格不与其他虚拟对象(如第四虚拟对象)关联的对象位置影响范围重叠,则判断范围重叠的地图栅格中是否存在虚拟业务对象(步骤S2006);若不存在虚拟业务对象,则将范围不重叠的地图栅格调整为待激活状态(即栅格待激活状态)(步骤S2007);若存在虚拟业务对象,则将范围不重叠的地图栅格调整为待激活状态,并将调整为待激活状态的地图栅格内的虚拟业务对象的对象状态优化为待工作状态(步骤S2008)。也就是说,在第一影响变更范围中的地图栅格与其他虚拟对象的位置影响范围不重叠时,则可以将范围不重叠的地图栅格调整为待激活状态,若该范围不重叠的地图栅格内存在虚拟业务对象,则可以将该虚拟业务对象的对象状态由工作状态优化为待工作状态,换言之,若第一虚拟对象在离开地图栅格时,若没有其他第一类型虚拟对象(即第四虚拟对象)来维持离开的地图栅格的激活状态,则需要将该离开的地图栅格的栅格状态调整为待激活状态,进而将对应的虚拟业务对象的对象状态调整为待工作状态。
可以理解的是,在将第一虚拟业务对象的对象状态由工作状态优化为待工作状态时,可以由任一工作子状态优化为待工作状态。例如,在第三类型栅格内存在对象状态为巡逻状态(即一种工作子状态)的虚拟业务对象1时,可以将虚拟业务对象1的对象状态由巡逻状态优化为待工作状态;又如,在第三类型栅格内存在对象状态为表演状态(即一种工作子状态)的虚拟业务对象2时,可以将虚拟业务对象2的对象状态由表演状态优化为待工作状态。
此处结合图示对对象状态的切换过程进行阐述,请参见图21,图21是本申请实施例提供一种状态切换过程的示意图。如图21所示,虚拟业务对象的对象状态可以包括待工作状态2101a,以及工作状态2102a。可以的是,在虚拟业务对象的地图栅格由待激活状态调整为激活状态时,可以将虚拟业务对象的对象状态由待工作状态2101a优化为工作状态2102a;在虚拟业务对象的地图栅格由激活状态调整为待激活状态时,可以将虚拟业务对象的对象状态由工作状态2102a优化为待工作状态2101a。可以理解的是,在虚拟业务对象处于工作状态时,可以在各个工作子状态之间进行状态切换,其具体的切换过程参照图18的相关描述。
可以理解的是,基于上述描述,本申请实施例所涉及到的应用(如游戏应用)可以为传统应用(如传统游戏),也可以为云应用(如云游戏),则可以基于应用的类型所对应的在业务客户端(如第一业务客户端)中显示应用画面的数据处理流程进行相应的处理,以在第一业务客户端中显示相应的应用画面(如游戏画面)。
可选的,对象移动请求是在第一业务客户端响应于第一虚拟对象对应的第一操作对象的移动操作时,由第一业务客户端所发送的;那么,本申请实施例还可以包括:将状态优化后的虚拟业务对象的对象状态确定为对象优化状态,在对象优化状态为工作状态时,确定处于工作状态的虚拟业务对象的对象动作所对应的动作标识,将动作标识发送至第一业务客户端,以使第一业务客户端基于动作标识获取业务虚拟对象的对象动作信息,且基于对象动作信息生成应用画面。
其中,对象优化状态可以为状态优化后的虚拟业务对象的对象状态。可以理解的是,在将虚拟业务对象的对象状态由待工作状态调整为工作状态时,对象优化状态为工作状态;在将虚拟业务对象的对象状态由工作状态调整为待工作状态时,对象优化状态为待工作状态。可以理解的是,虚拟业务对象的每个对象状态可以有对应的对象动作(也称动作),动作标识可以为用于唯一标识一个对象动作的标识。对象动作信息可以用于指示虚拟对象执行一个对象动作所需要的信息,例如,对象动作信息可以包括虚拟对象在执行一个动作时,每个关键点(如手肘、膝盖关节等位置)位置变动信息。可以理解的是,在第一业务客户端中可以存储有每个对象动作的对象动作信息,进而第一业务客户端可以基于对象动作信息生成应用画面。例如,在对象优化状态为工作状态中的巡逻状态时,可以确定虚拟业务对象进行巡逻时的对象动作的动作标识,还可以确定巡逻路径,并将动作标识和巡逻路径发送至客户端中。
可以理解的是,基于上述描述,由业务客户端对动作标识进行处理以生成应用画面,该业务客户端可以为传统应用的客户端,如为传统游戏的客户端。可以理解的是,本申请实施例中,还可以确定在视野范围内包括该虚拟业务对象的其他第一类型虚拟对象(即除第一虚拟对象外的其他第一类型虚拟对象)对应的业务客户端,并将对象动作的动作标识发送至该业务客户端,以使该业务客户端基于动作标识获取业务虚拟对象的对象动作信息,且基于对象动作信息生成应用画面。可以理解的是,视野是指玩家操控的角色在应用内能够看到的地图范围。
可选的,在对象优化状态为待工作状态时,可以确定处于待工作状态的虚拟业务对象的对象动作所对应的动作标识。例如,该待工作状态的对象动作可以为静止,也可以为一些简单的待机动作。
可选的,对象移动请求是在第一业务客户端响应于第一虚拟对象对应的第一操作对象的移动操作时,由第一业务客户端所发送的;第一业务客户端所对应的云客户端为云虚拟客户端,云虚拟客户端为基于获取到的第一业务客户端发送的客户端启动请求所部署的云客户端;那么,本申请实施例还可以包括:将状态优化后的虚拟业务对象的对象状态确定为对象优化状态,在对象优化状态为工作状态时,确定处于工作状态的虚拟业务对象的对象动作所对应的动作标识,在云虚拟客户端中,基于动作标识获取业务虚拟对象的对象动作信息,且基于对象动作信息生成应用画面;进一步的,基于应用画面生成视频流数据,将视频流数据发送至第一业务客户端,以使第一业务客户端基于视频流数据显示应用画面。
可以理解的是,该第一业务客户端可以为云应用的客户端,如为云游戏的客户端。该云客户端可以为部署在服务器上与第一业务客户端对应的客户端。该客户端启动请求可以为用于指示在服务器中创建的与第一业务客户端对应的云客户端的请求。可以理解的是,云虚拟客户端(也称虚拟云客户端)可以为第一业务客户端在服务器中对应的云客户端。例如,此处以云游戏场景为例,业务对象A在想要启动一个云游戏时,可以向服务器发送客户端启动请求,服务器在获取到该客户端启动请求时,可以中为业务对象A创建或分配一个云游戏实例(即为业务对象A创建或分配一个云游戏的云虚拟客户端),并在该服务器中运行该业务对象A对应的云虚拟客户端;与此同时,终端设备中的业务客户端也会成功启动,即终端设备中的业务客户端与云服务器中的云虚拟客户端保持相同的运行状态。
云虚拟客户端在服务器中运行时,可以执行云游戏中的游戏逻辑,并通过该云虚拟客户端所在的进程调用GPU(图像处理器)驱动程序提供的渲染接口执行渲染操作,渲染完成的结果(即应用画面)可以以媒体数据信息(即视频流数据)的方式发送给终端设备,终端设备10a中的云应用客户端在接收到云服务器发送的媒体数据信息后,可以对其进行展示。可以理解的是,应用画面可以是由服务器中的云虚拟客户端基于动作标识所对应的对象动作信息生成的。该媒体数据信息可以包括音视频数据信息,对媒体数据信息进行展示可以为在终端设备上显示音频数据信息所对应的视频画面,并播放其对应的音频。其中,该视频流数据可以是指对应用画面进行视频编码得到视频数据,进而第一业务客户端在接收到视频流数据后,可以对视频流数据所对应的视频画面进行显示,也就是显示应用画面。
可以理解的是,本申请实施例中,还可以确定在视野范围内包括该虚拟业务对象的第一类型虚拟对象(即除第一虚拟对象外的其他第一类型虚拟对象)的云虚拟客户端,并在该其他第一类型虚拟对象对应的云虚拟客户端中基于虚拟业务对象的对象动作信息生成应用画面,并基于应用画面生成视频流数据,且将生成的视频流数据发送至该其他第一类型虚拟对象对应的云虚拟客户端对应的业务客户端,以使该业务客户端对视频流数据所对应的视频画面进行显示。
请参见图22,图22是本申请实施例提供的一种数据处理装置的结构示意图。如图22所示,数据处理装置1可以是运行于支持第一通信协议的外围设备(例如,上述外围设备10c)的一个计算机程序(包括程序代码),例如该数据处理装置1为一个应用软件;可以理解的是,该数据处理装置1可以用于执行本申请实施例提供的数据处理方法中的相应步骤。如图22所示,该数据处理装置1可以包括:请求获取模块11、影响范围确定模块12、变更范围确定模块13、状态优化模块14;
请求获取模块11,用于获取针对业务空间中的第一虚拟对象发送的对象移动请求;对象移动请求用于指示将第一虚拟对象在业务空间中的位置由第一空间位置移动至第二空间位置;
影响范围确定模块12,用于在基于对象移动请求将第一虚拟对象在业务空间中的位置由第一空间位置移动至第二空间位置时,确定第一空间位置对应的第一位置影响范围和第二空间位置对应的第二位置影响范围;
变更范围确定模块13,用于获取与第一空间位置和第二空间位置相关联的空间跨度参数,在空间跨度参数满足业务空间对应的空间跨度影响条件时,基于第一位置影响范围和第二位置影响范围,确定与第一虚拟对象相关联的位置影响变更范围;
状态优化模块14,用于在位置影响变更范围内存在与第一虚拟对象相关联的虚拟业务对象时,对虚拟业务对象的对象状态进行状态优化;虚拟业务对象为位置影响变更范围内不同于第一虚拟对象的对象。
其中,对象移动请求是在第一业务客户端响应于第一虚拟对象对应的第一操作对象的移动操作时,由第一业务客户端所发送的;业务空间包括虚拟游戏空间,第一操作对象为用于操控第一虚拟对象在虚拟游戏空间中的游戏地图的地图可行区域上移动的对象,地图可行区域是由与第一业务客户端相关联的游戏引擎对游戏地图进行区域网格划分之后所得到的;游戏地图包括有M个地图栅格;M为大于1的正整数;一个地图栅格对应一个栅格标识;
影响范围确定模块12,包括:地图位置确定单元121、移动单元122、标识确定单元123、第一范围确定单元124;
地图位置确定单元121,用于基于对象移动请求确定第一虚拟对象在游戏空间中的游戏地图,获取游戏地图对应的地图可行区域,将第一空间位置映射至地图可行区域中的地图位置作为第一地图位置,且将第二空间位置映射至地图可行区域中的地图位置作为第二地图位置;
移动单元122,用于在将第一业务对象在地图可行区域中的地图位置由第一地图位置变更为第二地图位置时,确定将第一虚拟对象在业务空间中的位置由第一空间位置移动至第二空间位置;
标识确定单元123,用于确定第一空间位置所在的第一地图栅格的栅格标识,以及第二空间位置所在的第二地图栅格的栅格标识;
第一范围确定单元124,用于在第一地图栅格的栅格标识与第二地图栅格的栅格标识相同时,获取基于第一地图栅格确定的第一空间位置对应的第一位置影响范围,并基于第一位置影响范围确定第二空间位置对应的第二位置影响范围。
其中,第一范围确定单元124,还用于将第一位置影响范围确定为第二空间位置对应的第二位置影响范围;第二位置影响范围与第一位置影响范围相同。
其中,第一范围确定单元124,还用于:
将与第二地图栅格具有相同栅格标识的第一地图栅格,确定为区域划分栅格;第一空间位置与第二空间位置均处于区域划分栅格中;区域划分栅格包括K个栅格划分子区域;K为大于1的正整数;一个栅格划分子区域对应一个区域标识;
在K个栅格划分子区域中,将第一空间位置所在的栅格划分子区域确定为第一栅格划分子区域,且将第二空间位置所在的栅格划分子区域确定为第二栅格划分子区域;
确定第一栅格划分子区域的区域标识,且确定第二栅格划分子区域的区域标识;
在第一栅格划分子区域的区域标识和第二栅格划分子区域的区域标识不同时,基于第二栅格划分子区域确定第二空间位置对应的第二位置影响范围;第二位置影响范围与第一位置影响范围中存在部分相同的位置影响范围。
其中,第一范围确定单元124,还用于:
基于区域划分栅格的中心位置确定第一坐标系原点,基于区域划分栅格的横轴确定第一坐标轴,且基于区域划分栅格的纵轴确定第二坐标轴;
基于第一坐标系原点、第一坐标轴以及第二坐标轴构建区域划分栅格对应的第一栅格坐标系;第一栅格坐标系中包括N个第一栅格空间方向;N为大于1的正整数;
基于第二栅格划分子区域在第一栅格坐标系中的区域分布位置,从N个第一栅格空间方向中确定与第二栅格划分子区域相关联的第一类型区域影响方向以及第二类型区域影响方向;
基于与第二栅格划分子区域相关联的第一类型区域影响方向以及第二类型区域影响方向,确定N个第一栅格空间方向对应的关联栅格数量;第一类型区域影响方向对应的关联栅格数量大于第二类型区域影响方向对应的关联栅格数量;
基于N个第一栅格空间方向对应的关联栅格数量,在N个第一栅格空间方向上确定与区域划分栅格相连接的相应关联栅格数量的第一关联栅格,得到多个第一关联栅格;
基于区域划分栅格和多个第一关联栅格确定第二空间位置对应的第二位置影响范围。
其中,影响范围确定模块12,还包括第二范围确定单元125;
第二范围确定单元125,用于在第一地图栅格的栅格标识与第二地图栅格的栅格标识不同时,获取基于第一地图栅格确定的第一空间位置对应的第一位置影响范围,并基于第二地图栅格确定第二空间位置对应的第二位置影响范围。
其中,第二范围确定单元125,具体用于:
基于第二地图栅格的中心位置确定第一坐标系原点,基于第二地图栅格的横轴确定第三坐标轴,且基于第二地图栅格的纵轴确定第四坐标轴;
基于坐标系原点、第三坐标轴以及第四坐标轴构建第二地图栅格对应的第二栅格坐标系;第二栅格坐标系中包括K个第二栅格空间方向;K为大于1的正整数;
分别确定K个第二栅格空间方向对应的关联栅格数量,且基于K个第二栅格空间方向对应的关联栅格数量,在K个第二栅格空间方向上确定与第二地图栅格相连接的相应关联栅格数量的第二关联栅格,得到多个第二关联栅格;
基于第二地图栅格和多个第二关联栅格确定第二空间位置对应的第二位置影响范围。
其中,对象移动请求是基于第二业务客户端发送的技能触发请求对应的技能命中结果所确定的;技能触发请求是第二业务客户端响应于第二虚拟对象对应的第二操作对象针对第一虚拟对象发起的技能触发操作时,由第二业务客户端所发送的;技能命中结果用于表征第二虚拟对象所发起的技能触发请求所指示的技能命中第一虚拟对象;第二虚拟对象为不同于第一虚拟对象的对象。
其中,对象移动请求是在第一业务客户端响应于第一虚拟对象对应的第一操作对象的移动操作时,由第一业务客户端所发送的;业务空间包括虚拟游戏空间,虚拟游戏空间中的游戏地图包括有M个地图栅格;M为大于1的正整数;一个地图栅格对应一个栅格标识;
变更范围确定模块13,包括:跨度参数确定单元131;
跨度参数确定单元131,具体用于:
获取第一空间位置所在的第一地图栅格的栅格标识,以及第二空间位置所在的第二地图栅格的栅格标识;
基于第一地图栅格的栅格标识和第二地图栅格的栅格标识确定与第一空间位置和第二空间位置相关联的空间跨度参数。
其中,变更范围确定模块13,还包括:条件判断单元132;
条件判断单元132,用于在空间跨度参数中的第一地图栅格的栅格标识与第二地图栅格的栅格标识不同时,确定空间跨度参数满足业务空间对应的空间跨度影响条件。
其中,对象移动请求是在第一业务客户端响应于第一虚拟对象对应的第一操作对象的移动操作时,由第一业务客户端所发送的;业务空间包括虚拟游戏空间,虚拟游戏空间中的游戏地图包括有M个地图栅格;M为大于1的正整数;一个地图栅格对应一个栅格标识;
跨度参数确定单元131,还用于:
获取第一空间位置所在的第一地图栅格的栅格标识,以及第二空间位置所在的第二地图栅格的栅格标识;
在第一地图栅格的栅格标识和第二地图栅格的栅格标识相同时,将与第二地图栅格具有相同栅格标识的第一地图栅格,确定为区域划分栅格;第一空间位置与第二空间位置均处于区域划分栅格中;区域划分栅格包括K个栅格划分子区域;K为大于1的正整数;一个栅格划分子区域对应一个区域标识;第一空间位置所在的栅格划分子区域为第一栅格划分子区域,第二空间位置所在的栅格划分子区域为第二栅格划分子区域;
确定第一空间位置所在的第一栅格划分子区域的区域标识,确定第二空间位置所在的第二栅格划分子区域的区域标识;
将第一栅格划分子区域的区域标识与第二栅格划分子区域的区域标识,确定为空间跨度参数。
条件判断单元132,还用于在空间跨度参数中的第一栅格划分子区域的区域标识与第二栅格划分子区域的区域标识不同时,确定空间跨度参数满足业务空间对应的空间跨度影响条件。
其中,对象移动请求是在第一业务客户端响应于第一虚拟对象对应的第一操作对象的移动操作时,由第一业务客户端所发送的;业务空间包括虚拟游戏空间,虚拟游戏空间中的游戏地图包括有M个地图栅格;M为大于1的正整数;
变更范围确定模块13,还包括:变更范围生成单元133;
变更范围生成单元133,具体用于:
基于第一位置影响范围和第二位置影响范围中的相同位置影响范围,确定影响范围交叠区域;
将第二位置影响范围中除影响范围交叠区域之外的位置影响范围,确定为第一影响变更范围;
将第一位置影响范围中除影响范围交叠区域之外的位置影响范围,确定为第二影响变更范围;
基于第一影响变更范围和第二影响变更范围,确定与第一虚拟对象相关联的位置影响变更范围。
其中,位置影响变更范围包括第一影响变更范围;第一影响变更范围为第二位置影响范围中除影响范围交叠区域之外的位置影响范围;影响范围交叠区域是由第一位置影响范围和第二位置影响范围中的相同位置影响范围所确定的;第一影响变更范围中包括一个或多个地图栅格;
状态优化模块14,包括:第一栅格状态调整单元141、第一状态优化单元142;
第一栅格状态调整单元141,用于在第一影响变更范围中的地图栅格的栅格状态为栅格待激活状态时,将栅格状态为栅格待激活状态的地图栅格确定为第一类型栅格,将第一影响变更范围中的第一类型栅格的栅格状态由栅格待激活状态配置为栅格激活状态;
第一状态优化单元142,用于在第一类型栅格内存在对象状态为待工作状态的第一虚拟业务对象时,将第一虚拟业务对象的对象状态由待工作状态优化为工作状态。
其中工作状态包括多个工作子状态;多个工作子状态中包括第一工作子状态和第二工作子状态;第一工作子状态不同于第二工作子状态;
状态优化模块14,还包括:工作子状态切换单元143;
工作子状态切换单元143,用于在第一虚拟业务对象的所处的工作状态为第一工作子状态,且第一虚拟业务对象达到第二工作子状态对应的子状态切换条件时,将第一虚拟业务对象由第一工作子状态切换为第二工作子状态。
其中,第一类型栅格为第一影响变更范围中的第一类型变更栅格中的地图栅格;第一类型变更栅格中的地图栅格包括第二类型栅格;第二类型栅格不同于第一类型栅格;第二类型栅格为第一影响变更范围中的栅格状态为栅格激活状态的地图栅格;第二类型栅格属于与第三虚拟对象关联的对象位置影响范围中的地图栅格;第三虚拟对象为不同于第一虚拟对象的对象;
状态优化模块14,还包括:状态维持单元144;
状态维持单元144,用于维持第一影响变更范围中的第二类型栅格的栅格状态为栅格激活状态。
其中,位置影响变更范围包括第二影响变更范围;第二影响变更范围为第一位置影响范围中除影响范围交叠区域之外的位置影响范围;影响范围交叠区域是由第一位置影响范围和第二位置影响范围中的相同位置影响范围所确定的;第二影响变更范围中包括一个或多个地图栅格;
状态优化模块14,还包括:第二栅格状态调整单元145、第二状态优化单元146;
第二栅格状态调整单元145,用于在第二影响变更范围中的地图栅格不与第四虚拟对象关联的对象位置影响范围重叠时,将不与第四虚拟对象关联的对象位置影响范围重叠的地图栅格确定为第三类型栅格,将第二影响变更范围中的第三类型栅格的栅格状态由栅格激活状态配置为栅格待激活状态;第四虚拟对象为不同于第一虚拟对象的对象;
第二状态优化单元146,用于在第三类型栅格内存在对象状态为工作状态的第二虚拟业务对象时,将第二虚拟业务对象的对象状态由工作状态优化为待工作状态。
其中,第三类型栅格为第二影响变更范围中的第二类型变更栅格中的地图栅格;第二类型变更栅格中的地图栅格包括第四类型栅格;第四类型栅格不同于第三类型栅格;第四类型栅格为第二影响变更范围中的与第四虚拟对象关联的对象位置影响范围重叠的地图栅格;
状态维持单元144,还用于维持第二影响变更范围中的第四类型栅格的栅格状态为栅格激活状态。
其中,对象移动请求是在第一业务客户端响应于第一虚拟对象对应的第一操作对象的移动操作时,由第一业务客户端所发送的;
数据处理装置1,还包括:动作调整模块15;
动作调整模块15,用于将状态优化后的虚拟业务对象的对象状态确定为对象优化状态,在对象优化状态为工作状态时,确定处于工作状态的虚拟业务对象的对象动作所对应的动作标识,将动作标识发送至第一业务客户端,以使第一业务客户端基于动作标识获取业务虚拟对象的对象动作信息,且基于对象动作信息生成应用画面。
其中,对象移动请求是在第一业务客户端响应于第一虚拟对象对应的第一操作对象的移动操作时,由第一业务客户端所发送的;第一业务客户端所对应的云客户端为云虚拟客户端,云虚拟客户端为基于获取到的第一业务客户端发送的客户端启动请求所部署的云客户端;
动作调整模块15,还用于:
将状态优化后的虚拟业务对象的对象状态确定为对象优化状态,在对象优化状态为工作状态时,确定处于工作状态的虚拟业务对象的对象动作所对应的动作标识,在云虚拟客户端中,基于动作标识获取业务虚拟对象的对象动作信息,且基于对象动作信息生成应用画面;
基于应用画面生成视频流数据,将视频流数据发送至第一业务客户端,以使第一业务客户端基于视频流数据显示应用画面。
请参见图23,图23是本申请实施例提供的一种计算机设备的结构示意图。如图23所示,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图23所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在如图23所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以执行前文任一个所对应实施例中对该数据处理方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的数据处理装置1所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文实施例中对数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
上述计算机可读存储介质可以是前述任一实施例提供的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
此外,这里需要指出的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前文任一个所对应实施例提供的方法。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (20)

1.一种数据处理方法,其特征在于,所述方法包括:
获取针对业务空间中的第一虚拟对象发送的对象移动请求;所述对象移动请求用于指示将所述第一虚拟对象在所述业务空间中的位置由第一空间位置移动至第二空间位置;所述业务空间包括虚拟游戏空间;所述第一虚拟对象为在所述虚拟游戏空间中的游戏地图的地图可行区域上的第一类型虚拟对象,所述地图可行区域是由游戏引擎对所述游戏地图进行区域网格划分之后所得到的;所述第一空间位置和所述第二空间位置为所述对象移动请求所对应的移动路径上的相邻两个采样位置;所述第一空间位置所对应的所述游戏地图上的地图栅格为第一地图栅格,所述第二空间位置所对应的所述游戏地图上的地图栅格为第二地图栅格;
在基于所述对象移动请求将所述第一虚拟对象在所述业务空间中的位置由所述第一空间位置移动至所述第二空间位置时,确定所述第一空间位置对应的第一位置影响范围和所述第二空间位置对应的第二位置影响范围;所述第一位置影响范围和所述第二位置影响范围为所述第一虚拟对象在不同采样位置上时,对第二类型虚拟对象的对象状态造成影响的对象位置影响范围;所述第二类型虚拟对象为所述游戏地图上所配置的用于与所述第一虚拟对象进行互动的非玩家控制角色;
获取与所述第一空间位置和第二空间位置相关联的空间跨度参数,在所述空间跨度参数满足所述业务空间对应的空间跨度影响条件时,基于所述第一位置影响范围和所述第二位置影响范围,确定与所述第一虚拟对象相关联的位置影响变更范围;所述空间跨度影响条件为所述第一虚拟对象跨栅格移动或者所述第一虚拟对象在区域划分栅格中跨区域移动时的条件;所述区域划分栅格为在所述第一地图栅格与所述第二地图栅格为同一地图栅格时,确定的用于进行子区域划分的所述第一地图栅格;
在所述位置影响变更范围内存在与所述第一虚拟对象相关联的虚拟业务对象时,对所述虚拟业务对象的对象状态进行状态优化;所述虚拟业务对象属于所述第二类型虚拟对象;所述状态优化包括将远离所述第一虚拟对象的所述虚拟业务对象的对象状态由工作状态调整为待工作状态。
2.根据权利要求1所述的方法,其特征在于,所述对象移动请求是在第一业务客户端响应于所述第一虚拟对象对应的第一操作对象的移动操作时,由所述第一业务客户端所发送的;所述第一操作对象为用于操控所述第一虚拟对象在所述虚拟游戏空间中的游戏地图的地图可行区域上移动的对象,所述地图可行区域是由与所述第一业务客户端相关联的游戏引擎对所述游戏地图进行区域网格划分之后所得到的;所述游戏地图包括有M个地图栅格;M为大于1的正整数;一个地图栅格对应一个栅格标识;
所述在基于所述对象移动请求将所述第一虚拟对象在所述业务空间中的位置由所述第一空间位置移动至所述第二空间位置时,确定所述第一空间位置对应的第一位置影响范围和所述第二空间位置对应的第二位置影响范围,包括:
基于所述对象移动请求确定所述第一虚拟对象在所述游戏空间中的游戏地图,获取所述游戏地图对应的所述地图可行区域,将所述第一空间位置映射至所述地图可行区域中的地图位置作为第一地图位置,且将所述第二空间位置映射至所述地图可行区域中的地图位置作为第二地图位置;
在将所述第一虚拟对象在所述地图可行区域中的地图位置由所述第一地图位置变更为所述第二地图位置时,确定将所述第一虚拟对象在所述业务空间中的位置由所述第一空间位置移动至所述第二空间位置;
确定所述第一空间位置所在的第一地图栅格的栅格标识,以及所述第二空间位置所在的第二地图栅格的栅格标识;
在所述第一地图栅格的栅格标识与所述第二地图栅格的栅格标识相同时,获取基于所述第一地图栅格确定的所述第一空间位置对应的第一位置影响范围,并基于所述第一位置影响范围确定所述第二空间位置对应的第二位置影响范围。
3.根据权利要求2所述的方法,其特征在于,所述基于所述第一位置影响范围确定所述第二空间位置对应的第二位置影响范围,包括:
将所述第一位置影响范围确定为所述第二空间位置对应的第二位置影响范围;所述第二位置影响范围与所述第一位置影响范围相同。
4.根据权利要求2所述的方法,其特征在于,所述基于所述第一位置影响范围确定所述第二空间位置对应的第二位置影响范围,包括:
将与所述第二地图栅格具有相同栅格标识的第一地图栅格,确定为区域划分栅格;所述第一空间位置与所述第二空间位置均处于所述区域划分栅格中;所述区域划分栅格包括K个栅格划分子区域;K为大于1的正整数;一个栅格划分子区域对应一个区域标识;
在所述K个栅格划分子区域中,将所述第一空间位置所在的栅格划分子区域确定为第一栅格划分子区域,且将所述第二空间位置所在的栅格划分子区域确定为第二栅格划分子区域;
确定所述第一栅格划分子区域的区域标识,且确定所述第二栅格划分子区域的区域标识;
在所述第一栅格划分子区域的区域标识和所述第二栅格划分子区域的区域标识不同时,基于所述第二栅格划分子区域确定所述第二空间位置对应的第二位置影响范围;所述第二位置影响范围与所述第一位置影响范围中存在部分相同的位置影响范围。
5.根据权利要求4所述的方法,其特征在于,所述基于所述第二栅格划分子区域确定所述第二空间位置对应的第二位置影响范围,包括:
基于所述区域划分栅格的中心位置确定第一坐标系原点,基于所述区域划分栅格的横轴确定第一坐标轴,且基于所述区域划分栅格的纵轴确定第二坐标轴;
基于所述第一坐标系原点、所述第一坐标轴以及所述第二坐标轴构建所述区域划分栅格对应的第一栅格坐标系;所述第一栅格坐标系中包括N个第一栅格空间方向;N为大于1的正整数;
基于所述第二栅格划分子区域在所述第一栅格坐标系中的区域分布位置,从所述N个第一栅格空间方向中确定与所述第二栅格划分子区域相关联的第一类型区域影响方向以及第二类型区域影响方向;
基于与所述第二栅格划分子区域相关联的第一类型区域影响方向以及第二类型区域影响方向,确定所述N个第一栅格空间方向对应的关联栅格数量;所述第一类型区域影响方向对应的关联栅格数量大于所述第二类型区域影响方向对应的关联栅格数量;
基于所述N个第一栅格空间方向对应的关联栅格数量,在所述N个第一栅格空间方向上确定与所述区域划分栅格相连接的相应关联栅格数量的第一关联栅格,得到多个第一关联栅格;
基于所述区域划分栅格和所述多个第一关联栅格确定所述第二空间位置对应的第二位置影响范围。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述第一地图栅格的栅格标识与所述第二地图栅格的栅格标识不同时,获取基于所述第一地图栅格确定的所述第一空间位置对应的第一位置影响范围,并基于所述第二地图栅格确定所述第二空间位置对应的第二位置影响范围。
7.根据权利要求6所述的方法,其特征在于,所述基于所述第二地图栅格确定所述第二空间位置对应的第二位置影响范围,包括:
基于所述第二地图栅格的中心位置确定第一坐标系原点,基于所述第二地图栅格的横轴确定第三坐标轴,且基于所述第二地图栅格的纵轴确定第四坐标轴;
基于所述坐标系原点、所述第三坐标轴以及所述第四坐标轴构建所述第二地图栅格对应的第二栅格坐标系;所述第二栅格坐标系中包括K个第二栅格空间方向;K为大于1的正整数;
分别确定所述K个第二栅格空间方向对应的关联栅格数量,且基于所述K个第二栅格空间方向对应的关联栅格数量,在所述K个第二栅格空间方向上确定与所述第二地图栅格相连接的相应关联栅格数量的第二关联栅格,得到多个第二关联栅格;
基于所述第二地图栅格和所述多个第二关联栅格确定所述第二空间位置对应的第二位置影响范围。
8.根据权利要求1所述的方法,其特征在于,所述对象移动请求是基于第二业务客户端发送的技能触发请求对应的技能命中结果所确定的;所述技能触发请求是所述第二业务客户端响应于第二虚拟对象对应的第二操作对象针对所述第一虚拟对象发起的技能触发操作时,由所述第二业务客户端所发送的;所述技能命中结果用于表征所述第二虚拟对象所发起的所述技能触发请求所指示的技能命中所述第一虚拟对象;所述第二虚拟对象为不同于所述第一虚拟对象的对象。
9.根据权利要求1所述的方法,其特征在于,所述对象移动请求是在第一业务客户端响应于所述第一虚拟对象对应的第一操作对象的移动操作时,由所述第一业务客户端所发送的;所述虚拟游戏空间中的游戏地图包括有M个地图栅格;M为大于1的正整数;一个地图栅格对应一个栅格标识;
所述获取与所述第一空间位置和第二空间位置相关联的空间跨度参数,包括:
获取所述第一空间位置所在的第一地图栅格的栅格标识,以及所述第二空间位置所在的第二地图栅格的栅格标识;
基于所述第一地图栅格的栅格标识和所述第二地图栅格的栅格标识确定与所述第一空间位置和第二空间位置相关联的空间跨度参数。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
在所述空间跨度参数中的所述第一地图栅格的栅格标识与所述第二地图栅格的栅格标识不同时,确定所述空间跨度参数满足所述业务空间对应的空间跨度影响条件。
11.根据权利要求1所述的方法,其特征在于,所述对象移动请求是在第一业务客户端响应于所述第一虚拟对象对应的第一操作对象的移动操作时,由所述第一业务客户端所发送的;所述虚拟游戏空间中的游戏地图包括有M个地图栅格;M为大于1的正整数;一个地图栅格对应一个栅格标识;
所述获取与所述第一空间位置和第二空间位置相关联的空间跨度参数,包括:
获取所述第一空间位置所在的第一地图栅格的栅格标识,以及所述第二空间位置所在的第二地图栅格的栅格标识;
在所述第一地图栅格的栅格标识和所述第二地图栅格的栅格标识相同时,将与所述第二地图栅格具有相同栅格标识的第一地图栅格,确定为区域划分栅格;所述第一空间位置与所述第二空间位置均处于所述区域划分栅格中;所述区域划分栅格包括K个栅格划分子区域;K为大于1的正整数;一个栅格划分子区域对应一个区域标识;所述第一空间位置所在的栅格划分子区域为第一栅格划分子区域,所述第二空间位置所在的栅格划分子区域为第二栅格划分子区域;
确定所述第一空间位置所在的第一栅格划分子区域的区域标识,确定所述第二空间位置所在的第二栅格划分子区域的区域标识;
将所述第一栅格划分子区域的区域标识与所述第二栅格划分子区域的区域标识,确定为所述空间跨度参数。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
在所述空间跨度参数中的所述第一栅格划分子区域的区域标识与所述第二栅格划分子区域的区域标识不同时,确定所述空间跨度参数满足所述业务空间对应的空间跨度影响条件。
13.根据权利要求1所述的方法,其特征在于,所述位置影响变更范围包括第一影响变更范围;所述第一影响变更范围为所述第二位置影响范围中除影响范围交叠区域之外的位置影响范围;所述影响范围交叠区域是由所述第一位置影响范围和所述第二位置影响范围中的相同位置影响范围所确定的;所述第一影响变更范围中包括一个或多个地图栅格;
所述在所述位置影响变更范围内存在与所述第一虚拟对象相关联的虚拟业务对象时,对所述虚拟业务对象的对象状态进行状态优化,包括:
在所述第一影响变更范围中的地图栅格的栅格状态为栅格待激活状态时,将栅格状态为所述栅格待激活状态的地图栅格确定为第一类型栅格,将所述第一影响变更范围中的所述第一类型栅格的栅格状态由所述栅格待激活状态配置为栅格激活状态;
在所述第一类型栅格内存在对象状态为待工作状态的第一虚拟业务对象时,将所述第一虚拟业务对象的对象状态由所述待工作状态优化为工作状态。
14.根据权利要求13所述的方法,其特征在于,所述第一类型栅格为所述第一影响变更范围中的第一类型变更栅格中的地图栅格;所述第一类型变更栅格中的地图栅格包括第二类型栅格;所述第二类型栅格不同于所述第一类型栅格;所述第二类型栅格为所述第一影响变更范围中的栅格状态为栅格激活状态的地图栅格;所述第二类型栅格属于与第三虚拟对象关联的对象位置影响范围中的地图栅格;所述第三虚拟对象为不同于所述第一虚拟对象的对象;
所述方法还包括:
维持所述第一影响变更范围中的所述第二类型栅格的栅格状态为所述栅格激活状态。
15.根据权利要求1所述的方法,其特征在于,所述位置影响变更范围包括第二影响变更范围;所述第二影响变更范围为所述第一位置影响范围中除影响范围交叠区域之外的位置影响范围;所述影响范围交叠区域是由所述第一位置影响范围和所述第二位置影响范围中的相同位置影响范围所确定的;所述第二影响变更范围中包括一个或多个地图栅格;
所述在所述位置影响变更范围内存在与所述第一虚拟对象相关联的虚拟业务对象时,对所述虚拟业务对象的对象状态进行状态优化,包括:
在所述第二影响变更范围中的地图栅格不与第四虚拟对象关联的对象位置影响范围重叠时,将不与所述第四虚拟对象关联的对象位置影响范围重叠的地图栅格确定为第三类型栅格,将所述第二影响变更范围中的所述第三类型栅格的栅格状态由栅格激活状态配置为栅格待激活状态;所述第四虚拟对象为不同于所述第一虚拟对象的对象;
在所述第三类型栅格内存在对象状态为工作状态的第二虚拟业务对象时,将所述第二虚拟业务对象的对象状态由所述工作状态优化为待工作状态。
16.根据权利要求1所述的方法,其特征在于,所述对象移动请求是在第一业务客户端响应于所述第一虚拟对象对应的第一操作对象的移动操作时,由所述第一业务客户端所发送的;
所述方法还包括:
将状态优化后的所述虚拟业务对象的对象状态确定为对象优化状态,在所述对象优化状态为工作状态时,确定处于所述工作状态的所述虚拟业务对象的对象动作所对应的动作标识,将所述动作标识发送至所述第一业务客户端,以使所述第一业务客户端基于所述动作标识获取所述虚拟业务对象的对象动作信息,且基于所述对象动作信息生成应用画面。
17.根据权利要求1所述的方法,其特征在于,所述对象移动请求是在第一业务客户端响应于所述第一虚拟对象对应的第一操作对象的移动操作时,由所述第一业务客户端所发送的;所述第一业务客户端所对应的云客户端为云虚拟客户端,所述云虚拟客户端为基于获取到的所述第一业务客户端发送的客户端启动请求所部署的云客户端;
所述方法还包括:
将状态优化后的所述虚拟业务对象的对象状态确定为对象优化状态,在所述对象优化状态为工作状态时,确定处于所述工作状态的所述虚拟业务对象的对象动作所对应的动作标识,在所述云虚拟客户端中,基于所述动作标识获取所述虚拟业务对象的对象动作信息,且基于所述对象动作信息生成应用画面;
基于所述应用画面生成视频流数据,将所述视频流数据发送至所述第一业务客户端,以使所述第一业务客户端基于所述视频流数据显示所述应用画面。
18.一种数据处理装置,其特征在于,所述装置包括:
请求获取模块,用于获取针对业务空间中的第一虚拟对象发送的对象移动请求;所述对象移动请求用于指示将所述第一虚拟对象在所述业务空间中的位置由第一空间位置移动至第二空间位置;所述业务空间包括虚拟游戏空间;所述第一虚拟对象为在所述虚拟游戏空间中的游戏地图的地图可行区域上的第一类型虚拟对象,所述地图可行区域是由游戏引擎对所述游戏地图进行区域网格划分之后所得到的;所述第一空间位置和所述第二空间位置为所述对象移动请求所对应的移动路径上的相邻两个采样位置;所述第一空间位置所对应的所述游戏地图上的地图栅格为第一地图栅格,所述第二空间位置所对应的所述游戏地图上的地图栅格为第二地图栅格;
影响范围确定模块,用于在基于所述对象移动请求将所述第一虚拟对象在所述业务空间中的位置由所述第一空间位置移动至所述第二空间位置时,确定所述第一空间位置对应的第一位置影响范围和所述第二空间位置对应的第二位置影响范围;所述第一位置影响范围和所述第二位置影响范围为所述第一虚拟对象在不同采样位置上时,对第二类型虚拟对象的对象状态造成影响的对象位置影响范围;所述第二类型虚拟对象为所述游戏地图上所配置的用于与所述第一虚拟对象进行互动的非玩家控制角色;
变更范围确定模块,用于获取与所述第一空间位置和第二空间位置相关联的空间跨度参数,在所述空间跨度参数满足所述业务空间对应的空间跨度影响条件时,基于所述第一位置影响范围和所述第二位置影响范围,确定与所述第一虚拟对象相关联的位置影响变更范围;所述空间跨度影响条件为所述第一虚拟对象跨栅格移动或者所述第一虚拟对象在区域划分栅格中跨区域移动时的条件;所述区域划分栅格为在所述第一地图栅格与所述第二地图栅格为同一地图栅格时,确定的用于进行子区域划分的所述第一地图栅格;
状态优化模块,用于在所述位置影响变更范围内存在与所述第一虚拟对象相关联的虚拟业务对象时,对所述虚拟业务对象的对象状态进行状态优化;所述虚拟业务对象属于所述第二类型虚拟对象;所述状态优化包括将远离所述第一虚拟对象的所述虚拟业务对象的对象状态由工作状态调整为待工作状态。
19.一种计算机设备,其特征在于,包括存储器和处理器;
所述存储器与所述处理器相连,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1-17任一项所述的方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1-17任一项所述的方法。
CN202310893476.1A 2023-07-20 2023-07-20 数据处理方法、装置及相关设备 Active CN116603239B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310893476.1A CN116603239B (zh) 2023-07-20 2023-07-20 数据处理方法、装置及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310893476.1A CN116603239B (zh) 2023-07-20 2023-07-20 数据处理方法、装置及相关设备

Publications (2)

Publication Number Publication Date
CN116603239A CN116603239A (zh) 2023-08-18
CN116603239B true CN116603239B (zh) 2023-10-03

Family

ID=87680488

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310893476.1A Active CN116603239B (zh) 2023-07-20 2023-07-20 数据处理方法、装置及相关设备

Country Status (1)

Country Link
CN (1) CN116603239B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110004940A (ko) * 2009-07-09 2011-01-17 주식회사 인스프리트 가상화 처리서버 및 dcd 컨텐츠를 이용한 증강현실 제공 시스템
CN106446815A (zh) * 2016-09-14 2017-02-22 浙江大学 一种同时定位与地图构建方法
CN109685909A (zh) * 2018-11-12 2019-04-26 腾讯科技(深圳)有限公司 图像的显示方法、装置、存储介质和电子装置
CN112370788A (zh) * 2020-11-11 2021-02-19 网易(杭州)网络有限公司 游戏中虚拟对象的导航方法及电子设备
CN116036601A (zh) * 2023-01-28 2023-05-02 腾讯科技(深圳)有限公司 游戏处理方法、装置及计算机设备、存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110004940A (ko) * 2009-07-09 2011-01-17 주식회사 인스프리트 가상화 처리서버 및 dcd 컨텐츠를 이용한 증강현실 제공 시스템
CN106446815A (zh) * 2016-09-14 2017-02-22 浙江大学 一种同时定位与地图构建方法
CN109685909A (zh) * 2018-11-12 2019-04-26 腾讯科技(深圳)有限公司 图像的显示方法、装置、存储介质和电子装置
CN112370788A (zh) * 2020-11-11 2021-02-19 网易(杭州)网络有限公司 游戏中虚拟对象的导航方法及电子设备
CN116036601A (zh) * 2023-01-28 2023-05-02 腾讯科技(深圳)有限公司 游戏处理方法、装置及计算机设备、存储介质

Also Published As

Publication number Publication date
CN116603239A (zh) 2023-08-18

Similar Documents

Publication Publication Date Title
US11636568B2 (en) Split hierarchy graphics processing system
WO2022151946A1 (zh) 虚拟角色的控制方法、装置、电子设备、计算机可读存储介质及计算机程序产品
CN106502670A (zh) 一种游戏场景切换方法与装置
US11724191B2 (en) Network-based video game editing and modification distribution system
WO2022184128A1 (zh) 虚拟对象的技能释放方法、装置、设备及存储介质
US11779845B2 (en) Information display method and apparatus in virtual scene, device, and computer-readable storage medium
KR20200115304A (ko) 동적 스트리밍 비디오 게임 클라이언트
US11110352B2 (en) Object moving method and apparatus, storage medium, and electronic apparatus
CN111672111A (zh) 界面显示方法、装置、设备及存储介质
JP7137719B2 (ja) 仮想オブジェクトの選択方法、装置、端末及びプログラム
Yoshihara et al. Fog-assisted virtual reality MMOG with ultra low latency
JP2023531128A (ja) 仮想環境におけるエフェクト生成方法、装置、機器及びコンピュータプログラム
CN116603239B (zh) 数据处理方法、装置及相关设备
CN113546416A (zh) 游戏场景处理方法、装置、计算机设备及存储介质
US20230031217A1 (en) Screen generation method and apparatus, computer device, storage medium and program product
CN111589115B (zh) 虚拟对象的视野控制方法、装置、存储介质及计算机设备
CN114307150A (zh) 虚拟对象之间的互动方法、装置、设备、介质及程序产品
CN106422331B (zh) 一种基于unity 3D引擎的跳棋信息处理器系统
JP2023548922A (ja) 仮想対象の制御方法、装置、電子機器、及びコンピュータプログラム
KR102137737B1 (ko) 게임의 난이도를 조정하기 위한 방법, 장치, 및 컴퓨터 프로그램
JP2011200448A (ja) オンラインゲームシステム、及びサーバ装置群
CN116637358B (zh) 一种数据传输的方法、相关装置、设备以及存储介质
WO2024078225A1 (zh) 虚拟对象的显示方法、装置、设备及存储介质
US20240131425A1 (en) Scalable data center platform for cloud gaming and metaverse
US20240037885A1 (en) Method and apparatus for controlling virtual object, electronic device, storage medium, and program product

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40091039

Country of ref document: HK