CN116999852B - 用于控制虚拟角色的ai模型的训练方法、装置及介质 - Google Patents
用于控制虚拟角色的ai模型的训练方法、装置及介质 Download PDFInfo
- Publication number
- CN116999852B CN116999852B CN202210812613.XA CN202210812613A CN116999852B CN 116999852 B CN116999852 B CN 116999852B CN 202210812613 A CN202210812613 A CN 202210812613A CN 116999852 B CN116999852 B CN 116999852B
- Authority
- CN
- China
- Prior art keywords
- virtual character
- feature vector
- information
- bounding box
- model
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 80
- 238000012549 training Methods 0.000 title claims abstract description 76
- 238000013473 artificial intelligence Methods 0.000 claims abstract description 235
- 230000009471 action Effects 0.000 claims abstract description 208
- 239000013598 vector Substances 0.000 claims abstract description 193
- 230000033001 locomotion Effects 0.000 claims description 114
- 230000006378 damage Effects 0.000 claims description 18
- 208000027418 Wounds and injury Diseases 0.000 claims description 17
- 208000014674 injury Diseases 0.000 claims description 17
- 238000011176 pooling Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 33
- 238000005457 optimization Methods 0.000 description 17
- 238000005516 engineering process Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 13
- 239000003795 chemical substances by application Substances 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 10
- 230000001133 acceleration Effects 0.000 description 9
- 238000001816 cooling Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 239000008280 blood Substances 0.000 description 8
- 210000004369 blood Anatomy 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000000977 initiatory effect Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000002787 reinforcement Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000008485 antagonism Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 241000282412 Homo Species 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 239000000919 ceramic Substances 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000005283 ground state Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000035484 reaction time Effects 0.000 description 1
- 230000007115 recruitment Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating 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
- A63F13/69—Generating 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 by enabling or updating specific game elements, e.g. unlocking hidden features, items, levels or versions
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/58—Controlling game characters or game objects based on the game progress by computing conditions of game characters, e.g. stamina, strength, motivation or energy level
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
- A63F13/833—Hand-to-hand fighting, e.g. martial arts competition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种用于控制虚拟角色的AI模型的训练方法、装置及介质,属于人工智能领域。该方法包括:获取第一虚拟角色在目标帧时对应的个性化对战信息,以及第二虚拟角色在目标帧时对应的包围框信息;第一虚拟角色是基于AI模型控制的虚拟角色;至少基于个性化对战信息编码得到第一虚拟角色的第一特征向量表示;以及,至少基于包围框信息编码得到第二虚拟角色的第二特征向量表示;将第一特征向量表示和第二特征向量表示输入AI模型,通过AI模型预测得到第一虚拟角色在预测帧执行的目标动作;控制第一虚拟角色在预测帧执行目标动作;基于目标动作的执行结果,更新AI模型的模型参数。上述方案提高了AI模型的泛化性能。
Description
技术领域
本申请涉及人工智能领域,特别涉及一种用于控制虚拟角色的AI模型的训练方法、装置及介质。
背景技术
格斗游戏是指至少两个阵营之间相互作战,使用格斗技巧击败对手来获取胜利的游戏。格斗游戏中常常设置有“玩家vs人机”的对战模式,玩家可以从全角色池中挑选出玩家虚拟角色,系统自动从预设角色池中匹配出AI(Artificial Intelligence,人工智能)虚拟角色,之后,玩家控制玩家虚拟角色与AI虚拟角色展开格斗。
相关技术中,对于预设角色池中任意一种角色,需训练出与玩家虚拟角色的角色类型相对应的AI模型,AI模型用于控制AI虚拟角色。例如,全角色池中存在50种候选角色类型,即,玩家虚拟角色存在50种可能的类型,则针对预设角色池中的任意一种角色,需训练出50个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是本申请一个示例性实施例提供的基本训练原理的示意图;
图2是本申请一个示例性实施例提供的用于控制虚拟角色的AI模型的训练方法的流程图;
图3是本申请一个示例性实施例提供的包围框的示意图;
图4是本申请另一个示例性实施例提供的用于控制虚拟角色的AI模型的训练方法的示意图;
图5是本申请另一个示例性实施例提供的用于控制虚拟角色的AI模型的训练方法的示意图;
图6是本申请另一个示例性实施例提供的用于控制虚拟角色的AI模型的训练方法的示意图;
图7是本申请另一个示例性实施例提供的用于控制虚拟角色的AI模型的训练架构的示意图;
图8是本申请另一个示例性实施例提供的用于控制虚拟角色的AI模型的训练架构的示意图;
图9是本申请另一个示例性实施例提供的用于控制虚拟角色的AI模型的训练架构的示意图;
图10是本申请另一个示例性实施例提供的用于控制虚拟角色的AI模型的训练架构的示意图;
图11是本申请另一个示例性实施例提供的用于控制虚拟角色的AI模型的训练架构的示意图;
图12是本申请一个示例性实施例提供的对比优化前后的AI模型的示意图;
图13是本申请一个示例性实施例提供的对比优化前后的AI模型的示意图;
图14是本申请一个示例性实施例提供的确定第一虚拟角色在预测帧执行的目标动作的示意图;
图15是本申请一个示例性实施例提供的AI模型的使用方法的流程图;
图16是本申请一个示例性实施例提供的状态延迟的示意图;
图17是本申请一个示例性实施例提供的动作延迟的示意图;
图18是本申请一个示例性实施例提供的用于控制虚拟角色的AI模型的训练方法的示意图;
图19是本申请一个示例性实施例提供的AI模型的训练方法和使用方法的示意图;
图20是本申请一个示例性实施例提供的游戏运行时的交互示意图;
图21是本申请一个示例性实施例提供的用于控制虚拟角色的AI模型的训练装置的结构框图;
图22是本申请一个示例性实施例提供的计算机设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请实施例中涉及的名词进行简单介绍:
人工智能(Artificial Intelligence,AI):是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
强化学习:强化学习的框架主要由智能体(Agent)、环境(Environment)、状态(State)、动作(Action)、奖励(Reward)组成。智能体执行了某个动作后,环境将会转换到一个新的状态,对于该新的状态环境将给出奖励信号(正奖励或者负奖励)。随后,智能体根据新的状态和环境反馈的奖励,按照一定的策略执行新的动作。上述过程为智能体和环境通过状态、动作、奖励进行交互的方式。
虚拟环境:是客户端在终端上运行时显示(或提供)的环境。该虚拟环境可以是对真实世界的仿真环境,也可以是半仿真半虚构的环境,还可以是纯虚构的环境。虚拟环境可以是二维虚拟环境、2.5维虚拟环境和三维虚拟环境中的任意一种,本申请对此不加以限定。
虚拟角色:用户或AI模型控制位于虚拟环境中的虚拟角色进行活动,该活动包括但不限于:调整身体姿态、行走、奔跑、跳跃、骑行、驾驶、瞄准、拾取和使用投掷类道具中的至少一种。示例性的,虚拟角色是虚拟人物,比如仿真人物对象或动漫人物对象。
图1示出了本申请一个示例性实施例提供的AI模型的训练框架。客户端101为支持第一虚拟角色和第二虚拟角色展开对抗的游戏客户端。可选的,该游戏为格斗游戏、MOBA(Multiplayer Online Battle Arena,多人在线战术竞技)游戏、开放世界游戏、横版射击、横版冒险、横版过关、横版策略、虚拟现实(Virtual Reality,VR)游戏、增强现实(Augmented Reality,AR)游戏等等。AI模型102为用于控制第一虚拟角色的神经网络模型。
客户端101获取第一虚拟角色和第二虚拟角色在目标帧的对局状态信息,以及将目标帧的对局状态信息发送至AI模型102。可选的,对局状态信息包括以下信息中的至少一种:对战双方的位置坐标、血量、技能点、能量值、技能冷却时间、是否可被控制、是否可被击中、是否处于倒地状态、剩余僵直帧数(在使用技能的过程中当前时刻至技能释放结束的剩余时长)、连击数、技能派生剩余时长(多段技能的剩余触发时长)、当前技能消耗、当前技能伤害、已使用的虚拟道具的剩余生效时长等。可选的,对局状态信息还包括标识类信息(角色类型标识、当前使用技能的标识、虚拟道具的标识等等)。
AI模型102用于根据目标帧的对局状态信息得到预测帧时第一虚拟角色执行的目标动作,以及将预测得到的目标动作返回至客户端101。可选的,目标动作包括移动动作(如上、下、左、右移动)和释放技能动作。其中,预测帧位于目标帧之后。
客户端101接收目标动作,并控制第一虚拟角色在预测帧执行目标动作。客户端101基于目标动作的执行结果,指示AI模型102更新模型参数。
可选的,AI模型102可以运行在服务器,也可以运行在终端。当AI模型102运行在终端时,AI模型102与客户端101所在的终端为同一终端或不同终端。当AI模型102与客户端101所在的终端为同一终端时,AI模型102存储于客户端101的SDK(Software DevelopmentKit,软件开发工具包)。需要说明的是,在本申请中将客户端101认为是不具有AI模型102的客户端。在下述以AI模型102与客户端101所在的终端为同一终端进行举例说明。
可选地,上述客户端101可以运行在不同操作系统平台(安卓或IOS)上。可选地,上述客户端101运行在终端上,终端的设备类型包括:智能手机、智能手表、车载终端、可穿戴设备、智能电视、平板电脑、电子书阅读器、MP3播放器、MP4播放器、膝上型便携计算机和台式计算机中的至少一种。
图2示出了本申请一个示例性实施例提供的用于控制虚拟角色的AI模型的训练方法的流程图,以该方法应用于安装有图1所示的AI模型的训练框架的终端进行举例说明,该方法包括:
步骤210,获取第一虚拟角色在目标帧时对应的个性化对战信息,以及第二虚拟角色在目标帧时对应的包围框信息;
第一虚拟角色:指在游戏中与第二虚拟角色展开对抗的虚拟角色。在本申请中,第一虚拟角色为AI模型控制的虚拟角色,AI模型即用于预测第一虚拟角色将执行的目标动作。目标动作包括移动动作(如上、下、左、右移动)和使用技能的动作。
第二虚拟角色:指在游戏中与第一虚拟角色展开对抗的虚拟角色。可选的,第二虚拟角色为玩家控制的虚拟角色,或行为树控制的虚拟角色,或状态机控制的虚拟角色,或为另一AI模型控制的虚拟角色。
个性化对战信息:在本申请中,个性化对战信息与第一虚拟角色的角色类型相关。可选的,个性化对战信息包括以下中的至少一种:第一虚拟角色的类型标识、第一虚拟角色在目标帧时使用的第一技能的标识、第一虚拟角色召唤或释放的第一附加对象的标识。
示例性的,第一虚拟角色的类型标识为第一虚拟角色的ID,第一技能的标识为第一技能的ID,第一附加对象可以理解为由第一虚拟角色召唤或释放后得到的,脱离了第一虚拟角色控制并具有自身独立运行逻辑的对象。例如,第一附加对象为第一虚拟角色释放的飞盘、第一虚拟角色释放的气功波、第一虚拟角色召唤得到的宠物等等。
包围框信息:在本申请中,包围框信息是用于替代第二虚拟角色的个性化对战信息参与AI模型训练的信息。包围框信息与第一虚拟角色的角色类型无关。可选的,包围框信息是与第二虚拟角色的攻击部位和/或受击部位的外接包围框有关的信息。即,第二虚拟角色的攻击部位和/或受击部位的外接包围框,与第二虚拟角色的角色类型无关。
可选的,包围框信息包括以下中的至少一种:与第二虚拟角色用于攻击的身体部位和/或第二虚拟角色遭受攻击的身体部位的外接包围框有关的信息、与第二虚拟角色召唤或释放的第二附加对象有关的信息,第二附加对象作为第二虚拟角色的攻击部位和/或受击部位。即,第二虚拟角色用于攻击的身体部位和/或第二虚拟角色遭受攻击的身体部位的外接包围框,与第二虚拟角色的角色类型无关;即,第二虚拟角色召唤或释放的第二附加对象的包围框与第二虚拟角色的角色类型无关。
示例性的,外接包围框包括第二虚拟角色对应的攻击部位的第一包围框,和/或,第二虚拟角色对应的受击部位的第二包围框。结合参考图3,仅以图3中左边的虚拟角色为例,图3示出了该虚拟角色的用于攻击的身体部位的包围框301和该虚拟角色遭受攻击的身体部位的第二包围框302。需要说明的是,对于身体部位对应的包围框,图3仅示出了一个包围框,实际上还可以将虚拟角色进行进一步划分,如将手部单独作为一个包围框、将脚部作为另一个包围框,本申请对具体如何划分身体部位的包围框并不加以限定。
示例性的,第二附加对象可以理解为由第二虚拟角色召唤或释放后得到的,脱离了第二虚拟角色控制并具有自身独立运行逻辑的对象。例如,第二附加对象为第二虚拟角色释放的飞盘、第二虚拟角色释放的气功波、第二虚拟角色召唤得到的宠物等等。
在一个实施例中,步骤210中“获取第二虚拟角色在目标帧时对应的包围框信息”,可以替换为如下步骤:确定第二虚拟角色的外接包围框;将外接包围框的描述信息,确定为包围框信息。可选的,外接包围框是目标帧的二维包围框;或者,外接包围框是三维虚拟空间的三维包围框。
可选的,当外接包围框为二维包围框时,外接包围框的描述信息包括以下信息中的至少一种:外接包围框的点的坐标、外接包围框的线段端点坐标和线段方程、外接包围框的任意两条线段的夹角等。
可选的,当外接包围框为三维包围框时,外接包围框的描述信息包括以下信息中的至少一种:外接包围框的点的坐标、外接包围框的线段端点坐标和线段方程、外接包围框的两条线段的夹角、外接包围框中点与线段的距离等。
示例性的,外接包围框为长方体包围框,则以体对角线上的两个顶点坐标作为外接包围框的描述信息。示例性的,外接包围框为球体包围框,则以球心的坐标和球体的半径作为外接包围框的描述信息。
示例性的,下表1示出了不同的第二虚拟角色对应的不同的长方体包围框。
表1
示例性的,表1中的包围框1为第二虚拟角色的对应的攻击部位的包围框,表1中的包围框1’为第二虚拟角色对应的受击部位的包围框。
步骤220,至少基于个性化对战信息编码得到第一虚拟角色的第一特征向量表示;以及,至少基于包围框信息编码得到第二虚拟角色的第二特征向量表示;
结合参考图4,其示出了两个信息库,第一虚拟角色的信息库至少包括第一虚拟角色对应的个性化对战信息,第二虚拟角色的信息库至少包括第二虚拟角色对应的包围框信息。第一虚拟角色的信息库的信息通过编码层得到第一特征向量表示,第二虚拟角色的信息库的信息通过编码层得到第二特征向量表示。
步骤230,将第一特征向量表示和第二特征向量表示输入AI模型,通过AI模型预测得到第一虚拟角色在预测帧执行的目标动作;
结合参考图4,其示出了将第一虚拟角色的信息库的信息编码得到的第一特征向量表示输入AI模型,图4还示出了将第二虚拟角色的信息库的信息编码得到的第二特征向量表示输入AI模型。
步骤240,控制第一虚拟角色在预测帧执行目标动作;
终端控制第一虚拟角色在预测帧执行目标动作,并获取目标动作的执行结果。在本申请中,预测帧在对局画面的帧序列中位于目标帧之后。可选的,预测帧与目标帧间隔一帧或至少两帧。当预测帧与目标帧间隔至少两帧时,即可认为发生了动作延迟,降低了第一虚拟角色的对抗强度。
步骤250,基于目标动作的执行结果,更新AI模型的模型参数。
终端基于目标动作的执行结果,更新AI模型的模型参数。
综上所述,通过采用第一虚拟角色的个性化对战信息和第二虚拟角色的包围框信息,训练用于控制第一虚拟角色的AI模型,使得训练得到的AI模型控制的AI虚拟角色在面对未知角色类型的玩家虚拟角色时仍具有较高的对抗强度,即提高了AI模型的泛化性能。
并且,包围框信息包括与第二虚拟角色用于攻击的身体部位和/或第二虚拟角色遭受攻击的身体部位的外接包围框有关的信息,和/或,与第二虚拟角色召唤或释放的第二附加对象有关的信息,具体提供了通过第二虚拟角色的包围框信息替代第二虚拟角色的个性化信息的实现方式。
基于图2所示的可选实施例,不难看出AI模型的训练框架是以虚拟角色为导向进行训练的,如图4所示,两个虚拟角色的信息库的信息将各自进行编码,之后再共同输入AI模型。其中,第一虚拟角色为本申请训练的AI模型控制的虚拟角色,第二虚拟角色为与第一虚拟角色展开对抗的虚拟角色。
诚如上述提及的本申请所要解决的技术问题,为提高AI模型的泛化能力,旨在将与第二虚拟角色的类型强相关的个性化对战信息替换为包围框信息进行编码。因此,下述将先介绍第二虚拟角色的信息库的信息如何通过编码得到第二特征向量表示(如图5-8所示),再介绍第一虚拟角色的信息库的信息如何通过编码得到第一特征向量表示(如图9-11所示)。
图5示出了本申请一个示例性实施例提供的编码第二虚拟角色的信息库的信息的示意图。如图5所示,第二虚拟角色的身体部位的包围框信息和第二虚拟角色的对战状态数据输入第一密集层(Dense层),得到第一密集特征向量,将第一密集特征向量确定为第二特征向量表示中的一个特征向量并输入AI模型。
第二虚拟角色的身体部位的包围框信息,指上述步骤210提及的与第二虚拟角色用于攻击的身体部位和/或第二虚拟角色遭受攻击的身体部位的外接包围框有关的信息。
第二虚拟角色的对战状态数据,指当前对局在目标帧时与第二虚拟角色的对战相关的状态数据,如:第二虚拟角色所在的位置、第二虚拟角色距离游戏场景边界的距离(常称为版边距离)、第二虚拟角色的血量、技能点(累计技能点即可释放特定技能)、已使用技能的剩余冷却时长、是否可被控制、是否可被击中、是否处于倒地状态、剩余僵直帧数、连击数、技能派生剩余时长(多段技能的剩余触发时长)、已使用的技能消耗的能量值、已使用的技能的伤害、已使用的通用虚拟道具(指与虚拟角色的类型无关的虚拟道具)的剩余生效时长、已使用的通用虚拟道具的冷却时长、已使用的通用虚拟道具的伤害数值、已使用的通用技能的剩余冷却时长(通用技能指与虚拟角色的类型无关的技能)等。
图6示出了本申请一个示例性实施例提供的编码第二虚拟角色的信息库的信息的示意图。如图6所示,第二附加对象的包围框信息和第二附加对象的对战状态数据输入第一卷积层、第一池化层和第二密集层,得到第二密集特征向量,将第二密集特征向量确定为第二特征向量表示中的一个特征向量并输入AI模型。
第二附加对象的包围框信息,指上述步骤210中提及的与第二虚拟角色召唤或释放的第二附加对象有关的信息。第二附加对象作为第二虚拟角色的攻击部位和/或受击部位。例如,第二附加对象为第二虚拟角色释放的飞盘,则第二附加对象的包围框即指用于包围飞盘的包围框。例如,第二附加对象为第二虚拟角色释放的气波,则第二附加对象的包围框即指气波造成的伤害范围。
第二附加对象的对战状态数据,指当前对局在目标帧时与第二附加对象的对战相关的状态数据,例如,第二附加对象的移动速度、第二附加对象的移动方向、第二附加对象的剩余存在时长。需要说明的是,理论上第二附加对象的对战状态数据还可能存在更为复杂的数据(如还包括第二附加对象的血量、能量值、技能冷却等),但实际上训练AI模型时仅需考虑让第一虚拟角色能合理躲避第二附加对象,因此上述第二附加对象的对战状态数据可以仅包括移动速度、移动方向、剩余存在时长共三个属性。
图7示出了本申请一个示例性实施例提供的编码第二虚拟角色的信息库的信息的示意图。如图7所示,将第二虚拟角色的身体部位的包围框信息和第二虚拟角色的对战状态数据输入第一密集层,得到第一密集特征向量;以及将第二虚拟角色遭受伤害的技能的标识输入第一嵌入层、第二卷积层、第二池化层和第三密集层,得到第三密集特征向量;将第一密集特征向量和第三密集特征向量输入第一全连接层,得到第一全连接特征向量,将第一全连接特征向量确定为第二特征向量表示中的一个特征向量并输入AI模型。
图7示出的编码第二虚拟角色的信息库的信息的方式与上述图5所示的编码第二虚拟角色的信息库的信息的方式的区别在于,还考虑到对第二虚拟角色遭受伤害的技能的标识进行编码。
第二虚拟角色遭受伤害的技能的标识,可以是第二虚拟角色遭受伤害的技能的ID(也称为受击技能ID)。在第二虚拟角色与第一虚拟角色展开对抗时,第二虚拟角色遭受伤害的技能的ID可以是第一虚拟角色在目标帧时使用的技能的ID,该ID与第一虚拟角色的角色类型相关。
图8示出了本申请一个示例性实施例提供的编码第二虚拟角色的信息库的信息的示意图。如图8所示,将第二附加对象的包围框信息和第二附加对象的对战状态数据输入第一卷积层、第一池化层和第二密集层,得到第二密集特征向量;以及,将第二虚拟角色遭受伤害的技能的标识输入第一嵌入层、第二卷积层、第二池化层和第三密集层,得到第三密集特征向量。将第二密集特征向量和第三密集特征向量输入第二全连接层,得到第二全连接特征向量;将第二全连接特征向量确定为第二特征向量表示中的一个特征向量并输入AI模型。
图8示出的编码方式与上述图6所示的编码方式的区别在于,还考虑到对第二虚拟角色遭受伤害的技能的标识进行编码。
第二虚拟角色遭受伤害的技能的标识,可以是第二虚拟角色遭受伤害的技能的ID(也称为受击技能ID)。在第二虚拟角色与第一虚拟角色展开对抗时,第二虚拟角色遭受伤害的技能的ID可以是第一虚拟角色在目标帧时使用的技能的ID,该ID与第一虚拟角色的角色类型相关。
在上述已介绍完毕第二虚拟角色的信息库的信息如何通过编码得到第二特征向量表示。下面将介绍第一虚拟角色的信息库的信息如何通过编码得到第一特征向量表示。
图9示出了本申请一个示例性实施例提供的编码第一虚拟角色的信息库的信息的示意图。如图9所示,将第一虚拟角色的类型标识输入第二嵌入层、第四密集层,得到第四密集特征向量;以及,将第一虚拟角色的对战状态数据输入第五密集层,得到第五密集特征向量;将第四密集特征向量和第五密集特征向量输入第三全连接层,得到第三全连接特征向量;将第三全连接特征向量确定为第一特征向量表示中的一个特征向量并输入AI模型。
第一虚拟角色的类型标识,指第一虚拟角色的类型ID。可选的,第一虚拟角色属于预设角色池中的角色,预设角色池包括20种角色类型,则第一虚拟角色的类型ID即存在20种可能性。
第一虚拟角色的对战状态数据,指当前对局在目标帧时与第一虚拟角色的对战相关的状态数据,如:第一虚拟角色所在的位置、第二虚拟角色距离游戏场景边界的距离(常称为版边距离)、第一虚拟角色的血量、技能点(累计技能点即可释放特定技能)、是否可被控制、是否可被击中、是否处于倒地状态、连击数、已使用的通用虚拟道具(指与虚拟角色的类型无关的虚拟道具)的剩余生效时长、已使用的通用虚拟道具的冷却时长、已使用的通用虚拟道具的伤害数值、已使用的通用技能的剩余冷却时长(通用技能指与虚拟角色的类型无关的技能)等。
图10示出了本申请一个示例性实施例提供的编码第一虚拟角色的信息库的信息的示意图。如图10所示,将第一虚拟角色的类型标识输入第二嵌入层、第四密集层,得到第四密集特征向量;以及,将第一技能的标识输入第三嵌入层、第六密集层,得到第六密集特征向量;将第四密集特征向量和第六密集特征向量输入第四全连接层,得到第四全连接特征向量;将第一虚拟角色的对战状态数据输入第五密集层,得到第五密集特征向量;将第四全连接特征向量和第五密集特征向量输入第五全连接层,得到第五全连接特征向量;将第五全连接特征向量确定为第一特征向量表示中的一个特征向量并输入AI模型。
图10所示的编码方式与图9所示的编码方式区别在于,还考虑到对第一技能的标识进行编码,也即图10所示的情况为第一虚拟角色在目标帧使用第一技能的情况。
第一技能的标识,指第一虚拟角色在目标帧时使用的第一技能的ID。第一技能为与第一虚拟角色的类型相关的技能。如,第一虚拟角色为角色A,角色A配置有三个专属技能,则第一技能属于三个专属技能中的一个。
当第一虚拟角色在目标帧使用第一技能时,第一虚拟角色的对战状态数据还包括与第一技能相关的对战状态数据。如:第一技能的剩余冷却时长、第一技能的剩余僵直帧数、第一技能的技能派生剩余时长(多段技能的剩余触发时长)、第一技能消耗的能量值、第一技能的伤害值等。
图11示出了本申请一个示例性实施例提供的编码第一虚拟角色的信息库的信息的示意图。如图11所示,将第一附加对象的标识输入第四嵌入层,得到第四嵌入特征向量;将第一附加对象的对战状态数据和第四嵌入特征向量输入第三卷积层、第三池化层和第七密集层,得到第七密集特征向量;将第七密集特征向量确定为第一特征向量表示中的一个特征向量并输入AI模型。
第一附加对象的标识,指第一虚拟角色召唤或释放的第一附加对象的ID。第一附加对象作为第一虚拟角色的攻击部位和/或受击部位。例如,第一附加对象为第一虚拟角色释放的飞盘,则第一附加对象的包围框即指用于包围飞盘的包围框。例如,第一附加对象为第一虚拟角色释放的气波,则第一附加对象的包围框即指气波造成的伤害范围。第一附加对象为第一虚拟角色释放的飞盾,则第一附加对象的包围框即指用于包围飞盾的包围框。
第一附加对象的对战状态数据,指当前对局在目标帧时与第一附加对象的对战相关的状态数据,例如,第一附加对象的移动速度、第一附加对象的移动方向、第一附加对象的剩余存在时长。需要说明的是,理论上第一附加对象的对战状态数据还可能包括更为复杂的数据(如还包括第一附加对象的血量、能量值、技能冷却等),但实际上训练AI模型时仅需考虑让第二虚拟角色能合理躲避第一附加对象,因此上述第一附加对象的对战状态数据可以仅包括移动速度、移动方向、剩余存在时长共三个属性。
需要说明的是,上述图5至图8示出了4种可能的第二虚拟角色的信息库的信息的编码方式。图5至图8的编码方式可进一步划分为针对第二虚拟角色本体的编码方式(图5和图7所示)和针对第二附加对象的编码方式(图6和图8)。
图9至图11示出了3种可能的第一虚拟角色的信息库的信息的编码方式。图9示出了在第一虚拟角色不释放技能仅针对第一虚拟角色本体的编码方式,图10示出了在第一虚拟角色释放第一技能针对第一虚拟角色本体和第一技能的编码方式,图11示出了针对第一附加对象的编码方式。
上述图5至图8所示的编码方式可任意组合以得到针对不同游戏类型的编码方式。例如,在游戏同时支持近身格斗和释放附加对象时,将使用图5结合图6所示的编码方式进行编码。上述图9至图11所示的编码方式可任意组合以得到针对不同游戏类型的编码方式。例如,在游戏同时支持近身格斗、释放技能和释放附加对象时,将使用图10结合图11所示的编码方式进行编码。
上述图5至图11所示的编码方式仅为了方便论述进行了拆分,图5至图11所示的编码方式之间可以相互组合、拆分后再组合,图5至图11所示的任一编码方式内可以拆分出新的编码方式,本申请并不将其排斥在外。因此,图5至图8中第一虚拟角色的第一特征向量表示是由至少一个特征向量组合得到的,至少一个特征向量可通过全连接层进行组合后生成第一特征向量表示,再将第一特征向量表示输入AI模型。同理,图9至图11中第二虚拟角色的第二特征向量表示是由至少一个特征向量组合得到的,至少一个特征向量可通过全连接层进行组合后生成第二特征向量表示,再将第二特征向量表示输入AI模型。
请参考图12,其示出了相关技术和本申请提供的编码方式在面对未知的角色类型的第二虚拟角色时,AI模型控制的第一虚拟角色被第二虚拟角色释放的第二附加对象击中次数的对比示意图。图12的被击中次数为多局对战下被击中的平均次数。相关技术在训练AI模型时采用第二附加对象的标识信息,本申请在训练AI模型时采用第二附加对象的包围框信息。
图12的纵轴为被击中次数、横轴为不同的第一虚拟角色的编号。由图12可以看出虽然不同的第一虚拟角色被击中的次数略有差异,但整体上优化后的第一虚拟角色相比于优化前的第一虚拟角色,被击中次数得到了很大幅度的降低,优化后的AI模型相比优化前的AI模型的泛化性能明显提升。
在一个可选的实施例中,上述图5至图11的编码方式中存在的嵌入层用于将高维空间的离散数据降维成低维空间的连续特征向量。所有的嵌入层共同维护一个n*m维的矩阵,如下表2所示,n*m维的矩阵中n指类型标识(ID)的总量、m指编码后的特征向量维度。
表2
特征向量1 | … | 特征向量m | |
ID1 | |||
ID2 | |||
… | |||
IDn |
在上述图5至图11所示的编码方式中,往嵌入层输入ID将通过查询操作查询该ID在表2中对应的特征向量,查询得到的特征向量将代表ID往下进行编码。因此,需要编码的ID数量将直接影响查询操作的速度,进而影响嵌入层的执行速度。
在相关技术中AI模型的训练需要编码双方对战角色的全量ID,这导致嵌入层对应的矩阵过分臃肿,进而影响AI模型的推理效率。本申请提供的方法中第二虚拟角色的状态信息已完全不依赖ID信息,而AI模型控制的第一虚拟角色属于预设角色池,预设角色池的角色数量属于开发者可以控制的,因此嵌入层对应的矩阵表不再需要为未知的角色类型预留ID,可以将矩阵表缩减到极小范围之内,极大提升了AI模型的推理效率。
结合参考图13,其示出了优化前的AI模型和优化后的AI模型的训练时长的对比示意图。图13的(A)部分示出了优化前的AI模型在单批次下的训练时长,图13的(B)部分示出了优化后的AI模型在单批次下的训练时长。图13中的横轴为记录的训练时间点,纵轴为单批次下的训练时长。可以看出优化后单批次的训练速度提升了近3倍。
结合参考下表3,其示出了优化前后训练过程消耗的训练资源和训练量。
表3
表3示出了在游戏客户端数量相同的情况下,仅需原来一半的训练资源就能完成优化前3-4倍的训练量。例如,优化后仅需使用4个学习器(learner),即可实现训练步长为34362的训练;优化前需使用10个学习器(learner),方能实现训练步长为8676的训练。
结合参考下表4,表4示出了采用本申请的训练方法进行训练时AI模型控制的第一虚拟角色的对战胜率,和,采用相关技术的训练方法进行训练时AI模型控制的第一虚拟角色的对战胜率。相关技术在训练AI模型时仍采用第二虚拟角色的个性化对战信息,本申请在训练AI模型时采用第二虚拟角色的包围框信息。表4中纵轴为优化前和优化后的AI模型控制的第一虚拟角色,横轴为多轮对局。其中,第零轮至第五轮为面对已知角色类型的第二虚拟角色,第六轮为面对未知角色类型的第二虚拟角色。
表4
第零轮 | 第一轮 | 第二轮 | 第三轮 | 第四轮 | 第五轮 | 第六轮 | |
优化前 | 94.21% | 82.28% | 73.5% | 65.64% | 63.77% | 63.88% | 30.19% |
优化后 | 93.82% | 89.65% | 74.21% | 69.71% | 68.45% | 63.51% | 53.82% |
由表4可以看出,在面对未知角色类型的第二虚拟角色时,优化前后胜率差距甚大,在前序轮次胜率差距不大的情况下,优化前的模型基本不具备应对未知角色类型的第二虚拟角色的能力,而优化后的模型与未知角色类型的第二虚拟角色势均力敌。
上述已完整介绍了第一虚拟角色的信息库的信息对应的编码方式和第二虚拟角色的信息库的信息对应的编码方式,以及采用本申请的编码方式带来的有益效果。即完整介绍了与AI模型的泛化性相关的技术手段和有益效果。接下来将介绍与AI模型控制的第一虚拟角色的拟人性相关的技术手段和有益效果。
在游戏中,AI模型预测得到的第一虚拟角色将执行的目标动作为原子动作,原子动作为虚拟角色最基础的动作,原始动作不可再进行拆解,一般与游戏界面上玩家可操作的按键一一对应,比如向上、下、左、右移动按键和各种技能按键。AI模型直接决策出原子动作,这虽然能给予第一虚拟角色足够的自由度但劣势也非常明显,第一虚拟角色每次决策都可以切换自己的动作,导致了第一虚拟角色在预测频次较高的情况下会出现行为抖动的问题,进而导致了第一虚拟角色的表现不够拟人化。
然而,单纯地降低预测频次到与玩家反应时间一致的200ms/次也无法完美解决这个问题,继续降低频次反而可能牺牲第一虚拟角色的对抗强度。基于此,本申请进一步提供了解决AI模型控制的第一虚拟角色行为抖动问题的方法。该方法的关键在于避免互斥动作(上/下,左/右)的频繁切换,强制第一虚拟角色在决策移动动作时,每次切换方向后都必须朝该方向持续移动一段时间。具体方法介绍如下:
基于图2所示的可选实施例中,在预测得到的目标动作为移动动作(上、下、左、右移动)时,步骤230中“通过AI模型预测得到第一虚拟角色在预测帧执行的目标动作”,可以包括下述步骤:通过AI模型,预测得到第一移动动作;在第一虚拟角色已执行第一移动动作的时长达到时长阈值的情况下,将第一移动动作确定为第一虚拟角色在预测帧执行的目标动作;在第一虚拟角色已执行第二移动动作的时长达到时长阈值的情况下,将第一移动动作确定为第一虚拟角色在预测帧执行的目标动作,第二移动动作与第一移动动作的移动方向相反;在第一虚拟角色已执行第一移动动作的时长未达到时长阈值的情况下,将第一移动动作确定为第一虚拟角色在预测帧执行的目标动作;在第一虚拟角色已执行第二移动动作的时长未达到时长阈值的情况下,将第二移动动作确定为第一虚拟角色在预测帧执行的目标动作。
上述方法即保证了在第一移动动作的持续时长未达到时长阈值时,强制第一虚拟角色继续执行第一移动动作;在第一移动动作的持续时长达到时长阈值时,允许第一虚拟角色执行AI模型预测出来的移动动作;在第二移动动作的持续时长未达到时长阈值时,强制第一虚拟角色继续执行第二移动动作;在第二移动动作的持续时长达到时长阈值时,允许第一虚拟角色执行AI模型预测出来的移动动作。
示例性的,图14示出了AI模型预测得到的移动动作为向下移动时确定出目标动作的示意图。初始状态下,假设第零轮执行的目标动作为向下移动,则动作计数器1401将对向下移动的数值加一,向上移动的数值减一。在当前轮次下,首先判断动作计数器1401的数值是否存在1,若是则说明发生了动作切换,需重置动作计数器1401;接着,判断动作计数器1401中的最小值的绝对值是否大于预设的最大移动帧数,若是,则说明第一虚拟角色向下移动时间过长,可能出现了卡在场景边缘的情况,需强制转向,因此屏蔽向上移动以外的动作(如图14的动作屏蔽器1402所示),即强制当前轮第一虚拟角色执行向上移动,同时更新动作计数器。
否则,继续判断动作计数器的最大值是否大于预设的最小移动帧数,若是,则说明第一虚拟角色已经持续向下移动时长满足阈值,因此所有动作均不屏蔽(如图14的动作屏蔽器1404所示),第一虚拟角色可选择切换移动方向或停止移动;否则,说明第一虚拟角色在向下移动的移动时间还不够长,需继续向下移动,屏蔽向下移动以外的动作(如图14的动作屏蔽器1403所示)。根据动作屏蔽器和AI模型预测得到的动作将确定出当前轮次第一虚拟角色将执行的目标动作,以及根据目标动作对动作计数器进行更新,若目标动作为向下移动,则向下移动的数值加一,向上移动的数值减一;若目标动作为向上移动,则向下移动的数值减一,向上移动的数值加一。如此重复即可实现通过动作计数器、动作屏蔽器和AI模型预测的动作,确定出每轮第一虚拟角色执行的目标动作。
下面将通过多轮预测介绍上述动作计数器和动作屏蔽器完整的工作流程。假设最大移动帧数为10,最小移动帧数为5。初始状态动作计数器为[0,0,0],动作屏蔽器为[1,1,1],即第一虚拟角色可执行任意的移动动作。
第零轮预测得到向下移动,动作计数器为[0,-1,1]。
第一轮初始动作计数器为[0,-1,1],动作计数器中存在1,则重置动作计数器(将动作计数器中大于1的值设为0),重置后动作计数器为[0,-1,1];确定动作计数器中最小值的绝对值不大于最大移动帧数;确定动作计数器中最大值不大于最小移动帧数。则动作屏蔽器为[0,0,1],强制第一虚拟角色执行向下移动。将动作计数器更新为[0,-2,2]。
第二轮初始动作计数器为[0,-2,2],确定动作计数器中不存在1;确定动作计数器中最小值的绝对值不大于最大移动帧数;确定动作计数器中最大值不大于最小移动帧数。则动作屏蔽器为[0,0,1],强制第一虚拟角色执行向下移动。将动作计数器更新为[0,-3,3]。
…
第六轮初始动作计数器为[0,-6,6]。确定动作计数器中不存在1;确定动作计数器中最小值的绝对值不大于最大移动帧数;确定动作计数器中最大值大于最小移动帧数。则动作屏蔽器[1,1,1],即将AI模型预测得到的移动动作确定为目标动作。第六轮预测得到向上移动,则将动作计数器更新为[0,1,6](将负数取零再加一)。
第七轮初始动作计数器为[0,1,6]。确定动作计数器中存在1,重置动作计数器为[0,1,0];确定动作计数器中最小值的绝对值不大于最大移动帧数;确定动作计数器中最大值不大于最小移动帧数。则动作屏蔽器[0,1,0],即强制第一虚拟角色执行向上移动。将动作计数器更新为[0,2,-1]。
…
第十一轮初始动作计数器为[0,6,-5];确定动作计数器中不存在1;确定动作计数器中最小值的绝对值不大于最大移动帧数;确定动作计数器中最大值大于最小移动帧数。则动作屏蔽器[1,1,1],即将AI模型预测得到的移动动作确定为目标动作。第十一轮预测得到向上移动,将动作计数器更新为[0,7,-6]。
…
第十六轮初始动作计数器为[0,12,-11];确定动作计数器中不存在1;确定动作计数器中最小值的绝对值大于最大移动帧数;则动作屏蔽器[0,0,1],则强制第一虚拟角色执行向下移动,动作计数器更新为[0,12,1]。
第十七轮初始动作计数器为[0,12,1];确定动作计数器中存在1,则动作计数器为[0,0,1]。确定动作计数器中最小值的绝对值不大于最大移动帧数;确定动作计数器中最大值不大于最小移动帧数,则动作屏蔽器为[0,0,1],强制第一虚拟角色执行向下移动,动作计数器更新为[0,-1,2]。
在上述已详细介绍了,通过动作计数器和动作屏蔽器,结合AI模型预测得到的移动动作,确定出第一虚拟角色在预测帧执行的目标动作的情况。上述方案实际上模拟了玩家在移动至场景边缘时将重新调整移动动作的场景,以及解决了AI模型控制的第一虚拟角色的行为抖动问题,即提高了AI模型控制的第一虚拟角色的拟人性。
基于图2所示的可选实施例中,预测帧为第j帧,j为大于1的正整数,步骤250“基于目标动作的执行结果,更新AI模型的模型参数”,可替换为“获取目标动作执行完毕后的第j帧的对局状态信息;基于第j帧的对局状态信息和第j-1帧的对局状态信息,确定对第一虚拟角色的奖惩内容;根据奖惩内容,更新所述AI模型的模型参数”。
步骤250替换后得到的AI模型的训练框架即为强化学习的框架。
强化学习的框架主要由智能体(Agent)、环境(Environment)、状态(State)、动作(Action)、奖励(Reward)组成。智能体执行了某个动作后,环境将会转换到一个新的状态,对于该新的状态环境将给出奖励信号(正奖励或者负奖励)。随后,智能体根据新的状态和环境反馈的奖励,按照一定的策略执行新的动作。上述过程为智能体和环境通过状态、动作、奖励进行交互的方式。
下面将通过不同的奖惩内容,举例得到对AI模型的不同训练方式。
第一,第一虚拟角色在第j帧使用技能A,通过第j帧与第j-1帧下第一虚拟角色的血量对比,得知第一虚拟角色的血量没有发生变化,第二虚拟角色的血量减少,则奖励第一虚拟角色更多地使用技能A,通过更新AI模型的模型参数,提高第一虚拟角色释放技能A的概率。
第二,第一虚拟角色在第j帧使用技能B,第j帧下第一虚拟角色处于倒地状态,第j-1帧下第一虚拟角色未处于倒地状态,则惩罚第一虚拟角色更少地使用技能B,通过更新AI模型的模型参数,降低第一虚拟角色使用技能B的概率。
第三,第一虚拟角色在第j帧使用了技能C,第j帧下第一虚拟角色使用了技能C,第j-1帧下第一虚拟角色未使用技能C,则惩罚第一虚拟角色更少地使用技能C,通过更新AI模型的模型参数,降低第一虚拟角色使用技能C的概率。
上述已完整介绍了用于控制虚拟角色的AI模型的训练方法。接下来将介绍AI模型的使用方法。
图15示出了本申请一个示例性实施例提供的AI模型的使用方法的流程图。以该方法由终端执行进行举例说明。该方法包括:
步骤1510,获取AI虚拟角色在第i帧时对应的个性化对战信息,以及玩家虚拟角色在i-N帧时对应的包围框信息;
AI虚拟角色,指基于AI模型控制的虚拟角色。个性化对战信息与AI虚拟角色的角色类型相关。关于个性化对战信息的详细介绍请参考上述步骤210。
玩家虚拟角色,指玩家控制的与AI虚拟角色展开对抗的虚拟角色。包围框信息是与玩家虚拟角色的攻击部位和/或受击部位的外接包围框有关的信息。关于包围框信息的详细介绍请参考上述步骤210。
步骤1520,至少基于个性化对战信息编码得到AI虚拟角色的第一特征向量表示;以及,至少基于包围框信息编码得到玩家虚拟角色的第二特征向量表示;
关于至少基于个性化对战信息编码得到AI虚拟角色的第一特征向量表示的详细内容,请参考上述介绍的至少基于个性化对战信息编码得到第一虚拟角色的第一特征向量表示的详细内容。
关于至少基于包围框信息编码得到玩家虚拟角色的第二特征向量表示的详细内容,请参考上述介绍的至少基于包围框信息编码得到第二虚拟角色的第二特征向量表示的详细内容。
步骤1530,将第一特征向量表示和第二特征向量表示输入AI模型;通过AI模型预测得到AI虚拟角色在第i+1帧执行的目标动作;
终端将第一特征向量表示和第二特征向量表示输入AI模型,通过AI模型预测得到AI虚拟角色在第i+1帧执行的目标动作。
步骤1540,控制AI虚拟角色在第i+1帧执行目标动作。
终端控制AI虚拟角色在第i+1帧执行目标动作。
综上所述,通过采用第一虚拟角色的个性化对战信息和第二虚拟角色的包围框信息,训练用于控制第一虚拟角色的AI模型,使得训练得到的AI模型控制的AI虚拟角色在面对未知角色类型的玩家虚拟角色时仍具有较高的对抗强度,即提高了AI模型的泛化性能。
通过本申请提供的训练方法不仅能提高AI模型的泛化能力和AI虚拟角色的拟人性,对于控制未知角色类型的虚拟角色的玩家而言,AI虚拟角色始终具有一定的对抗强度,提升了游戏对局的对抗性,进而提高了对局的趣味性和玩家的游戏体验。并且,本申请的AI模型控制的AI虚拟角色体现出的动作形态更加拟人化,玩家无法明显分辨出对手属于玩家控制的虚拟角色还是AI虚拟角色,满足了玩家的模拟真人对抗需求。
基于图15所示的可选的AI模型的使用方法,在使用AI模型时还可能通过状态延迟和/或动作延迟,降低第一虚拟角色的对抗强度。状态延迟即在为AI模型构建第i帧状态输入的时候,取的是第i-N帧的对局状态,也就是AI模型能够获取的并不是当下第i帧的对局状态,以此降低AI模型决策的即时性。N为正整数。图16示出了状态延迟的示意图,将第i-N帧的对局状态作为第i帧的对局状态,以此预测得到第i+1帧执行的目标动作。
动作延迟即在将AI模型预测的动作下发给客户端执行的过程中,推送的是第i+1-M帧的动作而非第i+1帧的动作,同样达到延迟决策降低第一虚拟角色的对抗强度。借助这两项延迟,即可达到用一个AI模型生成多个不同强度的第一虚拟对象。图17示出了状态延迟的示意图,将第i-M帧的对局状态的推理结果(ai+1-M)下发至客户端。
下表5示出了通过同一AI模型调整得到的不同对抗强度的AI虚拟角色之间进行对战的胜率情况。
表5
示意性的,强度一的AI虚拟角色的状态延迟为2,执行AI模型预测到的动作的概率为0.2;强度二的AI虚拟角色的状态延迟为1,执行AI模型预测到的动作的概率为0.4;强度三的AI虚拟角色的状态延迟为0,执行AI模型预测到的动作的概率为0.4;强度四的AI虚拟角色的状态延迟为1,执行AI模型预测到的动作的概率为1;强度五的AI虚拟角色的状态延迟为0,执行AI模型预测到的动作的概率为1。显然,状态延迟的提高导致了AI虚拟角色的对抗强度下降,执行AI模型预测到的动作的概率的降低也导致了AI虚拟角色的对抗强度下降。
图18示出了本申请一个示例性实施例提供的用于控制虚拟角色的AI模型的训练方法的示意图。
针对第一虚拟角色的相关属性编码1801:将第一虚拟角色的技能ID、角色ID、目标帧时第一虚拟角色的对战状态数据、第一虚拟角色召唤或释放的第一附加对象ID、目标帧时第一附加对象的对战状态数据通过如图18所示的网络结构编码,该网络结构包括嵌入层、密集层、卷积层、池化层和全连接层等。
针对第二虚拟角色的相关属性编码1802:将第二虚拟角色的受击技能ID、目标帧时第二虚拟角色的对战状态数据、第二虚拟角色召唤或释放的第二附加对象的包围框信息、目标帧时第二附加对象的对战状态数据通过如图18所示的网络结构编码,该网络结构包括嵌入层、密集层、卷积层、池化层和全连接层等。
将第一虚拟角色的相关属性和第二虚拟角色的相关属性编码后通过输入层和多个密集层,再输入AI模型1803,输入输入层的还包括全局信息,全局信息指对局的游戏时长。AI模型1803将结合动作屏蔽信息预测出第一虚拟角色在预测帧将执行的目标动作。目标动作包括移动动作(向上、下、左、右移动)和使用技能动作。
图19示出了用于控制虚拟角色的AI模型的训练方法和使用方法。
训练阶段:在开始训练AI模型时,需要先挑选一定数量的热门角色同时作为己方和对手的模型角色池,然后根据角色池配置双方角色送入客户端,由客户端收集双方角色的对打数据进行训练,客户端首先将状态空间中的对打数据进行量化,并将量化后的数据输入AI模型,AI模型根据量化后的数据预测出下一帧要执行的动作;后处理动作引导模块将结合当前帧和前序帧状态对AI模型预测的动作做进一步处理,并输出最终执行的动作(后处理动作引导模块旨在使得处理后的动作能被客户端执行,避免客户端不执行AI模型预测得到的动作);最后将根据当前帧的对局状态与前序帧的对局状态的差异计算主奖励和辅助奖励,来引导AI模型的参数更新。
使用阶段:训练完成后的AI模型在投入线上环境时,AI模型将面对的是全角色池对手,己方角色池由热门角色构建得到,对方角色池由全角色构建得到,系统按照匹配策略从己方角色池中挑选出AI虚拟角色,玩家从对方角色池中挑选出玩家虚拟角色,挑选出的AI虚拟角色依靠自身的通用泛化能力来应对未知类型的玩家虚拟角色。
图20示出了训练时客户端与AI模型的交互过程。
在游戏开局时,客户端向AI服务器发送开局请求,由服务器侧根据训练需求返回对战配置数据,客户端获取对战配置数据后构建对局并生成AI虚拟角色。
游戏过程中,客户端在每个游戏逻辑帧内都会执行一次与强化学习框架的交互,客户端先通过SDK获取到AI模型通过上一帧状态推理出的当前帧动作,再根据当前帧的游戏状态构建出当前帧状态数据,通过SDK进行特征处理后传输给AI模型进行下一帧动作的推理。整体过程相当于替代了原有游戏逻辑帧内对于用户输入的处理,不是通过输入设备的事件触发,而是完全通过神经网络模型的输出作为动作逻辑输入。
游戏结束时,客户端会调用相应的接口进行对局与第一虚拟角色的销毁,并统计本局内如技能命中率等统计指标上报给服务器,游戏内垃圾清理并以相同的对战配置自动开启下一场对局。
图21示出了本申请一个示例性实施例提供的用于控制虚拟角色的AI模型的训练装置的结构框图,该装置包括:
获取模块2101,用于获取第一虚拟角色在目标帧时对应的个性化对战信息,以及第二虚拟角色在目标帧时对应的包围框信息;第一虚拟角色是基于AI模型控制的虚拟角色,个性化对战信息与第一虚拟角色的角色类型相关,第二虚拟角色是与第一虚拟角色展开对抗的虚拟角色,包围框信息是与第二虚拟角色的攻击部位和/或受击部位的外接包围框有关的信息;
编码模块2102,用于至少基于个性化对战信息编码得到第一虚拟角色的第一特征向量表示;以及,至少基于包围框信息编码得到第二虚拟角色的第二特征向量表示;
输入模块2103,用于将第一特征向量表示和第二特征向量表示输入AI模型;
预测模块2104,用于通过AI模型预测得到第一虚拟角色在预测帧执行的目标动作;
执行模块2105,用于控制第一虚拟角色在预测帧执行目标动作;
更新模块2106,用于基于目标动作的执行结果,更新AI模型的模型参数。
在一个可选的实施例中,获取模块2101还用于确定第二虚拟角色的外接包围框,外接包围框包括第二虚拟角色对应的攻击部位的第一包围框,和/或,第二虚拟角色对应的受击部位的第二包围框;将外接包围框的描述信息,确定为包围框信息。
在一个可选的实施例中,外接包围框是目标帧的二维包围框;或者,外接包围框是三维虚拟空间的三维包围框。
在一个可选的实施例中,包围框信息是与第二虚拟角色用于攻击的身体部位和/或第二虚拟角色遭受攻击的身体部位的外接包围框有关的信息;和/或,包围框信息是与第二虚拟角色召唤或释放的第二附加对象有关的信息。
在一个可选的实施例中,获取模块2101还用于获取第二虚拟角色在目标帧时的对战状态数据;编码模块2102,还用于在包围框信息是与第二虚拟角色用于攻击的身体部位和/或第二虚拟角色遭受攻击的身体部位的外接包围框有关的信息的情况下,将包围框信息和第二虚拟角色的对战状态数据输入第一密集层,得到第一密集特征向量;将第一密集特征向量确定为第二特征向量表示。
在一个可选的实施例中,获取模块2101还用于获取第二附加对象在目标帧时的对战状态数据;编码模块2102,还用于在包围框信息是与第二虚拟角色召唤或释放的第二附加对象有关的信息的情况下,将包围框信息和第二附加对象的对战状态数据输入第一卷积层、第一池化层和第二密集层,得到第二密集特征向量;将第二密集特征向量确定为第二特征向量表示中的一个特征向量。
在一个可选的实施例中,获取模块2101还用于获取第二虚拟角色遭受伤害的技能的标识;编码模块2102,还用于将第二虚拟角色遭受伤害的技能的标识输入第一嵌入层、第二卷积层、第二池化层和第三密集层,得到第三密集特征向量;将第三密集特征向量和第一密集特征向量输入第一全连接层,得到第一全连接特征向量;将第一全连接特征向量确定为第二特征向量表示中的一个特征向量。
在一个可选的实施例中,获取模块2101还用于获取第二虚拟角色遭受伤害的技能的标识;编码模块2102,还用于将第二虚拟角色遭受伤害的技能的标识输入第一嵌入层、第二卷积层、第二池化层和第三密集层,得到第三密集特征向量;将第三密集特征向量和第二密集特征向量输入第二全连接层,得到第二全连接特征向量;将第二全连接特征向量确定为第二特征向量表示中的一个特征向量。
在一个可选的实施例中,个性化对战信息包括以下中的至少一种:第一虚拟角色的类型标识;第一虚拟角色在目标帧时使用的第一技能的标识;第一虚拟角色召唤或释放的第一附加对象的标识。
在一个可选的实施例中,获取模块2101还用于获取第一虚拟角色在目标帧时的对战状态数据;编码模块2102,还用于在个性化对战信息包括第一虚拟角色的类型标识的情况下,将第一虚拟角色的类型标识输入第二嵌入层和第四密集层,得到第四密集特征向量;以及,将第一虚拟角色的对战状态数据输入第五密集层,得到第五密集特征向量;将第四密集特征向量和第五密集特征向量输入第三全连接层,得到第三全连接特征向量;将第三全连接特征向量确定为第一特征向量表示中的一个特征向量。
在一个可选的实施例中,获取模块2101还用于获取第一虚拟角色在目标帧时的对战状态数据;编码模块2102,还用于在个性化对战信息包括第一虚拟角色的类型标识和第一技能的标识的情况下,将第一虚拟角色的类型标识输入第二嵌入层和第四密集层,得到第四密集特征向量;将第一虚拟角色的对战状态数据输入第五密集层,得到第五密集特征向量;以及,将第一技能的标识输入第三嵌入层和第六密集层,得到第六密集特征向量;将第四密集特征向量和第六密集特征向量输入第四全连接层,得到第四全连接特征向量;将第四全连接特征向量和第五密集特征向量输入第五全连接层,得到第五全连接特征向量;将第五全连接特征向量确定为第一特征向量表示中的一个特征向量。
在一个可选的实施例中,获取模块2101还用于获取第一附加对象在目标帧时的对战状态数据;编码模块2102,还用于在个性化对战信息包括第一附加对象的标识的情况下,将第一附加对象的标识输入第四嵌入层,得到第四嵌入特征向量;以及,将第四嵌入特征向量和第一附加对象的对战状态数据输入第三卷积层、第三池化层和第七密集层,得到第七密集特征向量;将第七密集特征向量确定为第一特征向量表示中的一个特征向量。
在一个可选的实施例中,目标动作为移动动作;预测模块2104还用于通过AI模型,预测得到第一移动动作;在第一虚拟角色已执行第一移动动作的时长达到时长阈值的情况下,将第一移动动作确定为第一虚拟角色在预测帧执行的目标动作;在第一虚拟角色已执行第二移动动作的时长达到时长阈值的情况下,将第一移动动作确定为第一虚拟角色在预测帧执行的目标动作,第二移动动作与第一移动动作的移动方向相反;在第一虚拟角色已执行第一移动动作的时长未达到时长阈值的情况下,将第一移动动作确定为第一虚拟角色在预测帧执行的目标动作;在第一虚拟角色已执行第二移动动作的时长未达到时长阈值的情况下,将第二移动动作确定为第一虚拟角色在预测帧执行的目标动作。
在一个可选的实施例中,预测帧为第j帧;更新模块2106还用于获取目标动作执行完毕后的第j帧的对局状态信息;基于第j帧的对局状态信息和第j-1帧的对局状态信息,确定对第一虚拟角色的奖惩内容;根据奖惩内容,更新AI模型的模型参数。
综上所述,通过采用第一虚拟角色的个性化对战信息和第二虚拟角色的包围框信息,训练用于控制第一虚拟角色的AI模型,使得训练得到的AI模型控制的AI虚拟角色在面对未知角色类型的玩家虚拟角色时仍具有较高的对抗强度,即提高了AI模型的泛化性能。
图22示出了本申请一个示例性实施例提供的计算机设备2200的结构框图。该计算机设备2200可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(MovingPicture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。计算机设备2200还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,计算机设备2200包括有:处理器2201和存储器2202。
处理器2201可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器2201可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器2201也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器2201可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器2201还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器2202可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器2202还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器2202中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器2201所执行以实现本申请中方法实施例提供的用于控制虚拟角色的AI模型的训练方法。
在一些实施例中,计算机设备2200还可选包括有:外围设备接口2203和至少一个外围设备。处理器2201、存储器2202和外围设备接口2203之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口2203相连。示例地,外围设备可以包括:射频电路2204、显示屏2205、摄像头组件2206、音频电路2207和电源2208中的至少一种。
外围设备接口2203可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器2201和存储器2202。在一些实施例中,处理器2201、存储器2202和外围设备接口2203被集成在同一芯片或电路板上;在一些其他实施例中,处理器2201、存储器2202和外围设备接口2203中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路2204用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路2204通过电磁信号与通信网络以及其他通信设备进行通信。射频电路2204将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路2204包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路2204可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路2204还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏2205用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏2205是触摸显示屏时,显示屏2205还具有采集在显示屏2205的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器2201进行处理。此时,显示屏2205还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏2205可以为一个,设置在计算机设备2200的前面板;在另一些实施例中,显示屏2205可以为至少两个,分别设置在计算机设备2200的不同表面或呈折叠设计;在另一些实施例中,显示屏2205可以是柔性显示屏,设置在计算机设备2200的弯曲表面上或折叠面上。甚至,显示屏2205还可以设置成非矩形的不规则图形,也即异形屏。显示屏2205可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(OrganicLight-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件2206用于采集图像或视频。可选地,摄像头组件2206包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件2206还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路2207可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器2201进行处理,或者输入至射频电路2204以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在计算机设备2200的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器2201或射频电路2204的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路2207还可以包括耳机插孔。
电源2208用于为计算机设备2200中的各个组件进行供电。电源2208可以是交流电、直流电、一次性电池或可充电电池。当电源2208包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,计算机设备2200还包括有一个或多个传感器2209。该一个或多个传感器2209包括但不限于:加速度传感器2210、陀螺仪传感器2211、压力传感器2212、光学传感器2213以及接近传感器2214。
加速度传感器2210可以检测以计算机设备2200建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器2210可以用于检测重力加速度在三个坐标轴上的分量。处理器2201可以根据加速度传感器2210采集的重力加速度信号,控制显示屏2205以横向视图或纵向视图进行用户界面的显示。加速度传感器2210还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器2211可以检测计算机设备2200的机体方向及转动角度,陀螺仪传感器2211可以与加速度传感器2210协同采集用户对计算机设备2200的3D动作。处理器2201根据陀螺仪传感器2211采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器2212可以设置在计算机设备2200的侧边框和/或显示屏2205的下层。当压力传感器2212设置在计算机设备2200的侧边框时,可以检测用户对计算机设备2200的握持信号,由处理器2201根据压力传感器2212采集的握持信号进行左右手识别或快捷操作。当压力传感器2212设置在显示屏2205的下层时,由处理器2201根据用户对显示屏2205的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
光学传感器2213用于采集环境光强度。在一个实施例中,处理器2201可以根据光学传感器2213采集的环境光强度,控制显示屏2205的显示亮度。示例地,当环境光强度较高时,调高显示屏2205的显示亮度;当环境光强度较低时,调低显示屏2205的显示亮度。在另一个实施例中,处理器2201还可以根据光学传感器2213采集的环境光强度,动态调整摄像头组件2206的拍摄参数。
接近传感器2214,也称距离传感器,通常设置在计算机设备2200的前面板。接近传感器2214用于采集用户与计算机设备2200的正面之间的距离。在一个实施例中,当接近传感器2214检测到用户与计算机设备2200的正面之间的距离逐渐变小时,由处理器2201控制显示屏2205从亮屏状态切换为息屏状态;当接近传感器2214检测到用户与计算机设备2200的正面之间的距离逐渐变大时,由处理器2201控制显示屏2205从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图22中示出的结构并不构成对计算机设备2200的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请还提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述方法实施例提供的用于控制虚拟角色的AI模型的训练方法。
本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法实施例提供的用于控制虚拟角色的AI模型的训练方法。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (16)
1.一种用于控制虚拟角色的人工智能AI模型的训练方法,其特征在于,所述方法包括:
获取第一虚拟角色在目标帧时对应的个性化对战信息,以及第二虚拟角色在所述目标帧时对应的包围框信息;所述第一虚拟角色是基于所述AI模型控制的虚拟角色,所述个性化对战信息与所述第一虚拟角色的角色类型相关,所述第二虚拟角色是与所述第一虚拟角色展开对抗的虚拟角色,所述包围框信息是与所述第二虚拟角色的攻击部位和/或受击部位的外接包围框有关的信息,和/或,所述包围框信息是与所述第二虚拟角色召唤或释放的第二附加对象有关的信息;
至少基于所述个性化对战信息编码得到所述第一虚拟角色的第一特征向量表示;以及,至少基于所述包围框信息编码得到所述第二虚拟角色的第二特征向量表示;
将所述第一特征向量表示和所述第二特征向量表示输入所述AI模型,通过所述AI模型预测得到所述第一虚拟角色在预测帧执行的目标动作;控制所述第一虚拟角色在所述预测帧执行所述目标动作,所述预测帧为第j帧,j为大于1的正整数;
获取所述目标动作执行完毕后的第j帧的对局状态信息;
基于所述第j帧的对局状态信息和第j-1帧的对局状态信息,确定对所述第一虚拟角色的奖惩内容;
根据所述奖惩内容,更新所述AI模型的模型参数。
2.根据权利要求1所述的方法,其特征在于,所述获取第二虚拟角色在所述目标帧时对应的包围框信息,包括:
确定所述第二虚拟角色的外接包围框,所述外接包围框包括所述第二虚拟角色对应的攻击部位的第一包围框,和/或,所述第二虚拟角色对应的受击部位的第二包围框;
将所述外接包围框的描述信息,确定为所述包围框信息。
3.根据权利要求2所述的方法,其特征在于,所述外接包围框是所述目标帧的二维包围框;或者,所述外接包围框是三维虚拟空间的三维包围框。
4.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
获取所述第二虚拟角色在所述目标帧时的对战状态数据;
所述至少基于所述包围框信息编码得到所述第二虚拟角色的第二特征向量表示,包括:
在所述包围框信息是与所述第二虚拟角色的攻击部位和/或受击部位的外接包围框有关的信息的情况下,将所述包围框信息和所述第二虚拟角色的对战状态数据输入第一密集层,得到第一密集特征向量;将所述第一密集特征向量确定为所述第二特征向量表示中的一个特征向量。
5.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
获取所述第二附加对象在所述目标帧时的对战状态数据;
所述至少基于所述包围框信息编码得到所述第二虚拟角色的第二特征向量表示,包括:
在所述包围框信息是与所述第二虚拟角色召唤或释放的第二附加对象有关的信息的情况下,将所述包围框信息和所述第二附加对象的对战状态数据输入第一卷积层、第一池化层和第二密集层,得到第二密集特征向量;将所述第二密集特征向量确定为所述第二特征向量表示中的一个特征向量。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
获取所述第二虚拟角色遭受伤害的技能的标识;
将所述第二虚拟角色遭受伤害的技能的标识输入第一嵌入层、第二卷积层、第二池化层和第三密集层,得到第三密集特征向量;将所述第三密集特征向量和所述第一密集特征向量输入第一全连接层,得到第一全连接特征向量;
所述将所述第一密集特征向量确定为所述第二特征向量表示中的一个特征向量,包括:
将所述第一全连接特征向量确定为所述第二特征向量表示中的一个特征向量。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
获取所述第二虚拟角色遭受伤害的技能的标识;
将所述第二虚拟角色遭受伤害的技能的标识输入第一嵌入层、第二卷积层、第二池化层和第三密集层,得到第三密集特征向量;将所述第三密集特征向量和所述第二密集特征向量输入第二全连接层,得到第二全连接特征向量;
所述将所述第二密集特征向量确定为所述第二特征向量表示中的一个特征向量,包括:
将所述第二全连接特征向量确定为所述第二特征向量表示中的一个特征向量。
8.根据权利要求1至3任一所述的方法,其特征在于,所述个性化对战信息包括以下信息中的至少一种:
所述第一虚拟角色的类型标识;
所述第一虚拟角色在所述目标帧时使用的第一技能的标识;
所述第一虚拟角色召唤或释放的第一附加对象的标识。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
获取所述第一虚拟角色在所述目标帧时的对战状态数据;
所述至少基于所述个性化对战信息编码得到所述第一虚拟角色的第一特征向量表示,包括:
在所述个性化对战信息包括所述第一虚拟角色的类型标识的情况下,将所述第一虚拟角色的类型标识输入第二嵌入层和第四密集层,得到第四密集特征向量;以及,将所述第一虚拟角色的对战状态数据输入第五密集层,得到第五密集特征向量;
将所述第四密集特征向量和所述第五密集特征向量输入第三全连接层,得到第三全连接特征向量;将所述第三全连接特征向量确定为所述第一特征向量表示中的一个特征向量。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:
获取所述第一虚拟角色在所述目标帧时的对战状态数据;
所述至少基于所述个性化对战信息编码得到所述第一虚拟角色的第一特征向量表示,包括:
在所述个性化对战信息包括所述第一虚拟角色的类型标识和所述第一技能的标识的情况下,将所述第一虚拟角色的类型标识输入第二嵌入层和第四密集层,得到第四密集特征向量;将所述第一虚拟角色的对战状态数据输入第五密集层,得到第五密集特征向量;以及,将所述第一技能的标识输入第三嵌入层和第六密集层,得到第六密集特征向量;
将所述第四密集特征向量和所述第六密集特征向量输入第四全连接层,得到第四全连接特征向量;
将所述第四全连接特征向量和所述第五密集特征向量输入第五全连接层,得到第五全连接特征向量;
将所述第五全连接特征向量确定为所述第一特征向量表示中的一个特征向量。
11.根据权利要求8所述的方法,其特征在于,所述方法还包括:
获取所述第一附加对象在所述目标帧时的对战状态数据;
所述至少基于所述个性化对战信息编码得到所述第一虚拟角色的第一特征向量表示,包括:
在所述个性化对战信息包括所述第一附加对象的标识的情况下,将所述第一附加对象的标识输入第四嵌入层,得到第四嵌入特征向量;以及,将所述第四嵌入特征向量和所述第一附加对象的对战状态数据输入第三卷积层、第三池化层和第七密集层,得到第七密集特征向量;
将所述第七密集特征向量确定为所述第一特征向量表示中的一个特征向量。
12.根据权利要求1至3任一所述的方法,其特征在于,所述目标动作为移动动作;所述通过所述AI模型预测得到所述第一虚拟角色在预测帧执行的目标动作,包括:
通过所述AI模型,预测得到第一移动动作;
在所述第一虚拟角色已执行所述第一移动动作的时长达到时长阈值的情况下,将所述第一移动动作确定为所述第一虚拟角色在所述预测帧执行的目标动作;
在所述第一虚拟角色已执行第二移动动作的时长达到所述时长阈值的情况下,将所述第一移动动作确定为所述第一虚拟角色在所述预测帧执行的目标动作,所述第二移动动作与所述第一移动动作的移动方向相反;
在所述第一虚拟角色已执行所述第一移动动作的时长未达到所述时长阈值的情况下,将所述第一移动动作确定为所述第一虚拟角色在所述预测帧执行的目标动作;
在所述第一虚拟角色已执行第二移动动作的时长未达到所述时长阈值的情况下,将所述第二移动动作确定为所述第一虚拟角色在所述预测帧执行的目标动作。
13.一种用于控制虚拟角色的AI模型的训练装置,其特征在于,所述装置包括:
获取模块,用于获取第一虚拟角色在目标帧时对应的个性化对战信息,以及第二虚拟角色在所述目标帧时对应的包围框信息;所述第一虚拟角色是基于所述AI模型控制的虚拟角色,所述个性化对战信息与所述第一虚拟角色的角色类型相关,所述第二虚拟角色是与所述第一虚拟角色展开对抗的虚拟角色,所述包围框信息是与所述第二虚拟角色的攻击部位和/或受击部位的外接包围框有关的信息,和/或,所述包围框信息是与所述第二虚拟角色召唤或释放的第二附加对象有关的信息;
编码模块,用于至少基于所述个性化对战信息编码得到所述第一虚拟角色的第一特征向量表示;以及,至少基于所述包围框信息编码得到所述第二虚拟角色的第二特征向量表示;
输入模块,用于将所述第一特征向量表示和所述第二特征向量表示输入所述AI模型;
预测模块,用于通过所述AI模型预测得到所述第一虚拟角色在预测帧执行的目标动作;
执行模块,用于控制所述第一虚拟角色在所述预测帧执行所述目标动作,所述预测帧为第j帧,j为大于1的正整数;
更新模块,用于获取所述目标动作执行完毕后的第j帧的对局状态信息;基于所述第j帧的对局状态信息和第j-1帧的对局状态信息,确定对所述第一虚拟角色的奖惩内容;根据所述奖惩内容,更新所述AI模型的模型参数。
14.一种计算机设备,其特征在于,所述计算机设备包括:处理器和存储器,所述存储器存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至12任一所述的用于控制虚拟角色的人工智能AI模型的训练方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求1至12任一所述的用于控制虚拟角色的人工智能AI模型的训练方法。
16.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中,所述计算机指令由处理器加载并执行以实现如权利要求1至12任一所述的用于控制虚拟角色的人工智能AI模型的训练方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210812613.XA CN116999852B (zh) | 2022-07-11 | 2022-07-11 | 用于控制虚拟角色的ai模型的训练方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210812613.XA CN116999852B (zh) | 2022-07-11 | 2022-07-11 | 用于控制虚拟角色的ai模型的训练方法、装置及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116999852A CN116999852A (zh) | 2023-11-07 |
CN116999852B true CN116999852B (zh) | 2024-08-13 |
Family
ID=88564186
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210812613.XA Active CN116999852B (zh) | 2022-07-11 | 2022-07-11 | 用于控制虚拟角色的ai模型的训练方法、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116999852B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111291718A (zh) * | 2020-02-28 | 2020-06-16 | 上海商汤智能科技有限公司 | 行为预测方法及装置、步态识别方法及装置 |
CN113435564A (zh) * | 2021-05-25 | 2021-09-24 | 北京理工大学 | 一种基于强化学习的增强现实多智能体协作对抗实现方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022028113A (ja) * | 2020-07-31 | 2022-02-16 | 株式会社三洋物産 | 遊技機 |
CN113952723A (zh) * | 2021-10-29 | 2022-01-21 | 北京市商汤科技开发有限公司 | 一种游戏中的交互方法、装置、计算机设备及存储介质 |
CN113996063A (zh) * | 2021-10-29 | 2022-02-01 | 北京市商汤科技开发有限公司 | 游戏中虚拟角色的控制方法、装置及计算机设备 |
-
2022
- 2022-07-11 CN CN202210812613.XA patent/CN116999852B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111291718A (zh) * | 2020-02-28 | 2020-06-16 | 上海商汤智能科技有限公司 | 行为预测方法及装置、步态识别方法及装置 |
CN113435564A (zh) * | 2021-05-25 | 2021-09-24 | 北京理工大学 | 一种基于强化学习的增强现实多智能体协作对抗实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116999852A (zh) | 2023-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111013142B (zh) | 互动效果显示方法、装置、计算机设备及存储介质 | |
CN111589140B (zh) | 虚拟对象的控制方法、装置、终端及存储介质 | |
CN112843679B (zh) | 虚拟对象的技能释放方法、装置、设备及介质 | |
CN111672104B (zh) | 虚拟场景的显示方法、装置、终端及存储介质 | |
CN112221140B (zh) | 虚拟对象的动作确定模型训练方法、装置、设备及介质 | |
CN114339368A (zh) | 赛事直播的显示方法、装置、设备及存储介质 | |
CN112221152A (zh) | 人工智能ai模型的训练方法、装置、设备及介质 | |
CN112569607B (zh) | 预购道具的显示方法、装置、设备及介质 | |
CN111921200B (zh) | 虚拟对象的控制方法、装置、电子设备及存储介质 | |
CN113101656B (zh) | 虚拟对象的控制方法、装置、终端及存储介质 | |
CN113559495B (zh) | 虚拟对象释放技能的方法、装置、设备及存储介质 | |
CN112402971B (zh) | 虚拟对象控制方法、装置、计算机设备及存储介质 | |
CN112755517B (zh) | 虚拟对象控制方法、装置、终端及存储介质 | |
CN111672101B (zh) | 虚拟场景中的虚拟道具获取方法、装置、设备及存储介质 | |
US20230271087A1 (en) | Method and apparatus for controlling virtual character, device, and storage medium | |
CN113018862A (zh) | 虚拟对象的控制方法、装置、电子设备及存储介质 | |
CN116999852B (zh) | 用于控制虚拟角色的ai模型的训练方法、装置及介质 | |
CN114042315B (zh) | 基于虚拟场景的图形显示方法、装置、设备以及介质 | |
CN112076468B (zh) | 虚拟环境画面的显示方法、装置、设备及存储介质 | |
CN116650963A (zh) | 游戏信息显示方法、装置、计算机设备和存储介质 | |
CN116883561B (zh) | 动画生成方法、动作控制器的训练方法、装置及设备 | |
CN113786606B (zh) | 基于虚拟组织间对抗的信息显示方法、装置、设备及介质 | |
CN113633982B (zh) | 虚拟道具的显示方法、装置、终端及存储介质 | |
CN118846520A (zh) | 基于虚拟世界的交互方法、装置、设备及计算机可读存储介质 | |
CN116850594A (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: 40100491 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |