CN114470775A - 虚拟场景中的对象处理方法、装置、设备及存储介质 - Google Patents

虚拟场景中的对象处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114470775A
CN114470775A CN202210102421.XA CN202210102421A CN114470775A CN 114470775 A CN114470775 A CN 114470775A CN 202210102421 A CN202210102421 A CN 202210102421A CN 114470775 A CN114470775 A CN 114470775A
Authority
CN
China
Prior art keywords
artificial intelligence
virtual
escape
virtual scene
perception
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.)
Pending
Application number
CN202210102421.XA
Other languages
English (en)
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 CN202210102421.XA priority Critical patent/CN114470775A/zh
Publication of CN114470775A publication Critical patent/CN114470775A/zh
Priority to PCT/CN2022/131771 priority patent/WO2023142609A1/zh
Priority to US18/343,051 priority patent/US20230338854A1/en
Pending legal-status Critical Current

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • 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/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • A63F13/573Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using trajectories of game objects, e.g. of a golf ball according to the point of impact
    • 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/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • A63F13/577Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using determination of contact between game characters or objects, e.g. to avoid collision between virtual racing cars
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/761Proximity, similarity or dissimilarity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • 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/8023Features 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 the game being played by multiple players at a common site, e.g. in an arena, theatre, shopping mall using a large public display
    • 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
    • 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/8082Virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2004Aligning objects, relative positioning of parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/07Target detection

Abstract

本申请提供了一种虚拟场景中的对象处理方法、装置、设备及计算机可读存储介质;方法包括:确定人工智能对象在通过三维物理模拟所创建的虚拟场景中的视野范围;基于视野范围,控制人工智能对象在虚拟场景中移动;在人工智能对象移动的过程中,对人工智能对象所处虚拟环境进行三维空间的碰撞检测,得到检测结果;当基于检测结果确定人工智能对象的移动路径中存在障碍物时,控制人工智能对象进行相应的避障处理。通过本申请,能够实现人工智能对象在虚拟场景中避障时的灵活性,使得人工智能对象的表现更加真实,提高虚拟场景中的对象处理效率。

Description

虚拟场景中的对象处理方法、装置、设备及存储介质
技术领域
本申请涉及虚拟化和人机交互技术领域,尤其涉及一种虚拟场景中的对象处理方法、装置、设备、计算机可读存储介质及计算机程序产品。
背景技术
随着计算机技术和互联网技术的迅速发展,电子游戏越来越受欢迎,例如,射击类游戏、战术竞技游戏以及角色扮演类游戏等等。在游戏过程中,通过为人工智能(AI,Artificial Intelligence)对象赋予对周围环境的感知能力,提升玩家在三维开放世界游戏中的体验。
而相关技术中,针对AI对象的视野感知能力,存在视野范围不受限制等问题,导致AI对象可能会与游戏场景中的可移动角色发生碰撞而使游戏画面发生卡顿,且AI对象表现真实性差。
发明内容
本申请实施例提供一种虚拟场景中的对象处理方法、装置、设备、计算机可读存储介质及计算机程序产品,能够实现人工智能对象在虚拟场景中避障时的灵活性,使得人工智能对象的表现更加真实,提高虚拟场景中的对象处理效率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种虚拟场景中的对象处理方法,包括:
确定人工智能对象在虚拟场景中的视野范围;其中,所述虚拟场景通过三维物理模拟所创建;
基于所述视野范围,控制所述人工智能对象在所述虚拟场景中移动;
在所述人工智能对象移动的过程中,对所述人工智能对象所处虚拟环境进行三维空间的碰撞检测,得到检测结果;
当基于所述检测结果确定所述人工智能对象的移动路径中存在障碍物时,控制所述人工智能对象进行相应的避障处理。
本申请实施例提供一种虚拟场景中的对象处理装置,包括:
确定模块,用于确定人工智能对象在虚拟场景中的视野范围;其中,所述虚拟场景通过三维物理模拟所创建;
第一控制模块,用于基于所述视野范围,控制所述人工智能对象在所述虚拟场景中移动;
检测模块,用于在所述人工智能对象移动的过程中,对所述人工智能对象所处虚拟环境进行三维空间的碰撞检测,得到检测结果;
第二控制模块,用于当基于所述检测结果确定所述人工智能对象的移动路径中存在障碍物时,控制所述人工智能对象进行相应的避障处理。
上述方案中,所述确定模块,还用于获取所述人工智能对象对应的视野距离及视野角度,所述视野角度为锐角或钝角;
以所述人工智能对象在所述虚拟场景中的位置为圆心、以所述视野距离为半径,并以所述视野角度为圆心角,构建扇形区域;
将所述扇形区域对应的区域范围确定为所述人工智能对象在虚拟场景中的视野范围。
上述方案中,所述确定模块,还用于获取所述人工智能对象所处虚拟环境的光环境,不同的所述光环境的亮度不同;
在所述人工智能对象移动的过程中,当所述光环境发生改变时,对所述人工智能对象在虚拟场景中的视野范围进行相应的调整;
其中,所述光环境的亮度与所述视野范围呈正相关关系。
上述方案中,所述确定模块,还用于获取所述人工智能对象的感知距离;
构建以所述人工智能对象在所述虚拟场景中的位置为圆心、以所述感知距离为半径的圆形区域,将所述圆形区域确定为所述人工智能对象在所述虚拟场景中的感知区域;
当虚拟对象进入所述感知区域内、且处于所述视野范围外时,控制所述人工智能对象感知到所述虚拟对象。
上述方案中,所述确定模块,还用于获取所述虚拟对象进入所述感知区域内的时长;
基于所述时长,确定所述人工智能对象对所述虚拟对象的感知度,所述感知度与所述时长呈正相关关系。
上述方案中,所述确定模块,还用于获取随所述时长的变化所述感知度的变化速率;
当所述虚拟对象在所述感知区域内移动时,获取所述虚拟对象的移动速度;
在所述虚拟对象移动的过程中,当所述虚拟对象的移动速度发生变化时,获取所述移动速度对应的加速度大小;
基于所述移动速度对应的加速度大小,调整所述感知度的变化速率。
上述方案中,所述确定模块,还用于获取所述虚拟对象进入所述感知区域内的时长,并基于所述时长,确定所述人工智能对象对所述虚拟对象的第一感知度;
获取所述虚拟对象在所述感知区域内的移动速度,并基于所述移动速度,确定所述人工智能对象对所述虚拟对象的第二感知度;
获取所述第一感知度对应的第一权重,以及所述第二感知度对应的第二权重;
基于所述第一权重以及所述第二权重,对所述第一感知度以及所述第二感知度加权求和,得到所述人工智能对象对所述虚拟对象的目标感知度。
上述方案中,所述确定模块,还用于获取在所述感知区域中所述虚拟对象与所述人工智能对象的距离;
基于所述距离,确定所述人工智能对象对所述虚拟对象的感知度,所述感知度与所述距离呈正相关关系。
上述方案中,所述确定模块,还用于当所述人工智能对象感知到处于所述视野范围外的虚拟对象时,确定所述人工智能对象对应的逃离区域;
在所述逃离区域中,选择逃离目标点,所述逃离目标点与所述虚拟对象的距离达到距离阈值;
基于所述逃离目标点,确定所述人工智能对象的逃离路径,以使所述人工智能对象基于所述逃离路径进行移动。
上述方案中,所述确定模块,还用于获取所述虚拟场景对应的寻路网格、所述人工智能对象对应的逃离距离及相对所述虚拟对象的逃离方向;
在所述寻路网格中,基于所述逃离距离及相对所述虚拟对象的逃离方向,确定所述人工智能对象对应的逃离区域。
上述方案中,所述确定模块,还用于确定人工智能对象对应的最小逃离距离、最大逃离距离、最大逃离角度以及最小逃离角度;
以所述人工智能对象在所述虚拟场景中的位置为圆心,以所述最小逃离距离为半径,并以所述最大逃离角度与所述最小逃离角度的差值为圆心角,沿相对所述虚拟对象的逃离方向,构建第一扇形区域;
以所述人工智能对象在所述虚拟场景中的位置为圆心,以所述最大逃离距离为半径,并以所述最大逃离角度与所述最小逃离角度的差值为圆心角,沿相对所述虚拟对象的逃离方向,构建第二扇形区域;
将所述第二扇形区域中不包括所述第一扇形区域的其他区域作为所述人工智能对象对应的逃离区域。
上述方案中,所述检测模块,还用于控制所述人工智能对象发射射线,并基于发射的射线在所处环境的三维空间内进行扫描;
接收所述射线的反射结果,并当所述反射结果表征接收到所述射线的反射线时,确定在相应方向上存在障碍物。
上述方案中,所述第二控制模块,还用于确定所述障碍物的物理属性及位置信息、并确定所述人工智能对象的物理属性;
基于所述障碍物的物理属性及位置信息、所述人工智能对象的物理属性,控制所述人工智能对象进行相应的避障处理。
上述方案中,所述第二控制模块,还用于基于所述障碍物的物理属性及位置信息、所述人工智能对象的物理属性,确定躲避所述障碍物对应的运动行为;
基于确定的所述运动行为,进行相应的运动学模拟,以躲避所述障碍物。
本申请实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的虚拟场景中的对象处理方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的虚拟场景中的对象处理方法。
本申请实施例提供一种计算机程序产品,包括计算机程序或指令,用于引起处理器执行时,实现本申请实施例提供的虚拟场景中的对象处理方法。
本申请实施例具有以下有益效果:
应用本申请上述实施例,通过三维物理模拟创建虚拟场景,能够良好的还原真实场景,提升虚拟场景的真实性;同时,在虚拟场景中,为人工智能对象赋予拟人化的视野范围,并根据视野范围,控制人工智能对象在虚拟场景中的移动,能够实现拟人化的人工智能对象视野,使得人工智能对象在虚拟场景中的表现更加真实;另外,通过对虚拟环境进行碰撞检测,能够有效控制人工智能对象执行灵活有效的避障行为,提高虚拟场景中的对象处理效率。
附图说明
图1是本申请实施例提供的虚拟场景中的对象处理系统100的架构示意图;
图2是本申请实施例提供的实施虚拟场景中的对象处理方法的电子设备500的结构示意图;
图3是本申请实施例提供的虚拟场景中的对象处理方法的流程示意图;
图4是本申请实施例提供的AI对象的视野范围的确定方法流程图;
图5是本申请实施例提供的AI对象视野范围示意图;
图6是本申请实施例提供的AI对象的感知区域的确定方法示意图;
图7是本申请实施例提供的AI对象的感知区域示意图;
图8是本申请实施例提供的AI对象的感知度动态调整方法示意图;
图9是本申请实施例提供的AI对象远离虚拟对象的方式示意图;
图10是本申请实施例提供的AI对象的逃离区域示意图;
图11是本申请实施例提供的逃离区域网格多边形示意图;
图12是本申请实施例提供的虚拟场景中障碍物遮挡检测示意图;
图13是本申请实施例提供的虚拟场景中障碍物检测方法示意图;
图14是相关技术提供的虚拟场景体素化示意图;
图15是本申请实施例提供的AI对象视野感知示意图;
图16是本申请实施例提供的AI对象寻路示意图;
图17是本申请实施例提供的AI对象视野范围变化示意图;
图18是本申请实施例提供的PhysX模拟结果示意图;
图19是本申请实施例提供的AI对象移动相互阻挡示意图;
图20是本申请实施例提供的虚拟场景对应的导航网格生成流程图;
图21是本申请实施例提供的导航网格示意图;
图22是本申请实施例提供的区域选点方法流程示意图;
图23是本申请实施例提供的控制AI对象执行逃离操作示意图;
图24是本申请实施例提供的AI对象表现示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
如果申请文件中出现“第一/第二”的类似描述则增加以下的说明,在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)虚拟场景,是应用程序在终端上运行时显示(或提供)的虚拟场景。该虚拟场景可以是纯虚构的虚拟环境。虚拟场景可以是二维虚拟场景、2.5维虚拟场景或者三维虚拟场景中的任意一种,本申请实施例对虚拟场景的维度不加以限定。例如,虚拟场景可以包括天空、陆地、海洋等,该陆地可以包括沙漠、城市等环境元素,用户可以控制虚拟对象在该虚拟场景中进行活动,该活动包括但不限于:调整身体姿态、爬行、步行、奔跑、骑行、跳跃、驾驶、拾取、射击、攻击、投掷中的至少一种。虚拟场景可以是以第一人称视角显示虚拟场景(例如以玩家自己的视角来扮演游戏中的虚拟对象);也可以是以第三人称视角显示虚拟场景(例如玩家追着游戏中的虚拟对象来进行游戏);还可以是以鸟瞰大视角显示虚拟场景;其中,上述的视角之间可以任意切换。
以第一人称视角显示虚拟场景为例,在人机交互界面中显示的虚拟场景可以包括:根据虚拟对象在完整虚拟场景中的观看位置和视场角,确定虚拟对象的视场区域,呈现完整虚拟场景中位于视场区域中的部分虚拟场景,即所显示的虚拟场景可以是相对于全景虚拟场景的部分虚拟场景。因为第一人称视角是最能够给用户冲击力的观看视角,如此,能够实现用户在操作过程中身临其境的沉浸式感知。以鸟瞰大视角显示虚拟场景为例,在人机交互界面中呈现的虚拟场景的界面可以包括:响应于针对全景虚拟场景的缩放操作,在人机交互界面中呈现对应缩放操作的部分虚拟场景,即所显示的虚拟场景可以是相对于全景虚拟场景的部分虚拟场景。如此,能够提高用户在操作过程中的可操作性,从而能够提高人机交互的效率。
2)虚拟对象:虚拟场景中可以进行交互的各种人和物的形象,或在虚拟场景中的不可活动对象。该可活动对象可以是虚拟人物、虚拟动物、动漫人物等,比如,在虚拟场景中显示的人物、动物、植物、油桶、墙壁、石块等。该虚拟对象可以是该虚拟场景中的一个虚拟的用于代表用户的虚拟形象。虚拟场景中可以包括多个虚拟对象,每个虚拟对象在虚拟场景中具有自身的形状和体积,占据虚拟场景中的一部分空间。
例如,该虚拟对象可以是通过客户端上的操作进行控制的用户角色,也可以是通过训练设置在虚拟场景对战中的人工智能(AI,Artificial Intelligence)对象,还可以是设置在虚拟场景互动中的非用户角色(NPC,Non-Player Character)。例如,该虚拟对象可以是在虚拟场景中进行对抗式交互的虚拟人物。例如,该虚拟场景中参与互动的虚拟对象的数量可以是预先设置的,也可以是根据加入互动的客户端的数量动态确定的。
以射击类游戏为例,用户可以控制虚拟对象在该虚拟场景的天空中自由下落、滑翔或者打开降落伞进行下落等,在陆地上中跑动、跳动、爬行、弯腰前行等,也可以控制虚拟对象在海洋中游泳、漂浮或者下潜等。当然,用户也可以控制虚拟对象乘坐载具类虚拟道具在该虚拟场景中进行移动,例如,该载具类虚拟道具可以是虚拟汽车、虚拟飞行器、虚拟游艇等;用户也可以控制虚拟对象通过攻击类虚拟道具与其他虚拟对象进行对抗式的交互,例如,该虚拟道具可以是虚拟机甲、虚拟坦克、虚拟战机等,在此仅以上述场景进行举例说明,本申请实施例对此不作具体限定。
3)场景数据,表示虚拟场景中的对象在交互过程中受所表现的各种特征,例如,可以包括对象在虚拟场景中的位置。当然,根据虚拟场景的类型可以包括不同类型的特征;例如,在游戏的虚拟场景中,场景数据可以包括虚拟场景中配置的各种功能时需要等待的时间(取决于在特定时间内能够使用同一功能的次数),还可以表示游戏角色的各种状态的属性值,例如包括生命值(也称为红量)、魔法值(也称为蓝量)、状态值、血量等。
4)物理运算引擎:是可以令虚拟世界中的物体运动符合真实世界的物理定律,以使游戏更加富有真实感。物理引擎可以使用对象属性(动量、扭矩或者弹性)来模拟刚体行为,可以得到更加真实的结果,物理引擎允许有复杂的机械装置,像球形关节、轮子、气缸或者铰链。有些也支持非刚性体的物理属性,比如流体。物理引擎以技术分类进行划分,可以包括PhysX引擎、Havok引擎、Bullet引擎、UE引擎以及Unity引擎等。
PhysX引擎是一种物理运算引擎,可以由CPU计算,但其程序本身在设计上还可以调用独立的浮点处理器(例如GPU和PPU)来计算,也正因为如此,PhysX引擎可以完成像流体力学模拟那样的大计算量的物理模拟计算,且可以使虚拟世界中的物体运动符合真实世界的物理定律,以使游戏更加富有真实感。
5)碰撞查询:一种检测碰撞的方式,包括扫描查询(Sweep)、射线查询(Raycast)以及重叠查询(Overlap)。其中,Sweep通过从指定起点开始向指定方向指定距离内做指定几何体的扫描查询,来实现检测碰撞;Raycast通过从指定起点开始向指定方向指定距离内做无体积射线查询,来实现检测碰撞;Overlap通过判断指定几何体是否陷入某个碰撞中,来实现检测碰撞。
基于上述对本申请实施例中涉及的名词和术语的解释,下面说明本申请实施例提供的虚拟场景中的对象处理系统。参见图1,图1是本申请实施例提供的虚拟场景中的对象处理系统100的架构示意图,为实现支撑一个示例性应用,终端(示例性示出了终端400-1和终端400-2)通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线或有线链路实现数据传输。
终端(如终端400-1和终端400-2),用于基于视图界面接收到进入虚拟场景的触发操作,向服务器200发送虚拟场景的场景数据的获取请求;
服务器200,用于接收到场景数据的获取请求,响应于该获取请求,返回虚拟场景的场景数据至终端;
服务器200,用于确定人工智能对象在通过三维物理模拟所创建的虚拟场景中的视野范围;基于视野范围,控制人工智能对象在虚拟场景中移动;在人工智能对象移动的过程中,对人工智能对象所处虚拟环境进行三维空间的碰撞检测,得到检测结果;当基于检测结果确定人工智能对象的移动路径中存在障碍物时,控制人工智能对象进行相应的避障处理;
终端(如终端400-1和终端400-2),用于接收到虚拟场景的场景数据,基于得到的场景数据对虚拟场景的画面进行渲染,在图形界面(示例性示出了图形界面410-1和图形界面410-2)呈现虚拟场景的画面;其中,在虚拟场景的画面中还可呈现AI对象、虚拟对象以及交互环境等,虚拟场景的画面呈现的内容均基于返回的虚拟场景的场景数据渲染得到。
在实际应用中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,ContentDelivery Network)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端(如终端400-1和终端400-2)可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能电视、智能手表等,但并不局限于此。终端(如终端400-1和终端400-2)以及服务器200可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
在实际应用中,终端(包括终端400-1和终端400-2)安装和运行有支持虚拟场景的应用程序。该应用程序可以是第一人称射击游戏(FPS,First-Person Shooting game)、第三人称射击游戏、以转向操作为主导行为的驾驶类游戏、多人在线战术竞技游戏(MOBA,Multiplayer Online Battle Arena games)、二维(Two Dimension,简称2D)游戏应用、三维(Three Dimension,简称3D)游戏应用、虚拟现实应用程序、三维地图程序或者多人枪战类生存游戏中的任意一种。该应用程序还可以是单机版的应用程序,比如单机版的3D游戏程序。
以电子游戏场景为示例性场景,用户可以提前在该终端上进行操作,该终端检测到用户的操作后,可以下载电子游戏的游戏配置文件,该游戏配置文件可以包括该电子游戏的应用程序、界面显示数据或虚拟场景数据等,以使得该用户在该终端上登录电子游戏时可以调用该游戏配置文件,对电子游戏界面进行渲染显示。用户可以在终端上进行触控操作,该终端检测到触控操作后,可以确定该触控操作所对应的游戏数据,并对该游戏数据进行渲染显示,该游戏数据可以包括虚拟场景数据、该虚拟场景中虚拟对象的行为数据等。
在实际应用中,终端(包括终端400-1和终端400-2)基于视图界面接收到进入虚拟场景的触发操作,向服务器200发送虚拟场景的场景数据的获取请求;服务器200接收到场景数据的获取请求,响应于该获取请求,返回虚拟场景的场景数据至终端;终端接收到虚拟场景的场景数据,基于该场景数据对虚拟场景的画面进行渲染,在虚拟场景的界面中,呈现至少一个AI对象以及由玩家控制的虚拟对象。
本申请实施例还可以借助于云技术(Cloud Technology)实现,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、以及应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源。
参见图2,图2是本申请实施例提供的实施虚拟场景中的对象处理方法的电子设备500的结构示意图。在实际应用中,电子设备500可以为图1示出的服务器或终端,以电子设备500为图1示出的终端为例,对实施本申请实施例的虚拟场景中的对象处理方法的电子设备进行说明,本申请实施例提供的电子设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。电子设备500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统540。
处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口530包括使得能够呈现媒体内容的一个或多个输出装置531,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口530还包括一个或多个输入装置532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器550可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器550旨在包括任意适合类型的存储器。
在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块553,用于经由一个或多个与用户接口530相关联的输出装置531(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块554,用于对一个或多个来自一个或多个输入装置532之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的虚拟场景中的对象处理装置可以采用软件方式实现,图2示出了存储在存储器550中的虚拟场景中的对象处理装置555,其可以是程序和插件等形式的软件,包括以下软件模块:确定模块5551、第一控制模块5552、检测模块5553和第二控制模块5554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分,将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的虚拟场景中的对象处理装置可以采用软硬件结合的方式实现,作为示例,本申请实施例提供的虚拟场景中的对象处理装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的虚拟场景中的对象处理方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable LogicDevice)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
基于上述对本申请实施例提供的虚拟场景中的对象处理系统及电子设备的说明,下面说明本申请实施例提供的虚拟场景中的对象处理方法。在一些实施例中,本申请实施例提供的虚拟场景中的对象处理方法可由服务器或终端单独实施,或由服务器及终端协同实施。在一些实施例中,终端或服务器可以通过运行计算机程序来实现本申请实施例提供的虚拟场景中的对象处理方法。举例来说,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APP,Application),即需要在操作系统中安装才能运行的程序,如支持虚拟场景的客户端,如游戏APP;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
下面以服务器实施为例说明本申请实施例提供的虚拟场景中的对象处理方法。参见图3,图3是本申请实施例提供的虚拟场景中的对象处理方法的流程示意图,本申请实施例提供的虚拟场景中的对象处理方法包括:
在步骤101中,服务器确定人工智能对象在虚拟场景中的视野范围,其中,虚拟场景通过三维物理模拟所创建。
在实际实施时,服务器接收到终端运行支持虚拟场景的应用客户端时所触发的针对虚拟场景的创建请求,服务器获取用于配置虚拟场景的配置信息,并从云端下载物理引擎或者从预设存储器中获取物理引擎,物理引擎可以是PhysX引擎;然后基于配置信息,通过三维物理模拟创建虚拟场景,并利用物理引擎为虚拟场景中的物体,如:河流、石块、墙壁、草丛、树木、塔以及建筑等赋予物理属性,以使虚拟对象及虚拟场景中的物体可以使用各自对应的物理属性来模拟刚体行为(模拟真实世界中各种物体运动的规律来运动),使得创建得到的虚拟场景具有更加真实的视觉效果。在虚拟场景中可以呈现AI对象,以及由玩家控制的虚拟对象等。在AI对象在虚拟场景中移动时,服务器可以通过获取AI对象的视野范围,确定AI对象的移动区域,并控制AI对象在相应的移动区域内移动。
针对AI对象在虚拟场景中的视野范围的确定方式进行说明,在一些实施例中,参见图4,图4是本申请实施例提供的AI对象的视野范围的确定方法流程图,基于图3,步骤101可以通过步骤1011-步骤1013实现,结合图4示出的步骤进行说明。
步骤1011,服务器获取人工智能对象对应的视野距离及视野角度,视野角度为锐角或钝角。
在实际实施时,服务器端赋予AI对象拟人化的视野范围,使得AI对象能够感知周边虚拟环境,这样的AI对象表现更真实。正常情况下,当AI对象的视野打开时,AI对象的视野距离并非是无限的,远距离的视野不可见,近距离的视野可见;AI对象的视野范围也不是360°的,AI对象正面的视野是可见的(即视野范围),而AI对象的背面的视野是不可见的(即视野盲区),但此时可以具有基本的拟人化感知;另外,AI对象的视野不应该是透视的,障碍物后的视野是不可见的。AI对象的视野关闭时,不存在视野范围。
参见图5,图5是本申请实施例提供的AI对象视野范围示意图,图中AI对象的视野范围可以由视野距离(图中编号2示出的线段长度用于表示AI对象的视野距离)及视野角度(图中编号1示出的夹角)两个参数控制。这两个参数可以根据实际游戏应用进行人为设置,参数设置信息只要能够保证近距离可见,远距离不可见以及正面可见、反面不可见的拟人化需求即可。其中,视野角度的设置可以以AI对象所在位置为原点、以AI对象的正面朝向为y轴方向,与正向朝向垂直的方向为x轴方向,设置相应的坐标系(对坐标系的类型不做限制),进而确定视野角度,为了使得AI对象表现的更加真实,视野角度为锐角或钝角。
步骤1012,以人工智能对象在虚拟场景中的位置为圆心、以视野距离为半径,并以视野角度为圆心角,构建扇形区域。
在实际实施时,参见图5,服务端以AI对象所处的位置为圆心、以视野距离为半径,以视野角度为圆心角,确定扇形区域。
步骤1013,将扇形区域对应的区域范围确定为人工智能对象在虚拟场景中的视野范围。
在实际实施时,参见图5,服务端将图中扇形区域作为AI对象的视野范围(也可称可见区域),处于视野范围内且未被障碍物遮挡的对象对AI对象而言是可见的,位于视野范围之外的对象对AI对象而言是不可见的。
在一些实施例中,服务器还可以根据以下方式对人工智能对象在虚拟场景中的视野范围进行调整:服务器获取人工智能对象所处虚拟环境的光环境,不同的光环境的亮度不同;在人工智能对象移动的过程中,当光环境发生改变时,对人工智能对象在虚拟场景中的视野范围进行相应的调整;其中,光环境的亮度与视野范围呈正相关关系。
在实际实施时,为了使AI对象的视野感知表现的更加真实,服务器可以实时或周期性地采集AI对象所处虚拟环境的光环境,不同的光环境的亮度不同。即AI对象的视野范围会随着虚拟场景中的光环境动态变化的,如虚拟环境为白天时,AI对象的视野范围较大,虚拟环境为晚上时,AI对象的视野范围较小。因此,服务器可根据AI对象所处虚拟环境的光环境动态调整AI对象的视野范围,光环境受亮度、光照强度等参数的影响,不同光环境的亮度、光照强度不同,则AI对象的视野范围也不同。AI对象的视野范围与当前所处虚拟环境的光环境的亮度呈正相关关系,即AI对象的视野范围随着光环境的亮度的增高而变大,随着光环境的亮度的降低而变小。其中,光环境的亮度与AI对象的视野范围可以存在线性关系,此时亮度用具体的值表示;另外,光环境的亮度可以用表征亮度的级别的区间范围表示,当亮度处于相应的亮度的级别所对应的区间范围内时,服务器将AI对象的视野范围调整至与亮度级别对应的视野范围。
示例性地,当AI对象所处虚拟环境为白天时,此时光环境的亮度高、光照强,AI对象的视野范围设置较大,随着虚拟环境中夜晚的到来,光环境的亮度降低、光照强度减弱,AI对象的视野范围变小。
在一些实施例中,参见图6,图6是本申请实施例提供的AI对象的感知区域的确定方法示意图,结合图6示出的步骤进行说明。
步骤201,服务器获取人工智能对象的感知距离。
在实际实施时,对于处于AI对象视野范围外的其他虚拟对象(如玩家)是不可见的,但是AI对象可以有所感知。服务器可以通过确定AI对象的感知区域,实现AI对象对其他虚拟对象的感知,赋予AI对象拟人化的感知操作。AI对象的感知区域的确定是与AI对象的感知距离有关。在AI对象的视野范围外,服务器确定其他虚拟对象与AI对象之间的距离作为实际距离,当实际距离等于小于预设的AI对象的感知距离时,此时AI对象能够感知到其他虚拟对象。
步骤202,构建以人工智能对象在虚拟场景中的位置为圆心、以感知距离为半径的圆形区域,将圆形区域确定为人工智能对象在虚拟场景中的感知区域。
在实际实施时,服务器可以确定以AI对象在虚拟场景中的位置为圆心、以感知距离为半径的圆形区域作为AI对象的感知区域,当其他对象处于AI对象的视野范围外,但处于AI对象的感知区域内时,AI对象能够感知到该对象。参见图7,图7是本申请实施例提供的AI对象的感知区域示意图,在AI对象视野打开时,AI对象的感知区域是图中与AI对象的视野范围不重合的部分圆形区域(不包含视野范围的圆形区域),在AI对象的视野关闭时,AI对象的感知区域是图中整个圆形区域(包含视野范围的圆形区域)。
步骤203,当虚拟对象进入感知区域内、且处于视野范围外时,控制人工智能对象感知到虚拟对象。
在实际实施时,当虚拟对象处于AI对象的视野范围外,但进入到AI对象的感知区域内时,服务器控制AI对象能够感知到处于感知区域的虚拟对象。
需要说明的是,即使AI对象能够感知到处于感知区域的虚拟对象时,AI对象对虚拟对象的感知度(感知程度)也是不同的,AI对象的感知度与虚拟对象与AI对象之间的距离、虚拟对象处于感知区域的时长、以及虚拟对象的移动情况有关。
在一些实施例中,服务器还可以执行步骤204-步骤205,通过确定AI对象对虚拟对象的感知度,进一步确定AI对象对虚拟对象的感知度。
步骤204,服务器获取虚拟对象进入感知区域内的时长。
在实际实施时,虚拟对象进入感知区域内的时长可以直接影响AI对象对虚拟对象的感知度。服务器从虚拟对象进入感知区域时开始计时,获取虚拟对象进入感知区域内的时长。
步骤205,基于虚拟对象进入感知区域的时长,确定人工智能对象对虚拟对象的感知度,其中,感知度与时长呈正相关关系。
需要说明的是,AI对象对虚拟对象的感知度与虚拟对象进入感知区域内的时长呈正相关关系,即虚拟对象进入感知区域的时间越长(即时长越久),AI对象对虚拟对象的感知度越强。
示例性地,服务器预设AI对象的感知度初始值为0,随着时间递增,感知度以每秒加1速度递增,即当AI对象感知到虚拟对象时,感知度为0,虚拟对象进入感知区域内的时长每增加1秒,感知度加1(+1)。
在一些实施例中,参见图8,图8是本申请实施例提供的AI对象的感知度动态调整方法示意图,服务器执行步骤205,即确定AI对象对虚拟对象的感知度之后,还可以执行步骤301-步骤304,动态调整AI对象对虚拟对象的感知度。
步骤301,服务器获取随时长的变化感知度的变化速率。
在实际实施时,AI对象对虚拟对象的感知度还与虚拟对象在感知区域内的移动情况有关。服务器获取AI对象的感知度随时长变化的变化速率,如,感知度每秒加1(+1)。
步骤302,当虚拟对象在感知区域内移动时,获取虚拟对象的移动速度。
在实际实施时,虚拟对象在感知区域内移动的越快,AI对象的感知度的变化越快,如,基于时长的递增,感知度以每秒加1的速度递增,随着虚拟对象在感知区域的移动,感知度发生变化,可以以每秒加5(+5)、每秒加10(+10)的速度递增。
步骤303,在虚拟对象移动的过程中,当虚拟对象的移动速度发生变化时,获取移动速度对应的加速度大小。
在实际实施时,虚拟对象在感知区域内匀速移动时,感知度每秒增加固定的大小;当虚拟对象在感知区域内变速移动时,服务器获取当前移动速度对应的加速度大小。
步骤304,基于移动速度对应的加速度大小,调整感知度的变化速率。
在实际实施时,当虚拟对象在感知区域内变速移动时,服务器根据预设的加速度大小与感知度的变化速率之间的关系,调整AI对象的感知度的变化速率。
示例性地,AI对象在感知区域内静止时,AI对象的感知度的变化速率为每秒加1(+1),AI对象在感知区域内匀速移动时,AI对象的感知度的变化速率为每秒加5(+5),AI对象在感知区域内变速移动时,获取AI对象每个时刻的加速度大小,并根据预设的加速度大小与AI对象的感知度的变化速率之间的关系,确定AI对象的感知度的变化速率,可以直接将加速度大小与预设的匀速移动时的变化速率之和作为AI对象的感知度的变化速率,如在时刻t,加速度大小为3,预设的匀速移动时的变化速率每秒+5,则此时设置感知度的变化速率为+8,本申请实施例对加速度大小与AI对象的感知度的变化速率之间的关系不做限制。
在一些实施例中,服务器可以根据以下方式确定AI对象对处于感知区域的虚拟对象的感知度:服务器获取虚拟对象进入感知区域内的时长,并基于时长,确定AI对象对虚拟对象的第一感知度;获取虚拟对象在感知区域内的移动速度,并基于移动速度,确定AI对象对虚拟对象的第二感知度;获取第一感知度对应的第一权重,以及第二感知度对应的第二权重;基于第一权重以及第二权重,对第一感知度以及第二感知度加权求和,得到AI对象对虚拟对象的目标感知度。
在实际实施时,随着虚拟对象进行感知区域的时间的递增,AI对象的感知度也在递增;同时,虚拟对象在AI对象的感知区域的移动速度越快,AI对象的感知度也越强。也就是说,AI对象对虚拟对象的感知度的强弱至少受到虚拟对象进入感知区域的时长,以及虚拟对象自身在感知区域内移动时的移动速度两个参数的影响。服务器可以对根据进行感知区域的时长所确定的第一感知度,以及根据虚拟对象的移动速度的变化所确定的第二感知度,进行加权求和,得到AI对象针对虚拟对象的最终的感知度(目标感知度)。
示例性的,根据虚拟对象进入感知区域的时长,确定AI对象的第一感知度为A级,然后根据虚拟对象的移动速度;根据虚拟对象在感知区域的移动速度,确定AI对象的第二感知度为B级。根据预设的时长参数确定第第一感知度对应的第一权重a,以及移动速度参数确定的第二感知度对应的第二权重b,对A级和B级求和,得到AI对象的相对于虚拟对象最终的感知度(目标感知度=a×A+b×B)。
在一些实施例中,服务器还可以根据以下方式确定AI对象对虚拟对象的感知度:服务器获取在感知区域中虚拟对象与所述人工智能对象的距离;基于距离,确定人工智能对象对虚拟对象的感知度,感知度与所述距离呈正相关关系。
在实际实施时,服务器还可以仅仅根据虚拟对象与AI对象之间的距离,确定AI对象对虚拟对象的感知度,此时,感知度与距离呈正相关关系,即当虚拟对象与AI对象之间的距离越近,AI对象的感知度越强。
在一些实施例中,当AI对象感知到虚拟对象之后,服务器可以控制AI对象远离虚拟对象。参见图9,图9是本申请实施例提供的AI对象远离虚拟对象的方式示意图,结合图9示出的步骤进行说明。
步骤401,当人工智能对象感知到处于视野范围外的虚拟对象时,服务器确定人工智能对象对应的逃离区域;
在实际实施时,当AI对象感知到处于视野范围外的虚拟对象时,服务器接收到AI对象发送的远离虚拟对象的寻路请求,服务器响应于该寻路请求,确定AI对象对应的逃离区域(逃离范围),需要说明的是,AI对象对应的逃离区域属于AI对象当前视野范围的一部分。
在一些实施例中,服务器可以根据以下方式确定AI对象对应的逃离区域:服务器获取虚拟场景对应的寻路网格、人工智能对象对应的逃离距离及相对虚拟对象的逃离方向;在寻路网格中,基于逃离距离及相对虚拟对象的逃离方向,确定人工智能对象对应的逃离区域。
在实际实施时,服务器加载预先导出的导航网格信息,构建对应虚拟场景的寻路网路,整体寻路网格生成过程可以是1、虚拟场景体素化;2、生成相应的高度场;3、生成连通区域;4、生成区域边界;5、生成多边形网格,最终得到寻路网格。然后,在寻路网格中,服务器根据AI对象预设的逃离距离,以及相对虚拟对象的逃离方向,确定AI对象对应的逃离区域。
在一些实施例中,服务器还可以根据以下方式确定AI对象对应的逃离区域:服务器确定AI对象对应的最小逃离距离、最大逃离距离、最大逃离角度以及最小逃离角度;以AI对象在虚拟场景中的位置为圆心,以最小逃离距离为半径,并以最大逃离角度与最小逃离角度的差值为圆心角,沿相对虚拟对象的逃离方向,构建第一扇形区域;以AI对象在虚拟场景中的位置为圆心,以最大逃离距离为半径,并以最大逃离角度与最小逃离角度的差值为圆心角,沿相对虚拟对象的逃离方向,构建第二扇形区域;将第二扇形区域中不包括第一扇形区域的其他区域作为AI对象对应的逃离区域。
在实际实施时,参见图10,图10是本申请实施例提供的AI对象的逃离区域示意图,图中以AI对象所在位置为原点O,以相对虚拟对象p的逃离方向为y轴方向(即图中po两点构成的线段所在延长线且远离P的方向),构建坐标系xoy,并在po延长线上选择一点c,使得AI对象移动至c点时,正好处于安全范围内,即pc的长度(po+pc)与预设的逃离阈值距离相等,即以AI对象所处位置为圆心,以oc距离为半径所确定的圆形区域,是AI对象处于危险区域的最大范围。服务器可以确定C点所处的位置,是AI对象能够逃离的最大距离,服务器根据最小逃离距离oc(minDis),最大逃离距离oC(maxDis),最小逃离角度∠xoa(minAng),最大逃离角度∠xob(maxAng),确定AI对象的逃离区域即图中AabB区域。
步骤402,在逃离区域中,选择逃离目标点,逃离目标点与虚拟对象的距离达到距离阈值。
在实际实施时,服务器在确定AI对象的逃离区域后,可以在逃离区域内随机选择目标点,作为AI对象的逃离目标点。参见图9,服务器在图中AabB区域内获取随机点,作为目标点,同时为了保证随机点具有均匀分布的特性,可以根据以下公式确定随机点,随机点的坐标为(randomPosX,randomPosY):
minRatio=sqrt(minDis)/sqrt(maxDis);
randomDis=maxDis*rand(minRatio,1);
randomAngle=random(minAng,maxAng);
randomPosX=centerPosX+randomDis*cos(randomAngle);
randomPosY=centerPosY+randomDis*sin(randomAngle);
上述公式中,minRatio可以看作随机因子,随机因子是小于1的数,randomDis可以看作随机点距离AI对象的距离,randomAngle可以看作随机点相对于AI对象的偏移角度,(centerPosX,centerPosY)可以看作AI对象的位置,(randomPosX,randomPosY)为随机点的坐标。
在实际实施时,服务器通过上述数学计算获得得到AI对象在二维区域内的逃离目标点后,还需要计算通过数学计算获取到二维区域内的随机点后,还需要计算该点在3D世界中正确的Z坐标(即将逃离目标点投影到三维空间)。参见图11,图11是本申请实施例提供的逃离区域网格多边形示意图,服务器获取和二维区域相交的所有三维的多边形网格(图中多边形rstv,以及多边形tuv),以遍历的形式查找到随机点所在的多边形(图中随机点所在多边形rstv),然后将随机点在多边形上投影,投影点即是正确的可以行走的位置。
步骤403,基于逃离目标点,确定人工智能对象的逃离路径,以使人工智能对象基于逃离路径进行移动。
在实际实施时,服务器基于AI对象的位置,以及确定的逃离目标点,使用相关的寻路算法等确定AI对象的逃离路径,并将逃离路径分配给当前AI对象,使得AI对象可以沿得到的逃离路径移动,逃离虚拟对象,其中,相关的寻路算法具体可以是A*寻路算法、蚁群算法等中的任意一种。
在步骤102中,基于视野范围,控制人工智能对象在虚拟场景中移动。
在实际实施时,参见图5,服务器可以根据确定的AI对象的视野范围,控制AI对象在虚拟场景中移动。
在步骤103中,在人工智能对象移动的过程中,对人工智能对象所处虚拟环境进行三维空间的碰撞检测,得到检测结果。
在实际应用中,考虑到虚拟场景中可能存在障碍物,障碍物在虚拟场景中占据一定的体积,AI对象在虚拟场景中移动过程中,在遇到障碍物时需要绕过障碍物,即虚拟场景中的障碍物位置为AI对象不可通行的位置,障碍物可以是石块、墙壁、树木、塔以及建筑等。
在一些实施例中,服务器可以通过以下方式执行针对AI对象所处虚拟环境三维空间的碰撞检测:服务器控制人工智能对象发射射线,并基于发射的射线在所处环境的三维空间内进行扫描;接收射线的反射结果,并当反射结果表征接收到射线的反射线时,确定在相应方向上存在障碍物。
在实际实施时,服务器控制AI对象在视野范围内移动时,需要实时检测AI对象所处虚拟环境是由存在障碍物,服务器可以基于物理运算引擎(如PhysX)的射线(raycast射线)检测实现障碍物遮挡的判断。参见图12,图12是本申请实施例提供的虚拟场景中障碍物遮挡检测示意图,对于处于AI对象视野范围内的虚拟对象,服务器控制AI对象从自身位置向虚拟对象所在位置发出射线,射线检测时会返回和射线相交的对象信息。如果对象被障碍物遮挡,则会返回障碍物信息,基于射线检测可以保证被阻挡的对象不可见的特性。
在步骤104中,当基于检测结果确定人工智能对象的移动路径中存在障碍物时,控制人工智能对象进行相应的避障处理。
在一些实施例中,服务器可以通过以下方式控制人工智能对象进行相应的避障处理:服务器确定障碍物的物理属性及位置信息、并确定人工智能对象的物理属性;基于障碍物的物理属性及位置信息、人工智能对象的物理属性,控制人工智能对象进行相应的避障处理。
在实际实施时,参见图13,图13是本申请实施例提供的虚拟场景中障碍物检测方法示意图,服务器基于PhysX的sweep扫描,AI对象可以预先感知到移动过程中是否会存在障碍物。图中所示,AI对象通过sweep检查在指定的方向和距离移动时是否存在障碍物,若存在障碍物阻挡,则会得到阻挡点的位置等信息。如此,AI对象便可以预先实现拟人化的避障处理。
在一些实施例中,服务器还可以通过以下方式控制人工智能对象进行相应的避障处理:服务器基于障碍物的物理属性及位置信息、人工智能对象的物理属性,确定躲避障碍物对应的运动行为;基于确定的运动行为,进行相应的运动学模拟,以躲避障碍物。
在实际实施时,AI对象可以基于PhysX进行碰撞检测,PhysX中的Actor可以附着Shape,Shape描述了Actor的空间形状和碰撞属性。通过为AI对象添加Shape进行碰撞检测,可以避免AI对象在移动中一直相互阻挡的情形,当两个AI对象在移动中相互阻挡产生碰撞时,它们可以基于碰撞检测得知此情形并通过绕行等方式保证移动的正常进行。另外,AI对象还可以基于PhysX进行运动学模拟,PhysX中的Actor除了形状,还可以具有质量、速度、惯性、材料(包括摩擦系数)等一系列的特性,通过物理模拟可以使得AI对象的运动更具有真实性。如AI对象在飞行时可以进行碰撞检测,提前进行躲避障碍物行为;AI对象在山洞中行走时,若站着无法通过该区域但是蹲着可以通过,则可以尝试蹲着通过。
本申请实施例通过在三维物理模拟创建的虚拟场景中,为AI对象提供以视野距离和视野角度为基础的拟人化视野感知,使得AI对象在虚拟场景中移动时能够表现的更加真实;同时,赋予AI对象对处于视野范围外的虚拟对象的感知能力,能够感知到虚拟对象,进一步实现AI对象的真实性;并能根据虚拟场景的光环境动态调整AI对象视野范围的大小,进一步增加了AI对象的真实感;还赋予AI对象对3D世界的物理感知能力,便捷的实现了3D物理世界中视线遮挡、移动阻碍、碰撞检测等情形的模拟,并为AI对象提供了基于寻路网格实现的自动化寻路能力,使得AI对象能够在虚拟场景自动化移动和避障。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
在虚拟场景中(如游戏)视野感知是环境感知的基础,在3D开放世界游戏中,一个表现真实的AI对象应该具有拟人化的视野感知范围。而相关3D开放世界中,AI对象的视野感知方式较为简单,一般分为主动感知和被动感知。主动感知是基于距离确定的范围进行感知,当玩家进入感知范围时,AI对象收到通知,执行对应表现。被动感知是当AI对象收到玩家的交互信息后感知到玩家,如受到玩家攻击后进行战斗。上述AI对象的视野感知方式的特点是原理和实现较为简单,并且性能也不错,能基本适用于3D开放世界中的视野感知。但缺点也非常明显,AI对象的视野不够拟人化,存在视野角度没有限制、视野范围不会基于环境调整等一系列问题,最终导致玩家的沉浸式体验感降低。
同样,为了构建一个真实的环境感知系统,AI对象需要对周围环境具有物理感知能力,而相关3D开放世界中,参见图14,图14是相关技术提供的体素化示意图,AI对象的物理感知方案主要有以下几种:第一种简单的感知方案是将3D游戏世界2D化,通过将3D世界划分为一个个的2D网格,并在网格上标记Z坐标的高度等信息实现3D世界的简单记录;第二种感知方案是采用分层2D的形式,将3D地形转换为多层可行走的2D行走层,如将简单房屋转换为地面和屋顶两层行走层;第三种感知方案是将3D世界用众多的AABB包容盒进行体素化,通过体素记录3D信息。上述传统的3D开放世界物理感知方案中,简单2D化的方案实现最为简便,能适用于大部分世界场景,但对于山洞、建筑物等物理场景,则无法正确进行处理;分层2D化方案可以正确处理山洞、建筑物等存在多个行走层的场景,但对于复杂建筑物,存在很难分层以及层数过多的问题;3D世界体素化的方案可以较好的还原物理场景,但体素尺寸若太大,则无法精确还原3D世界,体素尺寸若太小,则会导致内存占用过多,影响服务端性能。
另外,在3D开放世界游戏,AI对象往往具有巡逻、逃跑等行为,这就要求AI对象对周围环境的地形信息有所感知,而相关3D开放世界中,AI对象的寻路方案主要有两种:第一种是采用阻挡图进行寻路,将3D世界划分为一定尺寸(一般为0.5m)的格子,并将每个格子标记可站立或不可站立。最终基于生成的阻挡二值图,采用A*、JPS等算法进行寻路;第二种是将3D世界体素化,基于体素化后的信息进行寻路。上述寻路方案中,无论是采用阻挡图还是体素化,若格子或体素尺寸太小,则会导致服务端内存占用过高,并且寻路效率过低的问题;若格子或体素尺寸太大,则会导致寻路精度不够的问题。并且,相关客户端引擎采用的是navmesh寻路,若服务端采用其它方式寻路,会存在双方寻路结果不一致的可能性。如客户端根据navmesh判断AI感知范围内的某个位置可以站立,玩家到达该位置后,AI对象感知到玩家,并需要靠近战斗。但服务端寻路方案判断该位置不可站立,无法寻路,最终产生AI对象无法到达该点进行战斗的问题。
基于此,本申请实施例提供一种虚拟场景中的对象处理方法,该方法也是3D开放世界游戏中服务端AI的环境感知方案,将对AI对象采用拟人化的视野管理方案,并基于PhysX物理模拟还原真实的3D开放世界,服务端采用navmesh实现和客户端无差别的导航寻路,在设计和实现上避免了很多相关技术中存在的问题,最终为AI对象提供良好的环境感知能力。
首先,通过终端部署的支持虚拟场景的应用客户端,呈现包括AI对象以及玩家控制的虚拟对象的界面。在虚拟场景的界面中为了实现本申请实施例提供的针对AI对象的拟人化效果,需要达到三个效果:
第一,要保证AI视野感知的真实性,使得AI具有拟人化的视野,满足发明点概述中提及的各项规则。参见图15,图15是本申请实施例提供的AI对象视野感知示意图,如图中所示,当玩家躲在障碍物后时,即使距离很近并且位于AI对象的正面视野,但是AI对象对玩家仍旧是无感知的。
第二,要保证3D开放世界物理感知的正确性,服务端的物理世界需要良好的还原真实场景,这样AI对象才能基于此正确实现一系列行为,如AI对象在飞行时可以进行碰撞检测,提前进行躲避障碍物行为;AI对象在山洞中行走时,若站着无法通过该区域但是蹲着可以通过,则可以尝试蹲着通过。
第三,要保证AI对象在巡逻、逃跑等常见场景中具有自动化选择目标点,并根据目标点选择路径的寻路能力。另外,选择的目标点必须是合理的可行走位置,如悬崖边的AI巡逻时不能选择悬崖下的位置作为目标点。同时,根据目标点选择的路径也要具有合理性,参见图16,图16是本申请实施例提供的AI对象寻路示意图,如图中所示,从A点移动到C点时,选择A->C的路径则较为合理,选择A->B->C的路径则不合理。
针对上述第一点,服务端实现针对AI对象进行视野感知时,AI对象的视野范围由距离和角度两个参数控制。如图5中所示,通过视野距离和视野角度参数确定的扇形区域是AI对象的可见区域,处于视野范围内且未被障碍物遮挡的虚拟对象是可见的,位于视野范围之外的虚拟对象是不可见的。示例性地,可以采用的视野参数为8000cm和120°,如此,能够保证近距离可见、远距离不可见以及正面可见、反面不可见的拟人化需求。
在实际实施时,针对位于AI对象视野范围内的虚拟对象(玩家等),如果虚拟对象被障碍物遮挡,则应该是不可见的。本申请实施例基于PhysX的raycast射线检测实现障碍物遮挡的判断。如图12所示,对于视野范围内的对象,AI会从自身位置向对象所在位置发出射线,raycast射线检测时会返回和射线相交的对象信息。如果对象被障碍物遮挡,则会返回障碍物信息,基于射线检测可以保证被阻挡的对象不可见的特性。
在实际实施时,针对位于AI对象视野范围外的对象,虽然不可见,但拟人化的AI对象应该有所感知。如图7所示,服务器基于感知距离确定了AI对象的感知区域,当对象进入感知区域时,会随时间递增对象的感知度,时间越久,感知度越大。另外感知度递增速率也和对象的移动速度有关,对象在静止时,递增速率最小,对象移动速度增加时,感知度的递增速率也会增加。当感知度增加到阈值时,AI对象就会真正感知到对象。
在实际实施时,合理的AI对象的视野范围应该不是一成不变的。本申请实施例提供的AI对象的视野范围会随着3D世界中游戏时间的变化而动态调整。参见图17,图17是本申请实施例提供的AI对象视野范围变化示意图,如图所示,白天时AI对象的视野范围最大,随着夜晚的到来,AI对象的视野范围也逐渐缩小,深夜时达到最小。
针对上述第二点,服务端基于PhysX实现针对AI对象的物理感知模拟。PhysX会将游戏中的3D开放世界划分为多个Scene(场景),每个场景包含多个Actor(角色)。对于3D世界中的地形、建筑、树木等物体,PhysX中会模拟为PxRigidStatic类型的静态刚体;对于玩家和AI对象,则会模拟为PxRigidDynamic类型的动态刚体。服务端使用时,首先需要将PhysX模拟结果从客户端导出为服务端可加载的xml文件或dat文件,然后加载使用,PhysX模拟的3D开放世界如图18所示,图18是本申请实施例提供的PhysX模拟结果示意图。
在实际实施时,AI对象基于模拟的3D开放世界,通PhysX提供的若干方法(如sweep扫描),可以进行正确的物理感知。基于PhysX的sweep扫描,AI对象可以预先感知到移动过程中是否会存在障碍物。如图13所示,AI对象通过sweep检查在指定的方向和距离移动时是否存在障碍物,若存在障碍物阻挡,则会得到阻挡点的位置等信息。这样,AI对象便可以预先实现拟人化的避障处理。
在实际实施时,AI对象可以基于PhysX进行碰撞检测,PhysX中的Actor可以附着Shape,Shape描述了Actor的空间形状和碰撞属性。通过为AI对象添加Shape进行碰撞检测,可以避免图19(图19是本申请实施例提供的AI对象移动相互阻挡示意图)所示的AI对象在移动中一直相互阻挡的情形,当两个AI对象在移动中相互阻挡产生碰撞时,它们可以基于碰撞检测得知此情形并通过绕行等方式保证移动的正常进行。
在实际实施时,AI对象可以基于PhysX进行运动学模拟,PhysX中的Actor除了形状,还可以具有质量、速度、惯性、材料(包括摩擦系数)等一系列的特性,通过物理模拟可以使得AI对象的运动更具有真实性。
针对上述第三点,自动化寻路是AI对象的一项基础能力,AI对象在巡逻、逃跑、追逐和避障等场景均需要进行自动化寻路。服务端可以基于navmesh实现AI对象的寻路导航,首先需要将3D世界中的虚拟场景导出为navmesh使用的多边形网格,参见图20,图20是本申请实施例提供的虚拟场景对应的导航网格生成流程图,图中服务端生成对应虚拟场景的导航网格的过程如下:1、服务端开始执行导航网格生成过程;2、世界场景体素化;3、生成高度场;4、生成连通区域;5、生成区域边界;6、生成多边形网格;7、生成对应虚拟场景的导航网格,结束导航网格生成过程。示例性地,参见图21,图21是本申请实施例提供的导航网格示意图。
在实际实施时,服务端使用时,首先要加载导出的导航网格信息,AI对象基于导航网格信息实现在巡逻和逃离等情形中位置的正确选取(寻路路径)。AI对象巡逻时,需要在指定的巡逻区域内选择可走位置;AI对象逃离时需要在指定的逃离范围内选择逃跑位置。相关技术中,导航网格navmesh只提供了在圆形区域内选点的能力,在实际游戏中可应用性较低。参见图11,
图11中,在由最大距离、最小距离和最大角度、最小角度所限制的二维区域内获取随机点,为保证随机点具有均匀分布的特性,可以根据以下公式确定随机点,随机点的坐标为(randomPosX,randomPosY):
minRatio=sqrt(minDis)/sqrt(maxDis);
randomDis=maxDis*rand(minRatio,1);
randomAngle=random(minAng,maxAng);
randomPosX=centerPosX+randomDis*cos(randomAngle);
randomPosY=centerPosY+randomDis*sin(randomAngle);
上述公式中,minRatio可以看作随机因子,随机因子是小于1的数,randomDis可以看作随机点距离AI对象的距离,randomAngle可以看作随机点相对于AI对象的偏移角度,(centerPosX,centerPosY)可以看作AI对象的位置,(randomPosX,randomPosY)为随机点的坐标。
参见图22,图22是本申请实施例提供的区域选点方法流程示意图,区域选点的实现过程为:1、计算二维区域内的随机点;2、获取和区域相交的所有多边形;3、遍历多边形,找到点所在多边形;4、获取点在多边形上的投影点。在本申请实施例中,通过数学计算获取到二维区域内的随机点后,还需要计算该点在3D世界中正确的Z坐标。服务端获取和二维区域相交的所有三维的多边形网格,并以遍历的形式查找到随机点所在的多边形,然后将随机点在多边形上投影,投影点即是正确的可以行走的位置。基于选择的目标位置,AI对象可以通过navmesh获取当前位置到目标位置的最佳路径,最终基于该路径进行巡逻、逃离或者追逐等表现。
基于视野感知、物理感知和地形感知,AI对象可以表现的更为拟人化。示例性地,以AI对象远离玩家为例,说明本申请实施例提供的虚拟场景中的对象控制方法的整体流程,参见图23,图23是本申请实施例提供的控制AI对象执行逃离操作示意图,执行步骤501,当玩家处于AI对象的视野盲区时,控制AI对象的感知度从零开始递增。步骤502,当AI对象的感知度达到感知度阈值时,控制AI对象开启逃离准备。步骤503,根据预设的逃离距离以及角度确定扇面形目标区域。步骤504,基于navmesh在目标区域中获取随机目标点。步骤505,基于当前位置和模板位置,通过navmesh查找一条可通行路径。步骤506,逃离中基于PhysX查看前方是否有其他对象阻挡。步骤507,若存在阻挡对象,则进行避障处理。步骤508,控制AI对象移动至目标点,以使AI对象逃离玩家。
示例性地,参见图24,图24是本申请实施例提供的AI对象表现示意图,图中,玩家处于AI对象的视野盲区,AI对象看不到玩家,但存在感知。感知度递增达到感知度阈值之后,AI对象感知到玩家,准备逃离。逃离时,AI对象先基于需要逃离的距离以及逃离的方向角度确定逃离的目标区域,然后基于navmesh按照前述自动化寻路中介绍的方法选择目标点。确定好目标位置之后,AI对象通过navmesh找到一条从当前位置到目标位置的最佳路径,然后开始逃离。在逃离过程中,AI对象可能被其它的AI对象阻挡,此时要通过PhysX实现预先避障,实现有效逃离,最终到达目标位置。
应用本申请实施例能够产生以下有益效果:
(1)提供了以距离和角度为基础的拟人化视野感知方案,并对处于视野盲区中的对象提供了感知能力,另外,基于PhysX射线检测剔除了被障碍物遮挡的对象,较好的实现了拟人化的AI对象视野。同时,基于游戏内时间的变化动态的调整AI对象视野的大小,进一步增加了真实感。
(2)通过PhysX对3D开放世界进行物理模拟,准确的还原了真实的游戏场景,使得AI对象对3D世界具有了物理感知能力。另外,通过recast、sweep等方法,便捷的实现了物理世界中视线遮挡、移动阻碍、碰撞检测等情形的模拟。
(3)为AI对象提供了基于navmesh实现的自动化寻路能力,使得AI对象可以在指定区域内自动化选点,并基于目标点选择合适的路径,最终实现自动化巡逻、逃跑和追逐等多种场景。
可以理解的是,在本申请实施例中,涉及到用户信息等相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
下面继续说明本申请实施例提供的虚拟场景中的对象处理装置555的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器550的虚拟场景中的对象处理装置555中的软件模块可以包括:
确定模块5551,用于确定人工智能对象在虚拟场景中的视野范围;其中,所述虚拟场景通过三维物理模拟所创建;
第一控制模块5552,用于基于所述视野范围,控制所述人工智能对象在所述虚拟场景中移动;
检测模块5553,用于在所述人工智能对象移动的过程中,对所述人工智能对象所处虚拟环境进行三维空间的碰撞检测,得到检测结果;
第二控制模块5554,用于当基于所述检测结果确定所述人工智能对象的移动路径中存在障碍物时,控制所述人工智能对象进行相应的避障处理。
在一些实施例中,所述确定模块,还用于获取所述人工智能对象对应的视野距离及视野角度,所述视野角度为锐角或钝角;以所述人工智能对象在所述虚拟场景中的位置为圆心、以所述视野距离为半径,并以所述视野角度为圆心角,构建扇形区域;将所述扇形区域对应的区域范围确定为所述人工智能对象在虚拟场景中的视野范围。
在一些实施例中,所述确定模块,还用于获取所述人工智能对象所处虚拟环境的光环境,不同的所述光环境的亮度不同;在所述人工智能对象移动的过程中,当所述光环境发生改变时,对所述人工智能对象在虚拟场景中的视野范围进行相应的调整;其中,所述光环境的亮度与所述视野范围呈正相关关系。
在一些实施例中,所述确定模块,还用于获取所述人工智能对象的感知距离;构建以所述人工智能对象在所述虚拟场景中的位置为圆心、以所述感知距离为半径的圆形区域,将所述圆形区域确定为所述人工智能对象在所述虚拟场景中的感知区域;当虚拟对象进入所述感知区域内、且处于所述视野范围外时,控制所述人工智能对象感知到所述虚拟对象。
在一些实施例中,所述确定模块,还用于获取所述虚拟对象进入所述感知区域内的时长;基于所述时长,确定所述人工智能对象对所述虚拟对象的感知度,所述感知度与所述时长呈正相关关系。
在一些实施例中,所述确定模块,还用于获取随所述时长的变化所述感知度的变化速率;当所述虚拟对象在所述感知区域内移动时,获取所述虚拟对象的移动速度;在所述虚拟对象移动的过程中,当所述虚拟对象的移动速度发生变化时,获取所述移动速度对应的加速度大小;基于所述移动速度对应的加速度大小,调整所述感知度的变化速率。
在一些实施例中,所述确定模块,还用于获取所述虚拟对象进入所述感知区域内的时长,并基于所述时长,确定所述人工智能对象对所述虚拟对象的第一感知度;获取所述虚拟对象在所述感知区域内的移动速度,并基于所述移动速度,确定所述人工智能对象对所述虚拟对象的第二感知度;获取所述第一感知度对应的第一权重,以及所述第二感知度对应的第二权重;基于所述第一权重以及所述第二权重,对所述第一感知度以及所述第二感知度加权求和,得到所述人工智能对象对所述虚拟对象的目标感知度。
在一些实施例中,所述确定模块,还用于获取在所述感知区域中所述虚拟对象与所述人工智能对象的距离;基于所述距离,确定所述人工智能对象对所述虚拟对象的感知度,所述感知度与所述距离呈正相关关系。
在一些实施例中,所述确定模块,还用于当所述人工智能对象感知到处于所述视野范围外的虚拟对象时,确定所述人工智能对象对应的逃离区域;在所述逃离区域中,选择逃离目标点,所述逃离目标点与所述虚拟对象的距离达到距离阈值;基于所述逃离目标点,确定所述人工智能对象的逃离路径,以使所述人工智能对象基于所述逃离路径进行移动。
在一些实施例中,所述确定模块,还用于获取所述虚拟场景对应的寻路网格、所述人工智能对象对应的逃离距离及相对所述虚拟对象的逃离方向;在所述寻路网格中,基于所述逃离距离及相对所述虚拟对象的逃离方向,确定所述人工智能对象对应的逃离区域。
在一些实施例中,所述确定模块,还用于确定人工智能对象对应的最小逃离距离、最大逃离距离、最大逃离角度以及最小逃离角度;以所述人工智能对象在所述虚拟场景中的位置为圆心,以所述最小逃离距离为半径,并以所述最大逃离角度与所述最小逃离角度的差值为圆心角,沿相对所述虚拟对象的逃离方向,构建第一扇形区域;以所述人工智能对象在所述虚拟场景中的位置为圆心,以所述最大逃离距离为半径,并以所述最大逃离角度与所述最小逃离角度的差值为圆心角,沿相对所述虚拟对象的逃离方向,构建第二扇形区域;将所述第二扇形区域中不包括所述第一扇形区域的其他区域作为所述人工智能对象对应的逃离区域。
在一些实施例中,所述检测模块,还用于控制所述人工智能对象发射射线,并基于发射的射线在所处环境的三维空间内进行扫描;接收所述射线的反射结果,并当所述反射结果表征接收到所述射线的反射线时,确定在相应方向上存在障碍物。
在一些实施例中,所述第二控制模块,还用于确定所述障碍物的物理属性及位置信息、并确定所述人工智能对象的物理属性;基于所述障碍物的物理属性及位置信息、所述人工智能对象的物理属性,控制所述人工智能对象进行相应的避障处理。
在一些实施例中,所述第二控制模块,还用于基于所述障碍物的物理属性及位置信息、所述人工智能对象的物理属性,确定躲避所述障碍物对应的运动行为;基于确定的所述运动行为,进行相应的运动学模拟,以躲避所述障碍物。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的虚拟场景中的对象处理方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的虚拟场景中的对象处理方法,例如,如图3示出的虚拟场景中的对象处理方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上所述,本申请实施例中为AI对象赋予了拟人化的视野感知范围,并通过PhysX实现了游戏世界的真实物理模拟,使用navmesh实现了AI对象的自动化寻路,最终构成了成熟的AI环境感知系统。环境感知是AI对象执行决策的基础,能够使得AI对象对周围环境具有良好的感知能力,最终做出合理的决策,提升了玩家在3D开放世界游戏中的沉浸式体验感。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (18)

1.一种虚拟场景中的对象处理方法,其特征在于,包括:
确定人工智能对象在虚拟场景中的视野范围;其中,所述虚拟场景通过三维物理模拟所创建;
基于所述视野范围,控制所述人工智能对象在所述虚拟场景中移动;
在所述人工智能对象移动的过程中,对所述人工智能对象所处虚拟环境进行三维空间的碰撞检测,得到检测结果;
当基于所述检测结果确定所述人工智能对象的移动路径中存在障碍物时,控制所述人工智能对象进行相应的避障处理。
2.如权利要求1所述的方法,其特征在于,所述确定人工智能对象在虚拟场景中的视野范围,包括:
获取所述人工智能对象对应的视野距离及视野角度,所述视野角度为锐角或钝角;
以所述人工智能对象在所述虚拟场景中的位置为圆心、以所述视野距离为半径,并以所述视野角度为圆心角,构建扇形区域;
将所述扇形区域对应的区域范围确定为所述人工智能对象在虚拟场景中的视野范围。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述人工智能对象所处虚拟环境的光环境,不同的所述光环境的亮度不同;
在所述人工智能对象移动的过程中,当所述光环境发生改变时,对所述人工智能对象在虚拟场景中的视野范围进行相应的调整;
其中,所述光环境的亮度与所述视野范围呈正相关关系。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述人工智能对象的感知距离;
构建以所述人工智能对象在所述虚拟场景中的位置为圆心、以所述感知距离为半径的圆形区域,将所述圆形区域确定为所述人工智能对象在所述虚拟场景中的感知区域;
当虚拟对象进入所述感知区域内、且处于所述视野范围外时,控制所述人工智能对象感知到所述虚拟对象。
5.如权利要求4所述的方法,其特征在于,所述控制所述人工智能对象感知到所述虚拟对象之后,所述方法还包括:
获取所述虚拟对象进入所述感知区域内的时长;
基于所述时长,确定所述人工智能对象对所述虚拟对象的感知度,所述感知度与所述时长呈正相关关系。
6.如权利要求5所述的方法,其特征在于,所述确定所述人工智能对象对所述虚拟对象的感知度之后,所述方法还包括:
获取随所述时长的变化所述感知度的变化速率;
当所述虚拟对象在所述感知区域内移动时,获取所述虚拟对象的移动速度;
在所述虚拟对象移动的过程中,当所述虚拟对象的移动速度发生变化时,获取所述移动速度对应的加速度大小;
基于所述移动速度对应的加速度大小,调整所述感知度的变化速率。
7.如权利要求4所述的方法,其特征在于,所述控制所述人工智能对象感知到所述虚拟对象之后,所述方法还包括:
获取所述虚拟对象进入所述感知区域内的时长,并基于所述时长,确定所述人工智能对象对所述虚拟对象的第一感知度;
获取所述虚拟对象在所述感知区域内的移动速度,并基于所述移动速度,确定所述人工智能对象对所述虚拟对象的第二感知度;
获取所述第一感知度对应的第一权重,以及所述第二感知度对应的第二权重;
基于所述第一权重以及所述第二权重,对所述第一感知度以及所述第二感知度加权求和,得到所述人工智能对象对所述虚拟对象的目标感知度。
8.如权利要求4所述的方法,其特征在于,所述控制所述人工智能对象感知到所述虚拟对象之后,所述方法还包括:
获取在所述感知区域中所述虚拟对象与所述人工智能对象的距离;
基于所述距离,确定所述人工智能对象对所述虚拟对象的感知度,所述感知度与所述距离呈正相关关系。
9.如权利要求1所述的方法,其特征在于,所述方法还包括:
当所述人工智能对象感知到处于所述视野范围外的虚拟对象时,确定所述人工智能对象对应的逃离区域;
在所述逃离区域中,选择逃离目标点,所述逃离目标点与所述虚拟对象的距离达到距离阈值;
基于所述逃离目标点,确定所述人工智能对象的逃离路径,以使所述人工智能对象基于所述逃离路径进行移动。
10.如权利要求9所述的方法,其特征在于,所述确定所述人工智能对象对应的逃离区域,包括:
获取所述虚拟场景对应的寻路网格、所述人工智能对象对应的逃离距离及相对所述虚拟对象的逃离方向;
在所述寻路网格中,基于所述逃离距离及相对所述虚拟对象的逃离方向,确定所述人工智能对象对应的逃离区域。
11.如权利要求10所述的方法,其特征在于,基于所述逃离距离及相对所述虚拟对象的逃离方向,确定所述人工智能对象对应的逃离区域,包括:
确定人工智能对象对应的最小逃离距离、最大逃离距离、最大逃离角度以及最小逃离角度;
以所述人工智能对象在所述虚拟场景中的位置为圆心,以所述最小逃离距离为半径,并以所述最大逃离角度与所述最小逃离角度的差值为圆心角,沿相对所述虚拟对象的逃离方向,构建第一扇形区域;
以所述人工智能对象在所述虚拟场景中的位置为圆心,以所述最大逃离距离为半径,并以所述最大逃离角度与所述最小逃离角度的差值为圆心角,沿相对所述虚拟对象的逃离方向,构建第二扇形区域;
将所述第二扇形区域中不包括所述第一扇形区域的其他区域作为所述人工智能对象对应的逃离区域。
12.如权利要求1所述的方法,其特征在于,所述对所述人工智能对象所处虚拟环境进行三维空间的碰撞检测,得到检测结果,包括:
控制所述人工智能对象发射射线,并基于发射的射线在所处环境的三维空间内进行扫描;
接收所述射线的反射结果,并当所述反射结果表征接收到所述射线的反射线时,确定在相应方向上存在障碍物。
13.如权利要求1所述的方法,其特征在于,所述当基于所述检测结果确定所述人工智能对象的移动路径中存在障碍物时,控制所述人工智能对象进行相应的避障处理,包括:
确定所述障碍物的物理属性及位置信息、并确定所述人工智能对象的物理属性;
基于所述障碍物的物理属性及位置信息、所述人工智能对象的物理属性,控制所述人工智能对象进行相应的避障处理。
14.如权利要求1所述的方法,其特征在于,所述基于所述障碍物的物理属性及位置信息、所述人工智能对象的物理属性,控制所述人工智能对象进行相应的避障处理,包括:
基于所述障碍物的物理属性及位置信息、所述人工智能对象的物理属性,确定躲避所述障碍物对应的运动行为;
基于确定的所述运动行为,进行相应的运动学模拟,以躲避所述障碍物。
15.一种虚拟场景中的对象处理装置,其特征在于,所述装置包括:
确定模块,用于确定人工智能对象在虚拟场景中的视野范围;其中,所述虚拟场景通过三维物理模拟所创建;
第一控制模块,用于基于所述视野范围,控制所述人工智能对象在所述虚拟场景中移动;
检测模块,用于在所述人工智能对象移动的过程中,对所述人工智能对象所处虚拟环境进行三维空间的碰撞检测,得到检测结果;
第二控制模块,用于当基于所述检测结果确定所述人工智能对象的移动路径中存在障碍物时,控制所述人工智能对象进行相应的避障处理。
16.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至14任一项所述的虚拟场景中的对象处理方法。
17.一种计算机可读存储介质,存储有可执行指令,其特征在于,所述可执行指令被处理器执行时实现权利要求1至14任一项所述的虚拟场景中的对象处理方法。
18.一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时实现权利要求1至14任一项所述的虚拟场景中的对象处理方法。
CN202210102421.XA 2022-01-27 2022-01-27 虚拟场景中的对象处理方法、装置、设备及存储介质 Pending CN114470775A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202210102421.XA CN114470775A (zh) 2022-01-27 2022-01-27 虚拟场景中的对象处理方法、装置、设备及存储介质
PCT/CN2022/131771 WO2023142609A1 (zh) 2022-01-27 2022-11-14 虚拟场景中的对象处理方法、装置、设备、存储介质及程序产品
US18/343,051 US20230338854A1 (en) 2022-01-27 2023-06-28 Object processing method and apparatus in virtual scene, device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210102421.XA CN114470775A (zh) 2022-01-27 2022-01-27 虚拟场景中的对象处理方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN114470775A true CN114470775A (zh) 2022-05-13

Family

ID=81475851

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210102421.XA Pending CN114470775A (zh) 2022-01-27 2022-01-27 虚拟场景中的对象处理方法、装置、设备及存储介质

Country Status (3)

Country Link
US (1) US20230338854A1 (zh)
CN (1) CN114470775A (zh)
WO (1) WO2023142609A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023142609A1 (zh) * 2022-01-27 2023-08-03 腾讯科技(深圳)有限公司 虚拟场景中的对象处理方法、装置、设备、存储介质及程序产品
CN116617669A (zh) * 2023-05-23 2023-08-22 广州盈风网络科技有限公司 一种碰撞测试及其检测方法、设备与存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105005473B (zh) * 2015-06-29 2018-02-23 乐道互动(天津)科技有限公司 一种用于开发3d游戏的游戏引擎系统
US11195320B2 (en) * 2019-12-12 2021-12-07 Facebook Technologies, Llc Feed-forward collision avoidance for artificial reality environments
CN112657192B (zh) * 2020-12-25 2023-05-09 珠海西山居数字科技有限公司 一种碰撞检测方法及装置
CN112717404B (zh) * 2021-01-25 2022-11-29 腾讯科技(深圳)有限公司 虚拟对象的移动处理方法、装置、电子设备及存储介质
CN112807681B (zh) * 2021-02-25 2023-07-18 腾讯科技(深圳)有限公司 游戏控制方法、装置、电子设备及存储介质
CN113018862B (zh) * 2021-04-23 2023-07-21 腾讯科技(深圳)有限公司 虚拟对象的控制方法、装置、电子设备及存储介质
CN114470775A (zh) * 2022-01-27 2022-05-13 腾讯科技(深圳)有限公司 虚拟场景中的对象处理方法、装置、设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023142609A1 (zh) * 2022-01-27 2023-08-03 腾讯科技(深圳)有限公司 虚拟场景中的对象处理方法、装置、设备、存储介质及程序产品
CN116617669A (zh) * 2023-05-23 2023-08-22 广州盈风网络科技有限公司 一种碰撞测试及其检测方法、设备与存储介质

Also Published As

Publication number Publication date
WO2023142609A1 (zh) 2023-08-03
US20230338854A1 (en) 2023-10-26

Similar Documents

Publication Publication Date Title
CN113181650B (zh) 虚拟场景中召唤对象的控制方法、装置、设备及存储介质
WO2023142609A1 (zh) 虚拟场景中的对象处理方法、装置、设备、存储介质及程序产品
CN112076473B (zh) 虚拟道具的控制方法、装置、电子设备及存储介质
CN112402960B (zh) 虚拟场景中状态切换方法、装置、设备及存储介质
CN112717404B (zh) 虚拟对象的移动处理方法、装置、电子设备及存储介质
CN112121414B (zh) 虚拟场景中的追踪方法、装置、电子设备及存储介质
US11704868B2 (en) Spatial partitioning for graphics rendering
JP7447296B2 (ja) 仮想道具のインタラクティブ処理方法、装置、電子機器及びコンピュータプログラム
JP7406567B2 (ja) 仮想環境の画面表示方法及び装置、並びにコンピュータ装置及びプログラム
CN113633964A (zh) 虚拟技能的控制方法、装置、设备及计算机可读存储介质
US20230033530A1 (en) Method and apparatus for acquiring position in virtual scene, device, medium and program product
CN112316429A (zh) 虚拟对象的控制方法、装置、终端及存储介质
CN112138385B (zh) 虚拟射击道具的瞄准方法、装置、电子设备及存储介质
CN111389007A (zh) 一种游戏控制方法、装置、计算设备及存储介质
CN114130006B (zh) 虚拟道具的控制方法、装置、设备、存储介质及程序产品
CN112121433B (zh) 虚拟道具的处理方法、装置、设备及计算机可读存储介质
CN114247132B (zh) 虚拟对象的控制处理方法、装置、设备、介质及程序产品
CN112870694B (zh) 虚拟场景的画面显示方法、装置、电子设备及存储介质
US20220365634A1 (en) Control display method and apparatus, device, medium, and program product
CN114146413A (zh) 虚拟对象的控制方法、装置、设备、存储介质及程序产品
CN116966549A (zh) 虚拟场景中瞄准点的确定方法、装置、设备及存储介质
CN116920401A (zh) 虚拟对象的控制方法、装置、设备、存储介质及程序产品
CN113633991A (zh) 虚拟技能的控制方法、装置、设备及计算机可读存储介质
CN116688501A (zh) 虚拟对象的控制方法、装置、设备、介质及程序产品
CN116764215A (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: 40071524

Country of ref document: HK