CEDEC | 卡普空:录制4000句台词,《街霸6》实时语音解说如何做的
【GameLook专稿,未经授权不得转载!】
GameLook报道/“动作天尊”卡普空最新推出的《街霸6》发售创下了发售三日销量破百万的记录,将格斗游戏这个有些沉寂的小众品类再度带回了公众视野中。本作最为引人注目的是为适应格斗游戏新人做出的一系列改进,包括简化搓招系统、加入大世界探索元素等。
在这一系列新功能中,一项名为“实况解说”功能引起了GameLook的注意。卡普空邀请到了多名现实中活跃的格斗游戏赛事解说员,通过智能识别对局的实际战况,给玩家做出实时的点评和解说。
智能解说的功能并非《街霸6》的首创,在FIFA、NBA 2K等体育类游戏中早已有之。但将其应用在格斗游戏中,且拥有较高的完成度,这在GameLook印象中并不多见。
但细想之下,实时解说的功能并不仅能应用到特定的游戏品类,尤其是在在全民电竞化的如今,这项功能的应用潜力可以被进一步拓宽。例如,游戏直播和视频二创内容在如今的营销裂变中扮演了重要的地位。而实时解说功能可以帮助提升直播可看度,进而推高二次曝光的人气。
又例如,《王者荣耀》、《金铲铲之战》等一些重度品类的PVP游戏中历来有着较长的学习期,新人玩家往往依赖“老带新”来度过迷茫的新手期。玩家未必总能找到愿意带路的老玩家,而一个优秀的解说功能正好可以占据这一空档期,帮助新人在对局中获得反馈,迅速建立对游戏的体系化认知。
可以说,只要有PVP的游戏就可以尝试引入实况解说的功能。而对于国产游戏,是实时语音解说仍是一片尚待采用的新领域。
在今年的日本游戏开发者大会CEDEC上,来自《街霸6》项目组的多名主创成员登台向我们讲解了《街霸6》中自动语音解说系统的开发历程,涵盖了从理念到技术的各个要点。据游戏制作人薮下剛史分享,该系统的开发不易,项目组共录制了4000条语音,设置了350个触发条件来确保实时播报的准确度。最终,这个项目也受到了来自玩家的正面反馈。
GameLook编译了演讲的全部内容:
薮下剛史:之所以引入解说功能,是为给大众用户提供一个了解格斗游戏乐趣的立足点。
“看起来很难,上手也很困难;很难看懂屏幕上发生了什么;不明白对战的要点和技巧;看起来十分困难;完全没法靠运气取胜……”格斗游戏往往给人这样的印象。但作为格斗游戏玩家来说,我认为就太浪费了。如果真正上手玩过格斗游戏,玩家一定会爱上游戏的深度。
让不了解格斗游戏的玩家也可以掌握格斗游戏的诀窍。基于这个想法,想要实现一个实时解说功能,需要注意的要点有三个。
第一是“讲述现在发生的事情”。这是解说的自然组成部分。我认为正确传达出对战期间出现的各种事态发展是很重要,而不是一味追求疯狂和”炸场“。
二是”突出精彩瞬间“。在对发生在屏幕上的事情进行单纯的解释外,还要突出它的有趣之处,它是多么令人惊奇。目的就是让解说变得更加有趣。
三是要传达真实对战的气氛和紧张感。近年来,电子竞技比赛已经成为一种常见的活动,但对于广大玩家来说,如果能够感觉自己身临其境将是一种愉快的体验。为了创造这种体验,我们认为尽可能再现真实竞技比赛的氛围是很重要。
总共分三步
具体到这个解说系统的实现,主要分为三步。
首先,作为开发方面的准备工作,先使用特殊的工具设定对话及其状况数据 。例如,我们围绕投技设置了如下的触发脚本:”如果动作是‘普通投技’,并且是命中了,那么我们就把台词设为‘投掷’!“ 这样,情境中发生了什么事情、触发哪句台词,我们就根据各种情景进行设计并保存。
第二步,在游戏真正运行时,我们会检查”当前游戏的情况是否符合设定的对话的情况“,并标记出”在这里可以说出的台词“。
最后一步是“选择实际要说的台词”。 如上一步标记的台词是“要扔吗?”“ 扔!”“ 朝这里扔出去!” 为每一帧设置每句台词的优先级,并选择优先级最高的台词。
系统搭建中的重点:“触发的条件数”和“解说词行数”
构建解说系统时,最重要的两个项目是
- 1. 触发解说词的条件的数量
- 2. 解说词本身的数量。
触发条件的数量包含比赛期间所有情况的对话触发条件。例如,对于格斗游戏来说,即使是一次普通的投技,也有“未击中”、“正常击中”、“反击击中”和“投掷逃脱”四种模式。
体力的情况也是一样。有双方都血量充足的情况,也有双方都只有一丝血,一击就能定胜负的情况。另外,也有稍微处于劣势或被单方面平推的场景,所以可以分类得相当细。
由于格斗游戏中存在各种技巧和局势,因此需要准备能够应对各种情况的解说词,但这样做仍然存在局限性。尽管可以大幅缩小范围,但发布时的判定条件已超过 350 个。这些条件是通过观察实际的电竞对战并找出玩家经常表现出反应的瞬间来确定的。
此外,我们还根据《街霸》系列的基本战术和规则,预测了玩家可能对《街霸6》的新系统做出的反应。
不过,游戏本身仍在开发之中。 由于每天都在进行修改和变更,因此我们有必要对开发状态进行跟踪,并灵活地决定触发条件,这个过程是一个相当大的挑战。
行数则更加直截了当,就是“与每个条件相关的行数”。 为了避免玩家对反复出现的相同台词感到厌烦,基本上每个条件都准备了专门的台词,特别重要的场景或可能经常出现的场景则准备了更多的台词。
模拟真实解说的“紧张感系统”
基于这些设计,我们构建了一个“紧张感系统”来模拟真实的比赛解说。
这是一种根据比赛的进展来控制解说词强度的机制,比如在比赛进入最后一轮,而且双方都处于体力极限状态,局势风云万变的时候,解说词也会相应出现变化。
我们设定了一个根据局势一同变化的“紧张感系数”,并根据现场解说的情景将台词分配到该数值中,然后根据紧张感数值的判定,将适合当下情况的解说词作为比赛中的现场解说。
为了计算“紧张感系数”,我们首先准备了两个参数“体力差变量”和“剩余体力变量” 。“体力差异变量”是根据体力差异在0.5到1.0之间变动的变量,没有体力差异时为最小值0.5。“剩余体力变量”是在0.0和1.0之间移动的变量,对应于体力较少的玩家的体力比例。紧张感系数就为这两个参数的乘积。
结果是什么样的?如下图所示,当双方玩家都处于最大体力状态时,体力差变量为1,剩余体力变量为0,紧张感系数为0。当玩家2单方面体力下降时,体力差异变量为0.5,剩余体力变量为1,紧张感系数为0.5;当双方体能都几乎为零(即双方都不知道谁会赢)时,体力差异变量为1,剩余体力变量为1,紧张感系数为1。
但我们仍然感到缺少一些东西。考虑到这一点,开发团队意识到还有另一个轴,也就是时间。在格斗游戏中,除了体力,剩余时间也是造成紧张感上升的因素。
因此,我们决定添加一个“剩余时间变量” 。这个策略很简单,将紧张感系数随着剩余时间变短而增加极客。最终地紧张感系数计算公式为“体力差变量×剩余体力变量或剩余时间变量”,剩余体力变量和剩余时间变量均采用较高的数值。 这样,在剩余时间变短时,除了体力降低之外,还能产生背水一战的感觉。
另外,为了避免紧张感系数在普通地对局中突然达到MAX,破坏对战气氛,我们为每一轮对战设置了单独的可移动范围,并为每一轮设置了初始值,使其随着轮次自然上升。
实际解说词的每一行都被分配到五档紧张感系数之一。 台词总数量超过 4000 行。准备的台词中80%为通用台词,20%为特定角色台词,如技巧的名称。
至于如何调整如此巨量的对话,实际上是用手动的方式反复试错。为了提高效率,准备了统计调用了多少行的工具和大量的调试工具,从而简化了这一过程。但即便如此,依然无法对解说词出现的平衡感进行准确的调整,我们别无选择,只能在进行实际的对战时根据自己的感觉进行调整。
但由于制作解说功能的制作团队规模较小,我们能够在很短的时间内不断地反复试错,这意味着我们能够用在打磨质量上的时间相当的充足。
系统搭建中遇到的问题
程序员藤本:我们遇到了两个主要问题。首先是对话量巨大造成的处理负荷:在以60 fps的速度运行时,我们必须实时控制超过4000 行解说词,而在临时组装的测试阶段,我们无法实现60fps的帧数。此外,为了提高游戏质量,我们预计还将增加其他的功能,因此在实装系统时必须考虑到因此而增加的性能负荷。
第二个问题是处理战斗中出现的网络回滚。 在《街头霸王 6》中,战斗中的网络同步是通过将战斗状态倒退到特定帧来控制的,联机的对手会根据从对手那里收到的输入信息回滚到前一帧。 由于这个原因,我们曾出现过一个系统问题,即在解说系统播放对话后战斗回滚,导致实际对战场面出现与解说词不符的情况。
我们是如何解决这两个问题的?
首先,解说系统被修改为参考大约0.3秒前的帧信息。
《街头霸王6》将网络回滚作为战斗同步机制,其设计初衷是保留当前帧到过去几十帧的信息。 而实时解说系统被设置为可参考更早帧的信息。通过查看比回滚范围更远的帧,系统能够参考稳定的信息,确保对话播放准确无误,不会与战斗情况出现任何偏差。
改用参照过去帧的方式,在处理时间方面也产生了优势:按照原本提前一帧的方式,处理顺序是更新战况——更新播放系统——播放音频。 而现在可以在处理战况的同时更新播放系统了。
这样做的另一个好处是,在播放对话时自动增加了 0.3 秒的延迟,从而提高了旁白的真实感。 毕竟在收看真实的对战时,解说与实际的对战总会有 0.3 秒的延迟。原本将这一功能加入系统需要引入计时器或其他控制程序,但这一解决方案如今可以以更自然的方式实现。
紧张感系统还有助于解决处理性能负荷问题。 虽然台词的总量巨大,但紧张感系统缩小了每种情况下的台词模式和数量。通过只更新对应情形下的候选解说词,可以将实时处理的性能载荷减少60%。
这是在假设五种张力均等分配线路的基础上实现的,其中一个重要因素是薮下先生在规划时就考虑到了系统情况,并控制了解说词的分配。 他还说,为了实现这一系统,策划小组必须对系统架构有深刻的了解。
真人解说员的“言语和张力”
薮下:正如前面提到的,解说功能的目标就是为了让人们了解格斗游戏的乐趣。为了再现真实比赛的现场声音,游戏中的现场解说员必须是真人,这一点很重要。
同时,解说员还要能够应对大量的对话,在任何情况下都能游刃有余。 能通过轻重缓急来制造兴奋感,这对充分发挥紧张感系统的作用非常重要。解说员的目标就是炒热现场气氛。
我们的人选包括对选手知根知底,有着独特性格的解说员アール,以及曾经担任过播音员,能够准确表达局势并进行稳定而温和的解说的平岩康介。
录音基本上是以解说员想说的话为最高优先级来完成的。当然,剧本是有准备的,但薮下先生认为最好的办法就是解说以他自己的身份出现在游戏中。
此外,为了避免听起来像念稿,即使有些部分难以听清,也照录不误。这是为了避免扼杀“文字的气势”,强调临场感。
我们还规定,绝不说贬低玩家或指出错误的台词。除了在实际情况中指出错误这个行为没有必要之外,格斗游戏中也有各种技巧战术,比如使用佯招来以降低风险。所以究竟什么能算作“失误”,这没法提前规划好。
英语选拔过程与日本解说员大致相同,要求解说员有大型比赛的解说经验,能在各种紧张气氛中录制4000句以上的台词,词汇量广,能够胜任未来发售后的持续更新,与日文解说员的水平不相上下。最终被选中的两位是Jeremy “Vicious” Lopez和Steve “TastySteve” Scott。两人都是知名的解说员,同时也是卡普空杯的常客。
为了照顾日语与英语的表达差异,英文解说的台词都是原创而非日文翻译。
用户的反馈如何?
玩家的反应基本上在我们预期之内。 前期发布的预告片和内测都获得了好评。解说系统的存在不仅能够吸引格斗游戏玩家,还能够吸引休闲玩家和喜欢看游戏直播和视频的人群。
在社交媒体,一些玩家说“解说教会了我怎么看体力条、教会了我游戏的新系统和新技术,帮助我理解游戏”、“我在对战中不再感到孤独了”等等。玩家的兴奋感被解说系统调动了。此外,我们意识到念出招式名称和专有名词可以提高对战的沉浸感。作为一名玩家,解说员对我使出的招式做出反应,这让我感到相当高兴。
因此,在每次更新添加角色时,我们都需要记录技能名称和专有名词,这会产生成本。但即便如此,这个解说系统的引入依然是值得的。
总而言之,实时解说功能的引入在一定程度上缓解了格斗游戏“太难”的印象,这也是该项目的最初目标。 在实际情况中,使用真实的解说员的决定也在营销方面产生了很大的反响。因此,以格斗游戏玩家社区为中心是很重要的。
最后,实时解说功能最重要的设计考量是“决定方向和估算台词数量”。 如果解说词量和台词的触发条件过多,游戏将不堪重负。 因此,最重要的是应确立实时解说的方向,并随时对解说词和触发条件进行选择和取舍。
如若转载,请注明出处:http://www.gamelook.com.cn/2023/08/526553