CN116966583A - 虚拟场景中ai角色的控制方法、装置、设备及存储介质 - Google Patents

虚拟场景中ai角色的控制方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116966583A
CN116966583A CN202310463963.4A CN202310463963A CN116966583A CN 116966583 A CN116966583 A CN 116966583A CN 202310463963 A CN202310463963 A CN 202310463963A CN 116966583 A CN116966583 A CN 116966583A
Authority
CN
China
Prior art keywords
exposure value
character
exposure
virtual
role
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
CN202310463963.4A
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 CN202310463963.4A priority Critical patent/CN116966583A/zh
Publication of CN116966583A publication Critical patent/CN116966583A/zh
Pending legal-status Critical Current

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/58Controlling game characters or game objects based on the game progress by computing conditions of game characters, e.g. stamina, strength, motivation or energy level
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/65Methods for processing data by generating or executing the game program for computing the condition of a game character

Abstract

本申请公开了一种虚拟场景中AI角色的控制方法、装置、设备及存储介质,涉及计算机技术领域,该方法通过虚拟场景中触发的场景事件来得到角色暴露值,用于衡量虚拟角色在虚拟场景中的位置暴露程度,进而在虚拟场景中只需要针对触发角色进行角色暴露值的更新,而周围的其他AI角色无需各自对其进行检测,降低了服务器所需执行的检测过程,降低服务器的资源占用以及负载压力,提升服务器的资源利用率,并且可以有充分的服务器资源用于游戏对局过程,以保障虚拟场景呈现过程的正常进行,提升虚拟场景应用的使用体验。此外,通过这样的方式,无需再针对虚拟场景中的刺激源进行检测,从而减少了对虚拟场景中众多刺激源的频繁检测所带来的性能消耗。

Description

虚拟场景中AI角色的控制方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及游戏技术领域,提供一种虚拟场景中人工智能(Artificial Intelligence,AI)角色的控制方法、装置、设备及存储介质。
背景技术
随着网络技术的发展,游戏逐渐成为了日常娱乐的常见方式,且目前涉及到的游戏种类众多,例如,角色扮演类游戏(Role-Playing Game,RPG)、第一人称射击(First-person shooting,FPS)类游戏、第三人称射击游戏(Third-Personal Shooting,TPS)或者多人在线战斗竞技场游戏(Multiplayer Online Battle Arena,MOBA)等,给日常生活带来更多的趣味性。
目前,在很多游戏中经常添加一些人工智能(Artificial Intelligence,AI)角色,陪伴玩家角色完成游戏。例如,在FPS类游戏中,由于一场游戏对局所需的玩家数量较多,例如,50个或者100个等,在玩家数量较少的时段游戏对局匹配所需的时长较久,因而为了降低匹配时长,可以在一场游戏对局中适当的增加AI角色,这些AI角色能够模拟真实玩家在游戏对局中的表现完成本场游戏对局。
为了使得AI角色在游戏对局过程中模拟真实玩家的行为,则AI角色自身需要对自身所处的周围环境进行检测,进而根据检测结果决策AI角色之后的行为。目前AI角色进行检测的方式通常是借助游戏引擎自身包括的感知系统来进行的,但是,这种感知方式对于每个AI角色而言,都需要对各类刺激源进行检测,例如,当一角色触发开火事件时,则其周围的每个AI角色都需要对该事件进行检测,使得当AI角色较多时,检测过程在服务器中频繁的进行,则会占用较多的服务器资源,增大了服务器的负载压力,严重时还可能影响游戏对局过程的正常进行。
发明内容
本申请实施例提供一种虚拟场景中AI角色的控制方法、装置、设备及存储介质,用于提升服务器的资源利用率,降低服务器的负载压力。
一方面,提供一种虚拟场景中AI角色的控制方法,该方法包括:
获得目标AI角色所在的虚拟场景中各个敌对角色各自当前的角色暴露值;其中,每个角色暴露值是基于相应敌对角色已触发的场景事件得到的,且用于表征相应敌对角色在所述虚拟场景中的位置暴露程度;
基于所述各个敌对角色各自对应的角色暴露值,以及所述各个敌对角色各自与所述目标AI角色之间的距离,获得所述各个敌对角色各自相对于所述目标AI角色的相对暴露值;
将相对暴露值符合预设暴露值条件的敌对角色作为行为对象,并基于所述行为对象的相对暴露值,确定针对所述行为对象的目标应对行为;
控制所述目标AI角色,针对所述行为对象执行所述目标应对行为。
一方面,提供一种虚拟场景中AI角色的控制装置,该装置包括:
数据获得单元,用于获得所述目标AI角色所在的虚拟场景中各个敌对角色各自当前的角色暴露值;其中,每个角色暴露值是基于相应敌对角色已触发的场景事件得到的,且用于表征相应敌对角色在所述虚拟场景中的位置暴露程度;
暴露值评价单元,用于所述各个敌对角色各自对应的角色暴露值,以及所述各个敌对角色各自与所述目标AI角色之间的距离,获得所述各个敌对角色各自相对于所述目标AI角色的相对暴露值;
行为决策单元,用于将相对暴露值符合预设暴露值条件的敌对角色作为行为对象,并基于所述行为对象的相对暴露值,确定针对所述行为对象的目标应对行为;
行为执行单元,控制所述目标AI角色,针对所述行为对象执行所述目标应对行为。
一方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一种方法的步骤。
一方面,提供一种计算机存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一种方法的步骤。
一方面,提供一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行上述任一种方法的步骤。
本申请实施例中,提供了一种通过角色暴露值来衡量各个虚拟角色在虚拟场景中的位置暴露程度的方式,在虚拟场景中,针对目标AI角色,能够基于获得的目标AI角色的敌对角色各自当前的角色暴露值,以及各个敌对角色与目标AI角色之间的距离,获得各个敌对角色各自相对于目标AI角色的相对暴露值,最终来依据相对暴露值选取行为对象以及针对行为对象的目标应对行为,并控制目标AI角色针对行为对象执行目标应对行为。
由于虚拟角色在虚拟场景中触发一定的场景事件时,可能会引发敌对角色的注意,因而造成虚拟角色的位置暴露,因而各个虚拟角色的暴露值是通过其在游戏对局中已触发的场景事件来得到的,能够更为准确的衡量虚拟角色在虚拟场景中的位置暴露程度,从而当触发场景事件时,只需要针对触发角色进行暴露值的更新,而周围的其他AI角色无需对其进行检测,降低了服务器所需执行的检测过程,降低服务器的资源占用以及负载压力,提升服务器的资源利用率,并且可以有充分的服务器资源用于虚拟场景中的其他过程,提升使用体验。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的应用场景示意图;
图2为本申请实施例提供的角色暴露值的增加过程的流程示意图;
图3为本申请实施例提供的事件类型集合的架构示意图;
图4为本申请实施例提供的暴露值增加过程示意图;
图5为本申请实施例提供的暴露值增加的一种流程示意图;
图6a~图6c为本申请实施例提供的一种暴露值增加计算示例图;
图7为本申请实施例提供的一种暴露值衰减过程的流程示意图;
图8为本申请实施例提供的暴露值衰减过程示例图;
图9为本申请实施例提供的另一种暴露值衰减过程的流程示意图;
图10为本申请实施例提供的暴露值衰减实例图;
图11为本申请实施例提供的虚拟场景中AI角色的控制方法的流程示意图;
图12a~图12b为本申请实施例提供的AI角色的行为控制的虚拟场景画面示意图;
图13为本申请实施例提供的虚拟场景中AI角色的控制装置的一种结构示意图;
图14为本申请实施例提供的计算机设备的组成结构示意图;
图15为应用本申请实施例的另一种计算机设备的组成结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
可以理解的是,在本申请的下述具体实施方式中,涉及到游戏玩家相关的数据,当本申请的各实施例运用到具体产品或技术中时,需要获得相关许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
为便于理解本申请实施例提供的技术方案,这里先对本申请实施例使用的一些关键名词进行解释:
虚拟角色:是指虚拟场景中可被控制用于完成虚拟场景相关过程的角色,以虚拟场景为游戏对应的游戏场景为例,则虚拟角色是指可唯一确定一个游戏对象的对象,一个游戏账号下可以创建多个虚拟角色,当然,除了正式玩家账号中创建的虚拟角色之外,本申请实施例还涉及到辅助完成游戏对局的AI角色。在一些游戏客户端中,需要创建虚拟角色在虚拟场景中进行游戏对局,则该虚拟角色可以是指在虚拟场景中的可活动对象。该可活动对象可以是虚拟人物、虚拟动物、动漫人物中的至少一种。可选地,当虚拟场景为三维虚拟场景时,虚拟角色可以是基于动画骨骼技术创建的三维立体模型。每个虚拟角色在三维虚拟场景中具有自身的形状和体积,占据三维虚拟场景中的一部分空间。而在一些游戏客户端中,游戏玩家可创建虚拟角色,该虚拟角色并不存在可视的实体对象,而是可以通过在游戏对局中选择可操作的游戏英雄作为在虚拟场景中的可活动对象完成本次游戏对局,则该虚拟角色也可作为本申请实施例的虚拟角色。
AI角色:AI是开发用于模拟和扩展人的智能和方法,在游戏中实现角色模拟真实玩家的技术,即AI角色除了不由真实玩家控制之外,其在虚拟场景中的行为是模拟真实玩家的虚拟角色来实现的。
游戏对局:或称虚拟对战,是指在虚拟场景中,至少两个虚拟角色进行对战的游戏模式,可选地,该游戏对局是至少两个虚拟角色进行对战的单局对战模式。
在一种可能的实施方式中,每次游戏对局可以对应一个对战时长/对战人数,当游戏对局对应对战时长时,存活时长达到该对战时长的虚拟角色获得胜利;当虚拟道具对战对应对战人数时,最后一个或一组存活的虚拟角色获得胜利。可选地,该虚拟对战可以是单人匹配模式的游戏对局(即虚拟对战中的虚拟角色都是单人作战)、双人匹配模式的游戏对局(即虚拟对战中的虚拟角色可以是两人组队作战也可以是单人作战)或者四人匹配模式(即虚拟对战中最多可以由四个虚拟角色进行组队进行作战)的游戏对局,其中,当匹配模式为双人匹配模式或四人匹配模式时,第一虚拟角色可以与具有好友关系的第二虚拟角色进行匹配,也可以与不具有好友关系的第三虚拟角色进行匹配。
在一种可能的实施方式中,每局游戏对局对应至少两个阵营,不同阵营的虚拟角色之间相互为敌对关系,每个阵营对应各自的阵营场地,当各阵营的阵营场地被全部占领(如阵营的水晶被攻破)则该阵营的虚拟角色在本次游戏对局中失败。
敌对角色:在虚拟场景中,被分配到不同阵营或者不同团队的虚拟角色,例如针对一个虚拟角色A(可以为真实玩家的虚拟角色,也可以是AI角色),其属于团队1,而另一个虚拟角色B属于团队2,则虚拟角色A和B互为二者的敌对角色。
虚拟场景:是虚拟角色所处于的虚拟场景,同样以游戏为例,则虚拟场景是一种提供游戏对局所需的虚拟环境,即游戏客户端在终端设备上运行时显示(或提供)的虚拟环境,该虚拟环境可以是对真实世界的仿真环境,也可以是半仿真半虚构的三维环境,还可以是纯虚构的三维环境,例如可以是二维虚拟场景、2.5维虚拟场景和三维虚拟场景中的任意一种,下述实施例以虚拟环境是三维虚拟场景来举例说明,但对此不加以限定。可选地,该虚拟环境还用于至少两个虚拟角色之间的虚拟场景对战。可选地,该虚拟环境还用于至少两个虚拟角色之间使用游戏道具进行对战。可选地,该虚拟环境还用于在目标区域范围内,至少两个虚拟角色之间使用游戏道具进行对战,该目标区域范围会随虚拟环境中的时间推移而不断变小。
场景事件:场景事件指虚拟角色在虚拟场景中的各种行为或过程产生的事件,同样以游戏为例,在游戏场景中,虚拟角色的移动会产生移动事件,虚拟角色进行射击会产生射击事件,虚拟场景中的物体或虚拟角色发生碰撞会产生碰撞事件,这些事件都可以被游戏程序所感知到并进行记录。本申请实施例中,场景事件通常是会造成虚拟角色位置被暴露给敌对角色的事件,例如开火事件、技能释放等。
角色暴露值:是一种基于虚拟角色的场景事件统计得到的,用于衡量虚拟角色的位置暴露程度的指标,当虚拟角色触发一定的场景事件时,则角色暴露值随之升高,同时随着时间的推移,角色暴露值还会随着时间的进程发生衰减,最终得到的值即为该虚拟角色的角色暴露值。
暴露值类型:是指按照一定的特征维度对角色暴露值划分为多个子维度,每个子维度对应有相应的子暴露值。例如,可以按照知晓位置的程度,或者说位置暴露的程度来对暴露值进行划分,如知晓敌对角色的大概位置、知晓敌对角色的具体位置以及能够直接看见敌对角色或者敌对角色的轮廓等。
刺激(stimulus)源:刺激源是指能够让人体产生应激反应的源头,例如视觉主要由光刺激作用于人眼所产生,因而实际场景中可见光就是视觉刺激源。在虚拟场景中的物体都可以作为刺激源,将其添加刺激源属性后,则可以被AI角色所感知到,比如在虚拟场景中,如果给某内容添加听觉刺激源,当其在角色听觉范围内产生时,角色可以听见该内容。
本申请实施例涉及人工智能技术,人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本申请实施例中涉及利用AI技术实现在虚拟场景中添加AI角色,以及通过本申请实施例的控制方法控制AI角色,以陪同真实玩家角色完成游戏对局。
以游戏为例,游戏中经常会添加一些AI角色,但AI角色通常是借助游戏引擎自身包括的感知系统来对自身所处的周围环境进行检测,例如游戏引擎为虚幻引擎(UnrealEngine,UE)4时,UE4自带了听觉感知系统、视觉感知系统等,这些感知系统通过感知器和刺激源的交互产生对应的数据记录、评分以及消除,最终实现AI角色对周围环境中的目标及物件的感知,并以此来决策AI角色之后的行为。但是,这种检测方式存在如下的问题:
第一,在一种游戏对局中服务器需要频繁的针对各类刺激源进行检测,而游戏场景中存在的刺激源类型众多,频繁的检测过程会对服务器性能产生过多的消耗,且同类刺激源会产生相同的效果,但是AI角色是无法在数据层面区分出相同刺激源绑定在不同物件上时的区别。
第二,由于上述检测方式是多对一,针对统一刺激源会产生多倍的性能消耗,也就是说,当一个刺激源附近有多个AI时,每个AI都会与刺激源发生了一次交互及计算,这样多次交互和计算无法避免产生更多的性能消耗。例如,当一角色触发开火事件时,则其周围的每个AI角色都需要对该事件进行检测,使得当AI角色较多时,检测过程在服务器中频繁的进行,则会占用较多的服务器资源,增大了服务器的负载压力,严重时还可能影响游戏对局过程的正常进行。
第三,由于AI角色是自身感知到刺激源,同时将结果记录在自身,所以为了模拟真实团队作战的情景,当其它AI角色同步信息时,检测到的信息结果需要再次通过通信机制在多名AI角色间进行共享,例如需要该AI角色主动将信息公布出来或传输给其它AI角色,该额外步骤同样会带来额外的开发工作量和性能消耗,并且,这种感知系统方案无法准确的模拟人类团队的沟通和部分感知情景,如小地图可见、队友可见、队友听见以及技能特效可见等。
考虑到上述的问题是由于相关技术中所采用的检测方式所带来的,因此要解决上述的问题,需要从根本上改变所采用的检测方式。
基于此,本申请实施例提供了一种通过角色暴露值来衡量各个虚拟角色在虚拟场景中的位置暴露程度的方式,在虚拟场景中,针对目标AI角色,能够基于获得的目标AI角色的敌对角色各自当前的角色暴露值,以及各个敌对角色与目标AI角色之间的距离,获得各个敌对角色各自相对于目标AI角色的相对暴露值,最终来依据相对暴露值选取行为对象以及针对行为对象的目标应对行为,并控制目标AI角色针对行为对象执行目标应对行为。
由于虚拟角色在虚拟场景中触发一定的场景事件时,可能会引发敌对角色的注意,因而造成虚拟角色的位置暴露,因而各个虚拟角色的暴露值是通过其在游戏对局中已触发的场景事件来得到的,能够更为准确的衡量虚拟角色在虚拟场景中的位置暴露程度,从而当触发场景事件时,只需要针对触发角色进行暴露值的更新,而周围的其他AI角色无需对其进行检测,降低了服务器所需执行的检测过程,降低服务器的资源占用以及负载压力,提升服务器的资源利用率,并且可以有充分的服务器资源用于虚拟场景中的其他过程,提升使用体验。通过这样的方式,无需再针对刺激源进行检测,从而减少了对虚拟场景中众多的刺激源的频繁检测所带来的性能消耗。
并且,本申请实施例统计得到的角色暴露值对于所有的AI角色来讲都是一样的,且各AI角色在同一时刻读取到的角色暴露值是相同的,即对于AI团队而言,各个AI角色的感知能力相同,从而无需主动进行感知结果的共享,而感知系统和团队通信是游戏中非常重要的能力,特别是在偏竞技的射击游戏中,感知系统和团队通信能力的好坏可以明显的影响AI行为表现的好坏,而本申请实施例的方案则提供了一种新的感知系统和团队通信系统方案,可以通过简洁的方式来解决该类问题,以提升AI的感知能力表现和团队配合表现。以及,在应用时通过各自不同的距离进行衰减,以得到针对每个AI角色的相对暴露值,用于参与AI角色的行为控制。
此外,本申请实施例还提供了一套完整的暴露值计算架构,通过虚拟场景中的场景事件的触发,来对相应的触发者进行暴露值的增加,即当存在场景事件触发时会增加其他虚拟角色对于触发者的关注度,且随着虚拟场景中时间线的推移,场景事件触发的暴露值所带来的关注度也会逐渐减小,因此本申请实施例还会对暴露值进行一定的衰减,使得暴露值的计算更加符合真实场景中的实际情况。
下面对本申请实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施过程中,可以根据实际需要灵活地应用本申请实施例提供的技术方案。
本申请实施例提供的方案可以适用于大多数虚拟场景应用中,比如适用于包含AI角色在内的多个虚拟角色参与对局的游戏应用场景中。如图1所示,为本申请实施例提供的一种应用场景示意图,在该场景中,可以包括多个终端设备101和服务器102,每个终端设备101可以安装有与服务器102对应的客户端,比如支持三维虚拟场景的游戏应用程序。该游戏应用程序可以是虚拟现实(Virtual Reality,VR)游戏程序、第三人称射击游戏(Third-Personal Shooting Game,TPS)、第一人称射击游戏(First-person shooting game,FPS)、多人在线战术竞技游戏(Multiplayer Online Battle Arena,MOBA)、大型多人在线角色扮演游戏(Massive Multiplayer Online Role-playing game,MMORPG)、多人枪战类生存游戏中的任意一种。可选地,该应用程序可以是单机版的应用程序,比如单机版的3D游戏程序,也可以是网络联机版的应用程序。本申请实施例涉及的客户端可以是软件客户端,也可以是网页、小程序等客户端,服务器102则是与软件或是网页、小程序等相对应的服务器,不限制客户端的具体类型。
终端设备101可以为任意具备游戏运行功能的设备,例如可以为手机、膝上型便携计算机、平板电脑(PAD)、笔记本电脑、台式电脑、智能电视、智能车载设备、智能可穿戴设备、电子书阅读器等。服务器102为用于为该客户端提供后台服务。例如可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、即内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云端服务器,但并不局限于此。
需要说明的是,本申请实施例中的虚拟场景中AI角色的控制方法可以由终端设备101或者服务器102单独执行,也可以由服务器102和终端设备101共同执行。换句话说,各终端设备101上运行游戏客户端的过程中,服务器102承担主要计算工作,各终端设备101承担次要计算工作;或者,服务器102承担次要计算工作,各终端设备101承担主要计算工作;或者,服务器102与各终端设备101之间采用分布式计算架构进行协同计算。
服务器102和终端设备101均可以包括一个或多个处理器、存储器以及与用于进行交互的I/O接口等。此外,服务器102还可以配置数据库,可以用于存储虚拟场景中涉及到的数据,如场景事件数据等。其中,服务器102和终端设备101的存储器中还可以存储本申请实施例提供的虚拟场景中AI角色的控制方法中各自所需执行的程序指令,这些程序指令被处理器执行时能够用以实现本申请实施例提供的虚拟场景中AI角色的控制过程。
当虚拟场景为游戏场景时,在实际应用过程中,不同的游戏玩家可以通过各自的终端设备101运行游戏客户端,其中,不同终端设备101上运行的应用程序可以是相同的,或者为不同操作系统平台的同一类型应用程序。当终端设备101运行游戏客户端时,呈现包含虚拟角色的游戏界面。此外,本申请实施例中针对的AI角色是不存在真实玩家的,因而其不存在相应的游戏界面,但从AI角色的角度,也可以包含对应的假想游戏画面,这里以一个玩家角色和AI角色为例,当玩家角色和AI角色处于同一游戏对局时,终端设备中呈现包含玩家角色的游戏界面,该玩家角色的附近可以包含AI角色,且二者处于不同队伍、不同组织、或具有敌对性的两个团体中,当AI角色满足一定的角色状态时,则可以获取玩家角色当前的角色暴露值,并依据角色暴露值以及玩家角色和AI角色之间的距离,得到玩家角色相对于AI角色的相对暴露值,表征玩家角色对于AI角色的位置暴露程度,则可以基于相对暴露值决定是否将玩家角色作为AI角色的行为对象,以及当作为行为对象时,AI角色会对该玩家角色做出何种应对行为,例如当相对暴露值很高时,则可以控制AI角色向玩家角色发起攻击,则在玩家角色的游戏画面中,则可以呈现出该AI角色向其发起攻击的游戏画面。
在一种可能的实施方式中,终端设备101本地安装有游戏客户端并用于呈现游戏画面。终端设备101用于通过图形用户界面与玩家进行交互,即,常规的通过终端设备101下载安装游戏客户端并运行,当然,游戏客户端的成功运行也需要服务器102提供后台服务。该终端设备101将图形用户界面提供给玩家的方式可以包括多种,例如,可以渲染显示在终端的显示屏上,或者,通过全息投影提供给玩家。
在一种可能的实施方式中,本申请实施例中的游戏应用还可以基于云交互系统来实现,云交互系统下可以运行各种云应用,例如:云游戏。以云游戏为例,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏客户端的运行主体和游戏画面呈现主体是分离的,虚拟场景中的AI角色控制方法的储存与运行是在云服务器上完成的,终端设备101的作用用于数据的接收、发送以及游戏画面的呈现,举例而言,终端设备101可以是靠近用户侧的具有数据传输功能的显示设备,但是进行虚拟场景中的AI角色控制方法的为云端的云服务器。在进行游戏时,玩家操作客户端设备向云服务器发送操作指令,云服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回客户端设备,最后,通过客户端设备进行解码并输出游戏画面。
本申请实施例中,各终端设备101和服务器102之间可以通过一个或者多个网络103进行直接或间接的通信连接。该网络103可以是有线网络,也可以是无线网络,例如无线网络可以是移动蜂窝网络,或者可以是无线保真(Wireless-Fidelity,WIFI)网络,当然还可以是其他可能的网络,本申请实施例对此不做限制。
需要说明的是,图1所示只是举例说明,实际上终端设备和服务器的数量不受限制,在本申请实施例中不做具体限定。
下面结合上述描述的应用场景,参考附图来描述本申请示例性实施方式提供的虚拟场景中AI角色的控制方法,需要注意的是,上述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施方式在此方面不受任何限制。
本申请实施例中,提供了一种基于场景事件的感知系统,通过虚拟场景中触发的场景事件进行记录和评估各个场景事件触发者的角色暴露值,可以让AI角色在游戏过程中,在任意时间点,依据各个不同虚拟角色产生的角色暴露值来判断是否能察觉到该虚拟角色,进而做出相对应的应对行为。由于AI角色的行为控制是依赖于虚拟角色的角色暴露值进行的,因此在介绍本申请实施例的控制方法之前,首先对角色暴露值的计算过程进行介绍。
参见图2所示,为本申请实施例提供的角色暴露值的增加过程的流程示意图。
步骤201:基于预配置的事件类型集合,检测虚拟场景中是否触发预配置事件类型的目标场景事件。
本申请实施例中,与现实场景类似的,在虚拟场景中,虚拟角色触发场景事件则会增加自身位置暴露给敌对角色的可能性,因此角色暴露值的增加是基于虚拟角色触发的场景事件计算得到的,因此为了进行角色暴露值的计算,需要实现进行暴露值计算相关配置信息的配置,以便于在虚拟场景呈现过程中,采集场景事件数据以及进行角色暴露值的计算。但需要说明的是,配置过程在服务器中无需重复执行,即只需要配置一次即可,在后续的过程中,则可以基于这些配置信息执行角色暴露值的计算过程。
本申请实施例中,配置信息可以包含触发角色暴露值事件增加的事件类型集合,可以包含一切能够关于声纹或者技能等事件,声纹事件是指能够产生一定的声音效果的事件,例如虚拟角色移动时会产生脚步声、虚拟角色释放技能时会产生技能特效声、虚拟角色开火时会产生道具的特效声、虚拟角色驾驶车辆时车辆的轰鸣声、虚拟角色发生碰撞时的碰撞声等等,技能事件则主要是指释放技能的事件,例如开火、安装炸弹、释放角色特有技能等。当然,也可以包含其他任意可能使得角色产生感知的事件,本申请实施例对此不做限制。
在一种可能的实施方式中,以游戏场景为例,事件类型集合可以包括但不限于如下表1中所示:
表1
那么,在实际的游戏对局过程中,则需要针对上述预配置事件类型进行检测,确定该游戏对局中是否触发了上述的事件类型。
在一种可能的实施方式中,角色暴露值可以是实时更新的,也就是说可以实时地针对场景事件进行检测,一旦有场景事件触发,则针对相应的触发角色进行暴露值的增加。
具体的,可以预先针对上述各种场景事件进行订阅,一旦场景事件触发,则可以接收到相应的事件通知,以知晓上述场景事件已经触发;或者,还可以针对上述的场景事件设置检测接口,例如采用钩子(hook)的方式,一旦触发场景事件,也可以快速的检测到上述场景事件已经触发。
在一种可能的实施方式中,考虑到实时检测可能会对服务器造成较多的性能消耗,因此,角色暴露值的更新还可以是周期性的,即可以预先配置暴露值更新周期,进而当上一个周期结束,新的一个周期开始时,则针对上一个周期内的场景事件进行检测,并以此对相应的触发角色进行暴露值的增加,以通过周期性的暴露值更新,从而在满足游戏对局需求的条件下,减少暴露值更新的次数,进而降低服务器的性能消耗。
具体的,配置暴露值更新周期之后,则可以在游戏对局过程中,基于配置的暴露值更新周期,确定当前时刻是否满足暴露值更新条件,也就是新的一个周期是否开始,在满足暴露值更新条件时,则获得上一个暴露值更新周期内虚拟场景中所触发的所有场景事件,并针对获得的各个场景事件,分别确定各个场景事件各自的事件类型是否与事件类型集合匹配,从而从上一个暴露值更新周期内的场景事件中,选择出符合上述预配置的事件类型的场景事件,那么当存在一个场景事件的目标事件类型与事件类型集合匹配时,则确定检测到目标场景事件的触发。其中,这里的目标场景事件是指与事件类型集合匹配的场景事件,也就是触发角色暴露值事件增加的场景事件。
在实际应用时,暴露值更新周期的具体值可以根据虚拟场景的需求以及服务器性能情况进行设定,例如需要针对AI的行为控制更为精准时,可以采用更低暴露值更新周期,使得角色暴露值的实时性更好,提升AI的实时反应控制准确率;或者,当服务器的负载明显较高时,则可以适应性的提高暴露值更新周期,从而降低服务器的负载。当然,对于暴露值更新周期的具体值的设定方式,本申请实施例对此并不进行限制。
步骤202:当步骤201的结果为是时,即在检测到目标场景事件触发时,基于目标场景事件的目标事件类型,获取目标事件类型的暴露值更新配置信息。
本申请实施例中,与现实场景中所类似的,不同的事件发生时其影响的距离以及带来的注意力程度都是不同的,因而在虚拟场景中,不同类型的场景事件触发时,其事件有效的影响范围以及增加的暴露值也应当时不同的,因此,在进行暴露值功能配置时,也需要针对每个事件类型的暴露值更新配置信息进行配置。
在一种可能的实施方式中,每个事件类型的暴露值更新配置信息可以包括如下信息:
(1)该类事件触发时事件类型的暴露范围,或称为有效距离,也就是说该类事件能够引起敌对角色的注意力的有效范围,当超出该范围时,则该类事件不会增加虚拟角色的角色暴露值,则在游戏对局过程中,会在有效距离内检测敌对角色,以及检测敌对角色与触发者之间的距离,以用于后续的暴露值计算过程。
例如,对于移动事件而言,只有在一定的距离范围内才能够听到其他虚拟角色的脚步声,因而移动事件的有效距离则可以在能够听到脚步声的距离范围内。
参见图3所示,为本申请实施例提供的事件类型集合的架构示意图。其中,针对每一种事件类型,都会对应配置其有效距离,如图3所示的开火事件其有效距离为2500cm,也就是说,当一个敌对角色位于开火事件的事件触发者(即被控制使用持有虚拟道具开火的虚拟角色)2500cm的范围内时,该开火事件才可能会引起该敌对角色的注意,而敌对角色与事件触发者之间的距离超过2500cm时,则敌对角色不会对该开火事件有任何感知。
换句话说,当一个虚拟角色触发开火事件时,若是在虚拟场景中,距离该虚拟角色2500cm内并未存在任何的敌对角色,因为其不会带来任何的暴露风险,则该开火事件可以认为是对暴露值而言是无效的,则不会产生暴露值的增加。
(2)该类事件触发所带来的暴露值增加量,不同的事件类型所激发的注意力是不同的,因此需要针对不同的事件类型配置相应的暴露值增加量,以更为符合真实玩家对于场景事件触发时的反应。
本申请实施例使用一种通用的数字统计方式,来记录虚拟场景中虚拟角色的不同行为带来的暴露效果,并通过比较数字大小,来判断该虚拟角色当前是否已被敌对角色知晓位置,以及知晓位置的程度。
为了从不同的特征维度衡量场景事件带来的位置暴露程度,还可以将每类场景事件的暴露值增加量划分为多种子类型,在相应场景事件触发,分别从不同的子类型上进行暴露值的增加。
在一种可能的实施方式中,可以从知晓位置的程度上,将暴露值分为多种暴露值类型,不同的暴露值类型对应于不同的位置暴露程度,相应的,暴露值增加量可以包括多种暴露值类型各自对应的暴露值子增加量。例如,将暴露值划分为如下表2的几种情况:
子类型标识 含义 暴露值增加量
A类暴露值 知晓敌对角色的大概位置 A类暴露值子增加量
B类暴露值 知晓敌对角色的具体位置 B类暴露值子增加量
C类暴露值 可以直接看见敌对角色或者其轮廓 C类暴露值子增加量
表2
以A类暴露值为例,其能够表征知晓敌对角色的大概位置的程度,对于对应的虚拟角色自身而言,其对应的A类暴露值表征的即为其自身的大概位置暴露给敌对角色的程度高低。
结合图3所示,则在进行配置时,还需要针对每种子类型进行暴露值子增加量的配置,即当触发某种类型的场景事件时,需要为每种子类型增加多少暴露值。如图3中,当一个虚拟角色触发开火事件且在2500cm内有其他敌对角色时,则将该虚拟角色的A类暴露值增加550,B类暴露值增加150,不增加C类暴露值。
步骤203:基于暴露值更新配置信息,对触发目标场景事件的虚拟角色的角色暴露值进行更新处理,获得虚拟角色更新后的角色暴露值。
因此,当检测到目标游戏事件触发时,则可以基于目标场景事件的目标事件类型,来获取相对应的暴露值更新配置信息,其中包含了目标事件类型的暴露范围以及暴露值增加量,以确定所需增加的暴露值。
具体的,当虚拟角色触发目标场景事件时,需要确定在该虚拟角色触发场景事件时,虚拟角色针对目标事件类型的暴露范围内是否存在其他敌对角色,若存在其他敌对角色,才会相应增加该虚拟角色的暴露值,即根据暴露值更新配置信息指示的暴露值增加量,来对虚拟角色的角色暴露值进行更新处理,获得虚拟角色更新后的角色暴露值。而若是暴露范围内不存在其他敌对角色,则其暴露值不会增加。
对应于上述的多种暴露值类型,在进行暴露值的增加时,针对每种暴露值类型而言,可以基于多种暴露值类型各自对应的暴露值子增加量,分别对相应暴露值类型的事件子暴露值进行更新处理,进而基于多种暴露值类型各自更新后的事件子暴露值,获得虚拟角色更新后的角色暴露值。
例如,以A类暴露值为例,则可以在虚拟角色的当前A类暴露值的基础上,累加目标事件类型所对应的暴露值子增加量,得到A类暴露值更新后的角色暴露值,同理可以得到其他类型更新后的角色暴露值,这些类型的暴露值的综合即为该虚拟角色的总角色暴露值。
本申请实施例中,考虑到在实际场景中,对于一个事件是存在注意力的上限的,例如在已经在注视该事件的具体内容时,则注意力已经到达上限,因而对应于虚拟场景中的暴露值也是存在上限的,暴露值很高时,其表征该虚拟角色已经被暴露了,从而为了更加符合实际场景的效果,暴露值需要进行上限的约束。
因此,暴露值更新配置信息还可以包括角色暴露值的上限值。其中,如下表3所示,上限值包含一个虚拟角色的角色暴露值的总上限值,以及各个子类型的暴露值上限值。
类型 最大值
A类暴露值上限值 1000
B类暴露值上限值 400
C类暴露值上限值 600
角色暴露值总体上限值 2500
表3
其中,A类暴露值的上限值为1000,B类暴露值的上限值为400,依次类推,角色暴露值为所有类型的暴露值的总值。
那么,在基于暴露值增加量,对虚拟角色的角色暴露值进行更新处理时,需要基于暴露值增加量,对虚拟角色的角色暴露值进行累加处理,获得累加后的角色暴露值,并对累加后的角色暴露值以及上限值进行比较处理,若比较结果指示累加后的角色暴露值大于上限值,则将上限值作为更新后的角色暴露值,而若比较结果指示累加后的角色暴露值小于上限值,则将累加后的角色暴露值作为更新后的角色暴露值。其中,该过程适用于角色暴露值以及各种子类型的暴露值。
参见图4所示,为以表2所示的类型为例的暴露值增加过程示意图。其中,当虚拟角色触发目标场景事件时,则可以分别针对A、B和C类暴露值进行增加,以A类暴露值为例,其更新前的暴露值为A1,累加该目标场景事件的A类暴露值为A2,则会将A2与A类暴露值上限值进行比较,若是A2未超过A类暴露值上限值,则最终A类暴露值为A2,若是A2超过A类暴露值上限值,则最终A类暴露值为A类暴露值上限值,其他类型同理可以得到。A、B和C类暴露值的总和即为一个虚拟角色的角色暴露值,从而更新后即可得到A、B和C类三类的暴露值,其总和即为该虚拟角色的角色暴露值,同理,也需要判断其是否超过总上限值,若是超过总上限值,则角色暴露值为总体上限值,而若是未超过上限值,则角色暴露值为A、B和C类三类的暴露值总和。
在一种可能的实施方式中,在进行角色暴露值的增加时,还可以通过针对各类暴露值类型进行遍历的方式进行。参见图5所示,为暴露值增加的一种流程示意图。
步骤S11:读取暴露值系统配置,其中这里的配置包含暴露值计算相关的配置信息,包含上述的暴露值更新配置信息。
步骤S12:检测是否有目标场景事件发生,若未检测到目标场景事件发生则等待,否则跳转至步骤S13执行。
步骤S13:针对目标场景事件,查找目标事件类型对应的暴露值更新配置信息。
步骤S14:确定目标场景事件是否发生在该目标事件类型的有效距离,即其触发时暴露范围内是否存在敌对角色,若存在则继续执行步骤S15,若不存在则跳转步骤S12继续等待。
步骤S15:检测是否还有暴露值类型尚未增加。即按照一定的遍历顺序,依次针对各个暴露值类型进行增加,直至所有的暴露值类型的增加完毕为止,若还存在尚未增加的暴露值类型,跳转步骤S16执行,若不存在,也就是所有的暴露值类型的增加完毕,则跳转步骤S12继续等待。
步骤S16:累加该暴露值类型对应的暴露值。
步骤S17:校验累加后的暴露值是否超过该暴露值类型的上限值,若超过,则跳转步骤S18,若未超过,则当前的暴露值无需修改,直接使用累加后的暴露值,并跳转至步骤S15执行。
步骤S18:将该暴露值类型的暴露值限制为上限值。
所有暴露值计算好后,会将计算好的角色暴露值与目标场景事件的触发者进行绑定,以便后续的使用。
下面,以一个具体的例子,来对暴露值增加的过程进行介绍。
本申请实施例中,暴露值更新配置信息包括事件类型、各个事件所对应的各类暴露值类型的增量大小、事件有效距离、总暴露值阈值、暴露值类型的阈值等,参见如下表4所示,为一种针对各个事件的各类暴露值类型的增量大小的配置实例:
表4
以开火事件为例,则上述配置即可以解释为:若一个虚拟角色开火且在2500cm内有其他敌对角色,则增加该虚拟角色的A类暴露值550,B类暴露值150,不增加C类暴露值。
参见如下表5所示,为一种暴露值的阈值配置实例:
暴露值类型 衰减量 最小值 最大值
A类暴露值 50 0 1000
B类暴露值 150 0 400
C类暴露值 150 0 600
表5
以A类暴露值为例,则其每次衰减时衰减量为50,最小能够减少到0,最大增加到1000,其他类型同理类推。
参见如下表6所示,为一种暴露值的综合配置实例:
表6
本申请实施例中,角色暴露值的统计间隔是指所有暴露值在虚拟角色自身进行统计的间隔,也就是说,可以是按照每个虚拟角色的维度,按照一定的统计间隔统计每个虚拟角色的暴露值,也可以是将所有虚拟角色按照统一的更新周期进行更新,即可以针对每个游戏对局而言,统一进行各个虚拟角色的统计值更新。
如上示例,即表征暴露值增加间隔为0.5s,就是说每0.5s会触发一次增加暴露值的计算,这期间发生的事件都会逐一得到处理,暴露值的衰减间隔为0.5s,总体最小值为0,总体最大值为2500。
需要说明的是,上述的各个值仅为示例,并不用于限定各个参数的具体数值。
在具体应用时,角色暴露值的增加计算流程是按一定频率执行的,即配置示例中的增加间隔0.5,那么每0.5s会触发一次增加角色暴露值的计算,按照如上的配置,则参见图6a~图6c所示,为本申请实施例提供的一种角色暴露值增加计算示例图。
参见图6a所示,虚拟场景中包含角色A和角色B,由于双方之间存在掩体,因而双方并不能看见对方,当角色A触发开火事件时,由于开火事件的有效距离为2500cm,二者之间的距离当前为30m,大于配置的2500cm,所以在0.5s后进行暴露值计算时,双方的暴露值均为0,即角色A触发的开火事件不会引起角色B的注意,从而角色A不会增加暴露值。
参见图6b所示,角色B被透视,其触发透视事件,且透视事件的有效距离为7500cm,当前二者之间的距离处于有效距离内,则角色A可以感知到角色B的存在,从而角色B的暴露值增加,透视事件需要增加1500的A类暴露值,但是A类暴露值的最大值限制为1000,所以在0.5s后进行暴露值计算时,最终A类暴露值为1000,其他类型同理,最终得到B类暴露值为400,C类暴露值为600。由于对于角色B而言,虽然角色A仍然在开火,但是依然不在有效距离内,所以角色B仍然不会感知到角色A,所以角色A的暴露值依然保持0。
参见图6c所示,当双方之间的距离拉近到24m时,由于双方皆开火除了开火事件,并且在2500cm的有效距离内,则在0.5s后进行暴露值计算时,角色A触发的开火事件会增加角色A的A类暴露值550,B类暴露值150,同理,角色B触发的开火事件和透视事件所示是累加两种配置的值,即A类暴露值累加为1500+550,但A类暴露值的最大值限制为1000,所以最终A类暴露值为1000,B类暴露值累加为600+150,但B类暴露值的最大值限制为400,所以最终B类暴露值为400,C类暴露值累加为900,但C类暴露值的最大值限制为600,所以最终C类暴露值为600,图6c中为了方便解释叠加过程未标出最终暴露值。
本申请实施例中,考虑到在实际场景中,随着时间的推移,对于一个物品的注意力也会随之消散,因此,为了使得暴露值系统的统计更符合实际场景,因此还需要针对角色暴露值进行一定的衰减。
参见图7所示,为本申请实施例提供的角色暴露值衰减过程的流程示意图。
步骤701:从虚拟场景中包括的所有虚拟角色中,获得角色暴露值大于预设的下限值的虚拟角色。
其中,角色暴露值小于或者等于下限值的虚拟角色无法再进行进一步的衰减,因而可以筛选出能够进行衰减的虚拟角色,来针对其角色暴露值进行衰减计算,从而减少后续的衰减过程所需的计算资源,降低服务器的负载能力。
步骤702:针对获得的各个虚拟角色,分别基于预配置的暴露值衰减量,对虚拟角色的角色暴露值进行衰减处理,获得虚拟角色衰减后的角色暴露值。
具体的,针对获得的各个虚拟角色,可以基于已配置的暴露值衰减量,来对其的角色暴露值进行衰减处理。其中,当角色暴露值包含多种暴露值类型时,则相应的,暴露值衰减量可以包括多种暴露值类型各自对应的暴露值子衰减量,进而可以从不同的暴露值类型分别进行衰减处理,来得到各个特征维度衰减后的角色暴露值。
沿用上述三种暴露值类型的例子,则参见如下表7所示,暴露值衰减信息可以包含如下信息中的至少一种:
类型 初始值 下限值 衰减速度
A类暴露值 A类暴露值初始值 A类暴露值下限值 A类暴露值衰减速度
B类暴露值 B类暴露值初始值 B类暴露值下限值 B类暴露值衰减速度
C类暴露值 C类暴露值初始值 C类暴露值下限值 C类暴露值衰减速度
表7
其中,初始值为各类暴露值在初始化时的值,其可以与下限值相同,也可以与下限值不同,且各类暴露值的衰减速度衰减至初始值或者下限值时则不再继续衰减。
那么,在基于预配置的暴露值衰减量,对虚拟角色的角色暴露值进行衰减处理时,则可以基于多种暴露值类型各自对应的暴露值子衰减量,分别对相应暴露值类型的事件子暴露值进行衰减处理,并基于多种暴露值类型各自衰减后的事件子暴露值,获得虚拟角色衰减后的角色暴露值,虚拟角色衰减后的角色暴露值即为衰减后各个暴露值类型的暴露值的总和。
例如,以A类暴露值为例,则可以在虚拟角色的当前A类暴露值的基础上,减去A类暴露值对应的暴露值子衰减量,得到A类暴露值衰减后的角色暴露值,同理可以得到其他类型衰减后的角色暴露值,这些类型的暴露值的总和即为该虚拟角色的总角色暴露值。
同样的,暴露值衰减配置信息还可以包括角色暴露值的下限值,当衰减值下限值时,则不再继续衰减。其中,如下表8所示,上限值包含一个虚拟角色的角色暴露值的总上限值,以及各个子类型的暴露值上限值,下表示例的各个上限值均为0,但在实际应用中还可以设置其他的值,本申请实施例对此不做限制。
表8
那么,在基于暴露值衰减量,对虚拟角色的角色暴露值进行减少处理时,需要对减少后的角色暴露值以及下限值进行比较处理,若比较结果指示减少后的角色暴露值大于下限值,则将下限值作为衰减后的角色暴露值,而若比较结果指示减少后的角色暴露值小于下限值,则将减少后的角色暴露值作为衰减后的角色暴露值。其中,该过程适用于角色暴露值以及各种子类型的暴露值。
参见图8所示,为沿用上述的暴露值类型为例的暴露值衰减过程示意图。其中,如表6所示,预先设置的衰减间隔,则每间隔衰减间隔的时长,则会对虚拟角色的角色暴露值进行一次衰减计算,这里以一个虚拟角色为例,则可以分别针对该虚拟角色的A、B和C类暴露值进行衰减,以A类暴露值为例,其衰减前的暴露值为A3,累加该目标场景事件的A类暴露值为A4,则会将A4与A类暴露值下限值进行比较,若是A4未小于A类暴露值下限值,则最终A类暴露值为A4,若是A4小于A类暴露值下限值,则最终A类暴露值为A类暴露值下限值,其他类型同理可以得到。A、B和C类暴露值的总和即为一个虚拟角色的角色暴露值,从而衰减后即可得到A、B和C类三类的暴露值,其总和即为该虚拟角色的角色暴露值,同理,也需要判断其是否小于总下限值,若是小于总下限值,则角色暴露值为总体下限值,而若是未小于下限值,则角色暴露值为A、B和C类三类的暴露值总和。
在一种可能的实施方式中,在进行角色暴露值的增加时,还可以通过针对各类暴露值类型进行遍历的方式进行。参见图9所示,为暴露值衰减的一种流程示意图。
步骤S21:遍历所有虚拟角色的所有类型的暴露值,检测是否为暴露角色,暴露角色是指角色暴露值大于预设的下限值的虚拟角色,若存在则跳转步骤S22执行,否则继续进行检测下一个虚拟角色。
步骤S22:检测是否还有暴露值类型尚未衰减。即按照一定的遍历顺序,依次针对各个暴露值类型进行衰减,直至所有的暴露值类型的衰减完毕为止,若还存在尚未衰减的暴露值类型,跳转步骤S23执行,若不存在,也就是所有的暴露值类型的衰减完毕,则跳转步骤S21继续检测。
步骤S23:根据遍历到的类型对应暴露值类型的衰减值进行衰减处理,即使用当前虚拟角色的当前暴露值类型的暴露值减去该暴露值类型所对应的衰减值。
步骤S24:校验衰减后的暴露值是否小于该暴露值类型的下限值,若小于,则跳转步骤S25,若不小于,则当前的暴露值无需修改,直接使用衰减后的暴露值,并跳转至步骤S22继续检测。
步骤S25:将该暴露值类型的暴露值限制为下限值。
下面,以一个具体的例子,来对暴露值增加的过程进行介绍。参见图10所示,为以本申请实施例的表4~表6的配置为例,所提供的暴露值衰减示例图。即衰减周期为0.5s,每间隔0.5s进行一次暴露值衰减,且A~C类的衰减值分别为50、150和150。
具体如图10所示,在0s时为初始暴露值,A类暴露值为500,B类暴露值为300,C类暴露值为100,当到第0.5s,也就是下一次的衰减间隔到达时,则按预配置的将A类暴露值减少50暴露值,衰减为450,B类暴露值减少150暴露值,衰减为150,而C类暴露值减少150后暴露值为-50,小于最低暴露值0,则最终C类暴露值为0;同理,当到第1s时,将A类暴露值减少50暴露值,衰减为400,B类暴露值减少150暴露值,衰减为,而C类暴露值仍然为0。需要说明的是,该衰减示例是在没有目标场景事件触发的前提下进行的,当存在目标场景事件触发时,则衰减应当在当前的最新暴露值的基础上进行。
本申请实施例中,通过上述的增加过程和衰减过程,可以对角色暴露值持续的进行更新,从而实时的表达各个虚拟角色在当前虚拟场景中的暴露效果,在游戏对局进行过程中,则这些暴露值可以供给给调用节点使用,一个调用节点可以对应于一个AI角色,用于辅助控制该AI角色在虚拟场景中的游戏行为,调用节点会对有暴露值的敌对角色进行距离相关分数计算和排序,并取出排序最高的敌对角色及其对应的暴露值,然后依据该敌对角色的暴露值大小来决定如何应对该敌对角色,实现AI角色的行为控制,参见图11所示,为本申请实施例提供的虚拟场景中AI角色的控制方法的流程示意图,该方法的具体实施流程如下:
步骤1101:获得目标AI角色所在的虚拟场景中各个敌对角色各自当前的角色暴露值。
在一种可能的实施方式中,可以周期性的进行角色暴露值的获取,则可以预先进行暴露值获得周期的配置,则可以基于预设的暴露值获得周期,周期性的获得目标AI角色所在的虚拟场景中各个敌对角色各自当前的角色暴露值。
在一种可能的实施方式中,还可以当目标AI角色的角色状态符合预设状态条件时,触发进行各个敌对角色的角色暴露值的获取。具体的,可以持续针对目标AI角色进行角色状态的检测,从而当角色状态符合预设状态条件时,触发获得目标AI角色所在的虚拟场景中各个敌对角色各自当前的角色暴露值。
其中,角色状态是指目标AI角色在虚拟场景中的状态,可以为行走状态、攻击状态、等待状态、埋伏状态中的任一种,当然,也可以为其他任意可能的状态,本申请实施例对此不做限制。预设状态条件可以为需要获取角色暴露值进行相应角色决策的状态,例如当需要发起攻击时,则需要针对敌对角色进行感知,此时需要获取敌对角色的角色暴露值,当然,在其他情况时也可能需要获取角色暴露值,本申请实施例对此不做限制。
在一种可能的实施方式中,预设状态条件可以包含虚拟场景中的任意状态,即对于一个AI角色而言,可以持续不断的检测虚拟场景中各个敌对角色各自当前的角色暴露值。
在一种可能的实施方式中,为了降低服务器的性能,也可以设置在特定状态时,才触发进行敌对角色各自当前的角色暴露值的检测,例如AI角色处于攻击状态、等待状态或者埋伏状态等,或者当AI角色附近存在敌对角色时,当然,也可以为其他可能的状态。
在一种可能的实施方式中,可以以目标AI角色为中心,来查询目标AI角色附近的敌对角色的角色暴露值,即可以限定所要查询的敌对角色的范围,超出范围的敌对角色相对较远,则可以不进行查询。
具体的,每个角色暴露值是基于相应敌对角色已触发的场景事件得到的,且用于表征相应敌对角色在虚拟场景中的位置暴露程度,对于敌对角色而言,当其触发目标场景事件时,会按照事件类型配置对应的参数增加各类型暴露值一次,同时也会随着衰减周期进行各类型暴露值的衰减,例如A类暴露值的当前值为各类事件及衰减产生的累积值,且受到上限的约束,即最终A类最终暴露值为暴露值当前值以及暴露值上限二者中的较低者。
具体的,当需要获取某个虚拟角色的暴露值时,则可以读取各类的最终暴露值,并将所有类型的暴露值相加,若大于暴露值总值上限,则最终输出总暴露值为暴露值总值上限,若不大于暴露值总值上限,则最终输出三者的总和,也就是说则一个虚拟角色的最终总暴露值为A类暴露值、B类暴露值和C类暴露值的总和以及暴露值总值上限中的较低者。
需要说明的是,上述获得的角色暴露值为当前时刻最新的角色暴露值,也就是说在目标AI角色的角色状态符合预设状态条件时,需要从各个虚拟角色最近一次更新后的角色暴露值,或者,最近一次衰减后的角色暴露值中,获得目标AI角色所需的各个敌对角色的角色暴露值。各个敌对角色可以是虚拟场景中所有的敌对角色,也可以是一定范围内的敌对角色。
在一种可能的实施方式中,为了方便数据的使用,可以为每个AI角色配置相应的黑板键,用于向行为树提供相应的决策数据。行为树以可视化方式创建,将一系列具备功能的节点添加并连接至行为树图表。在执行逻辑时,行为树会使用一种名为黑板的独立资源来存储它需要知道的信息(黑板键),从而做出有根据的决策。在实际应用时,可预先创建一个黑板,并在其中添加一些黑板键,然后创建一个使用黑板资源的行为树,用以控制一个AI角色的行为。
具体的,调用节点可以包含但不限于如下配置项:
(1)取出对象到黑板键,类型可以定义为Object,通过该操作将暴露值最高且取样分值大于取样阈值的对象取入该黑板键。其中,对象是指敌对角色。
(2)取入对象暴露值到黑板键,类型可以定义为Float,通过该操作将暴露值较高且取样分值大于取样阈值的对象的对应原始暴露值取入该黑板键。
(3)距离衰减值,类型可以定义为Float,单位为值/米,即每米减少该处配置的衰减值,原始暴露值减去随距离衰减值得到取样分值。
(4)取样阈值,类型可以定义为Float,取样分值大于取样阈值且在列表中排名最高的对象将被取出。
步骤1102:基于各个敌对角色各自的角色暴露值,以及各个敌对角色各自与目标AI角色之间的距离,获得各个敌对角色各自相对于目标AI角色的相对暴露值。
本申请实施例中,由于角色暴露值只能够反映敌对角色触发的暴露事件所带来的暴露效果,而在实际场景中,该暴露效果是会随着距离衰减的,因此,为了更为准确的衡量各个敌对角色的暴露效果,则还可以根据距离对获得的角色暴露值进行衰减,来得到各个敌对角色各自相对于目标AI角色的相对暴露值。
由于针对各个敌对角色而言,相对暴露值的计算过程是类似的,因此这里以一个敌对角色为例进行介绍。
在一种可能的实施方式中,针对目标AI角色的一个敌对角色A,可以基于敌对角色A与目标AI角色之间的距离以及预设衰减系数,来获得敌对角色相对于目标AI角色的暴露值衰减值。其中,预设衰减系数表征了每间隔单位距离时衰减的暴露值,则距离与预设衰减系数的乘积可以作为暴露值衰减值,进而可以基于敌对角色的角色暴露值以及暴露值衰减值,获得敌对角色对应的相对暴露值,例如,敌对角色的角色暴露值以及暴露值衰减值的差值即为相对暴露值。
在实际使用时,可以通过上述的各项配置进行敌对角色的暴露值的记录,例如通过取入对象暴露值到黑板键,可以获得各个暴露值较高的敌对角色的角色暴露值,并结合距离衰减值,则可以得到相对暴露值最高且大于取样阈值的敌对角色,通过取出对象到黑板键,可以将该敌对角色计入到相应黑板键中,以便于行为树的使用,决策相应的应对行为。
在实际场景中,也可以采用其他的方式,来进行距离衰减,例如可以在敌对角色的角色暴露值的基础上,将距离的倒数作为系数,来得到与距离呈反比例关系的相对暴露值。
步骤1103:将相对暴露值符合预设暴露值条件的敌对角色作为行为对象,并基于行为对象的相对暴露值,确定针对行为对象的目标应对行为。
在实际应用时,预设暴露值条件可以配置为相对暴露值最高,则可以将相对暴露值最高的敌对角色作为行为对象。或者,预设暴露值条件也可以配置为将相对暴露值高于预设暴露值阈值的敌对角色作为行为对象,当存在多个高于预设暴露值阈值的敌对角色时,则可以将多个敌对角色作为行为对象,也可以从中选取相对暴露值最高的敌对角色作为行为对象。当前,也可以配置其他可能的条件,本申请实施例对此不做限制。
本申请实施例中,可以预先配置敌对角色的相对暴露值处于不同暴露值范围时,该AI角色需要作出何种应对行为,从而在获得的相对暴露值之后,则可以依据配置的对应关系,来确定当前相对暴露值所对应的目标应对行为。当然,也可以结合到其他的信息来共同进行决策,例如结合目标AI角色当前的角色状态,确定出符合当前角色状态的目标应对行为。
在实际应用时,AI角色的行为可以通过行为树来控制,行为树可以从相应黑板键获取到行为对象以及相应的相对暴露值,进而依据相对暴露值从该行为树中已定义的行为节点中确定出相应的目标应对行为。
示例性的,当敌对角色的相对暴露值较低,表征只暴露了其模糊位置时,则AI角色可以尝试看向该敌对角色可能前来的方向;或者,当敌对角色的相对暴露值较高,表征敌对角色暴露了具体位置时,则AI角色可以尝试去具体位置搜寻该敌对角色并进行击杀;或者,当敌对角色的相对暴露值极高,表征敌对角色可被看见或轮廓被显示在画面中时,则可以取决于和该敌对角色间的空间是否可供子弹通行,来决定是否对对象进行射击并击杀行为。此外,也可以根据相对暴露值的大小来控制穿墙射击等行为是否命中。
步骤1104:控制目标AI角色,针对行为对象执行目标应对行为。
当上述的过程可以通过服务器来完成,则服务器可以将目标AI角色的状态同步到游戏客户端,游戏客户端显示该目标AI角色的行为,以完成目标AI角色和玩家角色的对战和交互。当然,上述的部分过程也可以通过游戏客户端来完成,本申请实施例对此不做限制。
参见图12a和图12b所示,为AI角色的行为控制的游戏画面示意图。需要说明的是,在实际场景中,AI角色通常是不存在相对应的游戏画面的,这里是为了方便进行示意,模拟了真实玩家的游戏画面来对AI角色的行为控制进行介绍。如图12a所示,当存在虚拟角色触发开火事件,且该AI角色位于开火事件的有效距离内,则触发角色的暴露值会相应增加。同时,该AI角色在获取附近敌对角色的暴露值时,将该触发角色定位为行为对象,且其相对暴露值表征触发角色暴露了具体位置时,则AI角色会尝试去具体位置搜寻该触发角色并进行击杀,则AI角色则会沿着声音的方向向前行径搜寻该触发角色,进而参见图12b所示,AI角色在虚拟场景中搜寻到了该触发角色,并可以控制该AI角色向该触发角色发起攻击。
综上所述,本申请实施例提供了一种基于场景事件的感知系统,即暴露值感知系统,该系统通过场景事件进行暴露值的记录和暴露效果的评分,可以让AI角色在游戏过程中,在任意时间点,依据各个不同虚拟角色产生的对应暴露值来判断是否能察觉到目标。借助暴露值感知系统可以对不同的感知事件和场景事件进行整合和量化,根据量化后的大小可表示AI角色对不同事件的关注程度,这可以让AI角色能够对接收到的事件进行衡量,行动顺序上更加合理,相对于传统的感知系统,暴露值感知系统可以使得AI角色的感知能力更加细化且灵活,模拟了真人玩家获取战场信息的程度,使得AI角色在游戏中的拟人化效果更佳。该方案可以用来完全替换传统的部分听觉、视觉感知逻辑,并且由于暴露值对于所有AI角色天然共享,通过该种形式,在AI与AI间共享了信息,替换了传统的团队通信做法,从而能够减少团队内部的数据传输的体积和频率,降低了AI感知系统需要消耗的性能。
请参见图13,基于同一发明构思,本申请实施例还提供了一种虚拟场景中AI角色的控制装置130,该装置包括:
数据获得单元1301,用于获得目标AI角色所在的虚拟场景中各个敌对角色各自当前的角色暴露值;其中,每个角色暴露值是基于相应敌对角色已触发的场景事件得到的,且用于表征相应敌对角色在虚拟场景中的位置暴露程度;
暴露值评价单元1302,用于基于各个敌对角色各自对应的角色暴露值,以及各个敌对角色各自与目标AI角色之间的距离,获得各个敌对角色各自相对于目标AI角色的相对暴露值;
行为决策单元1303,用于将相对暴露值符合预设暴露值条件的敌对角色作为行为对象,并基于行为对象的相对暴露值,确定针对行为对象的目标应对行为;
行为执行单元1304,控制目标AI角色,针对行为对象执行目标应对行为。
在一种可能的实施方式中,该装置包括暴露值增加单元1305,用于:
基于预配置的事件类型集合,检测虚拟场景中是否触发预配置事件类型的目标场景事件;
在检测到目标场景事件触发时,基于目标场景事件的目标事件类型,获取目标事件类型的暴露值更新配置信息;
基于暴露值更新配置信息,对触发目标场景事件的虚拟角色的角色暴露值进行更新处理,获得虚拟角色更新后的角色暴露值;
则数据获得单元1301,具体用于在目标AI角色的角色状态符合预设状态条件时,从各个虚拟角色更新后的角色暴露值中,获得各个敌对角色最近一次更新后的角色暴露值。
在一种可能的实施方式中,暴露值增加单元1305,具体用于:
在基于预设的暴露值更新周期,确定当前时刻满足暴露值更新条件时,获得上一个暴露值更新周期内虚拟场景中触发的所有场景事件;
针对获得的各个场景事件,分别确定各个场景事件各自的事件类型是否与事件类型集合匹配;
在目标事件类型与事件类型集合匹配时,确定检测到目标场景事件触发。
在一种可能的实施方式中,暴露值更新配置信息包括目标事件类型的暴露范围以及暴露值增加量;则暴露值增加单元1305,具体用于:
确定虚拟角色触发目标场景事件时,虚拟角色针对目标事件类型的暴露范围内是否存在其他敌对角色;
在存在其他敌对角色时,基于暴露值增加量,对虚拟角色的角色暴露值进行更新处理,获得虚拟角色更新后的角色暴露值。
在一种可能的实施方式中,暴露值更新配置信息还包括角色暴露值的上限值;则暴露值增加单元1305,具体用于:
基于暴露值增加量,对虚拟角色的角色暴露值进行累加处理,获得累加后的角色暴露值;
对累加后的角色暴露值以及上限值进行比较处理,获得相应的比较结果;
若比较结果指示累加后的角色暴露值大于上限值,则将上限值作为更新后的角色暴露值;
若比较结果指示累加后的角色暴露值小于上限值,则将累加后的角色暴露值作为更新后的角色暴露值。
在一种可能的实施方式中,暴露值增加量包括多种暴露值类型各自对应的暴露值子增加量,不同的暴露值类型对应于不同的位置暴露程度;则暴露值增加单元1305,具体用于:
基于多种暴露值类型各自对应的暴露值子增加量,分别对相应暴露值类型的事件子暴露值进行更新处理;
基于多种暴露值类型各自更新后的事件子暴露值,获得虚拟角色更新后的角色暴露值。
在一种可能的实施方式中,该装置还包括暴露值衰减单元1306,用于:
从虚拟场景中包括的所有虚拟角色中,获得角色暴露值大于预设的下限值的虚拟角色;
针对获得的各个虚拟角色,分别执行如下操作:
针对一个虚拟角色,基于预配置的暴露值衰减量,对虚拟角色的角色暴露值进行衰减处理,获得虚拟角色衰减后的角色暴露值;
则数据获得单元1301,具体用于在目标AI角色的角色状态符合预设状态条件时,从各个虚拟角色衰减后的角色暴露值中,获得各个敌对角色最近一次衰减后的角色暴露值。
在一种可能的实施方式中,暴露值衰减单元1306,具体用于:
基于暴露值衰减量,对虚拟角色的角色暴露值进行减少处理,获得减少后的角色暴露值;
对减少后的角色暴露值以及下限值进行比较处理,获得相应的比较结果;
若比较结果指示减少后的角色暴露值小于下限值,则将下限值作为衰减后的角色暴露值;
若比较结果指示减少后的角色暴露值大于下限值,则将减少后的角色暴露值作为衰减后的角色暴露值。
在一种可能的实施方式中,暴露值衰减量包括多种暴露值类型各自对应的暴露值子衰减量;则暴露值衰减单元1306,具体用于:
基于多种暴露值类型各自对应的暴露值子衰减量,分别对相应暴露值类型的事件子暴露值进行衰减处理;
基于多种暴露值类型各自衰减后的事件子暴露值,获得虚拟角色衰减后的角色暴露值。
在一种可能的实施方式中,暴露值评价单元1302,用于:
针对各个敌对角色,分别执行如下操作:
针对一个敌对角色,基于敌对角色与目标AI角色之间的距离以及预设衰减系数,获得敌对角色相对于目标AI角色的暴露值衰减值;其中,预设衰减系数表征:每间隔单位距离时衰减的暴露值;
基于敌对角色的角色暴露值以及暴露值衰减值,获得敌对角色对应的相对暴露值。
在一种可能的实施方式中,数据获得单元1301,具体用于:
检测目标AI角色在虚拟场景中的角色状态,且在角色状态符合预设状态条件时,获得目标AI角色所在的虚拟场景中各个敌对角色各自当前的角色暴露值;或者,
基于预设的暴露值获得周期,周期性的获得目标AI角色所在的虚拟场景中各个敌对角色各自当前的角色暴露值。
通过上述装置,通过暴露值来衡量各个虚拟角色在虚拟场景中的位置暴露程度的方式,只需要针对触发角色进行暴露值的更新,而周围的其他AI角色无需对其进行检测,降低了服务器所需执行的检测过程,降低服务器的资源占用以及负载压力,提升服务器的资源利用率,并且可以有充分的服务器资源用于游戏对局过程,以保障游戏对局过程的正常进行,提升游戏对局体验。通过这样的方式,无需再针对刺激源进行检测,从而减少了对虚拟场景中众多的刺激源的频繁检测所带来的性能消耗。
该装置可以用于执行本申请各实施例中所示的方法,因此,对于该装置的各功能模块所能够实现的功能等可参考前述实施例的描述,不多赘述。
请参见图14,基于同一技术构思,本申请实施例还提供了一种计算机设备。在一种实施例中,该计算机设备可以为图1所示的服务器,该计算机设备如图14所示,包括存储器1401,通讯模块1403以及一个或多个处理器1402。
存储器1401,用于存储处理器1402执行的计算机程序。存储器1401可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及运行本申请实施例的功能所需的程序等;存储数据区可存储各种本申请实施例涉及的信息和操作指令集等。
存储器1401可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1401也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);或者存储器1401是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1401可以是上述存储器的组合。
处理器1402,可以包括一个或多个中央处理单元(central processing unit,CPU)或者为数字处理单元等等。处理器1402,用于调用存储器1401中存储的计算机程序时实现上述虚拟场景中AI角色的控制方法。
通讯模块1403用于与终端设备和其他服务器进行通信。
本申请实施例中不限定上述存储器1401、通讯模块1403和处理器1402之间的具体连接介质。本申请实施例在图14中以存储器1401和处理器1402之间通过总线1404连接,总线1404在图14中以粗线描述,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线1404可以分为地址总线、数据总线、控制总线等。为便于描述,图14中仅用一条粗线描述,但并不描述仅有一根总线或一种类型的总线。
存储器1401中存储有计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于实现本申请实施例的虚拟场景中AI角色的控制方法,处理器1402用于执行上述各实施例的虚拟场景中AI角色的控制方法。
在另一种实施例中,计算机设备也可以是终端设备,如图1所示的终端设备。在该实施例中,计算机设备的结构可以如图15所示,包括:通信组件1510、存储器1520、显示单元1530、摄像头1540、传感器1550、音频电路1560、蓝牙模块1570、处理器1580等部件。
通信组件1510用于与服务器进行通信。在一些实施例中,可以包括电路无线保真(Wireless Fidelity,WiFi)模块,WiFi模块属于短距离无线传输技术,计算机设备通过WiFi模块可以帮助用户收发信息。
存储器1520可用于存储软件程序及数据。处理器1580通过运行存储在存储器1520的软件程序或数据,从而执行终端设备的各种功能以及数据处理。存储器1520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。存储器1520存储有使得终端设备能运行的操作系统。本申请中存储器1520可以存储操作系统及各种应用程序,还可以存储执行本申请实施例虚拟场景中AI角色的控制方法的代码。
显示单元1530还可用于显示由用户输入的信息或提供给用户的信息以及终端设备的各种菜单的图形用户界面(graphical user interface,GUI)。具体地,显示单元1530可以包括设置在终端设备正面的显示屏1532。其中,显示屏1532可以采用液晶显示器、发光二极管等形式来配置。显示单元1530可以用于显示本申请实施例中的各种游戏画面。
显示单元1530还可用于接收输入的数字或字符信息,产生与终端设备的用户设置以及功能控制有关的信号输入,具体地,显示单元1530可以包括设置在终端设备正面的触控屏1531,可收集用户在其上或附近的触摸操作,例如点击按钮,拖动滚动框等。
其中,触控屏1531可以覆盖在显示屏1532之上,也可以将触控屏1531与显示屏1532集成而实现终端设备的输入和输出功能,集成后可以简称触摸显示屏。本申请中显示单元1530可以显示应用程序以及对应的操作步骤。
摄像头1540可用于捕获静态图像,用户可以将摄像头1540拍摄的图像通过应用发布评论。摄像头1540可以是一个,也可以是多个。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给处理器1580转换成数字图像信号。
终端设备还可以包括至少一种传感器1550,比如加速度传感器1551、距离传感器1552、指纹传感器1553、温度传感器1554。终端设备还可配置有陀螺仪、气压计、湿度计、温度计、红外线传感器、光传感器、运动传感器等其他传感器。
音频电路1560、扬声器1561、传声器1562可提供用户与终端设备之间的音频接口。音频电路1560可将接收到的音频数据转换后的电信号,传输到扬声器1561,由扬声器1561转换为声音信号输出。终端设备还可配置音量按钮,用于调节声音信号的音量。另一方面,传声器1562将收集的声音信号转换为电信号,由音频电路1560接收后转换为音频数据,再将音频数据输出至通信组件1510以发送给比如另一终端设备,或者将音频数据输出至存储器1520以便进一步处理。
蓝牙模块1570用于通过蓝牙协议来与其他具有蓝牙模块的蓝牙设备进行信息交互。例如,终端设备可以通过蓝牙模块1570与同样具备蓝牙模块的可穿戴计算机设备(例如智能手表)建立蓝牙连接,从而进行数据交互。
处理器1580是终端设备的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器1520内的软件程序,以及调用存储在存储器1520内的数据,执行终端设备的各种功能和处理数据。在一些实施例中,处理器1580可包括一个或多个处理单元;处理器1580还可以集成应用处理器和基带处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,基带处理器主要处理无线通信。可以理解的是,上述基带处理器也可以不集成到处理器1580中。本申请中处理器1580可以运行操作系统、应用程序、用户界面显示及触控响应,以及本申请实施例的虚拟场景中AI角色的控制方法。另外,处理器1580与显示单元1530耦接。
基于同一发明构思,本申请实施例还提供一种存储介质,该存储介质存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行本说明书上述描述的根据本申请各种示例性实施方式的虚拟场景中AI角色的控制方法中的步骤。
在一些可能的实施方式中,本申请提供的虚拟场景中AI角色的控制方法的各个方面还可以实现为一种计算机程序产品的形式,其包括计算机程序,当程序产品在计算机设备上运行时,计算机程序用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的虚拟场景中AI角色的控制方法中的步骤,例如,计算机设备可以执行各实施例的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括计算机程序,并可以在计算机设备上运行。然而,本申请的程序产品不限于此,在本申请件中,可读存储介质可以是任何包含或存储程序的有形介质,其包括的计算机程序可以被命令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的计算机程序,程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (15)

1.一种虚拟场景中人工智能AI角色的控制方法,其特征在于,所述方法包括:
获得目标AI角色所在的虚拟场景中各个敌对角色各自当前的角色暴露值;其中,每个角色暴露值是基于相应敌对角色已触发的场景事件得到的,且用于表征相应敌对角色在所述虚拟场景中的位置暴露程度;
基于所述各个敌对角色各自对应的角色暴露值,以及所述各个敌对角色各自与所述目标AI角色之间的距离,获得所述各个敌对角色各自相对于所述目标AI角色的相对暴露值;
将相对暴露值符合预设暴露值条件的敌对角色作为行为对象,并基于所述行为对象的相对暴露值,确定针对所述行为对象的目标应对行为;
控制所述目标AI角色,针对所述行为对象执行所述目标应对行为。
2.如权利要求1所述的方法,其特征在于,在所述获得所述目标AI角色所在的虚拟场景中各个敌对角色各自当前的角色暴露值之前,所述方法还包括:
基于预配置的事件类型集合,检测所述虚拟场景中是否触发预配置事件类型的目标场景事件;
在检测到所述目标场景事件触发时,基于所述目标场景事件的目标事件类型,获取所述目标事件类型的暴露值更新配置信息;
基于所述暴露值更新配置信息,对触发所述目标场景事件的虚拟角色的角色暴露值进行更新处理,获得所述虚拟角色更新后的角色暴露值;
则所述获得所述目标AI角色所在的虚拟场景中各个敌对角色各自当前的角色暴露值,包括:
从各个虚拟角色更新后的角色暴露值中,获得所述各个敌对角色最近一次更新后的角色暴露值。
3.如权利要求2所述的方法,其特征在于,基于预配置的事件类型集合,检测所述虚拟场景中是否触发预配置事件类型的目标场景事件,包括:
在基于预设的暴露值更新周期,确定当前时刻满足暴露值更新条件时,获得上一个暴露值更新周期内所述虚拟场景中触发的所有场景事件;
针对获得的各个场景事件,分别确定各个场景事件各自的事件类型是否与所述事件类型集合匹配;
则所述检测到所述目标场景事件触发,包括:
在所述目标事件类型与所述事件类型集合匹配时,确定检测到所述目标场景事件触发。
4.如权利要求2所述的方法,其特征在于,所述暴露值更新配置信息包括所述目标事件类型的暴露范围以及暴露值增加量;
则基于所述暴露值更新配置信息,对触发所述目标场景事件的虚拟角色的角色暴露值进行更新处理,获得所述虚拟角色更新后的角色暴露值,包括:
确定所述虚拟角色触发目标场景事件时,所述虚拟角色针对所述目标事件类型的暴露范围内是否存在其他敌对角色;
在存在其他敌对角色时,基于所述暴露值增加量,对所述虚拟角色的角色暴露值进行更新处理,获得所述虚拟角色更新后的角色暴露值。
5.如权利要求4所述的方法,其特征在于,所述暴露值更新配置信息还包括角色暴露值的上限值;则基于所述暴露值增加量,对所述虚拟角色的角色暴露值进行更新处理,获得所述虚拟角色更新后的角色暴露值,包括:
基于所述暴露值增加量,对所述虚拟角色的角色暴露值进行累加处理,获得累加后的角色暴露值;
对所述累加后的角色暴露值以及所述上限值进行比较处理,获得相应的比较结果;
若比较结果指示所述累加后的角色暴露值大于所述上限值,则将所述上限值作为更新后的角色暴露值;
若比较结果指示所述累加后的角色暴露值小于所述上限值,则将所述累加后的角色暴露值作为更新后的角色暴露值。
6.如权利要求4所述的方法,其特征在于,所述暴露值增加量包括多种暴露值类型各自对应的暴露值子增加量,不同的暴露值类型对应于不同的位置暴露程度;
则基于所述暴露值增加量,对所述虚拟角色的角色暴露值进行更新处理,获得所述虚拟角色更新后的角色暴露值,包括:
基于所述多种暴露值类型各自对应的暴露值子增加量,分别对相应暴露值类型的事件子暴露值进行更新处理;
基于所述多种暴露值类型各自更新后的事件子暴露值,获得所述虚拟角色更新后的角色暴露值。
7.如权利要求1~6任一所述的方法,其特征在于,在所述获得所述目标AI角色所在的虚拟场景中各个敌对角色各自当前的角色暴露值之前,所述方法还包括:
从所述虚拟场景中包括的所有虚拟角色中,获得角色暴露值大于预设的下限值的虚拟角色;
针对获得的各个虚拟角色,分别执行如下操作:
针对一个虚拟角色,基于预配置的暴露值衰减量,对所述虚拟角色的角色暴露值进行衰减处理,获得所述虚拟角色衰减后的角色暴露值;
则所述获得所述目标AI角色所在的虚拟场景中各个敌对角色各自当前的角色暴露值,包括:
从各个虚拟角色衰减后的角色暴露值中,获得所述各个敌对角色最近一次衰减后的角色暴露值。
8.如权利要求7所述的方法,其特征在于,所述基于预配置的暴露值衰减量,对所述虚拟角色的角色暴露值进行衰减处理,获得所述虚拟角色衰减后的角色暴露值,包括:
基于所述暴露值衰减量,对所述虚拟角色的角色暴露值进行减少处理,获得减少后的角色暴露值;
对所述减少后的角色暴露值以及所述下限值进行比较处理,获得相应的比较结果;
若比较结果指示所述减少后的角色暴露值小于所述下限值,则将所述下限值作为衰减后的角色暴露值;
若比较结果指示所述减少后的角色暴露值大于所述下限值,则将所述减少后的角色暴露值作为衰减后的角色暴露值。
9.如权利要求7所述的方法,其特征在于,所述暴露值衰减量包括多种暴露值类型各自对应的暴露值子衰减量;
则所述基于预配置的暴露值衰减量,对所述虚拟角色的角色暴露值进行衰减处理,获得所述虚拟角色衰减后的角色暴露值,包括:
基于所述多种暴露值类型各自对应的暴露值子衰减量,分别对相应暴露值类型的事件子暴露值进行衰减处理;
基于所述多种暴露值类型各自衰减后的事件子暴露值,获得所述虚拟角色衰减后的角色暴露值。
10.如权利要求1~6任一所述的方法,其特征在于,所述基于所述各个敌对角色各自对应的角色暴露值,以及所述各个敌对角色各自与所述目标AI角色之间的距离,获得所述各个敌对角色各自相对于所述目标AI角色的相对暴露值,包括:
针对所述各个敌对角色,分别执行如下操作:
针对一个敌对角色,基于所述敌对角色与所述目标AI角色之间的距离以及预设衰减系数,获得所述敌对角色相对于所述目标AI角色的暴露值衰减值;其中,所述预设衰减系数表征:每间隔单位距离时衰减的暴露值;
基于所述敌对角色的角色暴露值以及暴露值衰减值,获得所述敌对角色对应的相对暴露值。
11.如权利要求1~6任一所述的方法,其特征在于,所述获得目标AI角色所在的虚拟场景中各个敌对角色各自当前的角色暴露值,包括:
检测所述目标AI角色在虚拟场景中的角色状态,且在所述角色状态符合预设状态条件时,获得目标AI角色所在的虚拟场景中各个敌对角色各自当前的角色暴露值;或者,
基于预设的暴露值获得周期,周期性的获得目标AI角色所在的虚拟场景中各个敌对角色各自当前的角色暴露值。
12.一种虚拟场景中AI角色的控制装置,其特征在于,所述装置包括:
数据获得单元,用于获得所述目标AI角色所在的虚拟场景中各个敌对角色各自当前的角色暴露值;其中,每个角色暴露值是基于相应敌对角色已触发的场景事件得到的,且用于表征相应敌对角色在所述虚拟场景中的位置暴露程度;
暴露值评价单元,用于所述各个敌对角色各自对应的角色暴露值,以及所述各个敌对角色各自与所述目标AI角色之间的距离,获得所述各个敌对角色各自相对于所述目标AI角色的相对暴露值;
行为决策单元,用于将相对暴露值符合预设暴露值条件的敌对角色作为行为对象,并基于所述行为对象的相对暴露值,确定针对所述行为对象的目标应对行为;
行为执行单元,控制所述目标AI角色,针对所述行为对象执行所述目标应对行为。
13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,
所述处理器执行所述计算机程序时实现权利要求1至11任一项所述方法的步骤。
14.一种计算机存储介质,其上存储有计算机程序,其特征在于,
该计算机程序被处理器执行时实现权利要求1至11任一项所述方法的步骤。
15.一种计算机程序产品,包括计算机程序,其特征在于,
该计算机程序被处理器执行时实现权利要求1至11任一项所述方法的步骤。
CN202310463963.4A 2023-04-21 2023-04-21 虚拟场景中ai角色的控制方法、装置、设备及存储介质 Pending CN116966583A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310463963.4A CN116966583A (zh) 2023-04-21 2023-04-21 虚拟场景中ai角色的控制方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310463963.4A CN116966583A (zh) 2023-04-21 2023-04-21 虚拟场景中ai角色的控制方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116966583A true CN116966583A (zh) 2023-10-31

Family

ID=88483827

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310463963.4A Pending CN116966583A (zh) 2023-04-21 2023-04-21 虚拟场景中ai角色的控制方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116966583A (zh)

Similar Documents

Publication Publication Date Title
CN109445662B (zh) 虚拟对象的操作控制方法、装置、电子设备及存储介质
CN112691377B (zh) 虚拟角色的控制方法、装置、电子设备及存储介质
WO2021208614A1 (zh) 虚拟对象的控制方法、装置、设备和存储介质
CN109529356B (zh) 对战结果确定方法、装置及存储介质
JP2022551069A (ja) 仮想対象の制御方法及びその装置、機器、並びにコンピュータプログラム
CN111265872B (zh) 虚拟对象的控制方法、装置、终端及存储介质
CN111760278B (zh) 技能控件的显示方法、装置、设备及介质
US20140335949A1 (en) Accommodating latency in a server-based application
CN112245921B (zh) 虚拟对象控制方法、装置、设备及存储介质
CN112569599B (zh) 虚拟场景中虚拟对象的控制方法、装置及电子设备
CN111282284A (zh) 虚拟对象的控制方法、装置、终端和存储介质
KR102645535B1 (ko) 가상 장면에서의 가상 객체 제어 방법 및 장치, 디바이스 그리고 저장 매체
CN113144597B (zh) 虚拟载具的显示方法、装置、设备以及存储介质
CN111298430A (zh) 虚拟道具控制方法和装置、存储介质及电子装置
JP2023517115A (ja) 仮想道具のインタラクティブ処理方法、装置、電子機器及びコンピュータプログラム
CN112221152A (zh) 人工智能ai模型的训练方法、装置、设备及介质
CN113058264A (zh) 虚拟场景的显示方法、虚拟场景的处理方法、装置及设备
CN111589135B (zh) 虚拟对象的控制方法、装置、终端及存储介质
WO2023029836A1 (zh) 虚拟画面显示方法、装置、设备、介质及计算机程序产品
CN110801629B (zh) 虚拟对象生命值提示图形的显示方法、装置、终端及介质
EP3980148A1 (en) Latency erasure
CN111841016B (zh) 游戏ai系统、游戏ai的信息处理方法、装置和存储介质
CN112221135B (zh) 画面显示方法、装置、设备以及存储介质
CN116966583A (zh) 虚拟场景中ai角色的控制方法、装置、设备及存储介质
CN114307157A (zh) 虚拟场景中的声音处理方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication