游戏开发者会议 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数还要更之前的,所以自然也不用担心发生回溯时播报台词对不上的状况。

至于台词总是与各条件这么多,到底该怎么样进行调整呢? 答案就是投入大量的人力去进行调试。 虽然也是有运用一些工具来让工作更有效率,但花费的时间依旧非常可观。
虽然大部分玩家通常会将这个功能关闭(包括笔者),但是在了解卡普空在这套新系统背后投入的努力后,下次不妨开启「实时旁述」打个几场、体验自己被实况播报的感觉吧!