不怎么玩足球类游戏,只能说一点点技术层面的内容,而且主要来自搬运。
先不负责任地甩链接。一个是顽皮狗引擎工程师Jason Gregory关于TLOU对话系统的GDC演讲,另一个是V社的许多游戏都使用的对话抓取系统的简介,后者技术积累比较久,影响也比较深。如果能看这两个,就完全可以忽略我后面的内容了。
足球游戏的实时解说和上面例子中的对话抓取是同样的逻辑,其实就是一套AI系统,检测条件,触发行为。一般简单的AI逻辑会使用行为树来判断,而上面链接里这套系统里面介绍的方法可以称为条件数据库。
行为树的核心是一套从上到下的控制系统。复杂的行为树AI会分为多个层级,保证每一个层级大致上足够简单易于维护,也比较符合直观理解。如果我没搞错的话,史上最好的同伴AI之一伊丽莎白应该出自几组行为树AI的协同控制。伊丽莎白=别跑太远+站在玩家要去的地方/躲在玩家看不见的地方+在场景里找点东西玩+带点情绪说说话。
而条件数据库的核心是一套自下而上的内容产生机制。大体来说,程序员将数据库工具开放给设计师,设计师可以自行地定义条件,以及满足条件的行为。这样设计师可以不需要考虑到上层控制的部分,只要想到,在怎样的的条件下系统应该有怎样的行为就可以了,通俗点说就是一个鼓励设计师拍脑门的编辑工具,想要什么都可以有,而且加的时候也不用顾及其他。而执行的时候还是满足条件就触发,没有哪里比行为树更优秀,只是更加适应大型公司专门分工的开发流程而已,而且用来控制语音可能会好过控制实际行为,因为语音的打断规则比动作的打断规则容易编辑得多,人们对于错误的容忍程度也更高。
行为树从一开始设计的时候就需要知道自己受哪些条件控制,而条件数据库允许设计师自由添加任何自己觉得合适的内容到游戏里,条件的数量会大幅增加,而且其中很多条件的判断的效率是很低的,可能更最终只影响一两个玩家玩遍整个游戏就不会见到的行为,很容易造成效率低下。所以底层也需要一些比较细致的优化处理,比如说降低某些条件的检测频率,一开始就尽可能排除不必要的条件等等。为了高效的批量处理,条件数据库里面检测的大量内容都是0和1,权重值也比较少用。还有就是,条件数据库缺少行为树一样的宏观控制的视野,所以想加行为很容易,但是想协调不同行为的关系就不那么容易。
不过分工明确,便于拓展,适合开脑洞和藏彩蛋是这套系统非常明显的优势。假如一个边后卫后场抢断带球晃过全场,解说员会发出怎样的赞叹,或者一名球员在赛季里连续受伤多少次,解说员会如何惋惜,关于球员或者球队之间的恩怨局的特别解说,都可以自由地添加。系统涌现的情况被提前定义并经过精心的处理,造成经过设计的惊喜,对于很多游戏而言依然是必要的。
此外再补充一些小的注意事项。
- 台词之间的接续和打断规则很多时候需要提前定义,比如我们不希望进球的时候解说员还在点评当前带球的球员能力。
- 为了过于重复,一般需要为常见的情况多准备一些台词Shuffle一下,这样每一次的内容会不一样。
- 多人游戏中哪些台词需要说给哪些人听到也需要做分别的处理,比如击杀地方之后的嘲讽台词一般只让玩家自己听到,但是有人放大招的时候敌我双方的玩家都可以听到。
至于@二叔 说的这种自己吐槽自己的对话,目前的系统应该是不支持的,完全是录制的时候自己准备好的了。至于未来AI能为我们带来什么,大多数游戏开发者和普通人一样茫然。
PES2017/实况足球2017 中的实况解说是怎样的原理?
0 条评论