AI在《杀手》中的运作方式(2016)

由IO Interactive在2016年发布的《 杀手》将专营权重新定位:创建丰富有趣的场景,在这种场景中,Agent 47必须以即兴和不切实际的方式消除目标。 为了解决这个问题,游戏内部使用了许多AI系统,我们将对其进行精确研究。 我们将更深入地研究负责最新一代杀手游戏的各种功能的AI系统的结构:响应情况的NPC的创建,保镖,人群系统,人工智能控制的动画等等。


关于杀手


杀手曼 》中的玩家的任务是杀死残酷无原则的人物,没有人会特别后悔。 但是在每种情况下,含义都更多地在于玩家可以自己创造的独特故事中,从而以复杂或有趣的方式破坏了目标。 《杀手》充满了使玩家能够试验,即兴创作并响应周围大画面变化的系统。 伪装成调酒师,喝酒毒死受害者,假装成男按摩师,摔断脖子,扮演瘟疫医生吓the目标,甚至通过打鼓获得录音团队的信任。 该游戏为用户提供了一系列有趣的,通常是经过预先协商的渗透方法,或者在更复杂和冗长的场景中向用户隐藏信息。 无论您是走在巴黎时装周的时装秀上,还是在马拉喀什的政变中行动,您的目标始终是在人口稠密,生机勃勃且复杂的场景中,那里有个人护卫和当地执法机构,更不用说平民干扰脚下了。 但是正因为如此,游戏才变得真正有趣:玩家必须与环境融合,伪装自己并操纵周围的世界,距离目标更近一步,对其施加业力报偿,然后逃脱直到周围的世界怀疑特工的存在。


如果正确地进行准备和计划, Hitman将带给您最大的乐趣,为此,您需要大量的AI系统。 在本文中,我们将研究四个关键要素,解释它们的工作原理并帮助创建Hitman游戏玩法:

  • 行为树的情境驱动系统,其中300多个级别的角色可以根据周围发生的事情来决定其未来动作并响应事件,而这些事件通常在玩家手中。
  • 警卫和保镖的响应性和实用性系统,使特工的工作变得复杂,并被分发以保护玩家,使他们难以达到目标。
  • 一个用于控制和模拟人群行为的功能强大的系统,使您可以在人群级别使用多达1000个NPC来响应玩家的动作。
  • 最后,是经过精心调整的动画框架,该框架为所有这些角色提供了最逼真的外观和行为。

我将解释所有这些系统的工作原理,并讨论在2016年游戏和2018年续集中使用的更精细的设置。 但是,在开始讨论任何游戏的AI之前,您需要查看AI工具链的来源,并研究其设计的基本原理。 因此,我们将从杀手赦免开始。

Hitman Absolution》于2012年发布,对特许经营公式进行了更流畅,更线性的解释。 尽管与较新的游戏相比,它的受欢迎程度相对较低,但它已成为2016年和2018年游戏中使用的基本技术和工具的基础。 造成这种情况的最重要原因之一是,Absolution是继2006年《 Hitman:Blood Money》之后的第一款特许经营游戏(在此期间,IO Interactive从事了Kane&Lynch系列以及Mini Ninjas的工作 。因此,为Absolution和更好地反映团队对未来抱负的系统杀手级非玩家角色AI的基本体系结构以及用于人群和动画的系统是为Absolution创建的,并在2016年和2018年的发行版中进行了改进。

基本的AI架构


Hitman AI旨在利用Absolution和后续游戏中可用的不同传球风格。 这意味着该系统允许您使用隐身,伪装并与环境融合(开发人员将其称为“社会隐身”),或者选择更具攻击性的方法并用武器摇摇欲坠。

此外,它还应使NPC过上正常的生活,有时甚至拥有完善的行为程序:他们提供酒水,化妆,护卫入口,准备食物,即做适合周围环境的事情。 这些过程必须是可预测的和可靠的,因为在隐形游戏中,玩家必须依靠这种可预测性。 同时,当AI发现玩家可以操纵世界的众多物品之一时,它必须能够打断他们。 例如,当玩家关闭引擎,或阻塞水槽中的排水管,或突破油箱,或打开视频时。 根据交互类型的不同,它会立即吸引角色,因为它会干扰他们的动作,或者稍后更改其动作顺序,以便玩家可以使用它。 对于某些允许您将目标引诱到正确位置的特定操作,这很有用。 玩家不想等待20分钟的结果,但是角色的即时反应似乎太不自然了。


《 Hitman基础知识AI》使用行为树-现代游戏中最常见的AI行为管理格式之一。 在行为树中,建立了一个自上而下的结构,该结构确定角色对各种条件的反应。 行为是根据周围环境的特定条件选择的,并导致对玩家和其他游戏系统的行为做出反应的行为或行为链。

但是在举止决定之前,每个角色都必须找出周围世界发生的事情。 为此,世界上每个活跃的AI角色都有一个知识库。 知识库由两套数据组成:常识,即有关对象或角色的公开信息,以及反映其状况的信息。 但是,还有一个私人知识,那就是角色保留了有关对象或角色的最后已知位置。 他还保留有关特定主题的知识历史。 因此,角色开始注意到附近的事物消失或移动。 同样,他不会尝试寻找消失或死亡的角色,也不会与他们互动。


通过收集游戏世界中某个特定点当前正在发生的所有信息,并随后使用传感器和服务进行过滤,来积累知识库。 传感器允许角色更新其个人数据并响应他们注意到的变化,以及听到附近发生的事情。 服务更新了公共知识库。 三种最常见的服务是“伪装”(Disguise),“尸体”(Deadbody)(尸体)和“杀手”(Hitman)(杀手)。 当Agent 47更改为服装时,将使用“伪装”服务。 它可以帮助角色知道特工的服装是否应该怀疑他。 尸体服务可帮助附近的角色意识到最近在他们附近发现了尸体。 最后,Hitman服务使您可以共享有关Agent 47的常识,例如,有关玩家是否受到威胁以及他最后一次见面的信息。 传感器的一个有趣功能是,它们提供了上下文知识的好奇平衡,同时又留下了玩家可以探索的空白。 传感器可提供有关世界的直接信息,但它们的动作可能会因挡住范围或分散人物的注意力而中断。 服务不是万能的,仅在某些时间间隔进行更新。 因此,从服务接收的大多数信息很快就会过时,这使得玩家可以根据自己的兴趣来操纵角色。

但是,当AI收到所有这些信息时,它需要对其动作做出决策。 每个AI角色都可以为自己设定一组目标,这些目标可以控制自己的决策。 选择了这些目标之后,他使用行为树来做出有关未来行为的决策。 到目前为止,我还没有对此进行解释,但是稍后我们将介绍该主题。

为了使游戏玩法多样化,该游戏将托管的NPC AI分为两种主要类型:平民和保安员。 这种分离会影响他们的知识库中存储的信息以及他们自己可以选择的目标类型。

让我们从平民开始。 这些角色通常本质上是被动的,但考虑到可疑或令人震惊,它们会注意到最挑衅的行为。 同时,他们可能有目标,例如与玩家对抗或警告后卫,但这不允许他们进行战斗。 巴黎时装秀和曼谷2016年曼谷酒店的水平就是一个很好的例子。 其中,具有不同知识库特征的平民会表现出不同的行为。 客人更加被动,但是他们都对玩家最残酷的行为做出反应,而围绕着特工目标的员工和员工则更有可能对他的滑稽动作做出反应并试图抵消他的行为。

让我们继续前进。 当然,他们是玩家的主要对手,并与他战斗,对最极端的条件做出反应,例如发现尸体或失去知觉的人,以及在开放世界中发现的武器和其他战略物品。 如上所述,2016年, 杀手开始出现AI保镖,积极追随VIP,并在他移动到关卡时保护他。 同时,他们仍然有自由意志,可以独立探索世界。 为了实现这一点,需要一个完全不同的系统,稍后我们将讨论它。

因此,在接收到所有这些信息并激活了目标之后,该游戏构建了一个行为树系统,该行为树允许角色根据以下两个选项之一进行操作:要么自己执行行为,要么加入由组协调行为的“情境”。 行为是一种或多种动作,例如,转向玩家,与他互动或交谈,移至世界位置,切换到战斗模式或与玩家操纵的对象互动。 在玩游戏时,您会注意到在玩家以某种方式操纵世界之后,许多目标都达到了设定的行为。 发生这种情况是因为它对应于在某些情况下目标必须实现的设定目标。 也就是说,他们故意将自己置于危险位置,以便玩家可以杀死他们。


同时,当世界上发生的事件具有更广泛的影响时,通常会出现这种情况,例如,当角色发现尸体,玩家被攻陷或目标意识到自己正在寻找并试图逃脱时。 在这种情况下,角色会意识到周围发生的事情,并参与进来。 情况决定了每个人的行动,他们都在表演中发挥了作用。 例如,在玩家在时装表演中开火的情况下,客人和工作人员经常试图逃跑并寻求帮助,保安人员开始追捕该玩家并开火。

行为树系统最早出现在Absolution中,并在2016年和2018年发布了游戏后得到了极大的改进和补充。 它使用详细级别(LOD)系统。 这意味着,在该级别上,有300多个由行为树控制的活动AI角色时,距离玩家较远的角色更新它们的行为的频率就会降低,并且将用于更新AI的CPU资源的优先级分配给最接近的角色。 此外,对于这些遥远的AI角色,动画将被简化或完全禁用。 如上所述,该级别上的绝大多数角色是由人群AI系统控制的,但如有必要,人群中的每个角色都可以被赋予行为树AI,从而提高了其对响应和协调角色的能力。

人群


现在,在继续介绍为2016年游戏设计的系统之前,让我们看一下为Absolution创建的第二个基本系统:人群人工智能框架。 在“绝对解决方案”中,他可以在一个人群中支持多达1200名特工,并且可以同时看到500名特工。 我还没有说过,但是人群系统很难正确实现。 人群通常包括大量的AI虚拟人,在他们的头脑中无法与普通的AI人物相提并论。 这主要是因为它们太多了,但通常也很合逻辑-人群中的人只是听从人群的直觉,朝着自己的目标朝太空前进。 但是, Hitman开发人员将模糊人群与AI树行为之间的界限作为自己的任务。


角色被作为一个人放置在人群中,能够行走,停止和识别空间中的物体。 还有一些小组,设计师可以对其进行更多控制。 当有几个角色必须在人群中执行的特定动作(例如,注视某个点并同时形成某种形状(例如大人物或构型))时,分组非常有用。 每个个性角色都实现了类似于简单有限状态机的系统,该系统仅具有三个基本行为状态:空闲,行走和“等待行走”。 后一种状态在角色要移动的情况下很有用,但不允许他在人群中移动。 如果角色被困在人群中,那么他们将决定最佳运动方向,并等待机会,使他们能够再次回到行走状态。 实际上,一切都比我描述的要复杂,因为在移动角色的过程中需要调整其速度。 因此,每个角色都可以设置用于维持人群流动的首选和最大速度。 当人们开始随机奔跑时,这种系统在出现紧急情况时更加有用。


在人群控制系统中拥有如此多人员的真正危险之一是,他们会询问某种方式以找到一种方法,或者只是检查以查看他们是否可以到达所需的位置。 导航网格物体是3D游戏中通常用于在环境中移动角色的系统。 IO公司意识到这是一个关键时刻,因此覆盖了2D决策网格,通知AI角色是否可以穿越给定的空间,是否应避免(如果这是一个保护区),NPC的出口以及如果特工47引起恐慌,则禁止进入该区域-如果人们在他旁边平静地奔跑,那将很奇怪。 人群和行为树的人工智能具有决策网格。 对于行为树,网格提供了一种快速有效的方法来执行可见性检查,搜索重要点附近的合适位置并找到相对于给定角色的战术位置,而不会在铰链本身上施加过度的压力。

但是最困难的部分是在将Agent 47添加到系统后开始的,人群四处走动并开展业务,但是当玩家开始造成严重破坏时,AI系统应该能够做出响应。 玩家附近的角色看起来应该惊慌并设法逃脱,但这将对整个人群产生累积影响-一旦附近的每个角色都远离警报源,它将开始在空间中移动。 这个问题通过两个系统来解决,分别称为行为区和恐慌流。


首先,世界上任何可能影响人群的行动都会在环境中形成一个或多个行为区域。 行为区域发送一个相对于事件源具有一定半径和角度的脉冲,该脉冲确定与之交互的每个人群AI的反应方式。 例如,当烟火开始发出声音时,则一定半径内的所有角色都会转向一个重要点以查看其爆炸。 同时,如果玩家拔出武器并将其对准无辜的观众,则行为的三个区域将起作用:

  • 第一种导致那些在火线上的人掉落到地板上。
  • 第二个让玩家感到恐慌。
  • 第三,让玩家在一定半径范围内的每个人都了解情况,并进入高度焦虑状态。

当特工用武器在太空中移动时,这些行为区域会继续从玩家身上发出冲动,并使人群中的其他AI角色对他做出反应。行为区域可能会在人群AI中引起很多反应:查看重要点,避开行为区域的来源,对其进行通知,对其进行惊吓或跌倒。如果人群的AI在行为的多个区域之间,则他更喜欢动作,这将最影响他的情绪。而且,根据我的研究,如果玩家吓跑角色,就不可能使角色平静下来,因此只能做得更糟,无法改善这种情况。玩家对人群产生负面影响。

设计师会为每个级别创建这样的行为区域,因为角色需要角色对世界上的事件做出反应,但是在特定的上下文中它们的反应是有意义的。例如,如果在《杀手》中2016年,时装秀的酒吧将展开一场斗争,结果证明这是非常不适当的,人群会做出相当负面的反应。如果玩家在“ 杀手赦免”的iVixen俱乐部中弄得一团糟,那么它不会被当真,因为带状酒吧的气氛很合适,人们在那里的行为就像猪一样。

但是,当玩家造成混乱时,人群希望摆脱困境,并产生恐慌情绪。我在上面提到的决策网格的基础上创建了紧急流程,其中设计人员发布的每个输出使地图的每个单元格使用Dijkstra算法的变体来计算到达该输出的最短路径。这些通往出口的路径是紧急的水流,如果发生危险,人群AI会选择最佳的水流。针对给定空间中的所有出口计算此类流量,从而在“交通拥堵”的情况下允许人群AI动态切换到另一个出口,并解决玩家决定阻塞最近出口的情况。

保镖和贵宾


在为《Hitman 2016》改进了行为树和人群AI的AI系统之后,仍然需要添加另一个重要功能:VIP系统和保镖。杀手的许多重要目标伴随着一个或多个保镖,这给玩家增加了另一个难度。当然,每个级别的设计都使您可以找到绕过它们的方法,通常会迫使它们移动到较弱的位置或穿西装使他们不被察觉。但是要增加这种新的复杂性,必须将完全不同的系统集成到完成的AI框架中。


开发人员需要解决在保镖和VIP之间建立关系的问题。以前,AI角色不了解彼此的存在。人群的AI只知道有某种东西阻止它在世界范围内传播,而行为树AI却不知道其他角色在做什么。如上所述,由于情况系统的原因,他们似乎是在协调和响应世界上的事件,但由于仅使用传感器和服务,因此他们无法有意义地加入其他角色来参与这种情况并且彼此之间无法通信。它们只是让您添加自己的情况,而另一个系统会根据其本地位置和其他条件选择它们。但是在这种情况下,我们需要实现两种类型的AI之间的关系。保镖应始终遵循VIP并检查其状态,如果你有一段时间没见到他了。同时,对游戏系统的许多系统反应都不应由VIP自己处理(毕竟,他最终是老板)-他只是命令保镖来对付它们。

这需要全新的VIP护送和疏散情况,这些情况需要集成到主AI系统中。在这种情况下,情境必须具有确定其工作的非常具体的规则。为了实现它们,IO创建了两种特殊类型的字符。 VIP是一种民用AI,对情况的响应略有不同,包括一种新的命令他人的能力。保镖是一种AI卫兵,其行为有所改动,可以主动监视其当前VIP。

首先,该系统允许您创建一个称为“环境贵宾护送”的情况,在这种情况下,保镖陪同贵宾在水平上。保镖使用nomeshme和寻路系统来保持靠近角色并跟随他。如果VIP决定停止,保镖将转为被动行为,并等待直到他们需要进一步跟从他为止。

但是,这意味着VIP永远不能孤单。自然,可能需要让VIP独自做生意,这有助于玩家完成任务。因此,VIP可以命令保镖不要跟随他到某些地方;关卡设计师在地图上记笔记,告诉保镖他们在哪里等老板。

但这显示了另一个弱点:如果保镖站着不检查老板是否还活着,VIP可能会迷路。这违反了他们的目的。因此,游戏中增加了另一种情况-护送搜索行为。如果游戏得知VIP无法继续在地图上巡逻(由于被阻止,他失去知觉,或者很可能已经死亡),则计时器开始计时。当达到某个值时,就近的警卫会开始检查VIP的最后一个已知位置,如果他找不到该位置,则其他保镖会加入他并分散搜索附近的位置。

如果他们找到了VIP,并且一切正常,那么过程将以通常的方式继续进行。如果VIP死了,则激活主动搜索模式,但是如果发现VIP昏迷,保镖将实施添加到2016年游戏中的最新情况-撤离VIP。


疏散情况已经创建,以便保镖可以将VIP转移到安全位置。当VIP得知自己的生命企图时(从附近发生枪击,爆炸和其他危险信号时)开始。在疏散情况下,最接近的警卫人员围在VIP周围,然后这群人转移到安全室。保险箱是关卡设计师标记为隐藏VIP的好地方。当一群人要移到安全室时,系统会计算其对决策网格的影响空间,选择拥挤最少的路径,以避免在拥挤的人群中造成交通拥堵。精心安排了计算出的路径,以使该组避免陷入困境,因为当多个保镖保护一个VIP时,他们不应该相互积累和碰撞。如果不可能找到安全的房间或通往安全的房间,他们决定最好的逃生路线是保持位置,直到出现新的撤退机会。

尽管如此,要开始撤离,保镖必须排队。为此,他们需要一个建筑物,由一个单独的建筑物系统处理,为每个角色分配自己的位置,并为其添加优先级。然后,另一个系统开始发挥作用,以支持移动速度并尽可能保留团队的建设;出发点是VIP。但是,如果玩家决定继续追击,则保镖可以脱身而停下来接受战斗。

到达安全室后,所有指派的警卫都被分配到该室,并采取防御行为以保护VIP。如果此后有玩家出现并危及该房间,则系统会再次启动疏散过程,此后,NPC将创建一栋建筑物并计算新房间和通往该房间的路径。

动画制作


Hitman人工智能的最后一个重要组成部分是玩家首先看到的动画系统。游戏中的动画对于展示角色做出的决定非常重要。它们在隐形游戏中尤其重要,因为玩家必须了解他们的想法,因为这会影响他的整体策略。

传统上,动画是通过控制器控制的:系统知道,在某些情况下,角色会从被动等待状态变为行走和奔跑状态。为此,程序员和动画师通常需要以这样的方式构建这样的系统:每个角色不仅了解他需要播放的动画,而且了解如何在动画之间进行平滑过渡,以及应付许多需要混合在一起的条件几个动画来达到预期的效果。如果系统工作不正常,则字符看起来不自然且笨拙,但是要正确实现每个字符,需要进行大量工作。当角色可以处于新的独特条件并将新的动画添加到系统中时,任务将变得更加困难。Id Software通过添加到DOOM 2016是一个动画驱动的动画控制器,可最大程度地减少为每个角色创建的动画数量,并允许您计算在当前上下文中管理动画的最佳方法。但是,对于Hitman来说,一个独特的功能是IO Interactive不能同时拥有一千多个复杂的动画控制器。因此,她需要便宜一些的东西,并且在理想情况下,需要预先计算以减少CPU的负担。


因此,IO Interactive决定研究一种名为“运动图”的系统,其中设计师的任务是连接所有动画,而AI的任务是弄清楚如何将所有动画混合在一起。基本思想很简单:在记录所有这些动画之后,我们将强制算法查找其中两个动画彼此足够接近的帧,以便可以将它们用作过渡。这是通过搜索一对帧(每个动画一个)来实现的,它们之间的差异很小。同时,不考虑彼此的最相似帧,而是在考虑持续时间和速度的情况下搜索最不相似的帧。在失配度量选择具有最低值的对之后,它将其添加到可能的过渡图中。运动图完成后,角色可以简单地在游戏中扮演角色,并确定实现所需效果所需的动画顺序。

这就是AI起作用的地方,因为尽管运动图消除了问题的设计部分,但我们仍然需要一个系统来执行必要的动画。因此,从Absolution开始,使用增强的机器学习功能将新的动画控制器集成到一系列游戏中。如果系统知道当前动画,当前方向和速度,则它需要满足必要的方向和速度的条件,并找出需要保留在当前动画中的方向和速度。该系统的第一个版本使用标准贪婪策略的简单变体,但后来开发人员通过将其扩展为基本函数系统(基本函数近似)来研究Q学习和近似函数的可能性,该函数可以在新版本中应用。

杀手2


从Absolution迁移到Hitman 2016 的过程中,改进了基本的AI系统,优化了人群系统,并添加了保镖和VIP系统。在2018年续集《杀手2》的开发过程中,这一过程继续进行

在撰写本文时,细节仍然未知,但是对游戏进行了重大更改,并且每个系统都进行了修订和集成。最显着的变化是对人群系统的进一步优化,该系统现在可以处理2000多个NPC,这充分展示了迈阿密赛道的第二局。


传感器系统也进行了修改:现在,您可以将NPC的可疑外观从您自己身上移开,只需将它们移开即可-您不再需要离开它们的视野。此外,玩家现在可以更好地躲在人群中,并利用植被。反过来,NPC学会了照镜子观看玩家,这使他们的行为更加真实。

哥伦比亚的第三次任务使赌注特别高-它有多达三个目标,每个目标都沿着相当大的巡逻路线前进。玩家需要更大的灵活性,因为如果很明显玩家正在尝试使用目标路线,游戏系统就会中断这些目标路线。

总结


最终,Hitman是我在AI和游戏系列中遇到的最丰富的功能和最复杂的游戏之一。它使用大量精心调整和优化的系统来管理大量的NPC,同时又给计算机带来了很小的负担。它为实时AI角色的大小和规模设定了新的标准,我希望这不是IO Interactive系列中的最后一款游戏。

参考文献


  • Mika Vehkala撰写的“为杀手赦免的生活,呼吸世界创造AI”,2013年GDC欧洲大会。
  • Kasper Fauerby的“杀手中的人群:赦免”,游戏/ AI大会2012
  • MichaelBüttner,“游戏/人工智能大会,2012年”中的“强化游戏中基于角色学习的角色移动:赦免”
  • 杰森·施罗德(Jason Schroder)和托马斯·埃格斯科夫·彼得森(Thomas Egeskov Petersen)撰写的“保镖和VIP:看杀手中的环境,警报和疏散AI行为”nucl.AI会议2016。

Source: https://habr.com/ru/post/zh-CN467301/


All Articles