本文首发于微信公众号:新智元。文章内容属作者个人观点,不代表和讯网立场。投资者据此操作,风险请自担。
当我们谈论游戏里的人工智能时,我们脑海里的图像通常是更聪明或更接近现实的敌人,而不是那些没头没脑的自动装置。一项新的研究表明,使用神经网络的 AI 可以实时地在复杂的游戏环境中非常逼真地改变代表玩家的游戏角色的行动。
爱丁堡大学 Daniel Holden,Taku Komura 和 Method Studios 的 Jun Saito 三位研究者提出“用于角色控制的 Phase-/span
“我们先用动画数据建一个大型数据库,”他说,“然后我们利用机器学习做一个系统,可以把用户的输入直接映射到角色动画。因此,不需要存储所有数据并选择播放哪个动画片段,我们的系统实际上得到用户的输入后,能实时地生成动画。”
该研究的论文以及相应的视频发布在 The Orange Duck 网站上,视频非常直观地展示了这种新方法的厉害之处。从视频中可以看到,一个戴三角帽的游戏角色在非常复杂的地形中自由穿行,动作非常自然流畅。
这个 demo 最令人印象深刻的是在大约2分27秒处,当角色在岩石地形上穿行时,就像画外音说的那样,他“攀登,维持平衡,在必要时跳跃”。你可以看到,角色走动时非常真实地摆动着手臂,根据运动方向和特定的环境细节的需要弯曲膝盖和改变腿部角度之前,他会放低手以保持平衡。当接近墙壁时,角色会很自然地慢慢停下来,而不是在全速奔跑中突然停下。
基于环境的这些小变化确实使得动画相比通常的预先录制的动作捕捉好很多。角色在下屈时会甩出一只手以保持稳定,或在要爬上比较高的岩石时左腿更加使劲。在短短一分钟的演示中,你会看到非常多这样的逼真的小动作。
学习如何移动
为了做这个demo,Holden 和他的同事们花了两小时捕获到1.5GB的动作捕捉数据。然后,神经网络用这些数据自主训练了约30小时。大体上,网络学会了如何将这些具体的动作捕捉动画重新组合,并应用于在游戏环境中生成。
Holden 解释说:“神经网络的权重表示构成一个姿势的不同组成部分,玩家的输入则产生类似这些组成部分的加权和一样的东西。”
这样,角色能做出的动作比直接事前录制的范围要大得多。举个例子,跳下岩架的这个动作,传统的动画系统可能只会加载一个标准的“跳下岩架”的动画文档,然后就完成了动作。但神经网络是通过组合从原始的动作捕捉中发现的类似情况的数据,以此推断身体的各个部位该如何动作。
Holden 解释说,以神经网络的形式存储的数据,1.5GB的训练数据最终只需要几十兆的存储空间。“动画的数据被压缩成神经网络的权重,如果数据库中的每个姿势都能由几个部件(称为基础)的加权和组成,那么神经网络就能学习,而且大大压缩了数据大小。”
优势与不足
虽然其他的动画处理方法可以将不同的动作捕捉“场景”混合到新的情况的组合动画中,但是这些方法往往需要在本地存储大量数据,这会减慢系统的速度。最近的一些研究,其他基于神经网络的动画模型如果没有在混合过程中恰到好处地添加一个周期性的“相位”(phase),产生的动作看起来就很粗糙,或者不自然。
Holden 说,利用神经网络来修改动作捕获的动画可能会得到一些意想不到的结果。例如,角色在崎岖的地形行走时会采取爬的姿势,而研究人员并没有为此提供任何相应的动作捕捉数据。Holden 说,系统结合在平坦地形时蹲伏的动作,以及在崎岖地形中行走或奔跑的动作,自己学会了如何处理这种情况。
但 Holden 说,这些在不平坦的地面爬着走的动画“并不像其他结果那么好”,虽然“它们大多数情况下可以接受。”虽然这个系统“在某些方面可能比我们预想的还要学得好,”但这样的神经网络仍然有局限。例如,假如地形太过陡峭,动画就会彻底崩溃,“除非你给它数据,基本上你自己也不能保证这些数据有效。”
用 AI 来处理角色动作动画确实有很多好处,但 Holden 也承认这样的方法有缺陷。首先,在动作捕捉后不得不需要30小时的训练时间是一大缺点,尤其是你事后会想补录一些动作。动作设计的艺术家也无法直接对神经网络的输出进行修改,而在传统的事前录制方法中是可以的。此外,虽然神经网络的决策速度很快(约1毫秒),但处理时间相比简单地运行一个事前录制的动作还是慢(但 Holden 认为将来可以找到提升速度的方法)。
这项研究也让我们不禁猜想,在不久的将来神经网络可能为游戏开发的其他方面带来革新。