NPC是游戏中必要的组成部分,相应地,玩家也经常吐槽NPC们像是复读机,只能简单重复固定的对话或演出,在一些极端状况下,NPC演出与剧情不匹配甚至会给人带来割裂感。
(相关资料图)
要改变这种情况,以前需要开发者们投入更多时间、精力,设计更复杂的脚本和更多对话。尽管随着技术发展,这类情况整体来说有所改善,但很难从根源上解决问题,哪怕是前段时间颇受关注的“AI编剧写作工具”,也仅是帮助编剧从AI生成的对话和场景中做出选择,并不能真正赋予NPC自主行动和交流的能力。偶尔,我们也会畅想“当玩家不在的时候,NPC们都会做些什么”,但我们也知道,那是一种艺术上的想象,并非真实。
然而,假如这个构想也能成真,让虚拟角色拥有思考、记忆等等能力,让他们像个活人一样在虚拟世界里生活、工作、社交,又会变成什么样?
不久前,美国斯坦福大学和Google Research的研究者们发表了一篇相关论文,很快引起了关注。按照论文的描述,研究者们在一个类似沙盒游戏的场景中成功构建了一个小镇,小镇里有25个生成式智能体(Generative Agent)。在论文附上的Demo中,智能体们能通过基于ChatGPT 3.5的大型语言模型生成可信的行为,在小镇中模拟人类的生活方式,自主完成基本的日常活动和社交,甚至共同参与了一个情人节派对。
研究者给生成式智能体的定义是:他们能对自己、其他智能体和他们身处的环境进行多样化的推断;他们能制订反映自身特征和经验的日常计划,执行这些计划,作出反应,并在合适的状况下重整计划;在终端用户(在论文中即为研究者与测试者)改变他们的环境或用自然语言下达命令时作出反应。
25位生成式智能体开始了他们的一天
为了方便理解,也更贴近游戏的语境,我们暂时将这些智能体称为NPC。
论文中提及的小镇由几幢功能完备的住房和一些社交场所组成,包括咖啡馆、酒吧、学校、宿舍和房屋。每个建筑内都有相应的可互动物品,比如炉子、水池、衣柜、书桌等。
研究者会赋予每个NPC一个基础人设,他们的日常行为都围绕这个基础人设进行。比如Abigail Chen是一名艺术家,正在为一个动画项目工作,旨在激发低收入人群的创造力。所以,她除了花大量时间进行动画制作外,还会与擅长写作的另一位NPC讨论合作事宜,也会与其他NPC交流如何更有效地推广她的理念。除了基础人设外,这些对话和关系的构建均由NPC自主生成。
终端用户也能用自然语言直接控制小镇中的场景和人物行为。比如,研究者可以设定两位NPC互相爱慕,并要求另一位NPC举办派对。研究者也可以让房屋中的某个用品损坏,观察NPC的反应。
每个NPC对当天的生活都有自己的规划
在论文中,研究者从两个方面对这些NPC的行为进行观察和记录,并对这些行为的合理性作出评估。
第一,评估他们是否能在独自行动时作出可信的行为,比如模拟人类每天早上起床做早饭、洗漱、吃饭,然后换衣服出门的过程。
第二,评估他们能否在一定时间内(研究者取用了小镇中2天的时间)与周围的其他NPC和环境进行合理交互,甚至彼此合作,构建新的关系。比如,洗手间被占用时NPC会在一旁等待,发现水龙头漏水时NPC会尝试维修。在对话当中,NPC应当根据自己被设定的基础人设对答,并且记住在此前的对话、互动中获得过的信息,在行为上具有连贯性。
其中,保证行为的连贯性这一点比较困难。因为NPC并不存在真正的“记忆”,可能会忘记基础人设之外的环境给自己带来的改变。所以,研究者构建了一个“记忆—计划—反思”的框架模型。
准确地搜索和调取记忆流中的数据是件很有技术含量的事
在这个模型中,“记忆”指的是NPC在感知到环境后,会把环境特征记录在记忆流中。在面临新状况时,NPC会对记忆流中的数据进行检索,根据检索到的结果进行推理,再决定如何反馈。
模型中的“计划”是指,NPC会先把当天的大致计划(比如起床、上课、完成作业、睡觉)储存在记忆流中,再把计划分解成各种细化的行为,以便根据实时状况调整计划。
“反思”则是一种更高级的记忆,促使NPC通过已知数据推断,形成更高级的思维。用以反思的数据不仅可以来自当事NPC自己的观察,也可以来自其他NPC的观察。
具体来说就是,首先,研究者需要让NPC确定反思的内容。举个例子,研究者在Demo中用大型语言模型查询记忆流中的100条最新记录,其中包含“Klaus Mueller正在阅读一本关于城市化的书”“Klaus Mueller正在与图书管理员谈论他的研究项目”“ 图书馆的桌子目前没人在用”等数据。
接下来,NPC需要思考根据这些信息能问出哪些比较高级的问题,比如:“Klaus Mueller对什么话题充满热情?” “Klaus Mueller和Maria Lopez之间的关系是什么?”最终,NPC也许会在反思后得出结论,认为Klaus Mueller正在致力于他对城市化的研究。这相当于这名NPC对Klaus Mueller产生了新的认识,今后他们也许会围绕这一认识在与Klaus Mueller的交往中作出反应。
“反思”能让NPC通过已有数据得出一些更高级的结论
总之,这篇论文和Demo用沙盒地图和ChatGPT中的语言模型,构筑了一个看起来像模像样的虚拟小镇以及当中的虚拟居民。虽然居民的活动范围不大,生成的交互类型与事件也比较简单,但人们已经能通过它看到虚拟人物自主生活、自主交往的雏形。在Demo中,NPC们的种种反馈都是由基本的寻路移动和文字形式给出的,效果还比较简陋,但它展示出的可能性显然难以估量。
按照这个逻辑发展下去,我们很难不联想到一些科幻片式的问题,诸如“创造一个全部由AI组成的虚拟世界,成熟后与真实世界对接”“《失控玩家》或者《西部世界》里的游戏世界会不会成真”“这算不算高维生命创造了低维生命”之类的——在此之前,其实已经有许多艺术作品讨论过类似的东西了,也沿着这些思路虚构和想象了一些情节和场景,有喜有忧。一旦这样的想象成为现实,真正的发展方向目前其实还很难轻易判断。
不过,这些应用对游戏开发者和玩家们来说是相当熟悉的。这篇论文展示出的前景可以让未来的开发者们更加智能、更加真实地生成游戏中NPC的行为。假如相关技术再成熟一些,开发者也许就可以像论文中的研究者一样,只需要用自然语言输入一系列设定,NPC们就能自动根据玩家的行为以及玩家对周遭环境的改变作出反馈。
这篇论文发表后得到了大量的关注,也许从侧面上说明了人们对这种活生生摆在眼前的虚拟乐园的赞叹与惊诧。更何况,论文中使用的是ChatGPT 3.5语言模型,随着版本迭代更新,未来还有很大进步空间。至少在游戏领域,人们对更生动、更丰富的虚拟角色的交互始终有着旺盛的需求,甚至可以说有一种浪漫化的、真情实感的憧憬——这篇论文中的实验也许是一个好的开始。
最后附上论文和Demo的具体网址,论文中对如何实现这些功能有相当详细的描述,有兴趣的读者可以进一步自行研究。
关键词: