《快打旋风6》的“实时旁述”是怎么办到的?卡普空亲自解释背后功夫
游戏开发者会议“CEDEC 2023”已在 2023 年 8 月 23 日举办。在首日的讲座上,由卡
普空的薮下刚史、岩本卓也,以及 Andrew Alfonso 带来《快打旋风6》新增的功能“实
时旁述”的背后运作逻辑。
如果玩家开启“实时旁述”功能,就能够在对战中听到主播赛评针对游戏的现况进行实况
讲解。这个功能其实有 3 大目标。一是传达目前的赛况、二是精确传达比赛关键点、三
则是让玩家体验到真实比赛的紧张感。
为了要让“实时旁述”可以成功实现上面 3 大目标,其实背后可以大略概括承三个处理
步骤。从事前开发这套系统时,就要先界定好“什么时候用什么台词”,例如用普通摔的
话,就要对应到“摔了!”等相关台词等。
接着第二个要面对的,就是要让系统去“找出有哪几句台词大致符合现在的游戏战况”,
例如当对战真的出现普通摔时,跟普通摔相关的复数台词就会被系统锁定。
系统最后一个步骤,就是要选择“最符合当下战况的台词,并拨放出来”。例如执行普通
摔指令时,会有“摔了!”、“要摔吗?”、“这边用摔技!”等复数台词被锁定,接着
再辅以由目前战况构成的变量,选择出最适合当前战况的台词。
不仅如此,每个台词都有自己所谓的“条件”。这边同样以“普通摔”来举例。当有玩家
执行“普通摔”指令时就会对应到 4 种状况:摔空、摔到、摔到康,以及被解摔;关于
体力方面的台词条件也是,双方80%、50%、25%、5%血量时都会对应到各种不同的条件。
但其实格斗游戏有着许多战斗技巧以及状况,当然必须要尽可能定义出能含括所有状况的
条件,但这仍有极限。开发团队在用上权力后,游戏发售时约有350种以上的台词条件。
而台词总数对应“与每个条件相关的数量”,为了避免相同的台词不断重复出现让玩家听
腻,基本上会针对每个条件准备专属的台词,特别是在重要场景或常发生的状况时,会设
定较多的台词。
最后画龙点睛的就是旁述员的情绪了。包括“双方体力差距”、“体力剩余量”、“剩余
时间”、“现在第几局”等都代表着一套变量,系统会根据目前的战况在背后进行变量计
算,得出这个时候的旁述员是应该比较冷静的播报、还是情绪高昂的播报。
在系统层面上也有问题需要解决。第一是开发团队在初期无法在确保游戏60FPS的同时、
还能处理超过4000条以上的台词;第二是必须解决当游戏“回溯”时的解决方案,因为如
果游戏回溯的话,哪么实况台词就有可能跟回溯后的战况不同。
那么该如何解决这两个问题呢?开发团队决定不让旁述系统即时抓取当前frame数、而是
抓取约当前frame数0.3秒前的frame数来做决定。这样的好处可以减低系统处理的负担,
同时因为0.3秒前的frame数已经是比可能发生回溯frame数还要更之前的,所以自然也不
用担心发生回溯时播报台词对不上的状况。
至于台词总是与各条件这么多,到底该怎么样进行调整呢?答案就是投入大量的人力去进
行除错。虽然也是有运用一些工具来让工作更有效率,但花费的时间依旧非常可观。
虽然大部分玩家通常会将这个功能关闭(包括笔者),但是在了解卡普空在这套新系统背
后投入的努力后,下次不妨开启“实时旁述”打个几场、体验自己被实况播报的感觉吧!
https://www.toy-people.com/?p=83045