CN112807681B - 游戏控制方法、装置、电子设备及存储介质 - Google Patents

游戏控制方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112807681B
CN112807681B CN202110214134.3A CN202110214134A CN112807681B CN 112807681 B CN112807681 B CN 112807681B CN 202110214134 A CN202110214134 A CN 202110214134A CN 112807681 B CN112807681 B CN 112807681B
Authority
CN
China
Prior art keywords
virtual
virtual character
path
game
target
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
CN202110214134.3A
Other languages
English (en)
Other versions
CN112807681A (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 CN202110214134.3A priority Critical patent/CN112807681B/zh
Publication of CN112807681A publication Critical patent/CN112807681A/zh
Application granted granted Critical
Publication of CN112807681B publication Critical patent/CN112807681B/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/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • 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/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • 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/80Special adaptations for executing a specific game genre or game mode
    • A63F13/822Strategy games; Role-playing games
    • 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/80Special adaptations for executing a specific game genre or game mode
    • A63F13/837Shooting of targets
    • 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/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/807Role playing or strategy games
    • 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/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8076Shooting

Abstract

本申请实施例公开了一种游戏控制方法、装置、电子设备及存储介质。该方法包括:根据游戏场景配置信息,利用物理引擎创建虚拟场景;根据运行控制指令,利用物理引擎控制虚拟角色在寻路路径上执行动作;预测所述虚拟角色沿寻路路径移动至目标位置的过程中,是否存在目标虚拟移动体与所述虚拟角色发生碰撞;当预测存在时,控制所述虚拟角色躲避碰撞。本申请通过采用上述方法可以有效避免因虚拟角色与游戏场景中的可移动物体发生碰撞而使游戏画面发生卡顿,进而避免因游戏画面发生卡顿而影响玩家操作的情况,从而提升了玩家的体验。

Description

游戏控制方法、装置、电子设备及存储介质
技术领域
本申请涉及计算机技术领域,更具体地,涉及一种游戏控制方法、装置、电子设备及存储介质。
背景技术
随着计算机技术和互联网技术的迅速发展,电子游戏越来越受欢迎,例如,射击类游戏、战术竞技游戏以及角色扮演类游戏等等。在游戏过程中,虚拟角色可能会与游戏场景中的可移动角色发生碰撞而使游戏画面发生卡顿,从而影响玩家的体验。
发明内容
有鉴于此,本申请实施例提出了一种游戏控制方法、装置、电子设备及存储介质,可以避免因虚拟角色与游戏场景中的可移动角色发生碰撞而使游戏画面发生卡顿的情况。
第一方面,本申请实施例提供了一种游戏控制方法,包括:根据游戏场景配置信息,利用物理引擎创建虚拟场景;根据运行控制指令,利用物理引擎控制虚拟角色在寻路路径上执行动作;预测所述虚拟角色沿寻路路径移动至目标位置的过程中,是否存在目标虚拟移动体与所述虚拟角色发生碰撞;当预测存在时,控制所述虚拟角色躲避碰撞。
第二方面,本申请实施例提供了一种游戏控制装置,所述装置包括:场景创建模块、动作执行模块、碰撞预测模块、躲避控制模块。场景创建模块,用于根据游戏场景配置信息,利用物理引擎创建虚拟场景;动作执行模块,用于根据运行控制指令,利用物理引擎控制虚拟角色在寻路路径上执行动作;碰撞预测模块,用于预测所述虚拟角色沿寻路路径移动至目标位置的过程中,是否存在目标虚拟移动体与所述虚拟角色发生碰撞;躲避控制模块,用于当预测存在时,控制所述虚拟角色躲避碰撞。
第三方面,本申请实施例提供了一种电子设备,包括处理器以及存储器;一个或多个程序被存储在所述存储器中并被配置为由所述处理器执行以实现上述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码被处理器运行时执行上述的方法。
第五方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质获取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的方法。
本申请实施例提供的一种游戏控制方法、装置、电子设备及存储介质,通过根据游戏场景配置信息,利用物理引擎创建虚拟场景,根据运行控制指令,利用物理引擎控制虚拟角色在寻路路径上执行动作时,在预测到虚拟角色沿寻路路径移动至目标位置的过程中,存在目标虚拟移动体与虚拟角色发生碰撞时,控制虚拟角色躲避碰撞,以在游戏过程中,有效避免因虚拟角色与其他玩家控制的虚拟角色或非玩家角色发生碰撞而使游戏画面发生卡顿,进而避免因游戏画面发生卡顿而影响玩家操作的情况,从而提升了玩家的体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例提出的一种系统架构示意图;
图2示出了本申请实施例提出的一种游戏控制方法的流程图;
图3示出了图2中步骤S110的流程示意图;
图4示出了图2中步骤S120的流程示意图;
图5示出了本申请实施例提供的一种游戏场景的寻路示意图;
图6示出了本申请实施例提出的一种游戏控制方法的另一流程图;
图7示出了图6中步骤S250的流程示意图;
图8示出了本申请实施例提供的一种游戏控制方法的另一流程图;
图9示出了本申请实施例提供的一种游戏控制方法的又一流程图;
图10示出了本申请实施例提供的一种游戏场景示意图;
图11示出了图10中S1对应的区域的具体场景示意图;
图12示出了本申请实施例提供的一种游戏场景另一示意图;
图13示出了本申请实施例提供的一种游戏场景另一示意图;
图14示出了本申请实施例提供的一种游戏场景另一示意图;
图15示出了本申请实施例提供的一种游戏场景另一示意图;
图16示出了本申请实施例提供的一种游戏场景另一示意图;
图17示出了本申请实施例提供的一种游戏场景又一示意图;
图18示出了图17中S2对应的区域的具体场景示意图;
图19示出了本申请实施例提出的一种游戏控制装置的结构框图;
图20示出了本申请实施例提出的一种游戏控制装置的另一结构框图;
图21示出了用于执行本申请实施例的方法的电子设备的结构框图;
图22示出了本申请实施例的用于保存或者携带实现根据本申请实施例的方法的程序代码的存储单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
其中,计算机视觉技术(Computer Vision,CV)是一门研究如何使机器“看”的科学。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、OCR、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建等技术。
以计算机视觉技术应用在游戏领域为例,目前,越来越多游戏可以利用计算机视觉技术中包括的三维物体重建、3D技术、虚拟现实以及增强现实等技术中的至少一种来创建游戏场景和虚拟角色。
本申请中提供的游戏控制方法可以应用于一般的游戏测试终端,也可以应用于如图1所示的系统中,该系统可以包括服务器10以及终端20。游戏测试终端以及系统中的服务器10和终端20能够运行支持虚拟场景和虚拟角色的客户端。
其中,系统中的服务器10可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供基础云计算服务的云服务器。系统中的终端20可以是智能手机、平板电脑、笔记本电脑、台式计算机、游戏控制台、车载设备以及电视等,但并不局限于此。
虚拟场景是客户端在游戏测试终端、系统中的服务器10或终端20上运行时显示或提供的场景,可以由一个或多个游戏世界的地图构成。虚拟场景可以对真实世界的仿真世界,也可以是半仿真半虚构的世界,还可以是纯虚构的世界。虚拟场景可以是二维虚拟场景、2.5维虚拟场景和三维虚拟场景中的任意一种,本申请对此不加以限定。
虚拟场景中可以包括虚拟对象,若虚拟场景为三维虚拟场景,则虚拟对象是指在虚拟场景中的利用三维立体模型创建的对象。
虚拟对象可以包括虚拟角色和虚拟物体,虚拟物体可以是虚拟的动物、植物、油桶、墙壁、石块、塔、武器等,用户可以操控游戏中的虚拟角色在虚拟环境中进行行走、跑步、跳跃、射击、格斗、驾驶、使用虚拟武器攻击其他虚拟角色或虚拟物体等动作。
虚拟角色是指虚拟场景中的可活动对象。该可活动对象可以是虚拟人物、虚拟动物、虚拟载具等。其中,当虚拟场景为三维虚拟场景时,虚拟角色可以是基于动画骨骼技术创建的三维立体模型,且每个虚拟角色在虚拟场景中具有自身的形状和体积,占据虚拟场景中的一部分空间。
客户端是指军事仿真程序、虚拟现实游戏程序、增强现实游戏程序、射击类游戏程序(如,第一人称射击游戏程序(First-Person Shooting Game,FPS)、第三人称射击游戏(Third-Person Shooting Game,TPS)、角色扮演类游戏程序、战术竞技游戏程序以及策略游戏程序(Simulation Game,SLG)等中的任意一种程序,且客户端可以在游戏测试终端以及系统中的服务器10和终端20上运行。系统中的终端以及测试终端可以支持Windows操作系统、苹果操作系统、安卓操作系统、IOS操作系统和LINUX操作系统等操作系统中的至少一种操作系统,并且不同操作系统的终端20可以互联。
测试用例是指对上述客户端所指的任意一款程序进行测试任务描述后得到,具体地,测试用例是针对客户端配置一组测试输入、执行条件以及预期结果后得到,运行测试用例是为了核实客户端是否满足某个特定软件需求,进而确保游戏开发的质量。
发明人经过认真的研究发现,目前,人机游戏中由机器(电子设备)控制的虚拟角色、挂机状态下由机器(电子设备)接管控制的虚拟角色或者测试状态下由电子设备控制的虚拟角色等在游戏场景内移动时,仅会控制虚拟角色按照解析得到控件对应的操作方式运动,不会主动进行躲避碰撞,因此,在机器控虚拟角色在游戏场景中移动过程中,可能会与游戏场景内中的可移动物体(如,游戏中的野怪、其他玩家控制的虚拟角色等)发生碰撞,在发生碰撞时,会造成渲染发生碰撞的游戏画面时的数据突增,进而可能会造成游戏卡顿,影响上述其他玩家的操作及体验。
基于此,发明人提出一种游戏控制方法,在该方法中,通过根据游戏场景配置信息,利用物理引擎创建虚拟场景后,当预测到目标虚拟移动体与虚拟角色会发生碰撞时,控制虚拟角色躲避碰撞,从而实现游戏过程中,避免因虚拟角色与游戏场景中的可移动物体发生碰撞而使游戏画面发生卡顿,进而避免因游戏画面发生卡顿而影响玩家操作的情况,从而提升了玩家的体验。
其中,物理引擎可以使用对象属性(动量、扭矩或者弹性)来模拟刚体行为,可以得到更加真实的结果,物理引擎允许有复杂的机械装置,像球形关节、轮子、气缸或者铰链。有些也支持非刚性体的物理属性,比如流体。物理引擎以技术分类进行划分,可以包括PhysX引擎、Havok引擎、Bullet引擎、UE引擎以及Unity引擎等。
PhysX引擎是一种物理运算引擎,可以由CPU计算,但其程序本身在设计上还可以调用独立的浮点处理器(例如GPU和PPU)来计算,也正因为如此,PhysX引擎可以完成像流体力学模拟那样的大计算量的物理模拟计算,且可以使虚拟世界中的物体运动符合真实世界的物理定律,以使游戏更加富有真实感。
Bullet引擎是一种跨平台的物理模拟计算引擎。且Bullet引擎可以广泛应用于游戏开发和电影制作中。
Havok引擎,是一种用于物理(动力学)效应模拟的游戏引擎,为电子游戏所设计,注重在游戏中对于真实世界的模拟。使用撞击监测功能的Havok引擎可以让更多真实世界的情况以最大的拟真度反映在游戏中。
UE引擎,是一种游戏引擎。该引擎主要是为了开发第一人称射击游戏而设计,目前已经被成功地应用于开发潜行类游戏、格斗游戏、角色扮演游戏等多种不同类型的游戏。
Unity引擎,是一种跨平台2D/3D游戏引擎,可以用于创作、运营和变现任何实时互动的2D和3D内容。
下面将结合附图具体描述本申请的各实施例。
请参阅图2,图2所示为本申请一实施例提出的一种可应用于电子设备的游戏控制方法的流程图,该电子设备可以是游戏测试终端,也可以是如图1所示的服务器10或者终端20,该方法包括:
步骤S110:根据游戏场景配置信息,利用物理引擎创建虚拟场景。
在创建虚拟场景前,可以先获得游戏场景配置信息,获取游戏场景配置信息的方式可以是,从源代码编辑器中获取,该源代码编辑器具体可以是UE编辑器,如:UE4编辑器。也可以是从电子设备的存储器或与电子设备关联的数据库中获取。
游戏场景配置信息用于配置虚拟场景,游戏场景配置信息可以包括策划配置信息、导航配置信息、物理场景配置信息以及过滤数据等中的一种或多种。
策划配置信息用于配置地图ID所对应的物理场景、虚拟角色、虚拟移动体、虚拟角色的出生点等信息。地图ID是创建地图时定义的地图名称,物理场景是指地图中包括的物体及各物体对应在地图中的位置,地图中包括的物体可以包括:河流、石块、墙壁、草丛、树木、塔以及建筑等中的一种或多种。虚拟角色的出生点是指虚拟角色在游戏场景中出生时的位置。
导航配置信息用于配置虚拟角色及虚拟移动体等在地图中进行寻路时的可行走区域。
物理场景配置信息用于为上述的物理场景配置物理信息,供物理引擎使用,以使物理引擎为上述的物理场景赋予物理属性,物理属性可以包括:物体的弹性、扭矩、延展性等。
过滤数据与物理场景中的部分物体对应,用于将物理场景中与过滤数据对应的物体设置为不影响虚拟角色通行物体,如将河流、草丛等进行过滤设置,以使虚拟角色在遇到进行过滤设置后的物体时,直接通过而不产生碰撞。
应当理解,在创建虚拟场景前,也可以先获取物理引擎。获取物理引擎的方式可以是,从云端下载物理引擎或者从预设存储器中获取物理引擎。物理引擎可以是PhysX引擎、Havok引擎、Bullet引擎、UE引擎以及Unity引擎等中的任意一种。由于物理引擎能够使虚拟环境中的物理场景、虚拟角色以及虚拟移动体等使用各自对应的属性来模拟刚体行为,因此,可以使创建得到的虚拟场景具有更加真实的视觉效果。
请参阅图3,作为一种实施方式,游戏场景配置信息可以包括导航配置信息、策划配置信息以及物理场景配置信息,上述步骤S110具体可以包括以下步骤:
步骤S112:根据导航配置信息、策划配置信息以及物理场景配置信息创建游戏场景。
具体的,可以根据策划配置信息配置地图所对应的物理场景、虚拟角色、虚拟移动体、虚拟角色的出生点等信息,根据导航配置信息配置虚拟角色及虚拟移动体等在地图中进行寻路时的可行走区域,以及根据物理场景配置信息为物理场景中的物体配置物理信息,从而完成游戏场景的创建。
步骤S114:利用物理引擎为游戏场景中的虚拟对象赋予物理属性得到虚拟场景,虚拟对象包括虚拟角色和虚拟移动体。
具体的,利用物理引擎为游戏场景中的物体,如:河流、石块、墙壁、草丛、树木、塔以及建筑等赋予物理属性,以使虚拟对象及游戏场景中的物体可以使用各自对应的物理属性来模拟刚体行为,从而得到虚拟场景。
应当理解,若游戏场景配置信息还包括过滤数据时,在根据策划配置信息配置地图所对应的物理场景、虚拟角色、虚拟移动体、虚拟角色的出生点等信息之后,可以根据过滤数据将物理场景中与过滤数据对应的物体设置为不影响虚拟角色通行的物体,并执行与上述步骤S112和S114相同或相应的步骤,从而得到虚拟场景。
步骤S120:根据运行控制指令,利用物理引擎控制虚拟角色在寻路路径上执行动作。
上述的虚拟角色可以是运行测试用例过程中用于模拟玩家操作的虚拟角色;也可以是人机对战过程中,机器(电子设备,如终端或服务器)控制的虚拟角色;还可以是玩家在挂机状态下,机器(电子设备,如终端或服务器)接管控制的与该玩家对应的虚拟角色等。
其中,运行控制指令用于控制虚拟角色在虚拟场景中执行相应的行为动作。运行控制指令中可以包括与虚拟角色对应的寻路指令、技能释放指令、技能躲避指令以及物品使用指令中的一种或几种的组合。
利用物理引擎控制虚拟角色在寻路路径上执行动作,可以使得虚拟角色在执行行为动作时,基于物理引擎按照真实世界中的各种运动规律来模拟进行,行为动作更加真实,所获得的数据也更接近真实的游戏过程中产生的数据。
请参阅图4,作为一种实施方式,运行控制指令包括与虚拟角色对应的寻路指令,上述步骤S120包括:
步骤S122:根据与虚拟角色对应的寻路指令,得到起始位置和目标位置。
寻路指令对应有起始位置和目标位置,且寻路指令用于控制对应的虚拟角色在虚拟场景中根据起始位置和目标位置得到最优路径。
步骤S124:获取虚拟场景中障碍物的位置信息。
虚拟场景中的障碍物位置为虚拟角色不可通行的位置,障碍物可以是石块、墙壁、树木、塔以及建筑等。
步骤S126:根据障碍物的位置信息、起始位置和目标位置得到虚拟角色的寻路路径,并控制虚拟角色在寻路路径上执行动作。
根据障碍物的位置信息、起始位置和目标位置得到虚拟角色的寻路路径的方式具体可以是,利用寻路算法对障碍物的位置信息、起始位置和目标位置在虚拟场景的位置信息计算起始位置与目标位置之间的最优路径。上述的寻路算法具体可以是A*寻路算法、蚁群算法等中的任意一种。
如图5所示,获得如图5中的虚拟角色的起始位置K1、目标位置K2以及障碍物(花坛、建筑物等)的位置后,根据起始位置K1和目标位置K2以及障碍物(如图5中的花坛)的位置信息利用寻路算法可以得到虚拟角色的寻路路径,该寻路路径可以是如图5中K1和K2之间的虚线箭头所指向的路径,当虚拟角色在寻路路径上移动时,不会与图中所示的花坛发生碰撞。
考虑到障碍物通过在虚拟场景中占据一定的体积,虚拟角色在虚拟场景中移动过程中在遇到障碍物时需要绕过障碍物上述步骤S126具体可以是,根据障碍物的位置信息得到障碍物边界;根据障碍物边界以及虚拟角色的起始位置和目标位置得到虚拟角色的寻路路径,其中,寻路路径上的点位于障碍物边界外,即,如图5所示的,寻路路径上的点位于花坛的边界外。
具体的,在进行寻路时,可以对障碍物和虚拟角色的所在地图划分为大小相同的多个小方格,并按照A*寻路算法找出起始位置所在方格与目标位置所在方格之间的路径,使障碍物边界所对应的任意一个方格均不在该路径上。
作为另一种实施方式,运行控制指令包括寻路指令和虚拟角色对应的技能释放指令,上述步骤S120包括:根据运行控制指令,利用物理引擎控制虚拟角色在寻路路径上移动时,检测距离虚拟角色预设距离范围内是否存在待攻击角色,若存在,则根据待攻击角色的位置及虚拟角色所在位置生成攻击指向路径,并沿攻击指向路径释放攻击技能。
其中,待攻击角色是指虚拟场景中能够响应于虚拟角色释放的技能攻击,使其状态发生改变的物体或虚拟移动体,如虚拟场景中的野怪、塔等。
作为又一种实施方式,运行控制指令包括寻路指令和虚拟角色对应的技能躲避指令,上述步骤S120包括:根据运行控制指令,利用物理引擎控制虚拟角色在寻路路径上移动时,检测虚拟角色所在位置的预设距离范围内是否存在来自攻击角色释放的攻击技能,若存在,则根据待攻击角色的位置及攻击角色所在位置生成攻击指向路径,并根据攻击指向路径躲避技能。
作为再一种实施方式,运行控制指令包括寻路指令和物品使用指令,上述步骤S120包括:根据运行控制指令,利用物理引擎控制虚拟角色在寻路路径上移动时,检测与虚拟角色对应的物品剩余量(如,药包、血量等)是否小于预设阈值,在小于预设阈值时,检测是否存在对应的物品,并在存在时使用该物品以增加虚拟角色的物品剩余量。
步骤S130:预测所述虚拟角色沿寻路路径移动至目标位置的过程中,是否存在目标虚拟移动体与所述虚拟角色发生碰撞。
其中,上述的虚拟移动体可以是虚拟场景中的除虚拟角色之外可以移动的虚拟物体,如野怪、NPC(Non-Player Character,非玩家角色)等。
上述预测虚拟角色沿寻路路径移动至目标位置的过程中,是否存在目标虚拟移动体与虚拟角色发生碰撞的方式可以有多种。
作为一种实施方式,可以检测虚拟角色预设距离范围内是否存在虚拟移动体,若存在,则根据虚拟角色的位置和速度以及到所述虚拟角色的距离小于距离阈值的虚拟移动体的位置和速度预测虚拟角色沿寻路路径移动至目标位置的过程中,预测是否存在目标虚拟移动体与虚拟角色发生碰撞。
作为另一种实施方式,可以通过获取虚拟角色在虚拟场景中的位置和速度,以及获取虚拟场景中的各虚拟移动体的位置和速度,根据虚拟角色的位置和速度以及虚拟场景中的各虚拟移动体的位置和速度,预测虚拟角色沿寻路路径移动至目标位置的过程中,是否存在虚拟移动体与虚拟角色发生碰撞。
其中,上述各种方式中,预测是否存在目标虚拟移动体与虚拟角色发生碰撞的方式可以是利用碰撞检测算法预测是否存在目标虚拟移动体与该虚拟角色内发生碰撞。该碰撞检测算法可以包括GJK碰撞检测算法以及基于分离轴定理的碰撞检测算法等中的一种或多种。
作为又一种实施方式,还可以是利用测试碰撞盒检测在虚拟角色沿寻路路径移动至目标位置的过程中,是否存在目标虚拟移动体与该虚拟角色发生碰撞。具体的,在该种方式下,可以以虚拟角色的三维虚拟模型上的任意一点为起点,例如,以虚拟角色的三维虚拟模型的中心点为起点,向该虚拟角色的速度方向周期性地射出碰撞盒子。碰撞盒子用于进行碰撞检测,碰撞盒子在虚拟环境画面上不可见。且可以根据虚拟角色的三维虚拟模型的形状及大小来确定碰撞盒子的形状及大小,使碰撞盒子可以表征虚拟角色的三维虚拟模型,然后周期性地向虚拟角色的速度方向的前方发射碰撞盒子,用碰撞盒子来检测以当前的速度方向进行移动时虚拟角色会不会撞到虚拟环境中的其他三维虚拟模型,若碰撞盒子检测到了碰撞,则可以确定虚拟角色的前方存在虚拟移动体;若碰撞盒子没有检测到虚拟移动体,则可以确定虚拟角色的前方不存在虚拟移动体。碰撞盒子的射出距离和射出周期可以任意配置,例如,碰撞盒子的射出距离可以是5cm,射出周期可以是0.1秒。此外,碰撞盒子的射出速度要远高于虚拟角色的速度,以便碰撞盒子在虚拟角色撞上虚拟移动体之前检测到虚拟移动体。
步骤S140:当预测存在时,控制所述虚拟角色躲避碰撞。
其中,控制虚拟角色躲避碰撞的方式可以有多种。
作为一种方式,控制虚拟角色躲避碰撞的方式可以是:控制虚拟角色按照与其原速度方向呈预设夹角的方向移动。其中,该夹角可以是180度,即沿原速度方向的反方向移动;该夹角也可以是90度,即沿垂直于原速度方向的方向移动;该夹角还可以是60度、45度、30度等任意角度。
作为另一种方式,控制虚拟角色躲避碰撞的方式还可以是,调整虚拟角色的移动速度,如增大或减小虚拟角色的速度大小,以躲避碰撞。如,在原有速度基础上不改变速度方向并增加或减少百分之十的速度大小。
作为另一种方式,控制虚拟角色躲避碰撞的方式还可以是,同时虚拟角色的速度大小和速度方向,例如,在增大速度的同时调整速度方向,或者在减小速度的同时调整速度方向。
作为另一种方式,控制虚拟角色躲避碰撞的方式还可以根据虚拟角色的位置和速度以及目标虚拟移动体的位置和速度,利用碰撞避免算法进行计算得到虚拟角色的目标速度,并控制虚拟角色按照目标速度移动以躲避碰撞。
应当理解,以上描述的各种方式中提到的速度为矢量,其具有速度大小和速度方向,即虚拟角色是按照其对应的速度的速度大小和速度方向移动的。
作为又一种方式,还可以是以虚拟角色的位置为起点,沿指向该虚拟角色的速度方向周期性的射出碰撞检测盒,碰撞检测盒用于检测与虚拟移动体的碰撞;获取碰撞检测盒与虚拟移动体发生碰撞的碰撞点;根据碰撞点确定虚拟角色的躲避方向,并根据躲避方向控制虚拟角色躲避碰撞。
本申请提供的一种游戏控制方法,通过根据游戏场景配置信息,利用物理引擎创建虚拟场景;根据运行控制指令,利用物理引擎控制虚拟角色在寻路路径上执行动作;预测虚拟角色沿寻路路径移动至目标位置的过程中,是否存在目标虚拟移动体与虚拟角色发生碰撞;当预测存在时,控制虚拟角色躲避碰撞,使得游戏过程中,避免因虚拟角色与游戏场景中的可移动物体发生碰撞而使游戏画面发生卡顿,进而避免因游戏画面发生卡顿而影响玩家操作的情况,从而提升了玩家的体验。进一步的,本申请通过在预测到虚拟角色与游戏场景内中的可移动物体发生碰撞时,控制虚拟角色躲避碰撞,从而使虚拟角色根据运行控制指令运行过程中真实模拟人的操作,从而进一步提升玩家的操作及体验。
请参阅图6,图6所示为本申请一实施例提出的一种可应用于电子设备的游戏控制方法的流程图,该电子设备可以是游戏测试终端,也可以是如图1所示的服务器10或者终端20,在游戏场景配置信息和运行控制指令来自测试用例时,该方法包括:
步骤S210:根据测试用例中的游戏场景配置信息,利用物理引擎创建虚拟场景。
在进行测试前,可以先获得测试用例,获取测试用例的方式可以是,从源代码编辑器中获取测试用例,该源代码编辑器具体可以是UE编辑器,如:UE4编辑器。
步骤S220:根据测试用例中的运行控制指令,利用物理引擎控制虚拟角色在寻路路径上执行动作。
步骤S230:预测虚拟角色沿寻路路径移动至目标位置的过程中,是否存在目标虚拟移动体与虚拟角色发生碰撞。
步骤S240:当预测存在时,控制虚拟角色躲避碰撞,并采集运行测试用例过程中产生的数据。
其中,关于控制虚拟角色躲避碰撞的方式可以参阅前文对步骤S140的具体描述,在此处不做一一赘述。
运行测试用例过程中产生的数据可以包括电子设备在调度物理引擎运行渲染该测试用例对应的游戏画面的逻辑时获取的用于渲染该测试用例对应的游戏画面的内存数据。即,运行测试用例过程中产生的数据可以包括测试用例对应的游戏画面的内存数据。
运行测试用例过程中产生的数据也可以包括运行测试用例过程中产生的日志信息以及录屏数据等中的至少一种。其中,日志信息为中记录相关的运行记录,例如,记录针对运行测试指令的响应结果,录屏数据为运行测试用例中录制的游戏画面。
步骤S250:根据数据确定测试用例在运行时的测试结果。
其中,根据数据确定测试用例在运行时的测试结果可以是:根据内存数据、运行测试用例过程中产生的日志信息以及录屏数据中的至少一种确定测试用例在运行时的测试结果。
如图6所示,作为一种实施方式,数据包括用于渲染测试用例对应的游戏画面的内存数据,上述步骤S250包括:
步骤S252:根据该每帧游戏画面的内存数据和对应的预期数据确定每帧游戏画面的测试结果。
其中,每帧游戏画面的内存数据可以包括的虚拟角色或虚拟移动体等各自对应的在虚拟场景中的实际位置和实际速度,每帧游戏画面对应的预期数据可以包括虚拟角色或虚拟移动体等各自对应在虚拟场景中的预期位置和预期速度,通过检测每帧游戏画面的内存数据与对应的预期数据是否匹配来确定每帧游戏画面的测试结果。
步骤S254:根据每帧游戏画面的测试结果确定测试用例的测试结果。
根据每帧游戏画面的测试结果确定测试用例的测试结果的方式可以是:统计测试用例对应的所有游戏画面数量和测试结果为异常的游戏画面的数量,根据所有游戏画面数量和测试结果为异常的游戏画面的数量得到游戏画面为异常的比例,根据游戏画面为异常的比例和一比例阈值得到测试用例的测试结果。
作为另一种实施方式,数据包括内存数据和日志信息,上述步骤S150包括:根据运行测试用例过程中产生的日志信息和内存数据共同确定测试用例在运行过程中的测试结果。
在该种方式下,可以采用如步骤S152相同或相应的步骤根据每帧游戏画面的内存数据和对应的预期数据确定该每帧游戏画面的测试结果,并可以将每帧游戏画面的测试结果与对应的预期数据进行比对,得到每帧游戏画面对应的比对结果,并根据对比结果为异常的游戏画面对应的画面产生时刻和日志信息中记录的运行记录的记录时间对比对结果进行修正,并采用如步骤S154相似的步骤根据修正后的比对结果得到测试结果。
本申请提供的一种游戏控制方法,通过根据测试用例中的游戏场景配置信息,利用物理引擎创建虚拟场景;根据测试用例中的运行控制指令,利用物理引擎控制虚拟角色在寻路路径上执行动作;预测虚拟角色沿寻路路径移动至目标位置的过程中,是否存在目标虚拟移动体与虚拟角色发生碰撞;当预测存在时,控制虚拟角色躲避碰撞,并采集运行测试用例过程中产生的数据;根据数据确定测试用例在运行时的测试结果。通过在测试过程中预测到存在目标虚拟移动体与虚拟角色发生碰撞时,控制虚拟角色躲避碰撞,以达到更真实地模拟玩家控制虚拟角色移动时的游戏场景的目的,从而使电子设备在更真实的游戏场景下使获得的测试过程中的数据更准确,进而使测试结果更准确。
请参阅图8,图8示出了一种游戏控制方法,该游戏控制方法可以应用于服务器中,服务器通常用于与多个终端连接,在服务器运行游戏时会接收终端发送的游戏操作信息,以根据游戏操作信息更新目标游戏的实时游戏画面,将更新后的实时游戏画面同步给终端从而实现多人在线游戏。为了使服务器运行测试用例来模拟多人在线游戏时,能够获得更准确测试结果,本申请提供的游戏控制方法包括以下步骤:
步骤S310:根据游戏场景配置信息,利用物理引擎创建虚拟场景,虚拟场景中包括至少两个虚拟角色。
步骤S320:根据每个虚拟角色分别对应的运行控制指令,利用物理引擎控制各虚拟角色在对应的寻路路径上执行动作。
步骤S330:预测目标虚拟角色沿寻路路径移动至目标位置的过程中,是否存在目标虚拟移动体或者其他虚拟角色与目标虚拟角色发生碰撞。
其中,上述的目标虚拟角色为测试用例对应的至少两个虚拟角色中的任意一个。针对目标虚拟角色,可以利用与上述步骤S130相似的方式预测目标虚拟角色在对应的寻路路径上执行动作过程中,是否存在目标虚拟移动体或其他虚拟角色与目标虚拟角色发生碰撞。其他虚拟角色是指测试用例中对应的至少两个虚拟角色中除目标虚拟角色之外的虚拟角色。
步骤S340:当预测存在目标虚拟移动体与目标虚拟角色发生碰撞时,控制目标虚拟角色躲避碰撞,或者当预测存在其他虚拟角色与目标虚拟角色发生碰撞时,控制目标虚拟角色以及其他虚拟角色中的至少一个躲避碰撞。
控制目标虚拟角色以及控制其他虚拟角色躲避碰撞时,具体的控制方式可以参阅前文中对步骤S240的具体描述,在此不作一一赘述。
作为一种实施方式,游戏场景配置信息和运行控制指令来自测试用例,游戏控制方法还包括:
采集运行测试用例过程中产生的数据,并根据数据确定测试用例在运行时的测试结果。
通过采用本申请实施例中的游戏控制方法,根据游戏场景配置信息,利用物理引擎创建虚拟场景,根据与每个虚拟角色分别对应的运行控制指令,利用物理引擎控制各虚拟角色在对应的寻路路径上执行动作,预测目标虚拟角色沿寻路路径移动至目标位置的过程中,是否存在目标虚拟移动体或者其他虚拟角色与目标虚拟角色发生碰撞,当预测存在目标虚拟移动体与目标虚拟角色发生碰撞时,控制目标虚拟角色躲避碰撞,或者当预测存在其他虚拟角色与目标虚拟角色发生碰撞时,控制目标虚拟角色以及其他虚拟角色中的至少一个躲避碰撞。实现在服务器执行游戏控制方法过程中真实模拟多人在线游戏时的场景,避免因虚拟角色与游戏场景中的可移动物体发生碰撞而使游戏画面发生卡顿,进而避免因游戏画面发生卡顿而影响玩家操作的情况,从而提升了玩家的体验。进一步的,在游戏场景配置信息和运行控制指令来自测试用例时,通过在执行上述的游戏控制方法的过程中采集运行测试用例过程中产生的数据,并根据数据确定测试用例在运行时的测试结果,从而使服务器在更真实的游戏场景下使获得的测试过程中的数据更准确,进而使测试结果更准确。
请参阅图9,本申请提供了一种游戏控制方法,应用于电子设备,该方法包括:
步骤S401:获取导航配置信息、策划配置信息、物理场景配置信息以及过滤数据。
具体的,可以从游戏开发编辑器(如UE4编辑器)中导出上述的策划配置信息、导航配置信息、物理场景配置信息以及过滤数据,在获取到上述的配置信息之后,还可以从预设存储器或网址中获取物理引擎(如PhysX引擎,其具备刚体运动计算功能、碰撞检测功能以及角色控制功能),以及获取用户通过网页操作的方式输入的针对虚拟角色的配置信息(如,控制虚拟角色执行运行控制指令的控制信息,其中,该运行控制指令可以包括寻路指令)。
步骤S402:根据测试用例中的导航配置信息、策划配置信息以及物理场景配置信息创建游戏场景。
步骤S403:利用物理引擎为游戏场景中的虚拟对象赋予物理属性得到虚拟场景。
步骤S404:将虚拟场景中与过滤数据对应的虚拟对象进行过滤设置以完成虚拟场景的创建。
其中,测试用例中还可以包括多种场景配置逻辑,在完成过滤设置之后,还可以基于多种场景配置逻辑对虚拟场景进行配置。其中,多种场景配置逻辑可以包括终点变更配置逻辑、信息采集逻辑以及组队请求响应逻辑等中的至少一种。
步骤S405:获得虚拟角色的寻路路径。
具体的上述步骤S405可以是根据与虚拟角色对应的寻路指令得到起始位置和目标位置,获取虚拟场景中障碍物的位置信息,根据障碍物的位置信息、起始位置和目标位置得到虚拟角色的寻路路径。
步骤S406:控制虚拟角色在寻路路径上执行动作过程中躲避碰撞。
其中,步骤S406具体可以是:获取在虚拟角色的寻路路径上执行动作时的位置和速度,以及虚拟场景中的虚拟移动体的位置和速度;根据虚拟角色在寻路路径上执行动作时的位置和速度以及虚拟移动体的位置和速度,预测在虚拟角色的寻路路径上执行动作过程,是否存在虚拟移动体与该虚拟角色碰撞。若存在目标虚拟移动体与虚拟角色发生碰撞,则可以控制虚拟角色躲避虚拟移动体,避免碰撞,应当理解,在执行上述步骤的过程中,还可以运行测试用例中的各种场景配置逻辑。
在本实施方式中,在控制虚拟角色在寻路路径在执行动作过程中,还可以运行测试用例中的各种场景配置逻辑,以及可以为虚拟场景增加气象场景信息,如增加刮风、下雨以及雷电等气象场景信息。
作为一种方式,场景配置逻辑可以包括终点变更配置逻辑,在寻路路径上移动过程中运行测试用例中的场景配置逻辑的方式可以是:虚拟角色在寻路路径上移动过程中移动至与终点变更配置逻辑对应的目标位置时,响应于终点变更配置逻辑,根据目标位置和终点变更配置逻辑对应的变更后的终点位置生成新的寻路路径,并在该新的寻路路径上执行动作。
作为另一种方式,场景配置逻辑可以包括信息采集逻辑,在寻路路径上移动过程中运行测试用例中的场景配置逻辑的方式可以是:在寻路路径上移动过程中,响应于信息采集逻辑,每间隔预设时长采集虚拟角色在虚拟场景中的位置和速度信息。
作为又一种方式,场景配置逻辑可以包括组队请求响应逻辑,在寻路路径上移动过程中运行测试用例中的场景配置逻辑的方式可以是:在寻路路径上移动过程中,响应于组队请求响应逻辑生成响应结果,该响应结果为同意组队或拒绝组队。步骤S407:获取运行测试用例过程中的数据。其中,步骤S407可以是:采用多线程数据方式以及UDP数据收集方式收集运行测试用例过程中产生的数据,且运行测试用例过程的数据包括日志信息、录屏数据以及每帧游戏画面的内存数据等中的一种或多种。
步骤S408:根据数据确定测试用例在运行时的测试结果。
其中,步骤S408具体可以是,若数据包括每帧游戏画面对应的内存数据,电子设备根据该每帧游戏画面的内存数据和对应的预期数据确定该每帧游戏画面的测试结果,并根据该每帧游戏画面的测试结果确定该测试用例的测试结果,从而确保测试结果的准确性。
需要说明的是,当电子设备为终端时该终端可以与服务器连接,终端还可以获取虚拟角色的当前位置和速度等参数,通过接入层中的TCP协议或KCP协议对参数进行封装后发送给服务器,以使服务器校验和广播该参数以及基于该参数生成反馈数据,终端通过接入层接收服务器反馈的反馈数据,在采用多线程数据方式以及UDP数据收集方式收集运行测试用例过程中产生的数据时,具体的,可以采用多线程数据收集方式用于收集运行测试用例过程中的内存数据,以及采用UDP数据收集方式进行丢包统计以及获取反馈的错误数据等。
下面将结合参阅图10、图11、图12、图13以及图14,以该游戏控制方法应用在游戏测试终端或图1中的终端上进行游戏测试,且所使用的测试用例为多人在线战术竞技游戏程序对应的测试用例为例,对上述实施例中的方法进行详细的举例说明。
请参照图10,根据测试用例中的游戏场景配置信息,利用物理引擎创建虚拟场景,根据虚拟角色A对应的寻路指令得到的虚拟角色A对应的起始位置Q1和目标位置Q2,根据起始位置Q1和目标位置Q2以及虚拟场景中障碍物的位置信息得到虚拟角色A的寻路路径(如图10中的Q1与Q2之间的路径)。根据测试用例中的运行控制指令控制虚拟角色A利用物理引擎在寻路路径上按照速度V1移动。
其中,虚拟场景中还包括虚拟移动体B、虚拟移动体C、虚拟移动体D、虚拟移动体E以及虚拟移动体F。上述的各虚拟移动体可以根据对应的运行逻辑在游戏场景中移动。需要说明的是,虚拟移动体或虚拟移动体各自对应的箭头的指向表征其移动时的速度方向,虚拟移动体或虚拟移动体各自对应的箭头的长短表征其移动时的速度大小。
请结合参照图11,当预测到虚拟角色A在寻路路径上按照速度V1移动过程中,存在按照速度V2移动的虚拟移动体B与该虚拟角色A发生碰撞时,若不及时控制虚拟角色A躲避虚拟移动体B,虚拟角色A则会与虚拟移动体B发生如图12所示的碰撞,由于用户真实操作虚拟角色A时通常不会产生如图12所示的游戏画面,且虚拟角色A与虚拟移动体B发生碰撞时,会生成碰撞日志数据,同时在终端渲染游戏画面时,会使得渲染游戏画面过程中内存数据突增,造成游戏测试结果不准确。基于此,为避免产生如图12所示的游戏画面,本申请中通过在预测到虚拟角色A在寻路路径上按照速度V1移动过程中,存在虚拟移动体B与该虚拟角色发生碰撞时,调整虚拟角色A的速度大小和/或方向,以使虚拟角色A按照调整后的速度V1’移动(图13仅示出了调整虚拟角色A的速度方向),使虚拟角色A不会与虚拟移动体B发生碰撞。在虚拟角色A按照调整后的速度V1’移动且虚拟移动体B按照原有的速度V2移动一段距离后,例如,虚拟角色A移动至图14所示的Q3点时,若按照原有的速度V1移动时,不会再与虚拟移动体B发生碰撞,则可以根据Q3和Q2生成新的寻路路径(Q2与Q3之间的路径),并控制虚拟角色A按照速度V1在该新的寻路路径移动,采集运行测试用例过程产生的数据,以根据数据确定测试用例在运行时的测试结果。
通过在终端上运行上述的游戏控制方法,可以避免测试过程中,虚拟角色与虚拟移动体发生碰撞,而生成碰撞日志数据,以及避免因虚拟角色与虚拟移动体发生碰撞造成终端渲染游戏画面时内存数据突增的情况,因此,通过采用上述的游戏控制方法,可以确保测试过程中产生的数据的可靠性,从而使根据数据确定测试用例在运行时的测试结果更准确。
下面将结合参阅图15、图16、图17以及图18所示,以该游戏控制方法应用在图1中的服务器上进行测试,且该游戏控制方法所使用的测试用例为多人在线战术竞技游戏程序对应的测试用例为例,对上述实施例中的方法进行详细的举例说明。
根据测试用例中的游戏场景配置信息,利用物理引擎创建虚拟场景。测试用例中包括至少两个虚拟角色,(图15至图17仅示出了测试用例包括虚拟角色A和虚拟角色B的情况),应当理解虚拟场景中还包括其他的虚拟移动体,图中15至图17中仅示出了还包括虚拟移动体C、虚拟移动体D、虚拟移动体E、虚拟移动体F的情况,上述的各虚拟移动体可以根据对应的运行逻辑在游戏场景中移动。
请参照图15,根据虚拟角色A对应的寻路指令得到虚拟角色A对应的起始位置Q1和目标位置Q2,根据起始位置Q1、目标位置Q2以及虚拟场景中障碍物的位置信息得到虚拟角色A的寻路路径(如图14中的Q1与Q2之间的路径)。根据虚拟角色B对应的寻路指令得到虚拟角色B对应的起始位置P1和目标位置P2,根据起始位置P1、目标位置P2以及虚拟场景中障碍物的位置信息得到虚拟角色B的寻路路径(如图15中的P1与P2之间的路径)。
根据测试用例中与虚拟角色A和与虚拟角色B分别依据对应的运行控制指令控制虚拟角色A和虚拟角色B利用物理引擎在各自对应的寻路路路径上移动时(即,虚拟角色A按照速度V1在Q1与Q2之间的路径上移动,虚拟角色B按照速度V2在P1与P2之间的路径上移动),针对任意目标虚拟角色,预测是否存在虚拟移动体或其他虚拟角色与该目标虚拟角色发生碰撞。
根据上述的预测方式可以得到图15中的虚拟角色B与虚拟角色A会发生碰撞。通过调整虚拟角色A和虚拟角色B中的至少一个的速度,可以使虚拟角色A与虚拟角色B避免发生碰撞。
应当理解,关于控制虚拟角色A或虚拟角色B中的任意一个躲避碰撞的情况,可以参阅前文对图10至图14的具体描述,在此不做具体赘述。
请参照图16,图16示出了同时调整虚拟角色A和虚拟角色B的速度的示意图,即将虚拟角色A的速度由V1调整为V1’,以及将虚拟角色B的速度由V2调整为V2’,以使虚拟角色A和虚拟角色B不会发生碰撞。请参照图17所示,在虚拟角色A按照速度V1’移动至Q3位置,且在虚拟角色按照速度V2’移动至P3位置后,若虚拟角色A按照V2移动,虚拟角色B按照V2移动时不会发生碰撞,则还可以根据虚拟角色A躲避碰撞后的位置Q3和对应的寻路路径的终点Q2得到新的寻路路径(如图17中Q2与Q3之间的路径),以及根据虚拟角色B躲避碰撞后的位置P3及其对应的寻路路径的终点P2生成新的寻路路径(如图17中P2与P3之间的路径)。如图18所示,控制虚拟角色A按照速度V1在对应的新的路径上移动以及控制虚拟角色B按照速度V2在对应的新的寻路路径上移动,并采集运行测试用例过程产生的数据,以根据数据确定测试用例在运行时的测试结果。
通过在服务器上运行上述的游戏控制方法,可以避免测试过程中,目标虚拟角色与其他虚拟角色或虚拟移动体发生碰撞,而生成碰撞日志数据,以及避免服务器渲染目标虚拟角色与其他虚拟角色或虚拟移动体发生碰撞时的游戏画面时内存数据突增的情况。因此,通过采用上述的游戏控制方法,可以实现在服务器端真实模拟多人在线游戏时的效果,确保测试过程中产生的数据的可靠性,从而使根据数据确定测试用例在运行时的测试结果更准确。
请参阅图19,图19示出了本申请提供了一种游戏控制装置500,包括场景创建模块510、动作执行模块520、碰撞预测模块530以及躲避控制模块540。
场景创建模块510,用于根据游戏场景配置信息,利用物理引擎创建虚拟场景。
作为一种方式,场景创建模块510具体用于根据导航配置信息、策划配置信息以及物理场景配置信息创建游戏场景;利用物理引擎为游戏场景中的虚拟对象赋予物理属性得到虚拟场景,虚拟对象包括虚拟角色和虚拟移动体。
动作执行模块520,用于根据运行控制指令控制虚拟角色利用物理引擎在寻路路径上执行动作。
其中,动作执行模块520包括:位置信息获得子模块和动作执行子模块。
位置信息获得子模块用于根据与虚拟角色对应的寻路指令得到虚拟角色的起始位置和目标位置,以及用于获取虚拟场景中障碍物的位置信息。
动作执行子模块,用于根据虚拟移动体的位置信息以及虚拟角色的起始位置和目标位置得到虚拟角色的寻路路径,控制虚拟角色在寻路路径上执行动作。
动作执行子模块具体还用于,根据障碍物的位置信息得到障碍物边界;根据障碍物边界、起始位置和目标位置得到虚拟角色的寻路路径,其中,寻路路径上的点位于障碍物边界外。
碰撞预测模块530,用于预测虚拟角色沿寻路路径移动至目标位置的过程中,是否存在目标虚拟移动体与虚拟角色发生碰撞。
作为一种方式,碰撞预测模块530,还用于根据虚拟角色的位置和各障碍物的位置确定是否存在到虚拟角色的距离小于距离阈值的虚拟移动体;在存在时,基于虚拟角色的位置和速度以及到虚拟角色的距离小于距离阈值的虚拟移动体的位置和速度,利用碰撞检测算法,预测虚拟角色沿寻路路径移动至目标位置的过程中,是否存在目标虚拟移动体与虚拟角色发生碰撞。
躲避控制模块540,用于当预测存在虚拟移动体与该虚拟角色发生碰撞时,控制虚拟角色躲避碰撞。
其中,躲避控制模块540还用于根据虚拟角色的位置和速度以及目标虚拟移动体的位置和速度,利用碰撞避免算法进行计算得到虚拟角色的目标速度,并控制虚拟角色按照目标速度移动以躲避碰撞。
请参阅图20,作为一种实施方式,游戏场景配置信息和运行控制指令来自测试用例时,装置还包括数据采集模块550和结果确定模块560。
数据采集模块,用于采集运行测试用例过程中产生的数据。
结果确定模块560,用于根据数据确定测试用例在运行时的测试结果。
作为一种方式,结果确定模块560包括:内存数据获取子模块和结果确定子模块。
内存数据获取子模块,用于获取测试用例对应的每帧游戏画面的内存数据。
结果确定子模块,用于根据每帧游戏画面的内存数据和对应的预期数据确定每帧游戏画面的测试结果,以及用于根据每帧游戏画面的测试结果确定测试用例的测试结果。
作为一种方式,当游戏控制方法应用于服务器,且虚拟场景中的虚拟角色为至少两个时,动作执行模块520还用于根据测试用例中与每个虚拟角色分别对应的运行控制指令,利用物理引擎控制各虚拟角色在对应的寻路路径上执行动作;碰撞预测模块530,还用于预测目标虚拟角色沿寻路路径移动至目标位置的过程中,是否存在障碍物或者其他虚拟角色与目标虚拟角色发生碰撞。躲避控制模块540,还用于当预测存在目标虚拟移动体与目标虚拟角色发生碰撞时,控制目标虚拟角色躲避碰撞,或者当预测存在其他虚拟角色与目标虚拟角色发生碰撞时,控制目标虚拟角色以及其他虚拟角色中的至少一个躲避碰撞。
需要说明的是,本申请中装置实施例与前述方法实施例是相互对应的,装置实施例中具体的原理可以参见前述方法实施例中的内容,此处不再赘述。
下面将结合图21对本申请提供的一种电子设备进行说明。
请参阅图21,基于上述实施例提供的游戏控制方法,本申请实施例还提供的另一种包括可以执行前述方法的处理器102的电子设备100,该电子设备100可以为如图1所示的游戏系统中的游戏服务器10或终端20,终端20可以是智能手机、平板电脑、计算机或者便携式计算机等设备。
电子设备100还包括存储器104。其中,该存储器104中存储有可以执行前述实施例中内容的程序,而处理器102可以执行该存储器104中存储的程序。
其中,处理器102可以包括一个或者多个用于处理数据的核以及消息矩阵单元。处理器102利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器104内的指令、程序、代码集或指令集,以及调用存储在存储器104内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器102可以采用数字信号处理(DigitalSignal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器102可集成中央处理器(Central Processing Unit,CPU)、图像处理器(GraphicsProcessing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器102中,单独通过一块通信芯片进行实现。
存储器104可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器104可用于存储指令、程序、代码、代码集或指令集。存储器104可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(如,指标移动分析指令)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备100在使用中所获取的数据等。
电子设备100还可以包括网络模块以及屏幕,网络模块用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯,例如和音频播放设备进行通讯。网络模块可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。网络模块可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与其他设备进行通讯。屏幕可以进行界面内容的显示以及进行数据交互。
请参考图22,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质600中存储有程序代码,程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质600可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质600包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质600具有执行上述方法中的任何方法步骤的程序代码610的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码610可以例如以适当形式进行压缩。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中描述的方法。
综上,本申请提供的一种游戏控制方法、装置、电子设备及存储介质。方法包括:根据游戏场景配置信息,利用物理引擎创建虚拟场景;根据运行控制指令控制虚拟角色利用物理引擎在寻路路径上执行动作;预测虚拟角色沿寻路路径移动至目标位置的过程中,是否存在目标虚拟移动体与虚拟角色发生碰撞;当存在时,控制虚拟角色躲避碰撞。通过在预测到存在目标虚拟移动体与虚拟角色发生碰撞时,控制虚拟角色躲避碰撞,可以有效避免因虚拟角色与游戏场景中的可移动物体发生碰撞而使游戏画面发生卡顿,进而避免因游戏画面发生卡顿而影响玩家操作的情况,从而提升了玩家的体验。此外,通过在预测到虚拟角色与游戏场景内中的可移动物体发生碰撞时,控制虚拟角色躲避碰撞,从而使虚拟角色根据运行控制指令运行过程中真实模拟人的操作,从而进一步提升玩家的体验。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种游戏控制方法,其特征在于,包括:
根据游戏场景配置信息,利用物理引擎创建虚拟场景;
根据与每个虚拟角色分别对应的运行控制指令,利用所述物理引擎控制各所述虚拟角色在对应的寻路路径上执行动作,其中,所述虚拟角色为测试用例中用于模拟玩家操作的虚拟角色或电子设备控制的虚拟角色;
预测所述虚拟角色沿寻路路径移动至目标位置的过程中,是否存在目标虚拟移动体与所述虚拟角色发生碰撞;
当预测存在时,控制所述虚拟角色躲避碰撞;
采集运行所述测试用例过程中产生的数据,所述数据包括用于渲染所述测试用例对应的每帧游戏画面的内存数据;
根据每帧游戏画面的内存数据和对应的预期数据确定所述每帧游戏画面的测试结果;
根据每帧游戏画面的测试结果确定运行所述测试用例的测试结果;
其中,若所述虚拟角色为至少两个,所述预测所述虚拟角色沿寻路路径移动至目标位置的过程中,是否存在目标虚拟移动体与所述虚拟角色发生碰撞,包括:预测目标虚拟角色沿寻路路径移动至目标位置的过程中,是否存在目标虚拟移动体或其他虚拟角色与所述目标虚拟角色发生碰撞,所述目标虚拟角色为所述至少两个虚拟角色中的一个虚拟角色。
2.根据权利要求1所述的游戏控制方法,其特征在于,所述预测所述虚拟角色沿寻路路径移动至目标位置的过程中,是否存在目标虚拟移动体与所述虚拟角色发生碰撞,包括:
获取在所述虚拟角色的寻路路径上执行动作时的位置和速度,以及所述虚拟场景中的虚拟移动体的位置和速度;
根据所述虚拟角色在寻路路径上执行动作时的位置和速度以及所述虚拟移动体的位置和速度,预测所述虚拟角色沿寻路路径移动至目标位置的过程中,是否存在目标虚拟移动体与所述虚拟角色发生碰撞。
3.根据权利要求2所述的游戏控制方法,其特征在于,所述根据所述虚拟角色在寻路路径上执行动作时的位置和速度以及所述虚拟移动体的位置和速度,预测所述虚拟角色沿寻路路径移动至目标位置的过程中,是否存在目标虚拟移动体与所述虚拟角色发生碰撞,包括:
根据所述虚拟角色的位置和各所述虚拟移动体的位置,确认是否存在到所述虚拟角色的距离小于距离阈值的虚拟移动体;
在确认存在时,基于所述虚拟角色的位置和速度以及到所述虚拟角色的距离小于距离阈值的虚拟移动体的位置和速度,利用碰撞检测算法,预测所述虚拟角色沿寻路路径移动至目标位置的过程中,是否存在目标虚拟移动体与所述虚拟角色发生碰撞。
4.根据权利要求1所述的游戏控制方法,其特征在于,所述控制所述虚拟角色躲避碰撞,包括:
根据所述虚拟角色的位置和速度以及所述目标虚拟移动体的位置和速度,利用碰撞避免算法进行计算得到所述虚拟角色的目标速度,并控制所述虚拟角色按照所述目标速度移动以躲避碰撞。
5.根据权利要求1所述的游戏控制方法,其特征在于,在所述运行控制指令包括与所述虚拟角色对应的寻路指令时,根据运行控制指令,利用物理引擎控制虚拟角色在寻路路径上执行动作,包括:
根据与所述虚拟角色对应的寻路指令,得到所述虚拟角色的起始位置和目标位置;
获取所述虚拟场景中障碍物的位置信息;
根据所述障碍物的位置信息以及所述虚拟角色的起始位置和目标位置得到所述虚拟角色的寻路路径;
控制所述虚拟角色在所述寻路路径上执行动作。
6.根据权利要求5所述的游戏控制方法,其特征在于,所述根据所述障碍物的位置信息以及所述虚拟角色的起始位置和目标位置得到所述虚拟角色的寻路路径,包括:
根据所述障碍物的位置信息得到障碍物边界;
根据障碍物边界以及所述虚拟角色的起始位置和目标位置得到所述虚拟角色的寻路路径,其中,所述寻路路径上的点位于所述障碍物边界外。
7.根据权利要求1所述的游戏控制方法,其特征在于,所述游戏场景配置信息包括导航配置信息、策划配置信息以及物理场景配置信息,所述根据游戏场景配置信息,利用物理引擎创建虚拟场景,包括:
根据导航配置信息、策划配置信息以及物理场景配置信息创建游戏场景;
利用所述物理引擎为所述游戏场景中的虚拟对象赋予物理属性得到虚拟场景,所述虚拟对象包括虚拟角色和虚拟移动体。
8.一种游戏控制装置,其特征在于,包括:
场景创建模块,用于根据游戏场景配置信息,利用物理引擎创建虚拟场景;
动作执行模块,用于根据与每个虚拟角色分别对应的运行控制指令,利用所述物理引擎控制各所述虚拟角色在对应的寻路路径上执行动作,其中,所述虚拟角色为测试用例中用于模拟玩家操作的虚拟角色或电子设备控制的虚拟角色;
碰撞预测模块,用于预测所述虚拟角色沿寻路路径移动至目标位置的过程中,是否存在目标虚拟移动体与所述虚拟角色发生碰撞;
躲避控制模块,用于当预测存在时,控制所述虚拟角色躲避碰撞;
数据采集模块,用于采集运行所述测试用例过程中产生的数据,所述数据包括用于渲染所述测试用例对应的每帧游戏画面的内存数据;
内存数据获取子模块,用于根据每帧游戏画面的内存数据和对应的预期数据确定所述每帧游戏画面的测试结果;
结果确定子模块,用于根据每帧游戏画面的测试结果确定运行所述测试用例的测试结果;
其中,若所述虚拟角色为至少两个,所述预测所述虚拟角色沿寻路路径移动至目标位置的过程中,是否存在目标虚拟移动体与所述虚拟角色发生碰撞,包括:预测目标虚拟角色沿寻路路径移动至目标位置的过程中,是否存在目标虚拟移动体或其他虚拟角色与所述目标虚拟角色发生碰撞,所述目标虚拟角色为所述至少两个虚拟角色中的一个虚拟角色。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1-7中任意一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-7中任意一项所述的方法。
CN202110214134.3A 2021-02-25 2021-02-25 游戏控制方法、装置、电子设备及存储介质 Active CN112807681B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110214134.3A CN112807681B (zh) 2021-02-25 2021-02-25 游戏控制方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110214134.3A CN112807681B (zh) 2021-02-25 2021-02-25 游戏控制方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN112807681A CN112807681A (zh) 2021-05-18
CN112807681B true CN112807681B (zh) 2023-07-18

Family

ID=75863959

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110214134.3A Active CN112807681B (zh) 2021-02-25 2021-02-25 游戏控制方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112807681B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113559517B (zh) * 2021-07-30 2023-07-14 腾讯科技(深圳)有限公司 非玩家虚拟角色的控制方法和装置、存储介质及电子设备
CN113599820A (zh) * 2021-08-19 2021-11-05 网易(杭州)网络有限公司 游戏行动的执行方法及装置、存储介质及电子设备
CN113663333A (zh) * 2021-08-24 2021-11-19 网易(杭州)网络有限公司 游戏的控制方法、装置、电子设备及存储介质
CN113827974A (zh) * 2021-09-27 2021-12-24 网易(杭州)网络有限公司 一种游戏中的ai角色控制方法和装置
CN114470775A (zh) * 2022-01-27 2022-05-13 腾讯科技(深圳)有限公司 虚拟场景中的对象处理方法、装置、设备及存储介质
CN117710368B (zh) * 2024-02-05 2024-04-30 腾讯科技(深圳)有限公司 图像处理方法、装置、设备、介质及程序产品

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105031921A (zh) * 2015-02-15 2015-11-11 北京乐动卓越信息技术有限公司 一种游戏对象无序移动过程中的防碰撞的方法及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105031921A (zh) * 2015-02-15 2015-11-11 北京乐动卓越信息技术有限公司 一种游戏对象无序移动过程中的防碰撞的方法及系统

Also Published As

Publication number Publication date
CN112807681A (zh) 2021-05-18

Similar Documents

Publication Publication Date Title
CN112807681B (zh) 游戏控制方法、装置、电子设备及存储介质
CN111249735B (zh) 控制对象的路径规划方法、装置、处理器及电子装置
US20220189094A1 (en) Animation video processing method and apparatus, electronic device, and storage medium
CN109529356B (zh) 对战结果确定方法、装置及存储介质
CN111744187B (zh) 一种游戏数据处理方法、装置、计算机及可读存储介质
CN111714886B (zh) 虚拟对象的控制方法、装置、设备以及存储介质
JP2012503513A (ja) 実環境内の事象をシミュレートするためのシステムおよび方法
US20210366183A1 (en) Glitch detection system
JP2022539289A (ja) 仮想オブジェクト照準方法、装置及びプログラム
CN112121414B (zh) 虚拟场景中的追踪方法、装置、电子设备及存储介质
CN113633971B (zh) 视频帧的渲染方法、装置、设备以及存储介质
CN113144597B (zh) 虚拟载具的显示方法、装置、设备以及存储介质
CN112221152A (zh) 人工智能ai模型的训练方法、装置、设备及介质
CN113082697A (zh) 游戏交互方法、装置和电子设备
CN113577774A (zh) 虚拟对象生成方法、装置、电子设备及存储介质
CN112156459A (zh) 对战游戏的控制方法和装置、存储介质和电子装置
CN111389007B (zh) 一种游戏控制方法、装置、计算设备及存储介质
CN115430153A (zh) 虚拟环境中的碰撞检测方法、装置、设备、介质及程序
CN116956007A (zh) 人工智能模型的预训练方法、装置、设备及存储介质
CN112774204B (zh) 一种角色碰撞规避方法、装置、设备以及存储介质
CN113018862B (zh) 虚拟对象的控制方法、装置、电子设备及存储介质
CN111437605B (zh) 确定虚拟对象行为及托管虚拟对象行为的方法
CN114288662A (zh) Npc的行为控制方法、装置及电子设备
CN114225413A (zh) 碰撞检测方法、装置、电子设备和存储介质
CN112843682B (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
GR01 Patent grant
GR01 Patent grant