CN113082719A - 三维虚拟场景的寻路方法、装置及电子设备 - Google Patents

三维虚拟场景的寻路方法、装置及电子设备 Download PDF

Info

Publication number
CN113082719A
CN113082719A CN202110485687.2A CN202110485687A CN113082719A CN 113082719 A CN113082719 A CN 113082719A CN 202110485687 A CN202110485687 A CN 202110485687A CN 113082719 A CN113082719 A CN 113082719A
Authority
CN
China
Prior art keywords
virtual scene
dimensional
path
altitude
point
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.)
Granted
Application number
CN202110485687.2A
Other languages
English (en)
Other versions
CN113082719B (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 CN202110485687.2A priority Critical patent/CN113082719B/zh
Publication of CN113082719A publication Critical patent/CN113082719A/zh
Application granted granted Critical
Publication of CN113082719B publication Critical patent/CN113082719B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请提供了一种三维虚拟场景的寻路方法、装置、电子设备及计算机可读存储介质;三维虚拟场景是基于体素数据渲染得到的;方法包括:根据虚拟对象在三维虚拟场景的当前位置对应的第一体素数据,显示局部虚拟场景,其中,局部虚拟场景是三维虚拟场景中位于虚拟对象的周围的部分;根据虚拟对象在三维虚拟场景的目标位置对应的第二体素数据以及局部虚拟场景,确定虚拟对象在局部虚拟场景中的寻路策略,其中,寻路策略至少包括低空寻路策略以及高空寻路策略;根据寻路策略确定与局部虚拟场景适配的三维路径;控制虚拟对象在局部虚拟场景中按照三维路径移动。通过本申请,能够在降低资源消耗的同时有效提高虚拟对象的移动效率。

Description

三维虚拟场景的寻路方法、装置及电子设备
技术领域
本申请涉及互联网技术,尤其涉及一种三维虚拟场景的寻路方法、装置、 电子设备及计算机可读存储介质。
背景技术
基于图形处理硬件的显示技术,扩展了感知环境以及获取信息的渠道,尤 其是虚拟场景的显示技术,能够根据实际应用需求实现受控于用户或人工智能 的虚拟对象的多样化的移动,具有各种典型的应用场景,例如在军事演习仿真、 以及游戏等的虚拟场景中,能够模拟虚拟对象之间的真实的移动过程。
由于虚拟场景的布局随机性以及虚拟对象的移动路线多样性,虚拟对象的 移动方式具有多样化的特点,为了提高虚拟对象的移动效率,相关技术提供了 在虚拟场景中针对地面的移动规划算法,但是针对地面的移动规划算法在三维 场景中使用时需要消耗巨大的计算资源,从而无法满足虚拟场景的多样化的移 动需求。
综上,对于实现虚拟场景中以低资源消耗的代价实现多样化的移动需求, 相关技术尚无有效解决方案。
发明内容
本申请实施例提供一种三维虚拟场景的寻路方法、装置、电子设备及计算 机可读存储介质,能够在低资源消耗时有效提高虚拟对象的移动效率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种三维虚拟场景的寻路方法,包括:根据虚拟对象在 三维虚拟场景的当前位置对应的第一体素数据,显示局部虚拟场景,其中,所 述局部虚拟场景是所述三维虚拟场景中位于所述虚拟对象的周围的部分;根据 所述虚拟对象在所述三维虚拟场景的目标位置对应的第二体素数据以及所述局 部虚拟场景,确定所述虚拟对象在所述局部虚拟场景中的寻路策略;根据所述 寻路策略确定与所述局部虚拟场景适配的三维路径;控制所述虚拟对象在所述 局部虚拟场景中按照所述三维路径移动。
本申请实施例提供一种三维虚拟场景的寻路装置,包括:显示模块,用于 根据虚拟对象在三维虚拟场景的当前位置对应的第一体素数据,显示局部虚拟 场景,其中,所述局部虚拟场景是所述三维虚拟场景中位于所述虚拟对象的周 围的部分;确定模块,用于根据所述虚拟对象在所述三维虚拟场景的目标位置 对应的第二体素数据以及所述局部虚拟场景,确定所述虚拟对象在所述局部虚 拟场景中的寻路策略;所述确定模块,还用于根据所述寻路策略确定与所述局 部虚拟场景适配的三维路径;控制模块,用于控制所述虚拟对象在所述局部虚 拟场景中按照所述三维路径移动。
在上述方案中,所述低空寻路策略用于在所述目标位置不可达的低空飞行 场景下基于寻路面进行寻路;所述确定模块,还用于:获取所述虚拟对象的事 件状态数据;当所述事件状态数据与所述低空寻路策略适配时,确定所述第二 体素数据与所述寻路面之间的关系、以及所述第一体素数据与所述寻路面之间 的关系;当所述第二体素数据与所述寻路面之间的关系、以及所述第一体素数 据与所述寻路面之间的关系满足低空寻路条件时,将所述低空寻路策略确定为 所述虚拟对象在所述局部虚拟场景中的寻路策略,其中,所述低空寻路条件包 括:所述第二体素数据对应的位置与所述寻路面之间不存在障碍对象,且所述 第一体素数据对应的位置与所述寻路面之间不存在所述障碍对象。
在上述方案中,所述高空寻路策略用于在所述目标位置不可达的高空飞行 场景下基于天空面进行寻路;所述确定模块,还用于:获取所述虚拟对象的事 件状态数据;当所述事件状态数据与所述高空寻路策略适配时,确定所述第二 体素数据与所述天空面之间的关系、以及所述第一体素数据与所述天空面之间 的关系;当所述第二体素数据与所述天空面之间的关系、以及所述第一体素数 据与所述天空面之间的关系满足高空寻路条件时,将所述高空寻路策略确定为 所述虚拟对象在所述局部虚拟场景中的寻路策略,其中,所述高空寻路条件包 括:所述第二体素数据对应的位置与所述高空面之间不存在障碍对象,且所述 第一体素数据对应的位置与所述高空面之间不存在所述障碍对象。
在上述方案中,当所述第二体素数据与所述天空面之间的关系、以及所述 第一体素数据与所述天空面之间的关系不满足高空寻路条件时,所述确定模块, 还用于:确定所述第二体素数据以及所述第一体素数据与寻路面之间的关系; 当所述第二体素数据与寻路面之间的关系、以及所述第一体素数据与所述寻路 面之间的关系满足低空寻路条件时,将所述低空寻路策略确定为所述虚拟对象 在所述局部虚拟场景中的寻路策略,其中,所述低空寻路条件包括:所述第二 体素数据对应的位置与所述寻路面之间不存在障碍对象,且所述第一体素数据 对应的位置与所述寻路面之间不存在所述障碍对象。
在上述方案中,在获取所述虚拟对象的事件状态数据之前,所述确定模块, 还用于:基于所述第二体素数据以及所述局部虚拟场景,确定所述目标位置与 所述局部虚拟场景之间的位置关系;当所述位置关系表征所述目标位置位于所 述局部虚拟场景外时,确定将执行获取所述虚拟对象的事件状态数据的处理。
在上述方案中,所述寻路策略还包括近距离寻路策略,所述近距离寻路策 略用于在所述目标位置可达的场景下进行寻路;所述确定模块,还用于:基于 所述第二体素数据以及所述局部虚拟场景,确定所述目标位置与所述局部虚拟 场景之间的位置关系;当所述位置关系表征所述目标位置位于所述局部虚拟场 景中时,将所述近距离寻路策略确定为所述虚拟对象在所述局部虚拟场景中的 寻路策略。
在上述方案中,当所述寻路策略为近距离寻路策略时,所述确定模块,还 用于:在所述局部虚拟场景中,以所述当前位置为起点,通过所述近距离寻路 策略沿所述当前位置的三维方向进行预设次数的路点发展处理,得到多个发展 路点;当所述多个发展路点包括所述目标位置时,根据所述多个发展路点形成 对应所述近距离寻路策略的三维路径。
在上述方案中,当所述多个发展路点不包括所述目标位置时,所述确定模 块,还用于:获取所述虚拟对象的事件状态数据;根据所述事件状态数据,将 所述虚拟对象在所述局部虚拟场景中使用的寻路策略从所述近距离寻路策略更 新为低空寻路策略或高空寻路策略;根据更新后的寻路策略确定与所述局部虚 拟场景适配的三维路径;控制所述虚拟对象在所述局部虚拟场景中按照所述更 新后的寻路策略确定的三维路径移动。
在上述方案中,当所述寻路策略为高空寻路策略时,所述确定模块,还用 于:获取从所述当前位置指向所述目标位置的第一方向;以所述当前位置为起 点,获取沿所述第一方向的长度为第一距离的第一线段;当所述第一线段中存 在第一障碍点时,以所述第一障碍点为起点,确定沿所述第一方向的长度为第 二距离的第二线段,其中,所述第一障碍点与所述天空面之间存在障碍对象; 当所述第二线段中存在解除障碍点时,执行三维寻路处理以确定所述第一障碍 点与所述解除障碍点之间的第一中间路径,并执行垂直升降处理以确定所述第 一障碍点与所述解除障碍点之间的第二中间路径,其中,所述解除障碍点与所 述天空面之间不存在所述障碍对象;将所述第一中间路径以及所述第二中间路 径中的较短路径与对应所述第一线段的初始路径进行连接处理,得到与所述局 部虚拟场景适配的三维路径。
在上述方案中,所述确定模块,还用于:当所述第二线段中不存在所述解 除障碍点,或者当执行所述三维寻路处理未确定所述第一障碍点与所述解除障 碍点之间的第一中间路径时,执行所述垂直升降处理以确定所述当前起点与绕 过点之间的第三中间路径,其中,所述绕过点与所述当前起点对应的直线与所 述天空面垂直,且所述绕过点与所述天空面之间不存在所述障碍对象;将所述 第三中间路径与所述初始路径进行连接处理,得到与所述局部虚拟场景适配的 三维路径。
在上述方案中,所述确定模块,还用于:当所述第一线段中不存在所述第 一障碍点时,将所述第一线段作为与所述局部虚拟场景适配的三维路径。
在上述方案中,所述当所述寻路策略为低空寻路策略时,所述确定模块, 还用于:将所述当前位置与所述目标位置投影至寻路面,得到投影当前位置以 及投影目标位置;执行多边形寻路处理,以确定所述局部虚拟场景中寻路面的 路点轨迹,并确定所述路点轨迹中靠近所述投影当前位置的邻近路点以及所述 当前位置的高度,其中,所述路点轨迹是在所述寻路面中从所述投影当前位置 向所述投影目标位置移动的二维轨迹;确定具有所述高度、且与所述邻近路点 具有相同二维坐标的插入路点;当所述当前位置与所述插入路点之间的第三线 段不存在第二障碍点、且所述高度不低于高度阈值时,将所述当前位置与所述 插入路点之间的路径确定为与所述局部虚拟场景适配的三维路径,其中,所述 第二障碍点与所述寻路面之间存在障碍对象。
在上述方案中,所述确定模块,还用于:当所述第三线段不存在所述第二 障碍点、且所述高度低于第二高度阈值时,基于所述插入路点进行垂直升高处 理,得到升高插入路点,其中,所述升高插入路点与所述插入路点的二维坐标 相同,且所述升高插入路点的高度不低于所述第二高度阈值;将所述当前位置 与所述升高插入路点之间的路径确定为与所述局部虚拟场景适配的三维路径。
在上述方案中,所述确定模块,还用于:当满足以下降低处理条件中任意 一个时,基于所述插入路点进行垂直降低处理,得到降低插入路点,其中,所 述降低处理条件包括:所述第三线段不存在所述第二障碍点、所述高度不低于 第二第二高度阈值,且低于所述第一第二高度阈值;所述第三线段存在所述第 二障碍点;,其中,所述降低插入路点与所述插入路点的二维坐标相同,且所述 降低插入路点的高度低于所述障碍对象的高度;将所述当前位置与所述降低插 入路点之间的路径确定为与所述局部虚拟场景适配的三维路径。
本申请实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例 提供的三维虚拟场景的寻路方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于被 处理器执行时,实现本申请实施例提供的三维虚拟场景的寻路方法。
本申请实施例具有以下有益效果:
在为三维虚拟场景中的虚拟对象实施路径规划时,仅基于局部虚拟场景以 及目标位置的第二体素数据来确定虚拟对象的三维路径,进而控制虚拟对象在 局部虚拟场景中按照三维路径移动,由于在进行路径规划时仅基于部分局部数 据而非全局数据进行路径规划,因此花费较短的时间即可确定出较优三维路径 并及时控制虚拟对象按照较优三维路径进行移动,从而在资源消耗与路径规划 结果之间取得较好的平衡,在较低资源消耗的前提下提高虚拟对象的移动效率 以及人机交互效率。
附图说明
图1A-1B是本申请实施例提供的三维虚拟场景的寻路方法的应用模式示意 图;
图2是本申请实施例提供的电子设备的结构示意图;
图3A-3C是本申请实施例提供的三维虚拟场景的寻路方法的流程示意图;
图4是本申请实施例提供的三维虚拟场景的寻路方法的体素示意图;
图5A-5C是本申请实施例提供的三维虚拟场景的寻路方法的产品逻辑示意 图;
图6是本申请实施例提供的三维虚拟场景的寻路方法的虚拟场景示意图;
图7是本申请实施例提供的三维虚拟场景的寻路方法的体素存储示意图;
图8是本申请实施例提供的三维虚拟场景的寻路方法的高空飞行策略示意 图;
图9是本申请实施例提供的三维虚拟场景的寻路方法的高空飞行策略的飞 行示意图;
图10是本申请实施例提供的三维虚拟场景的寻路方法的低空飞行策略示 意图;
图11是本申请实施例提供的三维虚拟场景的寻路方法的低空飞行策略的 飞行示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申 请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普 通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本 申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集, 但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集, 并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对 象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情 况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除 了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术 领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申 请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词 和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)三维游戏:是指以三维计算机图形为基础制作的立体电子游戏,包括但 不限于多人在线联机的网络三维游戏,单人进行游戏的单人三维游戏以及基于 三维游戏系统建立的虚拟现实游戏系统,并且对平台具有通用适用属性,游戏 主机平台、手机游戏平台、电脑端游戏平台内的三维游戏均包含在内。
2)寻路算法(即寻路策略):寻路是指由计算机应用程序规划两点之间的 最短路线,寻路算法是计算出最短路径的逻辑方法,例如,A*寻路算法、迪科 斯彻算法、跳点搜索算法等等。
3)A*寻路算法:是一种在有多个节点的图形平面上求出最低通过成本的 算法,常用于虚拟场景中的虚拟对象的移动计算,或网络游戏的自动机的移动 计算上,该算法综合了最良优先搜索和迪科斯彻算法的优点,即在进行启发式 搜索提高算法效率的同时可以保证找到一条最优路径。
4)跳点搜索算法(JPS,Jump Point Search):是一种基于栅格的寻路算法, JPS算法在保留A*寻路算法的框架的同时,进一步优化了A*寻路算法寻找 后继节点的操作。
5)导航网络多边形寻路算法:是一种在多边形网格上计算路径的算法,常 用于虚拟场景的地面寻路功能,相比普通的平面寻路,它允许网格数据带有地 面凹凸不平的信息,从而适应虚拟场景的复杂多变的地形。
6)体素:类似二维空间的像素,像素用在二维电脑图像的影像资料上,体 素是三维空间分割上的最小单位,应用于三维成像、科学资料与医学影像等领 域,在三维游戏中,体素常用于表示空间地形和阻挡障碍数据。
7)虚拟场景,利用设备输出的区别于现实世界的场景,通过裸眼或设备的 辅助能够形成对虚拟场景的视觉感知,例如通过显示屏幕输出的二维影像,通 过立体投影、虚拟现实和增强现实技术等立体显示技术来输出的三维影像;此 外,还可以通过各种可能的硬件形成听觉感知、触觉感知、嗅觉感知和运动感 知等各种模拟现实世界的感知。
8)虚拟对象,虚拟场景中进行交互的对象,受到用户或机器人程序(例如, 基于人工智能的机器人程序)的控制,能够在虚拟场景中静止、移动以及进行 各种行为的对象,例如游戏中的各种角色,军事演习仿真中的士兵等。
在相关技术中,针对虚拟场景中的寻路问题的解决方案均应用于在二维游 戏或者三维游戏的地面寻路上,申请人在实施本申请实施例时发现对于具有宏 大内容的三维虚拟场景,受限于当前的硬件条件,内存上无法缓存整个三维虚 拟场景的试探点,并且也无法短时间内算出三维路径,例如,相关产品中虚拟 对象可以乘坐飞行坐骑进行寻路,其解决方案是在虚拟场景中配置大量的辅助 点,这些辅助点可以通过代码自动生成,这些辅助点不是孤立存在,能通过逐 个跳转到达任意一个点,且在虚拟场景中任意位置定能到达一个辅助点,在寻 路过程中如遇障碍则需要通过最近的辅助点绕过障碍最终到达终点,配置辅助 点是一种可行的解决方案,但是这些辅助点必然不可能摆得太密集,否则会导 致性能问题,因此辅助点需要尽量少,仅保证所有辅助点不是孤立存在即可, 但是当需要通过辅助点进行寻路时,前往辅助点的过程是在绕远路,有损于虚 拟对象的移动效率以及控制虚拟对象的用户体验感。
本申请实施例提供一种三维虚拟场景的寻路方法、装置、电子设备和计算 机可读存储介质,能够在降低资源消耗的同时有效提高虚拟对象的移动效率, 下面说明本申请实施例提供的电子设备的示例性应用,本申请实施例提供的电 子设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例 如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游 戏设备)等各种类型的用户终端,也可以实施为服务器。下面,将说明设备实 施为终端时示例性应用。
为便于更容易理解本申请实施例提供的三维虚拟场景的寻路方法,首先说 明本申请实施例提供的三维虚拟场景的寻路方法的示例性实施场景,虚拟场景 可以完全基于终端输出,或者基于终端和服务器的协同来输出。
在一些实施例中,虚拟场景可以是军事演习仿真中所呈现的画面,用户可 以在虚拟场景中,通过属于不同群组的虚拟对象来模拟战局、战略或战术,对 于军事作战的指挥有着很大的指导作用。
在一些实施例中,虚拟场景可以是供游戏角色完成特定任务的环境,例如 可以是供游戏角色在虚拟场景中进行对战,通过控制虚拟对象的行动可以在虚 拟场景中进行双方互动,从而使用户能够在游戏的过程中舒缓生活压力。
在一个实施场景中,参见图1A,图1A是本申请实施例提供的三维虚拟场 景的寻路方法的应用模式示意图,适用于一些完全依赖终端400的计算能力即 可完成虚拟场景100的相关数据计算的应用模式,例如单机版/离线模式的游戏, 通过智能手机、平板电脑和虚拟现实/增强现实设备等终端400完成虚拟场景的 输出。
当形成虚拟场景100的视觉感知时,终端400通过图形计算硬件计算显示 所需要的数据,并完成显示数据的加载、解析和渲染,在图形输出硬件输出能 够对虚拟场景形成视觉感知的视频帧,例如,在智能手机的显示屏幕呈现二维 的视频帧,或者,在增强现实/虚拟现实眼镜的镜片上投射实现三维显示效果的 视频帧;此外,为了丰富感知效果,设备还可以借助不同的硬件来形成听觉感 知、触觉感知、运动感知和味觉感知的一种或多种。
作为示例,终端400运行客户端410(例如单机版的游戏应用),在客户端 410的运行过程中输出包括有角色扮演的三维虚拟场景,三维虚拟场景是供游 戏角色交互的环境,例如可以是用于供游戏角色进行对战的平原、街道、山谷、 天空等等;三维虚拟场景中包括虚拟对象110,虚拟对象110可以是受用户(或 称玩家)控制的游戏角色,即虚拟对象110受控于真实用户,将响应于真实用 户针对控制器(包括触控屏、声控开关、键盘、鼠标和摇杆等)的操作而在三 维虚拟场景中运动,例如,响应于真实用户标记目标位置的操作,虚拟对象将 在三维虚拟场景中向三维虚拟场景的目标位置移动。
举例来说,显示局部虚拟场景以及处于其中的虚拟对象110,响应于真实 用户标记三维虚拟场景中虚拟对象的目标位置的操作,终端400确定出虚拟对 象在局部虚拟场景中向目标位置移动的三维路径,并显示虚拟对象在局部虚拟 场景中向目标位置按照三维路径移动的过程,进而显示三维虚拟场景中另一个 局部虚拟场景,并继续确定出虚拟对象在另一个局部虚拟场景中向目标位置移 动的三维路径,并显示虚拟对象在另一个局部虚拟场景中向目标位置按照三维 路径移动的过程,直到达到目标位置为止。
在另一个实施场景中,参见图1B,图1B是本申请实施例提供的三维虚拟 场景的寻路方法的应用模式示意图,应用于终端400和服务器200,一般地, 适用于依赖服务器200的计算能力完成三维虚拟场景计算、并在终端400输出 三维虚拟场景的应用模式。
以形成三维虚拟场景100的视觉感知为例,服务器200进行三维虚拟场景 相关显示数据的计算并发送到终端400,终端400依赖于图形计算硬件完成计 算显示数据的加载、解析和渲染,依赖于图形输出硬件输出三维虚拟场景以形 成视觉感知,例如可以在智能手机的显示屏幕呈现二维的视频帧,或者,在增 强现实/虚拟现实眼镜的镜片上投射实现三维显示效果的视频帧;对于三维虚拟 场景的形式的感知而言,可以理解,可以借助于终端的相应硬件输出,例如使 用麦克风输出形成听觉感知,使用振动器输出形成触觉感知等等。
作为示例,终端400运行客户端410(例如网络版的游戏应用),通过连接 游戏服务器(即服务器200)与其他用户进行游戏互动,终端400输出客户端4 10的三维虚拟场景100,其中包括虚拟对象110,虚拟对象110可以是受用户 控制的游戏角色,即虚拟对象110受控于真实用户,将响应于真实用户针对控 制器(包括触控屏、声控开关、键盘、鼠标和摇杆等)的操作而在三维虚拟场 景中运动,例如,响应于真实用户标记目标位置的操作,虚拟对象将在三维虚 拟场景中向三维虚拟场景的目标位置移动。
举例来说,终端400显示局部虚拟场景以及处于其中的虚拟对象110,响 应于真实用户标记三维虚拟场景中虚拟对象的目标位置的操作,服务器200确 定出虚拟对象在局部虚拟场景中向目标位置移动的三维路径,终端400显示虚 拟对象在局部虚拟场景中向目标位置按照三维路径移动的过程,进而终端400 显示三维虚拟场景中另一个局部虚拟场景,并且服务器200继续确定出虚拟对 象在另一个局部虚拟场景中向目标位置移动的三维路径,终端400显示虚拟对 象在另一个局部虚拟场景中向目标位置按照三维路径移动的过程,直到达到目 标位置为止。
在一些实施例中,终端400可以通过运行计算机程序来实现本申请实施例 提供的三维虚拟场景中的监控功能道具的处理方法,例如,计算机程序可以是 操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APP,A pplication),即需要在操作系统中安装才能运行的程序,例如游戏APP(即上述 的客户端410);也可以是小程序,即只需要下载到浏览器环境中就可以运行的 程序;还可以是能够嵌入至任意APP中的游戏小程序。总而言之,上述计算机 程序可以是任意形式的应用程序、模块或插件。
本申请实施例可以借助于云技术(Cloud Technology)实现,云技术是指 在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计 算、储存、处理和共享的一种托管技术。
云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管 理平台技术、以及应用技术等的总称,可以组成资源池,按需所用,灵活便利。 云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储 资源。
作为示例,服务器200可以是独立的物理服务器,也可以是多个物理服务 器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计 算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、 CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端400可 以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、以及智能手 表等,但并不局限于此。终端400以及服务器200可以通过有线或无线通信方 式进行直接或间接地连接,本申请实施例中不做限制。
参见图2,图2是本申请实施例提供的三维虚拟场景的寻路方法的电子设 备的结构示意图,以电子设备为终端为例进行说明,图2所示的终端400包括: 至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终 端400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用 于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括 电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各 种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处 理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑 器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以 是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包 括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或 多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、 麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包 括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位 置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易 失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Me mory),易失性存储器可以是随机存取存储器(RAM,Random Access Memor y)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的 示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系 统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理 基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到 达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、 和通用串行总线(USB,Universal Serial Bus)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置43 1(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和 显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一 的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的三维虚拟场景的寻路装置可以采用 软件方式实现,图2示出了存储在存储器450中的三维虚拟场景的寻路装置45 5,其可以是程序和插件等形式的软件,包括以下软件模块:显示模块4551、 确定模块4552和控制模块4553,这些模块是逻辑上的,因此根据所实现的功 能可以进行任意的组合或进一步拆分,将在下文中说明各个模块的功能。
本申请实施例提供的虚拟场景中的三维虚拟场景的寻路方法可以由图1A 中的终端400单独执行,也可以由图1B中的终端400和服务器200协同执行。
下面,以由图1A中的终端400单独执行本申请实施例提供的三维虚拟场 景的寻路方法为例说明。参见图3A,图3A是本申请实施例提供的三维虚拟场 景的寻路方法的流程示意图,将结合图3A示出的步骤101-104进行说明。
需要说明的是,图3A示出的方法可以由终端400运行的各种形式计算机 程序执行,并不局限于上述的客户端410,例如上文的操作系统451、软件模块 和脚本,因此客户端不应视为对本申请实施例的限定。
需要说明的是,本申请实施例涉及到高空飞行与低空飞行这两个概念,将 飞行高度高于第三高度阈值的飞行确定为高空飞行,将飞行高度不高于第四高 度阈值的飞行确定为低空飞行,第三高度阈值大于或者等于第四高度阈值,高 空寻路策略是高空飞行时采取的寻路策略,低空寻路策略是低空飞行时采取的 寻路策略。
在步骤101中,根据虚拟对象在三维虚拟场景的当前位置对应的第一体素 数据,显示局部虚拟场景。
作为示例,局部虚拟场景是三维虚拟场景中位于虚拟对象的周围的部分, 局部虚拟场景是基于第一体素数据渲染得到的。
在一些实施例中,步骤101中的虚拟对象可以是由游戏或者军事仿真中的 用户所控制的对象,当然,虚拟场景中还可以包括其他的虚拟对象,可以由其 他用户控制或由机器人程序控制。用户可以被划分到多个群组,群组之间可以 是敌对关系或协作关系,虚拟场景中的群组可以包括上述关系的一种或者全部, 第一体素数据是从内存中读取的数据,用于渲染出虚拟对象的周围的部分,从 而可以在人机交互界面中显示虚拟对象的周围的部分,通常三维虚拟场景的规 模远大于虚拟对象周围的部分,需要响应用户的操作以及事件的进展才会逐渐 显示出完整的三维虚拟场景,因此虚拟对象的周围的部分是三维虚拟场景中的 局部虚拟场景。
在步骤102中,根据虚拟对象在三维虚拟场景的目标位置对应的第二体素 数据以及局部虚拟场景,确定虚拟对象在局部虚拟场景中的寻路策略。
作为示例,寻路策略至少包括低空寻路策略以及高空寻路策略。
在一些实施例中,参见图3B,图3B是本申请实施例提供的三维虚拟场景 的寻路方法的流程示意图,低空寻路策略用于在目标位置不可达的低空飞行场 景下基于寻路面进行寻路;步骤102中根据虚拟对象在三维虚拟场景的目标位 置对应的第二体素数据以及局部虚拟场景,确定虚拟对象在局部虚拟场景中的 寻路策略,可以通过步骤1021-1023实现。
在步骤1021中,获取虚拟对象的事件状态数据。
在步骤1022中,当事件状态数据与低空寻路策略适配时,确定第二体素数 据与寻路面之间的关系、以及第一体素数据与寻路面之间的关系。
在步骤1023中,当第二体素数据与寻路面之间的关系、以及第一体素数据 与寻路面之间的关系满足低空寻路条件时,将低空寻路策略确定为虚拟对象在 局部虚拟场景中的寻路策略。
作为示例,低空寻路条件包括:第二体素数据对应的位置与寻路面之间不 存在障碍对象,且第一体素数据对应的位置与寻路面之间不存在障碍对象。
作为示例,首先获取虚拟对象的事件状态数据,事件状态数据用于表征虚 拟对象当前状态,通过事件状态数据可以获知是否允许进行高空飞行,例如, 事件状态数据表征虚拟对象属于组队状态,而在组队状态下需要采取低空寻路 策略(即不允许进行高空飞行),因为组队状态中存在地面上的虚拟对象,如果 飞行的虚拟对象进行高空飞行则会与地面上的虚拟对象切断联系,当事件状态 数据与低空寻路策略适配时,需要判断起始坐标(当前位置)或者起始坐标(当 前位置)附近的坐标是否满足低空寻路条件以及判断终点坐标(目标位置)或 者终点坐标(目标位置)附近的坐标是否满足低空寻路条件,低空寻路条件包 括:第二体素数据对应的位置与寻路面之间不存在障碍对象,且第一体素数据 对应的位置与寻路面之间不存在障碍对象(即表征当前位置与终点位置均可以 直达寻路面),第二体素对应的位置包括目标位置以及目标位置周围设定范围之 内的位置,因此需要确定第二体素数据与寻路面之间的关系、以及第一体素数 据与寻路面之间的关系,当第二体素数据与寻路面之间的关系、以及第一体素 数据与寻路面之间的关系满足低空寻路条件时,将低空寻路策略确定为虚拟对 象在局部虚拟场景中的寻路策略,进而按照低空寻路策略以低空飞行方式飞到 目标位置,寻路面可达表征的含义是某个位置与寻路面之间的垂直线上不存在 其他体素。
在一些实施例中,高空寻路策略用于在目标位置不可达的高空飞行场景下 基于天空面进行寻路;步骤102中根据虚拟对象在三维虚拟场景的目标位置对 应的第二体素数据以及局部虚拟场景,确定虚拟对象在局部虚拟场景中的寻路 策略,可以通过以下技术方案实现:获取虚拟对象的事件状态数据;当事件状 态数据与高空寻路策略适配时,确定第二体素数据与天空面之间的关系、以及 第一体素数据与天空面之间的关系;当第二体素数据与天空面之间的关系、以 及第一体素数据与天空面之间的关系满足高空寻路条件时,将高空寻路策略确 定为虚拟对象在局部虚拟场景中的寻路策略,其中,高空寻路条件包括:第二 体素数据对应的位置与高空面之间不存在障碍对象,且第一体素数据对应的位 置与高空面之间不存在障碍对象。
作为示例,首先获取虚拟对象的事件状态数据,首先获取虚拟对象的事件 状态数据,事件状态数据用于表征虚拟对象当前状态,通过事件状态数据可以 获知是否允许进行高空飞行,例如,事件状态数据表征虚拟对象不属于组队状 态,则允许进行高空飞行,当事件状态数据与高空寻路策略适配时,需要判断 起始坐标(当前位置)或者起始坐标(当前位置)附近的坐标是否满足高空寻 路条件以及判断终点坐标(目标位置)或者终点坐标(目标位置)附近的坐标 是否满足高空寻路条件,高空寻路条件包括:第二体素数据对应的位置与天空 面之间不存在障碍对象,且第一体素数据对应的位置与天空面之间不存在障碍 对象(即表征当前位置与终点位置均可以直连天空面),第二体素对应的位置包 括目标位置以及目标位置周围设定范围之内的位置,因此需要确定第二体素数 据与天空面之间的关系、以及第一体素数据与天空面之间的关系;当第二体素 数据与天空面之间的关系、以及第一体素数据与天空面之间的关系满足高空寻 路条件时,将高空寻路策略确定为虚拟对象在局部虚拟场景中的寻路策略,进 而通过按照高空寻路策略以高空飞行方式飞到目标位置,直连高空面表征的含 义是某个位置与寻路面之间的垂直线上不存在其他体素。
在一些实施例中,当第二体素数据与天空面之间的关系、以及第一体素数 据与天空面之间的关系不满足高空寻路条件时,确定第二体素数据以及第一体 素数据与寻路面之间的关系;当第二体素数据与寻路面之间的关系、以及第一 体素数据与寻路面之间的关系满足低空寻路条件时,将低空寻路策略确定为虚 拟对象在局部虚拟场景中的寻路策略,其中,低空寻路条件包括:第二体素数 据对应的位置与寻路面之间不存在障碍对象,且第一体素数据对应的位置与寻 路面之间不存在障碍对象。
作为示例,参见图5A,图5A是本申请实施例提供的三维虚拟场景的寻路 方法的产品逻辑示意图,在步骤501A中,检测当前状态是否允许高空飞行, 若步骤501A的判断结果为允许高空飞行,则执行步骤502A,在步骤502A中, 判断是否满足以下条件:起始坐标或其附近的坐标天空面可达,且终点坐标或 其附近的坐标天空面可达,当步骤501A的判断结果为不允许高空飞行时,执 行步骤503A,在步骤503A中,判断是否满足以下条件:起始坐标或其附近的 坐标寻路面可达,且终点坐标或其附近的坐标寻路面可达,当步骤502的判断 结果为是则执行步骤505A,在步骤505A中,高空飞行方式飞到终点,跳转至 结束状态,当步骤502A的判断结果为否时,跳转执行步骤503A,当步骤503 A的执行结果为是时,执行步骤504A,在步骤504A中,低空飞行方式飞到终 点,跳转至结束状态,当步骤503A的执行结果为否时,表示寻路失败,跳转 至结束状态。
作为示例,首先获取虚拟对象的事件状态数据,事件状态数据用于表征虚 拟对象当前状态,通过事件状态数据可以获知是否允许进行高空飞行,例如, 事件状态数据表征虚拟对象不属于组队状态,则允许进行高空飞行,当事件状 态数据与高空寻路策略适配时,需要判断起始坐标(当前位置)或者起始坐标 (当前位置)附近的坐标是否满足高空寻路条件以及判断终点坐标(目标位置) 或者终点坐标(目标位置)附近的坐标是否满足高空寻路条件,高空寻路条件 包括:第二体素数据对应的位置与天空面之间不存在障碍对象,且第一体素数 据对应的位置与天空面之间不存在障碍对象(即表征当前位置与终点位置均可 以直连天空面),第二体素对应的位置包括目标位置以及目标位置周围设定范围 之内的位置,因此需要确定第二体素数据与天空面之间的关系、以及第一体素 数据与天空面之间的关系;当第二体素数据与天空面之间的关系、以及第一体 素数据与天空面之间的关系不满足高空寻路条件时,需要判断起始坐标(当前 位置)或者起始坐标(当前位置)附近的坐标是否满足低空寻路条件以及判断 终点坐标(目标位置)或者终点坐标(目标位置)附近的坐标是否满足低空寻 路条件,低空寻路条件包括:第二体素数据对应的位置与寻路面之间不存在障 碍对象,且第一体素数据对应的位置与寻路面之间不存在障碍对象(即表征当 前位置与终点位置均可以直达寻路面),第二体素对应的位置包括目标位置以及 目标位置周围设定范围之内的位置,因此需要确定第二体素数据与寻路面之间 的关系、以及第一体素数据与寻路面之间的关系,当第二体素数据与寻路面之 间的关系、以及第一体素数据与寻路面之间的关系满足低空寻路条件时,将低 空寻路策略确定为虚拟对象在局部虚拟场景中的寻路策略,进而按照低空寻路 策略以低空飞行方式飞到目标位置,寻路面可达表征的含义是某个位置与寻路 面之间的垂直线上不存在其他体素。
在一些实施例中,在获取虚拟对象的事件状态数据之前,基于第二体素数 据以及局部虚拟场景,确定目标位置与局部虚拟场景之间的位置关系;当位置 关系表征目标位置位于局部虚拟场景外时,确定将执行获取虚拟对象的事件状 态数据的处理。
作为示例,参见图5B,图5B是本申请实施例提供的三维虚拟场景的寻路 方法的产品逻辑示意图。在步骤501B中,判断是否为近距离场景,若步骤50 1B的判断结果为否,执行步骤502B,在步骤502B中,检测当前状态是否允许 高空飞行,若步骤502B的检测结果为是,则执行步骤503B,在步骤503B中, 判断是否满足以下条件:起始坐标或其附近的坐标天空面可达,且终点坐标或 其附近的坐标天空面可达,若步骤503B的判断结果为是,则执行步骤504B, 在步骤504B中,高空飞行方式飞到终点,跳转到结束,若步骤502B中的检测 结果为否,则执行步骤505B,若步骤503B中的判断结果为否,则执行步骤50 5B,在步骤505B中,判断是否满足以下条件:起始坐标或其附近的坐标寻路 面可达,且终点坐标或其附近的坐标寻路面可达,若步骤505B的判断结果为 是,则执行步骤506B,在步骤506B中,低空飞行方式飞到终点,跳转到结束, 若步骤505的判断结果为否,则表示寻路失败,跳转到结束。
作为示例,近距离场景是目标位置与当前位置之间的距离小于距离阈值的 场景,判断是否近距离实际上是判断是否属于近距离场景,首先基于第二体素 数据以及局部虚拟场景,确定目标位置与局部虚拟场景之间的位置关系,位置 关系包括第二体素数据对应的目标位置处于局部虚拟场景中或者第二体素数据 对应的目标位置处于局部虚拟场景外,当位置关系表征目标位置位于局部虚拟 场景外时,需要进一步检测当前状态是否允许高空飞行,因此将执行获取虚拟 对象的事件状态数据的处理,再通过上述实施例来确定出具体采取的寻路策略, 例如,当事件状态数据与低空寻路策略适配时,确定第二体素数据与寻路面之 间的关系、以及第一体素数据与寻路面之间的关系,当第二体素数据与寻路面之间的关系、以及第一体素数据与寻路面之间的关系满足低空寻路条件时,将 低空寻路策略确定为虚拟对象在局部虚拟场景中的寻路策略,例如,当事件状 态数据与高空寻路策略适配时,确定第二体素数据与天空面之间的关系、以及 第一体素数据与天空面之间的关系;当第二体素数据与天空面之间的关系、以 及第一体素数据与天空面之间的关系满足高空寻路条件时,将高空寻路策略确 定为虚拟对象在局部虚拟场景中的寻路策略,其中,高空寻路条件包括:第二 体素数据对应的位置与高空面之间不存在障碍对象,且第一体素数据对应的位 置与高空面之间不存在障碍对象。
在一些实施例中,寻路策略还包括近距离寻路策略,近距离寻路策略用于 在目标位置可达的场景下进行寻路;步骤102中根据虚拟对象在三维虚拟场景 的目标位置对应的第二体素数据以及局部虚拟场景,确定虚拟对象在局部虚拟 场景中的寻路策略,可以通过以下技术方案实现:基于第二体素数据以及局部 虚拟场景,确定目标位置与局部虚拟场景之间的位置关系;当位置关系表征目 标位置位于局部虚拟场景中时,将近距离寻路策略确定为虚拟对象在局部虚拟 场景中的寻路策略。
作为示例,首先基于第二体素数据以及局部虚拟场景,确定目标位置与局 部虚拟场景之间的位置关系,位置关系包括第二体素数据对应的目标位置处于 局部虚拟场景中或者第二体素数据对应的目标位置处于局部虚拟场景外,当位 置关系表征目标位置位于局部虚拟场景中时,表征目标位置处于当前显示的局 部虚拟场景内,可以直接将近距离寻路策略确定为虚拟对象在局部虚拟场景中 的寻路策略,近距离寻路策略是通过有限次数的三维寻路算法以当前位置为起 点进行寻路处理,三维寻路算法每次前向计算的过程中可以确定出一个路点, 当确定出的路点为终点(目标位置)时,表征终点可达,从而可以依靠每次三 维寻路算法计算出的路点移动至目标位置。
在步骤103中,根据寻路策略确定与局部虚拟场景适配的三维路径。
在一些实施例中,参见图3C,图3C是本申请实施例提供的三维虚拟场景 的寻路方法的流程示意图,当寻路策略为近距离寻路策略时,步骤103中根据 寻路策略确定与局部虚拟场景适配的三维路径,可以通过步骤1031-1032实现。
在步骤1031中,在局部虚拟场景中,以当前位置为起点,通过近距离寻路 策略沿当前位置的三维方向进行预设次数的路点发展处理,得到多个发展路点。
在步骤1032中,当多个发展路点包括目标位置时,根据多个发展路点形成 对应近距离寻路策略的三维路径。
作为示例,路点发展处理过程如下,将当前位置加入到开放列表中,接着 判断开放列表不为空(存在当前位置),目标位置不在开放列表中,然后从开放 列表中取出评价值最小的节点,此时开放列表中只有当前位置,所以将当前位 置取出,作为第一个发展路点,并将其加入到封闭列表中,计算第一个发展路 点的相邻路点(三维方向的相邻路点),即可以存在8个相邻路点,并计算它们 的价值函数值,这8个相邻路点既没有在开放列表中,也没有在封闭列表中, 所以都加入到开放列表中,并设置它们的父节点为上述第一个发展路点,继续 选择开放列表中价值函数值最小的路点,作为第二个发展路点,并将其加入封 闭列表,通过上述方式可以确定出多个发展路点,若通过预设次数之内的路点 发展处理确定出位于目标位置的发展路点,则根据多个发展路点形成对应近距 离寻路策略的三维路径。
在一些实施例中,当多个发展路点不包括目标位置时,获取虚拟对象的事 件状态数据;根据事件状态数据,将虚拟对象在局部虚拟场景中使用的寻路策 略从近距离寻路策略更新为低空寻路策略或高空寻路策略;根据更新后的寻路 策略确定与局部虚拟场景适配的三维路径;控制虚拟对象在局部虚拟场景中按 照更新后的寻路策略确定的三维路径移动。
作为示例,参见图5C,在步骤501C中,判断是否为近距离场景,若步骤 501C的判断结果为否,执行步骤502C,在步骤502C中,检测当前状态是否允 许高空飞行,若步骤502C的检测结果为是,则执行步骤503C,在步骤503C 中,判断是否满足以下条件:起始坐标或其附近的坐标天空面可达,且终点坐 标或其附近的坐标天空面可达,若步骤503C的判断结果为是,则执行步骤50 4C,在步骤504C中,高空飞行方式飞到终点,跳转到结束,若步骤502C中的 检测结果为否,则执行步骤505C,若步骤503C中的判断结果为否,则执行步 骤505C,在步骤505C中,判断是否满足以下条件:起始坐标或其附近的坐标 寻路面可达,且终点坐标或其附近的坐标寻路面可达,若步骤505C的判断结 果为是,则执行步骤506C,在步骤506C中,低空飞行方式飞到终点,跳转到 结束,若步骤505C的判断结果为否,则表示寻路失败,跳转到结束,若步骤5 01C的判断结果为是,执行步骤507C,在步骤507C中,使用设置上限计算次 数的三维寻路算法寻路,在步骤508C中,判断是否可达到终点,若步骤508C 的执行结果为否,则跳转至步骤502C,若步骤508C的执行结果为是,则执行 步骤509C,在步骤509C中,依靠路点数据飞到终点,再跳转至结束。
作为示例,基于第二体素数据以及局部虚拟场景,确定目标位置与局部虚 拟场景之间的位置关系,当位置关系表征目标位置位于局部虚拟场景中时,将 近距离寻路策略确定为虚拟对象在局部虚拟场景中的寻路策略,在局部虚拟场 景中,以当前位置为起点,通过近距离寻路策略沿当前位置的三维方向进行预 设次数的路点发展处理,得到多个发展路,当多个发展路点不包括目标位置时, 获取虚拟对象的事件状态数据,根据事件状态数据,将虚拟对象在局部虚拟场 景中使用的寻路策略从近距离寻路策略更新为低空寻路策略或高空寻路策略, 例如,当事件状态数据与低空寻路策略适配时,确定第二体素数据与寻路面之 间的关系、以及第一体素数据与寻路面之间的关系,当第二体素数据与寻路面之间的关系、以及第一体素数据与寻路面之间的关系满足低空寻路条件时,将 低空寻路策略确定为虚拟对象在局部虚拟场景中的寻路策略,当事件状态数据 与高空寻路策略适配时,确定第二体素数据与天空面之间的关系、以及第一体 素数据与天空面之间的关系,当第二体素数据与天空面之间的关系、以及第一 体素数据与天空面之间的关系满足高空寻路条件时,将高空寻路策略确定为虚 拟对象在局部虚拟场景中的寻路策略,其中,当第二体素数据与天空面之间的 关系、以及第一体素数据与天空面之间的关系不满足高空寻路条件时,确定第 二体素数据以及第一体素数据与寻路面之间的关系,当第二体素数据与寻路面 之间的关系、以及第一体素数据与寻路面之间的关系满足低空寻路条件时,将 低空寻路策略确定为虚拟对象在局部虚拟场景中的寻路策略。根据更新后的寻 路策略确定与局部虚拟场景适配的三维路径,控制虚拟对象在局部虚拟场景中 按照更新后的寻路策略确定的三维路径移动。
在一些实施例中,当寻路策略为高空寻路策略时,步骤103中根据寻路策 略确定与局部虚拟场景适配的三维路径,可以通过以下技术方案实现:获取在 从当前位置指向目标位置的第一方向;以当前位置为起点,获取沿第一方向的 长度为第一距离的第一线段;当第一线段中存在第一障碍点时,以第一障碍点 为起点,确定沿第一方向的长度为第二距离的第二线段,其中,第一障碍点与 天空面之间存在障碍对象;当第二线段中存在解除障碍点时,执行三维寻路处 理以确定第一障碍点与解除障碍点之间的第一中间路径,并执行垂直升降处理 以确定第一障碍点与解除障碍点之间的第二中间路径,其中,解除障碍点与天 空面之间不存在障碍对象;将第一中间路径以及第二中间路径中的较短路径与 对应第一线段的初始路径进行连接处理,得到与局部虚拟场景适配的三维路径, 第一障碍点是第一线段中存在的,与天空面之间存在障碍对象的点。
在一些实施例中,当第二线段中不存在解除障碍点,或者当执行三维寻路 处理未确定第一障碍点与解除障碍点之间的第一中间路径时,执行垂直升降处 理以确定当前起点与绕过点之间的第三中间路径,其中,绕过点与当前起点对 应的直线与天空面垂直,且绕过点与天空面之间不存在障碍对象;将第三中间 路径与初始路径进行连接处理,得到与局部虚拟场景适配的三维路径。
在一些实施例中,当第一线段中不存在第一障碍点时,将第一线段作为与 局部虚拟场景适配的三维路径。
作为示例,参见图8,图8是本申请实施例提供的三维虚拟场景的寻路方 法的高空飞行策略示意图,在步骤801中,检测起点和终点是否直连天空,若 步骤801检测结果为是,则执行步骤802,在步骤802中,设置高空飞行的起 始点,在步骤803中,预判朝终点直线飞行,在步骤804中,预判往前一段距 离是否能直连天空,若步骤804的预判为能,则执行步骤805,设置一段路点 并沿着飞,在步骤806中,判断是否达到终点,若步骤806的判断结果为是, 则跳转到结束,若步骤806的判断结果为否,则跳转至步骤804,若步骤804 的预判为否,则执行步骤807,在步骤807中,预判原前进方向一段距离是否 存在可直达天空的点,若步骤807的预判结果为是,则执行步骤808,在步骤8 08中,使用三维寻路处理判断是否可达该点,若步骤808或者步骤807的预判 结果为否,则执行步骤812,在步骤812中,设置提前升高路径沿着飞绕过障 碍,再执行步骤806,若步骤808的预判结果为是,则执行步骤809,在步骤8 09中,比较三维寻路处理到达该点的距离和垂直升降方式到达的距离,再执行 步骤810,在步骤810中,判断是否三维寻路处理距离更短,若判断结果为是, 则执行步骤811,在步骤811中,设置三维寻路处理结果为路径沿着飞到该点, 若判断结果为否,则执行步骤813,在步骤813中,设置垂直升降方式路径沿 着飞到该点,若步骤801的检测结果为否,则执行步骤814,在步骤814中, 判断是否存在替代起始点,若步骤814的判断结果为否,则寻路失败,若步骤 814的判断结果为是,则执行步骤815,在步骤815中,使用三维寻路处理判断 是否可达该点,若步骤815的执行结果为是,则执行步骤802,若步骤815的 执行结果为否,则寻路失败。
作为示例,检测当前位置和目标位置垂直上方是否无体素遮挡可直达天空, 若当前位置和目标位置垂直上方无体素遮挡可直达天空,表征满足高空寻路条 件,可以执行高空寻路策略,首先获取从当前位置指向目标位置的第一方向; 第一方向是飞行方向,接着预判往前一段距离能否直连天空面,以当前位置为 起点,获取沿第一方向的长度为第一距离的第一线段,当第一线段中存在第一 障碍点时(即预判往前一段距离中存在不能直连天空的第一障碍点),则继续预 判原前进方向一段距离是否存在可直达天空的点,因此以第一障碍点为起点, 确定沿第一方向的长度为第二距离的第二线段,其中,第一障碍点与天空面之 间存在障碍对象,表征第一障碍点与天空面无法直连,当第二线段中存在解除 障碍点时(表征原前进方向一段距离存在可直达天空的点),则执行三维寻路处 理以确定第一障碍点与解除障碍点之间的第一中间路径,并执行垂直升降处理 以确定第一障碍点与解除障碍点之间的第二中间路径,其中,解除障碍点与天 空面之间不存在障碍对象;比较三维寻路处理到达解除障碍点的第一中间路径 与垂直升降处理到达解除障碍点的第二中间路径的距离长短,将第一中间路径 以及第二中间路径中的较短路径与对应第一线段的初始路径进行连接处理,得 到与局部虚拟场景适配的三维路径。如果预判往前一段距离中不存在不能直连 天空的第一障碍点,将第一线段作为与局部虚拟场景适配的三维路径,在飞完 这一段距离再继续向前预判,每个局部虚拟场景可以适配一个三维路径也可以 适配多个三维路径,适配多个三维路径则表征,在一次预判飞行结束之后,虚 拟对象并没有离开飞离该局部虚拟场景。当第二线段中不存在解除障碍点(预 判第一障碍点的前方不存在坐标点可连接天空),或者当执行三维寻路处理未确 定第一障碍点与解除障碍点之间的第一中间路径(使用设定次数的三维寻路处 理无法从第一障碍点到达解除障碍点)时,执行垂直升降处理以确定当前起点 与绕过点之间的第三中间路径,绕过点是从当前位置垂直上升得到的位置或者 从当前位置垂直下降得到的位置,绕过点与当前起点对应的直线与天空面垂直, 且绕过点与天空面之间不存在障碍对象;将第三中间路径与初始路径进行连接 处理,得到与局部虚拟场景适配的三维路径。
作为示例,检测当前位置和目标位置垂直上方是否无体素遮挡可直达天空, 若当前位置和目标位置垂直上方无体素遮挡可直达天空,则向当前位置以及目 标位置的三维方向(即八个方向)的设定范围内搜索是否存在可直达天空的坐 标,如果存在则尝试使用三维寻路处理到达可直达天空的坐标,再以该坐标作 为高空飞行的当前位置以及目标位置。
在一些实施例中,当寻路策略为低空寻路策略时,步骤103中根据寻路策 略确定与局部虚拟场景适配的三维路径,可以通过以下技术方案实现:将当前 位置与目标位置投影至寻路面,得到投影当前位置以及投影目标位置;执行多 边形寻路处理,以确定局部虚拟场景中寻路面的路点轨迹,并确定路点轨迹中 靠近投影当前位置的邻近路点以及当前位置的高度,其中,路点轨迹是在寻路 面中从投影当前位置向投影目标位置移动的二维轨迹;确定具有高度、且与邻 近路点具有相同二维坐标的插入路点;当当前位置与插入路点之间的第三线段 不存在第二障碍点、且高度不低于高度阈值时,将当前位置与插入路点之间的 路径确定为与局部虚拟场景适配的三维路径,其中,第二障碍点与寻路面之间 存在障碍对象,第二障碍点是第三线段中存在的,与寻路面之间存在障碍对象 的点。
在一些实施例中,当第三线段与寻路面之间不存在障碍对象、且高度低于 第二高度阈值时,基于插入路点进行垂直升高处理,得到升高插入路点,其中, 升高插入路点与插入路点的二维坐标相同,且升高插入路点的高度不低于第二 高度阈值;将当前位置与升高插入路点之间的路径确定为与局部虚拟场景适配 的三维路径。
在一些实施例中,当满足以下降低处理条件中任意一个时,基于插入路点 进行垂直降低处理,得到降低插入路点,其中,降低处理条件包括:第三线段 不存在所述第二障碍点、高度不低于第二高度阈值,且低于所述第一高度阈值; 第三线段存在第二障碍点,其中,降低插入路点与插入路点的二维坐标相同, 且降低插入路点的高度低于障碍对象的高度;将当前位置与降低插入路点之间 的路径确定为与局部虚拟场景适配的三维路径。
作为示例,参见图10,图10是本申请实施例提供的三维虚拟场景的寻路 方法的低空飞行策略示意图。在步骤1001中,检测起点和终点是否直达寻路面, 若步骤1001检测结果为是,则执行步骤1002,在步骤1002中,设置低空飞行 的起始点,在步骤1016中,使用多边形寻路处理获得可达终点的地面路点,在 步骤1003中,预判朝下一个路点飞行,在步骤1004中,预判往前一段距离是 否无法直达寻路面,若步骤1004的预判为是,则执行步骤1005,降低高度飞 行,在步骤1006中,判断是否达到终点,若步骤1006的判断结果为是,则跳 转到结束,若步骤1006的判断结果为否,则跳转至步骤1004,若步骤1004的 预判为否,则执行步骤1007,在步骤1007中,判断离地高度是否在阈值内(不 低于第一高度阈值),若步骤1007的预判结果为是,则执行步骤1008,在步骤 1008中,保持高度飞行,再执行步骤1006,若步骤1007的预判结果为否,则 执行步骤1009,在步骤1009中,判断是否离地太低(不高于第二高度阈值), 若步骤1009的判断结果为是,则执行步骤1010,在步骤1010中,提升高度飞 行,再执行步骤1006,若步骤1009的判断结果为否,执行步骤1005。若步骤 1001的检测结果为否,则执行步骤1013,在步骤1013中,搜索起始点附近可 直达寻路面的坐标作为替代,在步骤1014中,判断是否存在替代起始点,若步 骤1014的判断结果为否,则寻路失败,若步骤1014的判断结果为是,则执行 步骤1015,在步骤1015中,使用三维寻路处理判断是否可达该点,若步骤10 15的执行结果为是,则执行步骤1002,若步骤1015的执行结果为否,则寻路 失败。
作为示例,检测当前位置和目标位置垂直上方是否无体素遮挡可直连寻路 面,若当前位置和目标位置垂直下方无体素遮挡可直连寻路面,表征满足低空 寻路条件,可以执行低空寻路策略,将当前位置与目标位置投影至寻路面,得 到投影当前位置以及投影目标位置,执行多边形寻路处理,以确定局部虚拟场 景中寻路面的路点轨迹(使用多边形寻路处理获得可达终点的地面路点),相当 于将当前位置与目标位置投影至寻路面上,获取寻路面上两个投影点之间的二 维的路径轨迹,并确定路点轨迹中靠近投影当前位置的邻近路点以及当前位置 的高度,通过高度以及邻近路点在寻路面上的位置,确定具有高度、且与邻近 路点具有相同二维坐标的插入路点,插入路点与邻近路点构成的直线与寻路面 垂直,插入路点与当前位置相对于寻路面同高,当当前位置与插入路点之间的 第三线段不存在第二障碍点(预判往前一段距离中所有的点均可以直达寻路面)、 且高度不低于高度阈值时,将当前位置与插入路点之间的路径确定为与局部虚 拟场景适配的三维路径,这个三维路径是一个平飞的路径,当第三线段与寻路 面之间不存在障碍对象(预判往前一段距离中所有的点均可以直达寻路面)、且 高度低于高度阈值时,基于插入路点进行垂直升高处理,得到升高插入路点, 其中,升高插入路点与插入路点的二维坐标相同,且升高插入路点的高度不低 于高度阈值,升高插入路点的高度指升高插入路点与寻路面之间的距离,将当前位置与升高插入路点之间的路径确定为与局部虚拟场景适配的三维路径,这 是一个斜线上升的路径,当第三线段与寻路面之间存在障碍对象时(预判往前 一段距离中存在无法直达寻路面的点),基于插入路点进行垂直降低处理,得到 降低插入路点,其中,降低插入路点与插入路点的二维坐标相同,且降低插入 路点的高度低于障碍对象的高度,降低插入路点的高度指降低插入路点与寻路 面之间的距离,将当前位置与降低插入路点之间的路径确定为与局部虚拟场景 适配的三维路径,在飞完这一段距离再继续向前预判,每个局部虚拟场景可以 适配一个三维路径也可以适配多个三维路径,适配多个三维路径则表征,在一 次预判飞行结束之后,虚拟对象并没有离开飞离该局部虚拟场景。
作为示例,检测当前位置和目标位置垂直下方是否无体素遮挡可直达寻路 面,若当前位置和目标位置垂直下方无体素遮挡可直达寻路面,则向当前位置 以及目标位置的三维方向(即八个方向)的设定范围内搜索是否存在可直达寻 路面的坐标,如果存在则尝试使用三维寻路处理到达可直达寻路面的坐标,再 以该坐标作为低空飞行的当前位置以及目标位置。
在步骤104中,控制虚拟对象在局部虚拟场景中按照三维路径移动。
作为示例,当虚拟对象已经抵达目标位置时,则完成针对三维虚拟场景的 寻路以及飞行过程,当虚拟对象未抵达目标位置时,若显示的仍然是同一个局 部虚拟场景,则继续按照步骤102的寻路策略以预判的方式向前飞行,若显示 的是新的局部虚拟场景,则更新当前位置,重新确定出寻路策略,并按照寻路 策略确定三维路径。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
参见图4,图4是本申请实施例提供的三维虚拟场景的寻路方法的体素示 意图,三维虚拟场景中的虚拟对象均是基于体素401进行显示的,虚拟场景内 的虚拟对象(例如,某个飞行单位)可通过本申请实施例提供的三维虚拟场景 的寻路方法计算出到达目标位置的三维路径,在虚拟对象在游戏内自由飞行的 同时,亦可通过本申请实施例提供的三维虚拟场景的寻路方法实现空中寻路自 动前往目标位置以完成任务、或者多个虚拟对象之间可以组队跟随进行空中寻 路以到达目标位置、或者虚拟对象进行空中寻路到达用户在地图上指定的目标 位置。
通过本申请实施例提供的三维虚拟场景的寻路方法花费较短的时间即可确 定出较优三维路径并及时控制虚拟对象按照较优三维路径进行移动,从而提高 虚拟对象的移动效率,并有效提高人机交互效率。
首先判断起点和终点距离是否属于近距离(视野体素范围内),如果是则尝 试使用设置上限计算次数的三维寻路算法到达终点,如果计算后可达,则依靠 计算结果产生的路点数据直达终点,如果终点距离较远或无法直达,则采用复 杂寻路流程,复杂寻路流程分高空飞行和低空飞行两个组合方案。在高空飞行 方案中:整体过程是遇到障碍向上飞行绕过,保证整个过程能顺利进行有一个 前提,既起点和终点的垂直上方必须能直接与天空连通,这样才能在遇到障碍 时保证一定能通过向上飞的方式绕过障碍。整个过程类似直升机飞行。在低空 飞行方案中:依赖地面寻路逻辑,通过原有寻路逻辑参生路径数据,在数据上 进行优化,根据路况数据对路点进行高度调整,整个过程类似人拉着风筝行进。
进行复杂寻路流程之前,先判断当前条件是否允许执行高空飞行策略,如 果允许则进一步判断寻路的当前位置和目标位置是否满足高空飞行策略的条件, 即当前位置和目标位置的垂直上方能直接与天空连通,或者当前位置和目标位 置的附近能找到与天空连通的点,则判断当前条件允许执行高空飞行策略,可 以采取高空飞行策略进行寻路。
低空飞行策略作为高空飞行策略的补充策略,在执行之前也要判断前置条 件是否满足,执行低空飞行策略的前置条件为当前位置和目标位置垂直下方为 寻路面,或者当前位置和目标位置的附近能找到与寻路面连通的点,若可达到 寻路面则可利用地面寻路逻辑辅助计算三维路径,若满足前置条件,则判断当 前条件允许执行低空飞行策略,可以采取低空飞行策略进行寻路,若低空飞行 寻路的条件也不满足,则寻路失败,弹出提示框,以告知用户。
在一些实施例中,虚拟对象在组队状态下可以跟随队长行进,从而队员之 间同时存在飞行单位和地面单位,为保证地面单位能跟上飞行单位,则在组队 模式下直接进入低空飞行模式,决策出低空寻路策略,除组队模式外,还有其 他情况需要进入低空飞行模式。
在一些实施例中,参见图6,图6是本申请实施例提供的三维虚拟场景的 寻路方法的虚拟场景示意图,使用图4示出的体素来构建三维虚拟场景的结构 信息,用体素来描述阻挡信息虽然存在精度不足的问题,但是能极大节省内存 和碰撞检测效率,由于三维虚拟场景尺寸较大,完全加载整个三维虚拟场景的 体素数据到内存会造成不小的压力,因此采用流式加载的方式,动态加载虚拟 对象附近的体素,由于二维寻路算法是在已知全局数据的前提下进行的,并且 计算过程中还会产生内存占用,在大型三维虚拟场景中往往需要动态加载体素 数据,如果终点超出已加载体素范围则无法使用二维寻路算法进行计算,另一方面三维空间寻路计算时产生的内存占用和计算量与二维空间相比是指数级的 差距,因此,需要采取边飞行边计算的方式来完成整个寻路过程,即仅基于局 部虚拟场景进行寻路,若还未到达终点则继续通过另一个局部虚拟场景进行寻 路,直至抵达终点为止。
在一些实施例中,终点与起点距离较近时,采取近距离寻路策略抵达终点, 在二维寻路算法的基础上加入高度坐标进行计算,使得二维数据变成三维数据, 从而支持三维空间寻路,其次,对启发函数进行修改,仅将缓存体素范围之内 的格子加入开放列表,根据虚拟对象的体型和性能因素,设置寻路格子尺寸(通 常为体素格子的整数倍),从而配置虚拟对象的飞速速度,以提升移动效率,并 且配置缓存格子的数目,通过配置缓存格子的数目限制计算量,否则在极端情 况下在三维寻路算法的缓存格子和计算次数将可达整个三维空间。
参见图7,图7是本申请实施例提供的三维虚拟场景的寻路方法的体素存 储示意图,在说明高空飞行策略之前,需要介绍体素的存储结构,存储单元为 (x,y)水平坐标,在同一水平坐标上,可存储多层体素数据(用于表征无体 素以及固体体素),存储每一层的底和顶的高度,根据体素的数据结构特性,不 需要逐步检测,仅是用水平坐标直接读取对应单元体素信息,例如,明确该坐 标垂直上方是否直通天空;邻近坐标上方是否有体素遮挡;需要升多高可绕过 邻近遮挡等等,高空飞行策略可以巧妙利用这些特性,在移动的过程中保持与 天空连通,一边移动一边进行计算,直到最后到达终点,以此方式计算出来的 路径是资源消耗与路径最短需求的最佳平衡结果。
参见图8,图8是本申请实施例提供的三维虚拟场景的寻路方法的高空飞 行策略示意图,首先检测起点(起点是当前位置中的一个,每个局部虚拟场景 均存在一个或者多个当前位置)和终点(终点即为目标位置)垂直上方是否无 体素遮挡可直达天空,若起点或者终点无法直达天空,则向周围八方向搜索是 否存在可直达天空的坐标,如果存在则尝试使用三维寻路算法到达该位置,再 以该坐标作为高空飞行的当前位置,在高空飞行过程中预判前方一段距离是否 可能阻挡角色与天空连通,如果没有异常则设置这段路径为安全路点,飞完这 一段再继续向前预判,如果预判到前方存在异常,则先预判前方是否有坐标点 可连接天空,如果没有则使用垂直升降方式绕过去;如果有则对比通过三维寻 路算法到达和通过垂直升降方式达到哪个路径更短,采用更短的路径达到该点 再继续前进。
参见图9,图9是本申请实施例提供的三维虚拟场景的寻路方法的高空飞 行策略的飞行示意图,A为当前位置(例如,起点),B为目标位置,先确定当 前位置可连接天空,则必然可达到目标位置,在前进的过程中,将垂直升降作 为保底方案,三维寻路算法作为辅助方案,计算出前进过程中绕行的路线。
图10是本申请实施例提供的三维虚拟场景的寻路方法的低空飞行策略示 意图,低空飞行方案依赖地面寻路逻辑,在地面寻路使用的是多边形寻路算法, 在得到地面路点之后确定终点可达,在去往终点的过程中尽量保持离寻路面一 定高度,若遇到障碍影响虚拟对象和寻路面连通,则提前下降保证离地飞行过 程中始终可与寻路面连通,待绕过障碍之后尝试还原之前高度,例如,类似于 人拉着风筝的模型,人走的路径是地面寻路计算所得路径,风筝飞过的路径就 是低空飞行的路径,正常情况离地一定高度,遇到障碍则收短风筝的线降低高 度,人和风筝之间的线保持不断,即虚拟对象的三维路径投影到寻路面的二维 路径与多边形寻路算法得到的路径相同。首先检测起点和终点垂直下方是否无 体素遮挡可直达寻路面,若起点或者终点无法直达寻路面,则向周围八方向搜 索是否存在可直达寻路面的坐标,如果存在则尝试使用三维寻路算法达到该位 置,再以该坐标作为低空飞行的起点,对终点也执行类似处理。在低空飞行过 程中预判前方一段距离是否可能阻挡角色与寻路面连通,如果没有异常则设置 这段路径为安全路点,飞完这一段再继续向前预判。如果预判到前方存在异常, 则插入降低高度的路点,试飞行高度降低,保证角色与寻路面连通。如果预判 前方无异常,则检测当前飞行高度是否在设置的阈值范围内,如果飞太高则缓 缓降低,如果飞太低则缓缓升高。
参见图11,图11是本申请实施例提供的三维虚拟场景的寻路方法的低空 飞行策略的飞行示意图,A为当前位置(例如,起点),B为目标位置,先确定 起点可连接寻路面,则必然可达到目标位置,在前进的过程中,如有障碍对象 影响虚拟对象和寻路面连通则提前降低高度,如无障碍对象影响则根据提前设 置的飞行离地高度阈值动态调整高度。
本申请实施例提供的三维虚拟场景的寻路方法适用于大型三维虚拟场景中 进行空中寻路,边飞边计算路径,并不产生性能压力,以此方式计算出来的路 径是资源消耗与路径最短需求的最佳平衡结果。
下面继续说明本申请实施例提供的三维虚拟场景的寻路装置455的实施为 软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的 三维虚拟场景的寻路装置455中的软件模块可以包括:显示模块4551,用于根 据虚拟对象在三维虚拟场景的当前位置对应的第一体素数据,显示局部虚拟场 景,其中,所述局部虚拟场景是基于所述第一体素数据渲染得到的,所述局部 虚拟场景是所述三维虚拟场景中位于所述虚拟对象的周围的部分;确定模块45 52,用于根据所述虚拟对象在所述三维虚拟场景的目标位置对应的第二体素数 据以及所述局部虚拟场景,确定所述虚拟对象在所述局部虚拟场景中的寻路策 略,其中,所述寻路策略至少包括低空寻路策略以及高空寻路策略;所述确定 模块4552,还用于根据所述寻路策略确定与所述局部虚拟场景适配的三维路径; 控制模块4553,用于控制所述虚拟对象在所述局部虚拟场景中按照所述三维路 径移动。
在一些实施例中,低空寻路策略用于在目标位置不可达的低空飞行场景下 基于寻路面进行寻路;确定模块4552,还用于:获取虚拟对象的事件状态数据; 当事件状态数据与低空寻路策略适配时,确定第二体素数据与寻路面之间的关 系、以及第一体素数据与寻路面之间的关系;当第二体素数据与寻路面之间的 关系、以及第一体素数据与寻路面之间的关系满足低空寻路条件时,将低空寻 路策略确定为虚拟对象在局部虚拟场景中的寻路策略,其中,低空寻路条件包 括:第二体素数据对应的位置与寻路面之间不存在障碍对象,且第一体素数据 对应的位置与寻路面之间不存在障碍对象。
在一些实施例中,高空寻路策略用于在目标位置不可达的高空飞行场景下 基于天空面进行寻路;确定模块4552,还用于:获取虚拟对象的事件状态数据; 当事件状态数据与高空寻路策略适配时,确定第二体素数据与天空面之间的关 系、以及第一体素数据与天空面之间的关系;当第二体素数据与天空面之间的 关系、以及第一体素数据与天空面之间的关系满足高空寻路条件时,将高空寻 路策略确定为虚拟对象在局部虚拟场景中的寻路策略,其中,高空寻路条件包 括:第二体素数据对应的位置与高空面之间不存在障碍对象,且第一体素数据 对应的位置与高空面之间不存在障碍对象。
在一些实施例中,当第二体素数据与天空面之间的关系、以及第一体素数 据与天空面之间的关系不满足高空寻路条件时,确定模块4552,还用于:确定 第二体素数据以及第一体素数据与寻路面之间的关系;当第二体素数据与寻路 面之间的关系、以及第一体素数据与寻路面之间的关系满足低空寻路条件时, 将低空寻路策略确定为虚拟对象在局部虚拟场景中的寻路策略,其中,低空寻 路条件包括:第二体素数据对应的位置与寻路面之间不存在障碍对象,且第一 体素数据对应的位置与寻路面之间不存在障碍对象。
在一些实施例中,在获取虚拟对象的事件状态数据之前,确定模块4552, 还用于:基于第二体素数据以及局部虚拟场景,确定目标位置与局部虚拟场景 之间的位置关系;当位置关系表征目标位置位于局部虚拟场景外时,确定将执 行获取虚拟对象的事件状态数据的处理。
在一些实施例中,寻路策略还包括近距离寻路策略,近距离寻路策略用于 在目标位置可达的场景下进行寻路;确定模块4552,还用于:基于第二体素数 据以及局部虚拟场景,确定目标位置与局部虚拟场景之间的位置关系;当位置 关系表征目标位置位于局部虚拟场景中时,将近距离寻路策略确定为虚拟对象 在局部虚拟场景中的寻路策略。
在一些实施例中,当寻路策略为近距离寻路策略时,确定模块4552,还用 于:在局部虚拟场景中,以当前位置为起点,通过近距离寻路策略沿当前位置 的三维方向进行预设次数的路点发展处理,得到多个发展路点;当多个发展路 点包括目标位置时,根据多个发展路点形成对应近距离寻路策略的三维路径。
在一些实施例中,当多个发展路点不包括目标位置时,确定模块4552,还 用于:获取虚拟对象的事件状态数据;根据事件状态数据,将虚拟对象在局部 虚拟场景中使用的寻路策略从近距离寻路策略更新为低空寻路策略或高空寻路 策略;根据更新后的寻路策略确定与局部虚拟场景适配的三维路径;控制虚拟 对象在局部虚拟场景中按照更新后的寻路策略确定的三维路径移动。
在一些实施例中,当寻路策略为高空寻路策略时,确定模块4552,还用于: 获取从当前位置指向目标位置的第一方向;以当前位置为起点,获取沿第一方 向的长度为第一距离的第一线段;当第一线段中存在障碍点时,以障碍点为起 点,确定沿第一方向的长度为第二距离的第二线段,其中,障碍点与天空面之 间存在障碍对象;当第二线段中存在解除障碍点时,执行三维寻路处理以确定 障碍点与解除障碍点之间的第一中间路径,并执行垂直升降处理以确定障碍点 与解除障碍点之间的第二中间路径,其中,解除障碍点与天空面之间不存在障 碍对象;将第一中间路径以及第二中间路径中的较短路径与对应第一线段的初 始路径进行连接处理,得到与局部虚拟场景适配的三维路径。
在一些实施例中,确定模块4552,还用于:当第二线段中不存在解除障碍 点,或者当执行三维寻路处理未确定障碍点与解除障碍点之间的第一中间路径 时,执行垂直升降处理以确定当前起点与绕过点之间的第三中间路径,其中, 绕过点与当前起点对应的直线与天空面垂直,且绕过点与天空面之间不存在障 碍对象;将第三中间路径与初始路径进行连接处理,得到与局部虚拟场景适配 的三维路径。
在一些实施例中,确定模块4552,还用于:当第一线段中不存在障碍点时, 将第一线段作为与局部虚拟场景适配的三维路径。
在一些实施例中,当寻路策略为低空寻路策略时,确定模块4552,还用于: 将当前位置与目标位置投影至寻路面,得到投影当前位置以及投影目标位置; 执行多边形寻路处理,以确定局部虚拟场景中寻路面的路点轨迹,并确定路点 轨迹中靠近投影当前位置的邻近路点以及当前位置的高度,其中,路点轨迹是 在寻路面中从投影当前位置向投影目标位置移动的二维轨迹;确定具有高度、 且与邻近路点具有相同二维坐标的插入路点;当当前位置与插入路点之间的第 三线段不存在障碍点、且高度不低于高度阈值时,将当前位置与插入路点之间 的路径确定为与局部虚拟场景适配的三维路径,其中,障碍点与寻路面之间存 在障碍对象。
在一些实施例中,确定模块4552,还用于:当第三线段与寻路面之间不存 在障碍对象、且高度低于第二高度阈值时,基于插入路点进行垂直升高处理, 得到升高插入路点,其中,升高插入路点与插入路点的二维坐标相同,且升高 插入路点的高度不低于第二高度阈值;第一高度阈值高于第二高度阈值,将当 前位置与升高插入路点之间的路径确定为与局部虚拟场景适配的三维路径。
在一些实施例中,确定模块4552,还用于:当满足以下降低处理条件中任 意一个时,基于插入路点进行垂直降低处理,得到降低插入路点,其中,降低 处理条件包括:第三线段不存在所述第二障碍点、高度不低于第二高度阈值, 且低于第一高度阈值;第三线段存在所述第二障碍点,其中,降低插入路点与 插入路点的二维坐标相同,且降低插入路点的高度低于障碍对象的高度;将当 前位置与降低插入路点之间的路径确定为与局部虚拟场景适配的三维路径。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产 品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。 计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该 计算机指令,使得该计算机设备执行本申请实施例上述的三维虚拟场景的寻路 方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存 储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实 施例提供的三维虚拟场景的寻路方法,例如,如图3A-3C示出的三维虚拟场景 的寻路方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EP ROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可 以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代 码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程 性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被 部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被 存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(H TML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专 用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一 个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一 个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互 连的多个计算设备上执行。
综上所述,通过本申请实施例在为三维虚拟场景中的虚拟对象实施路径规 划时,仅基于局部虚拟场景以及目标位置的第二体素数据来确定虚拟对象的三 维路径,进而控制虚拟对象在局部虚拟场景中按照三维路径移动,由于在进行 路径规划时仅基于部分局部数据而非全局数据进行路径规划,因此花费较短的 时间即可确定出较优三维路径并及时控制虚拟对象按照较优三维路径进行移动, 从而提高虚拟对象的移动效率,并有效提高人机交互效率。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。 凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在 本申请的保护范围之内。

Claims (15)

1.一种三维虚拟场景的寻路方法,其特征在于,所述三维虚拟场景是基于体素数据渲染得到的;
所述方法包括:
根据虚拟对象在三维虚拟场景的当前位置对应的第一体素数据,显示局部虚拟场景,其中,所述局部虚拟场景是所述三维虚拟场景中位于所述虚拟对象的周围的部分;
根据所述虚拟对象在所述三维虚拟场景的目标位置对应的第二体素数据以及所述局部虚拟场景,确定所述虚拟对象在所述局部虚拟场景中的寻路策略,其中,所述寻路策略至少包括低空寻路策略以及高空寻路策略;
根据所述寻路策略确定与所述局部虚拟场景适配的三维路径;
控制所述虚拟对象在所述局部虚拟场景中按照所述三维路径移动。
2.根据权利要求1所述的方法,其特征在于,
所述低空寻路策略用于在所述目标位置不可达的低空飞行场景下基于寻路面进行寻路;
所述根据所述虚拟对象在所述三维虚拟场景的目标位置对应的第二体素数据以及所述局部虚拟场景,确定所述虚拟对象在所述局部虚拟场景中的寻路策略,包括:
获取所述虚拟对象的事件状态数据;
当所述事件状态数据与所述低空寻路策略适配时,确定所述第二体素数据与所述寻路面之间的关系、以及所述第一体素数据与所述寻路面之间的关系;
当所述第二体素数据与所述寻路面之间的关系、以及所述第一体素数据与所述寻路面之间的关系满足低空寻路条件时,将所述低空寻路策略确定为所述虚拟对象在所述局部虚拟场景中的寻路策略,其中,所述低空寻路条件包括:所述第二体素数据对应的位置与所述寻路面之间不存在障碍对象,且所述第一体素数据对应的位置与所述寻路面之间不存在所述障碍对象。
3.根据权利要求1或2所述的方法,其特征在于,
所述高空寻路策略用于在所述目标位置不可达的高空飞行场景下基于天空面进行寻路;
所述根据所述虚拟对象在所述三维虚拟场景的目标位置对应的第二体素数据以及所述局部虚拟场景,确定所述虚拟对象在所述局部虚拟场景中的寻路策略,包括:
获取所述虚拟对象的事件状态数据;
当所述事件状态数据与所述高空寻路策略适配时,确定所述第二体素数据与所述天空面之间的关系、以及所述第一体素数据与所述天空面之间的关系;
当所述第二体素数据与所述天空面之间的关系、以及所述第一体素数据与所述天空面之间的关系满足高空寻路条件时,将所述高空寻路策略确定为所述虚拟对象在所述局部虚拟场景中的寻路策略,其中,所述高空寻路条件包括:所述第二体素数据对应的位置与所述高空面之间不存在障碍对象,且所述第一体素数据对应的位置与所述高空面之间不存在所述障碍对象。
4.根据权利要求3所述的方法,其特征在于,当所述第二体素数据与所述天空面之间的关系、以及所述第一体素数据与所述天空面之间的关系不满足高空寻路条件时,所述方法还包括:
确定所述第二体素数据以及所述第一体素数据与寻路面之间的关系;
当所述第二体素数据与寻路面之间的关系、以及所述第一体素数据与所述寻路面之间的关系满足低空寻路条件时,将所述低空寻路策略确定为所述虚拟对象在所述局部虚拟场景中的寻路策略,其中,所述低空寻路条件包括:所述第二体素数据对应的位置与所述寻路面之间不存在障碍对象,且所述第一体素数据对应的位置与所述寻路面之间不存在所述障碍对象。
5.根据权利要求2或3所述的方法,其特征在于,在获取所述虚拟对象的事件状态数据之前,所述方法还包括:
基于所述第二体素数据以及所述局部虚拟场景,确定所述目标位置与所述局部虚拟场景之间的位置关系;
当所述位置关系表征所述目标位置位于所述局部虚拟场景外时,确定将执行获取所述虚拟对象的事件状态数据的处理。
6.根据权利要求1所述的方法,其特征在于,
所述寻路策略还包括近距离寻路策略,所述近距离寻路策略用于在所述目标位置可达的场景下进行寻路;
所述根据所述虚拟对象在所述三维虚拟场景的目标位置对应的第二体素数据以及所述局部虚拟场景,确定所述虚拟对象在所述局部虚拟场景中的寻路策略,包括:
基于所述第二体素数据以及所述局部虚拟场景,确定所述目标位置与所述局部虚拟场景之间的位置关系;
当所述位置关系表征所述目标位置位于所述局部虚拟场景中时,将所述近距离寻路策略确定为所述虚拟对象在所述局部虚拟场景中的寻路策略。
7.根据权利要求1所述的方法,其特征在于,当所述寻路策略为高空寻路策略时,所述根据所述寻路策略确定与所述局部虚拟场景适配的三维路径,包括:
获取从所述当前位置指向所述目标位置的第一方向;
以所述当前位置为起点,获取沿所述第一方向的长度为第一距离的第一线段;
当所述第一线段中存在第一障碍点时,以所述第一障碍点为起点,确定沿所述第一方向的长度为第二距离的第二线段,其中,所述第一障碍点与所述天空面之间存在障碍对象;
当所述第二线段中存在解除障碍点时,执行三维寻路处理以确定所述第一障碍点与所述解除障碍点之间的第一中间路径,并执行垂直升降处理以确定所述第一障碍点与所述解除障碍点之间的第二中间路径,其中,所述解除障碍点与所述天空面之间不存在所述障碍对象;
将所述第一中间路径以及所述第二中间路径中的较短路径与对应所述第一线段的初始路径进行连接处理,得到与所述局部虚拟场景适配的三维路径。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
当所述第二线段中不存在所述解除障碍点,或者当执行所述三维寻路处理未确定所述第一障碍点与所述解除障碍点之间的第一中间路径时,执行所述垂直升降处理以确定所述当前起点与绕过点之间的第三中间路径,其中,所述绕过点与所述当前起点对应的直线与所述天空面垂直,且所述绕过点与所述天空面之间不存在所述障碍对象;
将所述第三中间路径与所述初始路径进行连接处理,得到与所述局部虚拟场景适配的三维路径。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
当所述第一线段中不存在所述第一障碍点时,将所述第一线段作为与所述局部虚拟场景适配的三维路径。
10.根据权利要求1所述的方法,其特征在于,所述当所述寻路策略为低空寻路策略时,所述根据所述寻路策略确定与所述局部虚拟场景适配的三维路径,包括:
将所述当前位置与所述目标位置投影至寻路面,得到投影当前位置以及投影目标位置;
执行多边形寻路处理,以确定所述局部虚拟场景中寻路面的路点轨迹,并确定所述路点轨迹中靠近所述投影当前位置的邻近路点以及所述当前位置的高度,其中,所述路点轨迹是在所述寻路面中从所述投影当前位置向所述投影目标位置移动的二维轨迹;
确定具有所述高度、且与所述邻近路点具有相同二维坐标的插入路点;
当所述当前位置与所述插入路点之间的第三线段不存在第二障碍点、且所述高度不低于第一高度阈值时,将所述当前位置与所述插入路点之间的路径确定为与所述局部虚拟场景适配的三维路径,其中,所述第二障碍点与所述寻路面之间存在障碍对象。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
当所述第三线段不存在所述第二障碍点、且所述高度低于第二高度阈值时,基于所述插入路点进行垂直升高处理,得到升高插入路点,其中,所述升高插入路点与所述插入路点的二维坐标相同,且所述升高插入路点的高度不低于所述第二高度阈值;所述第一高度阈值高于所述第二高度阈值;
将所述当前位置与所述升高插入路点之间的路径确定为与所述局部虚拟场景适配的三维路径。
12.根据权利要求10所述的方法,其特征在于,所述方法还包括:
当满足以下降低处理条件中任意一个时,基于所述插入路点进行垂直降低处理,得到降低插入路点,其中,所述降低处理条件包括:所述第三线段不存在所述第二障碍点、所述高度不低于第二高度阈值,且低于所述第一高度阈值;所述第三线段存在所述第二障碍点,所述降低插入路点与所述插入路点的二维坐标相同,且所述降低插入路点的高度低于所述障碍对象的高度;
将所述当前位置与所述降低插入路点之间的路径确定为与所述局部虚拟场景适配的三维路径。
13.一种三维虚拟场景的寻路装置,其特征在于,包括:
显示模块,用于根据虚拟对象在三维虚拟场景的当前位置对应的第一体素数据,显示局部虚拟场景,其中,所述局部虚拟场景是所述三维虚拟场景中位于所述虚拟对象的周围的部分;
确定模块,用于根据所述虚拟对象在所述三维虚拟场景的目标位置对应的第二体素数据以及所述局部虚拟场景,确定所述虚拟对象在所述局部虚拟场景中的寻路策略;
所述确定模块,还用于根据所述寻路策略确定与所述局部虚拟场景适配的三维路径;
控制模块,用于控制所述虚拟对象在所述局部虚拟场景中按照所述三维路径移动。
14.一种电子设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至12任一项所述的三维虚拟场景的寻路方法。
15.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时,实现权利要求1至12任一项所述的三维虚拟场景的寻路方法。
CN202110485687.2A 2021-04-30 2021-04-30 三维虚拟场景的寻路方法、装置及电子设备 Active CN113082719B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110485687.2A CN113082719B (zh) 2021-04-30 2021-04-30 三维虚拟场景的寻路方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110485687.2A CN113082719B (zh) 2021-04-30 2021-04-30 三维虚拟场景的寻路方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN113082719A true CN113082719A (zh) 2021-07-09
CN113082719B CN113082719B (zh) 2022-07-29

Family

ID=76681193

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110485687.2A Active CN113082719B (zh) 2021-04-30 2021-04-30 三维虚拟场景的寻路方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN113082719B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115862416A (zh) * 2023-01-20 2023-03-28 北京卓翼智能科技有限公司 一种路径规划方法、装置、电子设备及存储介质
CN117719498A (zh) * 2024-02-08 2024-03-19 深圳市欧冶半导体有限公司 路径规划方法、装置、电子设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102901500A (zh) * 2012-09-17 2013-01-30 西安电子科技大学 基于概率a星与智能体混合的飞行器最优路径确定方法
CN107970610A (zh) * 2017-12-18 2018-05-01 苏州蜗牛数字科技股份有限公司 一种3d场景垂直空间飞行路线的规划方法和装置
JP2019179529A (ja) * 2018-03-30 2019-10-17 セコム株式会社 管制装置
CN111714892A (zh) * 2020-06-29 2020-09-29 天津亚克互动科技有限公司 游戏寻路方法及装置、存储介质、计算机设备
CN112090078A (zh) * 2020-08-13 2020-12-18 深圳中清龙图网络技术有限公司 游戏角色移动控制方法、装置、设备和介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102901500A (zh) * 2012-09-17 2013-01-30 西安电子科技大学 基于概率a星与智能体混合的飞行器最优路径确定方法
CN107970610A (zh) * 2017-12-18 2018-05-01 苏州蜗牛数字科技股份有限公司 一种3d场景垂直空间飞行路线的规划方法和装置
JP2019179529A (ja) * 2018-03-30 2019-10-17 セコム株式会社 管制装置
CN111714892A (zh) * 2020-06-29 2020-09-29 天津亚克互动科技有限公司 游戏寻路方法及装置、存储介质、计算机设备
CN112090078A (zh) * 2020-08-13 2020-12-18 深圳中清龙图网络技术有限公司 游戏角色移动控制方法、装置、设备和介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115862416A (zh) * 2023-01-20 2023-03-28 北京卓翼智能科技有限公司 一种路径规划方法、装置、电子设备及存储介质
CN117719498A (zh) * 2024-02-08 2024-03-19 深圳市欧冶半导体有限公司 路径规划方法、装置、电子设备和存储介质
CN117719498B (zh) * 2024-02-08 2024-04-16 深圳市欧冶半导体有限公司 路径规划方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN113082719B (zh) 2022-07-29

Similar Documents

Publication Publication Date Title
CN113082719B (zh) 三维虚拟场景的寻路方法、装置及电子设备
JP5887458B1 (ja) プレイヤの移動履歴に基づいてノンプレイヤキャラクタの経路探索を行うゲームシステム等
JP6114460B1 (ja) ゲームシステム、ゲーム処理方法、ゲームプログラム、およびゲーム装置
CN112717404B (zh) 虚拟对象的移动处理方法、装置、电子设备及存储介质
KR20100101559A (ko) 기록 매체, 생성 지원 장치 및 경로 안내 장치
CN111481931B (zh) 游戏中虚拟对象的寻路控制方法、电子设备及存储介质
CN112090078B (zh) 游戏角色移动控制方法、装置、设备和介质
US20230321535A1 (en) Coordinate axis display method and apparatus applied to virtual environments, terminal, and medium
CN112774201B (zh) 一种虚拟角色掩蔽方法、装置、计算机设备及存储介质
KR102606629B1 (ko) 자율주행 차량을 위한 로드 네트워크 데이터 생성 방법, 장치 및 컴퓨터프로그램
Kuiper et al. Agent vision in multi-agent based simulation systems
WO2021244956A1 (en) Generating simulation environments for testing av behaviour
CN112717400B (zh) 关卡画面的显示方法、装置、设备及介质
CN112439198A (zh) 非暂态计算机可读介质和视频游戏处理系统
JP7341801B2 (ja) ビデオゲーム処理プログラム、及びビデオゲーム処理システム
CN112286188B (zh) 车辆行驶的控制方法、装置、设备及计算机可读存储介质
KR20220085992A (ko) 동적 학습 콘텐츠와 결합된 맞춤형 게임 서비스 제공 시스템 및 방법
CN114247132B (zh) 虚拟对象的控制处理方法、装置、设备、介质及程序产品
JP2021037371A (ja) 情報処理装置、端末装置及びプログラム
Silva et al. Voxel Based Pathfinding with Jumping for Games
WO2024037142A1 (zh) 虚拟对象的移动引导方法、装置、电子设备、存储介质及程序产品
JP2021037140A (ja) ビデオゲーム処理プログラム、及びビデオゲーム処理システム
JP2005204755A (ja) ゲームプログラム
WO2023226569A9 (zh) 虚拟场景中的消息处理方法、装置、电子设备及计算机可读存储介质及计算机程序产品
CN112717405B (zh) 一种路径确定方法与装置

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40047521

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant