本文作者:Necromanov
: z+ s& Z+ x* ~. n. n$ ^9 e8 j0 _ 让我们来聊聊一个大舅。啊,不,一只大鹫。3 t! Q6 ]) Z7 F0 U" v/ c& u
这只大鹫,是《最后的守护者(Last Guardian)》的主角,一只巨大的、有着猫的身体和鹰的翅膀的巨兽。它可能是游戏设计历史上,制作最真实的动物。没有之一。
: [9 A1 F# N$ z4 ]3 ~% h$ f虽然名字是大鹫,但它可不是一只鸟。大鹫是猫、狗和一点点鹰的组合:我甚至可以下一个个人的判断,这AI里面六成是狗,四成是猫。不管长得再像也好,名字里有一半是猫也好,大鹫都还是像狗远远多过像猫。# y" v0 V4 b8 P& T/ Y( ~: }) m
因为,猫主子根本不可能那么听话啊!
2 e5 [2 z: V; L$ t1 E( @' [/ C# d
为了在游戏中制作一个真实的动物,他们花了整整十一年
《最后的守护者》中的“宠物”大鹫。图片来源:《最后的守护者》* [4 X2 o% \5 r/ r1 J+ X8 C
和《最终幻想15》一样,大鹫也是一款开发长达十一年、公布迄今足有七年的“雾件”,一款传说级别的游戏。不过,和FF15待遇不同的是,几乎没有任何游戏媒体和玩家事前觉得大鹫会踩到雷——绝不可能。
1 W G( v4 E* @6 a5 Q( H6 Q因为制作人是上田文人。) P5 M* v6 F' Y$ _
反过来说,也几乎没有人和游戏媒体和玩家觉得大鹫会是震动世界人人叫好的商业大作——虽然不是绝不可能,但这可能性也未免太低了一点。
* @2 _8 Q2 t- x5 h7 ?) A: e* o3 y因为制作人是上田文人。
: a C5 M9 m, @& t
为了在游戏中制作一个真实的动物,他们花了整整十一年
《最后的守护者》的制作人上田文人,他也是著名独立游戏ICO和旺达与巨像的制作人。图片来源:vgtime1 W0 m7 l$ _4 m9 X$ X' s
我应该先介绍一下上田文人是谁。他的作品履历很简单:包括大鹫在内,他领导开发的只有三款游戏。前两款游戏是“ICO”(2001)和“旺达与巨像”(2005):这两款游戏对今天的玩家可能已经有些陌生了,但即便拿到现在,它们也是能够象征业界的游戏名作。这两款游戏让上田文人成为了今日整个独立游戏界的精神先驱。
/ M8 C' q- ~7 u6 o$ r# ~时至今日,用抽象的游戏过程表达复杂而细腻的情感已经不再陌生,我们每个人手头都有一打各种方面的独立游戏名作,可以用游戏玩法的语言——而非电影或文字——触及到我们心底最细腻的角落。而第一个依靠游戏内的感情表达获得商业成功,为后来人开拓道路的制作者,就是上田文人。2 A; I# T, Q+ Y5 W8 x3 x# {
为了在游戏中制作一个真实的动物,他们花了整整十一年
《ICO》(左)和《旺达与巨像》(右)。, [3 U% i3 G9 ^: ?
但是,没人能预测到,这款作品居然耗费了整整11年时间和整整7年的开发时间。比FF15所消耗的时间还长,远超我们所知的一切表达感情的独立游戏。而最打动我的,是上田文人接受访谈时的那句话:“我们觉得用一个动物角色会比较快”。开发会比较快。多么吸引人的立意!这无疑就是大鹫的最初设计起点。而大鹫的羽毛和可信的动物AI,最终竟消耗了他们整整10年时间。
8 ?4 j; Z2 v1 s# \ “会比较快”。 X5 [$ D; l, C7 O' S( h
由于游戏的技术难度和画面复杂度,他们遇到了比想象中多得多的问题,游戏发行日期一拖再拖。在我看来,最后的守护者,或者说大鹫这10年来的工作意义在于:他做出了自从有游戏以来最真实的一只宠物,比人们在游戏中做出过的所有猫或狗都更真实——虽然大鹫并不是猫,也不是狗。
, C; b$ \, t' c1 }0 s这个游戏到底为什么要花费11年的时间?这11年里上田他们除了“羽毛太多帧数太低跑不动”之外,还做了些什么事情?那么,首当其冲地,当然要从有史以来最真实的动物AI开始。让我们剥开“人工智能”这四个神秘文字的面纱,来看看他们到底是怎么实现这只大鹫的。1 O. y; \2 K7 `& k0 W7 w1 v
游戏史上最真实的动物AI首先让我们回到“会比较快”的问题。
/ l1 |3 O# q2 o大鹫这个游戏,一切的一切的开始,都从旺达的那匹马作为原点。上田文人和他的团队都认为,在新世代的游戏机上,做一个动物,要比做一个人更加简单,这样开发游戏“会比较快”。
# R; Z/ r/ m* `1 u那么,为什么他们会认为动物的AI(人工智能)开发起来会比较快?这个原因也很简单:对大多数普通的游戏来说,开发一个“宠物”或“动物”及其AI,比制作一个可信的、有移情作用的人类角色要简单得多。我们都在各种游戏里见过不同的“宠物”、“动物”和“怪物”,绝大多数的AI和实现都比同游戏中的“人类角色”要简单很多。
$ u" ~- |" Z+ ~4 s4 E; G8 Q游戏中人类角色的AI,在旺达与巨像的那个时代,已经发展得很复杂了;相对来说,做动物和怪物,乍看之下就显得容易很多:它们不像人类角色那样需要复杂的状态树、环境互动、动作捕捉、唇型和表情拟合,只要铺好一张寻路网,然后再加上几个诸如“跟随”、“战斗”、“飞行”之类的基本行动状态,似乎就可以搞定了。更何况,由于动物们并没有智力,感觉上好像AI蠢一点,玩家们也能容忍。
6 f/ w" z1 I' s! b3 O哎呀,听起来真的是个好点子!如果连旺达与巨像里那匹马跌下悬崖都能让玩家们泪流满面,那我们做个用猫、狗之类更受欢迎的动物为原形的游戏,一定能实现得更快,比做人类角色更省,更快!——在上田和他的伙伴们决定开发大鹫时,一定是这么想的。然后,他们发觉:制作一条真实的狗,和制作一条跟着玩家屁股或者追着玩家乱咬的狗,是完全不同的两个问题。& E% X& s3 @4 t& F, F- G+ W/ p
为了在游戏中制作一个真实的动物,他们花了整整十一年
大鹫的真实之处,在于它的AI和真实宠物的表现十分相似。图片来源:《最后的守护者》
& \/ @8 O+ a: Q6 B5 l4 [如今,我们看到的、历时11年风雨的大鹫,就是这个问题的答案。它虽然也是基于我们熟悉的这套“状态机”或“行为树”的人工智能开发,但上田们最终选择的细节方案,和用来表现“人类角色”的主流做法完全不同。可以断言,这个最终版本的大鹫,其实是无数次返工、推敲、重写、设计后的结晶。我们看不到那无数个被删除的中间版本,但他们最终使用的这个版本的大鹫,还是非常有趣的。
9 c) Y. f( q# U. h; r' @可能令你们失望的是,直到今天,游戏设计师们也几乎没有在游戏设计中实际使用过当代人工智能理论中那些高大上的神经网络、遗传算法或深度学习之类的高级东西——你们可能在AlphaGo之类的理论文章里看到过这些高大上的名字,也可能在《西部世界》中见过对未来游戏中人工智能的畅想,但我个人是不知道哪个游戏实际投入过这些东西用来构成非玩家角色(NPC)的人工智能,游戏开发者们目前也还基本不知道在怎样的游戏中可以利用人工智能制作出令人惊喜的内容来。4 ^3 m# _: }5 ~
我在这里就不再费事介绍目前使用较多的状态机(State Machine)或行为树(Behavior Tree)的技术细节,如果各位感兴趣的话可以自行搜索学习细节。我介绍一下从设计师的角度如何抽象大鹫的行为树实现(以下为我自己的推测,并不一定和实际游戏中的实现手法相符;就我测试的部分而言,这套逻辑应当基本可以实现大鹫的AI)。* H9 M0 J% x9 C ~- _, o/ x7 r1 }/ |& P
大鹫独特的行为树我们先来想象一下游戏世界的“内部形态”。理所当然地,AI不可能像我们一样用肉眼去分辨游戏世界——你们的电脑和主机跑死了也算不出图像识别算法。一张游戏地图,在AI的眼中一般是由寻路层(Navigation Layer,可能有路点、路格、动态寻路算法等各种实现形式)、障碍物(Collisions)和可互动物品(Gameplay Objects)们组成。0 U4 |8 J4 q* \$ K
你可以将寻路层理解为一张“地图”,它告诉人工智能应该怎么行动;障碍物和动态障碍物构成“墙壁”,他们阻止NPC们走到愚蠢的地方去,或者播放愚蠢的BUG动画;而所有的可互动物品则是“路标”。名为AI的“行为树”们,指挥NPC角色们行走在这张“地图”上,躲开各种各样的“障碍物”,根据“路标”执行合法的行动。
; i6 ^) k a* ^) k1 g而具体来说,AI的“状态树”可以描述为“在某状态下”执行“某行为”的一整套规则,例如“在攻击状态下,有可使用的手榴弹时使用手榴弹进行压制”或“当接收到进攻特定目标位置的指令时,移动到距离特定目标位置最近的合法掩体使用重机枪进行压制”之类。这些命令和NPC角色的骨骼动画表、表情、语音等等组件绑定在一起,告知在什么情况下,NPC应该播放什么动画。如果你使用的是Unreal或者Unity之类中间件很多的商业引擎,你可以直接买到从行为树到战术AI在内的各种配置好的插件。
( M: p7 c3 p d% ~4 s; |# {$ t
为了在游戏中制作一个真实的动物,他们花了整整十一年
大鹫的行为树如果实际画出来大概就是这样的东西……各位意会就好,意会。: F! T. k; W/ C; k( e
毫无疑问,大鹫也是基于这样的基础技术组件来实现这可爱的动物的。但上田在其中增加了大量俗称“不听话”的自主行动AI和特殊状态,这让大鹫的行为看起来非常独特,同时也令习惯了传统AI的玩家们大呼“坑死侄子”了。
% }5 q- N- K3 Z6 ]) j想要理解这种独特的行为设计,首先你要意识到大鹫在游戏中的重要性。
9 a% l, p" Y& X" Z4 p& `你在一般冒险游戏中所能做的一切行动,在这个游戏中都非常仰赖于大鹫的AI:他如果不愿意借给你肩膀,你连一个台子都翻不过去。他如果不愿意跳,你就不能上到高处。他如果不愿意垂下尾巴,你就不能下到低处。他如果不能准时到达拯救点用尾巴捞你,你就会摔死。他无法到达战场的话,你没有任何攻击手段。整个游戏至少70%的谜题都仰赖于大鹫的AI——这就是它在叙事中的巨大分量。它相当于一般解谜游戏中的整个道具栏:大鹫就是这么重要。想想看,如果你的性命取决于你家的猫主子能不能抛下尾巴……5 ^6 }- o3 S0 z% d: e+ {+ Z
而大鹫的AI可以分成“无操纵”和“有操纵”前后两个大的部分;而在每个部分之中,大鹫的AI也是逐渐产生状态变换,可以说为了模拟“动物和人的信赖关系”准备了非常复杂的行为树。
3 x) l+ J& M8 a7 `% K1 R比如,一开始大鹫不会吃你给他喂的食物,就算把桶丢在它脸上也不会吃,非要你走开一定距离,然后让大鹫离开你的镜头它才会吃;经过一段时间的主线后,逐渐你不需要拉开那么大距离了,直接丢在它脚下走开两步就会吃;再经过一段时间的主线之后,你直接把桶投给大鹫,它会跳起来表演凌空吃桶。. B$ [1 ^, l; b5 @
这种“用不同动画来表现行为树上的同一个行为”的设计手法令人印象深刻:它将会是大鹫可以给我们留下的设计理念之一。
+ K2 z, c9 u8 S% \+ O听不听话,全看“心情”具体到游戏的序盘,玩家是不能训练大鹫的,大鹫完全依赖自己的AI行动。但它的AI并不是一般游戏中队友或宠物的“跟随”,而更接近于“跟随”和“自主探索”的混合。你从很早就可以开始按下R1呼唤大鹫;但大鹫过不过来,完全看它高兴。
6 W3 N* x1 l2 |* b! h这里大鹫的行为与其说取决于你的呼叫,不如说取决于地图上有哪些大鹫可以与之互动的地图物品:哪里有它可以跳得高台,哪里有能够吸引它注意力打滚的水塘,或者干脆就是哪里风景独好大鹫觉得可以去转一转——由于游戏不含任何开放世界成分,设计师可以很容易地在大鹫进入一个新场景后,给它安排本场景特有的点。如果附近什么点都没有,大鹫就会一直盯着你跟随,间或插入随机性地、在附近合法点之间闲逛的指令。+ R5 I6 r/ u. o2 D0 b$ z: P
而更细致的行为树操作,还包括了玩家所在的位置,以及玩家和大鹫的相对位置:很多地图要推进大鹫的“自主探索”范围,你自己必须先跑一趟,AI才会将那些深处的点加入到探索序列中去。7 \; R' B8 Z6 I, \- L. v" F1 k8 Z1 R
这也是大鹫显得“很不听话”的重要原因:如果你喊叫的地方没有什么互动点,那大鹫一般就是不会过来的。糟糕的是,由于场景设计并不像当代游戏一样有明显的美术指示(美术指示指的是类似神秘海域系列中,可以攀爬的地方特意加上的亮色边缘),很多时候我们很难分辨一个地方到底是不是“可以互动的点”……这就让“大鹫不听话”这个事情显得更加突出。反过来说,这种不听话也让它身上“猫”的成分更多了一些。0 Z- ~6 R0 k* {" S
为了在游戏中制作一个真实的动物,他们花了整整十一年
在游戏初期,就和真实的宠物一样,大鹫也会有些“不听话”。图片来源:《最后的守护者》9 Q! l# D/ {( y& W4 D
可以“训练”的大鹫在游戏中盘,主角和大鹫有了一定感情之后,将会解锁“训练”大鹫的一系列指令——我不说“操纵”,是因为这一整套指令实在没有多少“操纵”大鹫的成分。这一套指令可以分为四个,其中用途明确,一按就灵的大概只有“跳跃”指令(R1+三角)和“执行”指令(R1+圆圈);剩下的方向键、推和不满……我测试再三也没有搞清楚逻辑,推测可能和好感、中断大鹫行为或决定执行有效范围有关。游戏中几乎所有的和大鹫相关的谜题,几乎都只需要使用“跳跃”和“执行”两个指令就可以了。
+ t! Z3 x( ~, \' g h) ? r K在训练指令解锁以后,大鹫相对就不再那么容易出发自主探索,跟随的部分在它的AI比例中多了起来——我推测,这可能是因为一个场景中“无指令则不加入AI行为库”的部分也多了起来。有些点是绝对不会加入行为库的:比如所有需要跳跃才能到达的点,这是我卡关最多的地方,很多时候我跑来跑去就是为了找哪里才是正确的跳跃点。还有些点的问题是,大鹫并不会每次都执行“训练指令”:你按下一次“执行”,经常并不能保证大鹫能找到正确的执行对象,而是需要面对着对象按好几次“执行”、“推拉”和“方向”。
3 V' a( n8 W( x- I& _* C$ y6 x3 }我推测,这里关卡设计师讨了个巧,中期很多点很可能包括一些“暧昧”的范围设计,以及随机的指令失灵(或者说需要“训练学习”,这看你怎么理解这个设计);而失灵点和一次就能听令的点混合出现,让大鹫显得拥有“真实宠物”一般的学习能力。这些设计是如此精细、复杂,我反向测试都很难测试出它们的真实逻辑,我可以想象制作的时候这些内容到底测试、返工了多少次。
9 O8 G# G! E; Z A但反过来换种说法,就是这样的:他们为了体现宠物的真实性,故意设计了经常失灵和不受控制的AI。
! F* |" C' `+ b: R1 O; J0 q如果你不喜欢养猫狗,而且对游戏的机制有所了解,这实在是很难理解的一种做法。很多时候,我很难分辨一个谜题到底是他们设计出来需要我有一个“AI的学习过程”,还是纯粹我找错了方向?有些时候,场景面临三岔路口,其中某一岔需要前提条件,这就让这个迷惑更深了:我非要等到旁白冷静地说出“提示”,才会意识到并不是我没有给大鹫下够命令。当然,对喜爱猫狗的人来说,这都不是问题——现实世界中几乎没有能这样训练好的猫狗。+ o% d/ l1 s+ K1 ?( Q F# @# U4 k
为了在游戏中制作一个真实的动物,他们花了整整十一年
正是这份真实性,让多少玩家潸然泪下……图片来源:《最后的守护者》( R$ [8 m7 z8 L& m
当然,这个游戏除了真实的动物AI之外,还有一些设计会让我们觉得游戏不再那么“超凡脱俗”了。比如动画树整体的“迟钝”、没有“跳跃保护”的设计和无辅助线投掷对游戏进程的割裂。大鹫里的这些操作设计,仍旧令我不适,感到有些设计手法并没有为游戏的目标增添光彩——幸好大鹫本身的设计成就足以令人惊叹,哪怕有这么多问题在,它的光彩也仍然足够夺目。' o, k+ @1 ^! a$ K
那个大鹫,它真的好像一条狗啊那么,这么真实的大鹫AI设计,对未来的游戏有用吗?7 f9 G/ z- d- a' @' h- b6 E
坦白说,我不知道。市场可能也不知道:除去我们这些上田文人的信徒大量预购了游戏外,大鹫的销量看起来并不理想,可能还不如ICO和旺达与巨像。除去上田信徒的我们外,这款游戏无论是在西方还是在日本,都只爬到了排行榜中游的位置。 g9 D: R7 W: ]) Q
但至少大鹫是整个游戏设计史上曾经创造出来的、最接近真实的动物。5 t" O# }9 `# ]0 r6 I) F! f; I
为了在游戏中制作一个真实的动物,他们花了整整十一年
大鹫确实在这个世界的某个地方真实存在——在且仅在“最后的守护者”的世界里。图片来源:《最后的守护者》
0 A6 s# f, X+ U, J虽然,我也想不出这么真实的动物,能够在其他任何门类的游戏中得到任何实际用途的可能性。不,哪怕养猫或狗的游戏也不需要一只大鹫:这些游戏的受众玩家需要的是云养猫或者云养狗,他们恐怕也不会喜欢一只这么真实的动物。
! \# G+ w. m- [5 P5 M正如上田文人所说,大鹫确实在这个世界的某个地方真实存在——在且仅在“最后的守护者”的世界里。虽然它可能卖不好,而且难以上手、难以操作,而且不知道对其他游戏的设计有什么用。2 Y) ~+ y" X! x+ ^2 c
但你看那个大鹫,它真的好像一条狗啊。南通0 |