游戏开发论坛

 找回密码
 立即注册
搜索
查看: 32756|回复: 0

《NieR: Automata》的空间声学设计以及借助Wwise实现对多种游戏玩法的支持(二)

[复制链接]

4万

主题

4万

帖子

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
83018
发表于 2020-11-18 13:48:33 | 显示全部楼层 |阅读模式
请阅读本文第 1 部分

利用 Wwise 控件为各种游戏玩法提供支持

正如本文开头所说,游戏当中镜头视角会频繁切换,从标准的后视视角(第三人称视角)到其他各种视角(如俯视视角、横向视角和射击视角)。因此,空间声学效果也要随之变化,以此来反映这种视角切换。

  • 交互变换听者位置

首先,我们要确定将默认听者位置设在哪里。为了展现游戏中打斗部分的爽快感,我们试着平衡了各种镜头视角的声学效果,发现最理想的默认听者位置是玩家身旁。

因为,在将听者设在角色近旁时,即便镜头视角变换,混音和衰减的基本平衡也不会有太大波动,所以玩家可以继续玩游戏,而不会感到听觉上有什么异样。

1.webp.jpg
默认听者位置

除射击视角外,其他各种视角(包括俯视视角、后视视角和大部分横向视角)下的默认听者位置通常都挺合理。不过,有些情况(如剧情动画)需要特殊处理。

下面这个场景就比较特别:2B 机器人战士聚集到剧院观看敌人(机械生命体)表演。因为玩家离舞台不够近,所以假如还将听者设在默认位置,那么实际听到的表演声音的音量就会跟预期有所不同。对于这种场景,我们加入了一项功能,让声音设计师可以根据需要随意变换听者位置。

2.webp.jpg
舞台和玩家之间的距离(远处红色小点代表听者位置)

3.webp.jpg
将听者位置从默认位置移到舞台中央(Preset No. 11)

我们为听者位置创建了多种预设,方便声音设计师将其切换到指定区域或利用 Wwise Event(事件)触发预设切换。

4.webp.jpg
前面场景在 Wwise 中对应的 Event Editor(切换听者预设选项)

在听者位置变换时会插入相应的参数,确保采用 3D 定位的声音不会跳变得太厉害。音频在这种切换点处的无缝过渡对游戏总监横尾太郎 (Yoko Taro) 先生来说特别重要,所以我们就试着在整个游戏当中应用了平滑、自然的声学过渡。

  • 采用独特的衰减手法

衰减设置中有一些特殊的衰减曲线,专门用于各种独特的镜头角度。

在下面这个场景中,镜头离玩家较远,在游戏过程中可以纵观整个舞台。从图中可能看不太清楚,其实中间的红色小点就是玩家所在位置。在此,听者设在了远离舞台的位置而非玩家身旁的默认位置,所以声音听起来稍远一些。

5.webp.jpg

6.webp.jpg
玩家角色及其与听者位置的距离(右下角红点代表听者位置)

听者位置和玩家之间的距离始终都是固定的,音量较小时自然就会感觉稍远一些。不过,因为这里的敌人角色离得比正常情况下远得多,所以很容易超出衰减范围。如此一来,就很难听到为该敌人角色设定的音效。

从精准控制方面来说,系统的这种响应是对的。但是,这样玩家将无法注意到敌人角色,这样的话有时难免在战斗时会感到被动(即便是在上图中,敌人也小得看不太清楚,因为距离太远了)。

为了解决这个问题,我们设置了一条略为特殊的衰减曲线。在超出特定距离时,它会禁止衰减声音。如此一来,便通过插值的方式避免了玩家在游戏当中感到听觉上的不自然。

7.webp.jpg

  • 控制多个声源发出的声音

最后,我们来介绍一下这款游戏中采用的发声控制系统。在这款游戏中,有些场景会出现很多敌人角色。假如将他们的声音全部播放而不加以限制,很容易会耗尽 CPU 处理资源。

为此,我们对声音系统进行了调整,确保同时播放的声音数始终保持在 50 和 60 之间。下面,我们说说如何分两步来控制发出的声音数。

  • 在调用 Wwise Event 之前,由游戏程序利用内置控件来限制 Event。
  • 在 Event 发出声音之后,借助 Wwise 控件来限制同时播放的声音数。

第 2 步是标准操作,只要根据 Distance(距离)值来控制 Voice Limit(声部限值)和 Priority(优先级)就行了;所以,在此我们只解释下第 1 步较为复杂的控制系统。

该系统有三种主要功能:根据距离范围等级剔除 Event 调用、限制那些通过了根据距离剔除从而保留下来的声音、限制同时播放的声音数。这些操作全部在调用 Wwise Event 之前完成。通过引入这一机制,可以避免调用大量不必要的 Wwise Event 命令,进而给 Wwise 带来过重的处理负荷,最终导致卡顿。

这些控制功能作为命令写入到了 Wwise Event 或衰减参数的备注区域。

8.webp.jpg
针对衰减设置插入的命令(-C = 剔除;-L2 = 限制同时播放的声音数)

  • 剔除 Event 调用

首先,在剔除过程中会排除发声距离超出最大衰减距离的声音。这一命令写入到了多个衰减参数中。

9.JPG

  • 限制通过了根据范围等级剔除而保留的声音

在这款游戏中,我们采用这种方式控制待播循环音效,比如远处游荡的敌人声音及其他循环音效。我们经常会在最大距离之外部署这些角色。在这种情况下,并不会剔除 Event 调用。只是在最大距离之外时会延迟对Wwise Event的实际调用,直到进入最大距离以内才会真的触发该 Event。

10.JPG

  • 限制同时播放的声音数

最后,对于在最大距离以内调用的 Wwise Event,假如其在同一时间可能会被调用很多次,就会限制同时播放的声音数。若在指定帧内多次调用同一 Event,则下一次发生该 Event 时不再调用。

11.JPG

所有这些控制功能都可以由声音设计师自行设置和调整,无需求助于程序员,确保这一点对我们来说非常重要。

利用定制 Wwise 插件来增强音频的互动性

  • Lo-Fi 插件

Lo-Fi 滤波器比较常用,但要想生成自然的 Lo-Fi 声音并不容易。因此,我们认为能够自由地操控这类效果器是实时音频信号处理技术的重要作用之一。

其实,在《NieR: Automata》中玩家角色出现无线电语音或知觉问题时,就使用了 Lo-Fi 效果器。这种效果器在很多场景中都有应用,不过它本身其实并不会耗费太多资源,所以我们就将其插入到了各个 Audio Bus(音频总线)和 Actor-Mixer 中。另外,Lo-Fi 效果器其实是我们这个效果器插件集合中的其中一个。这个集合还包含了很多不同的效果插件,如失真、滤波和镶边(如下图所示)。它是我们的音频程序员木幡周治的杰作(他在制作硬件吉他效果器方面很有经验)。利用它,只需要简单的几步操作,就可以轻松地改变声音。这一点对我们的声音设计师来说非常难得。

12.webp.jpg

13.webp.jpg

在玩家角色 2B 被病毒侵蚀时使用的 Lo-Fi 参数

* 在最左侧,侵蚀程度为 0,向右越来越严重,Lo-Fi 效果也逐渐增强。

下面是 Lo-Fi 插件的 DSP 示意图。图中显示的是单声道情况。在有多个声道时,将针对每个声道重复相同的流程。

Picture24.jpg
Lo-fi DSP 图解

  • Lo-Fi 处理

将采样率暂时降低 50% 或 24kHz。

(这样既是为了降低处理负荷,也是因为 Lo-Fi 不需要太高的采样率)

减小取值与前值的差距,然后进行量化。

(这样是为了避免在量化后声音过于嘈杂)

注意,取值与前值相差越小,削波失真越严重;假如量化不够精细,声音嘈杂程度就会加重。总之,原理很简单,但一定要注意把握取值和前值之间的差距。

恢复采样率并输出结果。

即便是像这样的标准操作,只需多加一两个步骤,一样可以增强游戏的沉浸感。

  • Voice Changer 插件

除了互动音频,我们还使用了一个强大的 Wwise 插件来表达游戏的世界观,就是 Voice Changer。在玩家达到一定的游戏条件后,就可以解锁各种可选设置,并将效果器应用于玩家角色的声音。

考虑到玩家角色为机器人,我们就想到应该允许自由地设置他们说话的声音。为此,我们应用了音高变换和其他变声效果(如机器人声音)。

这个效果器结合了多种功能,如音高变换、时间拉伸、杂音效果和音高修正。

15.webp.jpg

在实际游戏中,我们创建了 11 种预设。通过指定不同的参数值,用户可以设计出风格迥异的语音效果。预设的构建过程虽然有趣但也很麻烦。所以,我们很佩服那些为商用效果器和合成器构建预设的人…

16.webp.jpg
这款游戏中使用的 Voice Changer 参数

  • 机械生命体的语音效果

虽然实现这种效果并没有直接用到 Wwise,不过的确有很多人问我们是如何为机械生命体设计语音效果的。所以,我们借此机会来简单介绍一下。

机械生命体属于敌人角色,他们每一个都自带语音效果,听起来像机器人。机器人语音的关键在于校准音高。商用音高修正效果器有很多种,提供有各种不同的选项。为此,我们特地试用了几款。最终,我们选择了 Nuendo 的 Pitchcorrect。当然,其他几种效果器也不错,也能恰当地修正音高。

我们之所以选择 Nuendo 是因为,它可以在对原始声音进行音高变换的基础上添加一定的跳变效果,从而生成一种比较独特的声音,而这是其他效果器无法做到的。另外,它的 Formant 功能还有一种其他效果器所没有的数字感,它可以在数字效果之上增添一丝人性化色彩。另外,音高的跳变还可以营造出机械生命期妄图模仿人类说话语调的感觉。

17.webp.jpg

  • 机械生命体使用的语音处理插件

就个人而言,我觉得这一点很重要。跟沉着冷静、面无表情的 2B 机器人相比,虽然敌人派来的机械生命体也是机器人,但我们想让他们听起来性情更加温和、情绪更加丰富一点。

其实,我们录制了两种版本的机械生命体原始语音。其中一种音高尽量不变,另一种没有校准音高,语调也正常。最终,我们选择了后者。

在决定机械生命体的音高后,我们还使用了 Delay、Flanger 和 Speakerphone,来让说话声音听起来像是从内部扬声器发出来的一样。

结语

回顾整个开发过程,我们可以说借助 Wwise 成功地实现了对音频的多方面控制。能用这样一款工具进行统一控制,对管理各类声音设计相关参数和调试游戏来说真的省了不少事,更不用说这些经验还可以轻松运用到其他工程中。

我们希望能通过空间声学表现手法来提升游戏音频的品质,但也注意到其中使用的各种方法和插件还有待进一步完善。

比方说,Simple3D 插件可以生成 3D 声音,但目前只能借助声音定位来实现 3D 效果。接下来,我们准备在展现 3D 声音的同时把其他参数也包含进来,比如听者和声源之间的距离。K-verb 同样如此,也可以加入更多的参数。比方说,假如能在原来基础上结合声笼信息,相信应该能实现更好的声学效果。

我们目前还面临着一个难题,就是如何将声音自动指派给振动设备。这一流程在硬件创新的推动下变得越来越普遍,但目前振动对空间声学的表现在体验上并没有直接帮助。在不远的将来,我们希望能开发出一种工具,它不仅能省掉简单的手动操作,还能带来创意和方法上的突破。

在游戏制作中,工具有很多,挑战也不少。我们的声音设计师、作曲家和程序员每天都在探讨这些问题,相信其他游戏制作公司也是如此。这就是我们决定撰写这篇博文的用意:希望全球各地使用 Wwise 的游戏创作人员能从中得到些许启发和帮助。无论这篇博文给您带来怎样的创意或想法,我们都会由衷地为您感到高兴。

MisakiShindo进藤美咲

进藤在独立乐队担任过乐手并曾在乐器店工作,她于 2008 年作为声音设计师加入 PlatinumGames。她是游戏新作《NieR: Automata》的首席声音设计师,主要负责音效制作、Wwise 整合和音效交互系统设计。

ShujiKohata木幡周治

木幡曾在一家电子乐器开发公司工作,他于 2013 年加入 PlatinumGames。作为音频程序员,他负责声学效果相关技术的总体把控。在《NieR: Automata》的开发中,他主要负责声音系统维护和音效整合。木幡的目标是努力探索新的声音展现方式,并将其运用到将来的游戏开发中。同时,他还在不断设法完善目前的游戏音频技术。

注意:本文中使用的所有《NieR: Automata》截图和视频均归 Square Enix Co., Ltd 所有。

《NieR: Automata》

平台:PS4、Steam、Xbox One(仅提供下载版本)
发行商:SQARE ENIX CO., LTD.
开发商:PlatinumGames Inc.
官方网站:https://niergame.com/en-us/
版权所有 © 2017 SQUARE ENIX CO., LTD。保留所有权利。

PLATINUMGAMES INC.

PlatinumGames Inc. (プラチナゲームズ株式会社 Purachina Gēmuzu Kabushiki Gaisha) 是一家日本电子游戏开发公司。 通过坚持打造品质出众、玩家喜爱的游戏,我们希望能成为世界一流的游戏开发工作室。为了实现这一目标,PlatinumGames 团队将锲而不舍。

来源:Audiokinetic
原文:https://blog.audiokinetic.com/zh ... of-gameplay-part-2/
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-4-20 05:17

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表