案例研究 - 在 RoboRaid 中使用空间声音

本文介绍Microsoft HoloLens体验团队在为 RoboRaid 混合现实第一人称射击游戏创建音频时面临的挑战。

技术

空间声音是Microsoft HoloLens最令人兴奋的功能之一,让用户在物体不在视线内时感知周围发生了什么。

在 RoboRaid 中,空间声音最明显和最有效的使用是提醒玩家在外围视觉之外发生的事情。 例如,入侵者可以从房间中的任何扫描墙壁进入。 如果你没有面对它进入的位置,你可能会错过它。 为了提醒你此入侵,你将听到来自入侵者进入位置的不同音频,这让你知道你需要快速采取行动来阻止它。

幕后

为 HoloLens 应用创建空间音效非常新颖且独一无二,因此问题可能难以解决,因为没有任何要引用的过去项目。 希望我们在创建 RoboRaid 时遇到的音频挑战的这些示例有助于你在为自己的应用创建音频时有所帮助。

注意对 CPU 征税

空间声音对 CPU 的要求可能很高。 对于 RoboRaid 等繁忙体验,在任何给定时间将空间声音实例数保持在 8 以下至关重要。 通常,它与设置不同音频事件的实例限制一样简单。 达到限制后发生的任何实例都将被终止。 例如,当无人机生成时,其尖叫声在任何给定时间限制为三个实例。 考虑到大约四架无人机可以同时生成,三个尖叫是很多的,因为你的大脑无法跟踪许多类似的音频事件。 这为其他空间声音事件释放了资源,如敌人爆炸或准备射击的敌人。

奖励成功的躲避

逃生机制是 RoboRaid 中最重要的游戏机制之一,也是我们认为 HoloLens 体验真正独特的机制之一。 因此,我们希望使成功的躲避对玩家非常有益。 我们在开发初期就让多普勒“呼啸而过”,听起来很引人注目。 最初,我的计划是使用循环,并使用音量、音调和筛选器实时作它。 这一点的实现将非常详细。 在投入资源来构建它之前,我们创建了一个廉价的原型,使用资产和多普勒效果烘焙,只是为了了解它的感觉。 我们才华横溢的开发使这个呼啸而过的资产将播放恰好0.7秒之前,弹丸将经过玩家的耳朵,结果感觉惊人! 不用说,我们放弃了更复杂的解决方案并实现了原型。

(有关创建内置多普勒效果的音频资产的详细信息,请参阅 2 分钟内 100 个 Whooshes。)
成功阻止敌人的射弹会奖励玩家一个令人满意的呼啸声。

放弃无效的声音

最初,我们想在玩家成功躲过敌人的弹丸后播放爆炸声,但我们出于几个原因决定放弃它。 首先,它感觉不像我们用于躲避的呼啸 SFX 那么有效。 当炮弹击中你身后的墙时,游戏中还会发生其他事情,以掩盖这一声音。 其次,我们没有在地板上发生碰撞,所以当弹丸击中地板而不是墙壁时,我们无法让爆炸弹发挥。 最后,空间音效的 CPU 成本。 精英天蝎敌人 (一个可以在墙内爬行的敌人,) 有一个特殊的攻击,射出大约八枚炮弹。 这不仅在混合中制造了巨大的混乱,还引入了可怕的啪啪声,因为它击中 CPU 太硬了。

传达命中

我们在 HoloLens 上遇到一个有趣的问题是,要有效地传达玩家是否受到打击是多么困难。 混合现实体验成功的是故事发生在你身上的感觉。 这意味着你必须相信你在你自己的客厅里与外星人机器人入侵作斗争。

当玩家被击中时,他们显然没有任何感觉,所以我们必须找到一种方法来说服玩家,他们发生了一些坏事。 在传统游戏中,你可能会看到一个动画,让你知道你的角色已经受到打击,或者屏幕可能会闪烁红色,你的角色可能会有点哼吟。 由于这些类型的提示在混合现实体验中不起作用,我们决定将视觉提示与夸张的声音相结合,以指示你已受到损害。 我创造了一个很大的声音, 并使它在混合中如此突出, 它回避了一切。 然后,为了让它更加突出,我们增加了一个简短的警告声音,仿佛一个核潜艇正在沉没。
当玩家在 RoboRaid 中被击中时,他们会看到一个视觉提示,但也会得到一个夸张的音频提示,告诉他们他们已经受到伤害。

从小型扬声器获取大声音

HoloLens 扬声器小而轻,适合设备的需求,因此你不能指望听到太多低端。 与开发智能手机或手持游戏设备类似,声音设计师和作曲家必须注意其音频的频率内容。 我总是设计声音或写全频率范围的音乐,因为戴耳机是用户的一个选项。 但是,为了确保与 HoloLens 扬声器的兼容性,我偶尔会运行一个测试,方法是将 EQ 放在我碰巧正在处理的任何 DAW 的主控器中。 EQ 设置由大约 600 Hz 到 700 Hz 的高通滤波器组成, (不会太陡峭的) 和低通滤波器在大约 10K (陡峭的) 。 这应该让你大致了解你的声音将在设备上播放的方式。

如果你依靠低音来赋予音乐中和弦变化的感觉,你可能会发现,当你应用此 EQ 设置时,你的音乐会完全失去根的感觉。 为了解决这个问题,我添加了另一层低音,这是一个八度音高 (与一些丰富的和谐) ,并混合它,以获得根的感觉回来。 有时使用失真来放大调和,在上范围提供足够的频率含量,使我们的大脑认为它下面有一些东西。 这适用于 SFX,例如冲击、爆炸或特殊时刻的声音,例如老板的超级攻击。 你真的不能依靠低端给玩家一种冲击感或体重感。 和音乐一样,使用扭曲来给一些紧缩绝对有帮助。

让你的音频提示脱颖而出

当然,团队中的每个人都想要轰鸣的音乐、响亮的枪声和疯狂的爆炸声:但他们也希望能够听到画外音或任何其他游戏关键音频提示。

在具有全频率范围的主机游戏中,你可以根据声音的重要性来划分频率的更多选项。 对于 RoboRaid, 我被限制在频率范围, 我可以从声音曲线。 如果使用低通滤波器,并且从频谱的较高端曲线过多,则声音上不会留下任何内容,因为低端不多。

为了使 RoboRaid 声音尽可能大,我们必须降低整个体验的动态范围,并通过为不同类型的声音创建一个明确的重要性层次结构来广泛使用躲避。 根据重要性,将躲避值从 -2 dB 设置为 -6 dB。 我个人不喜欢在游戏中明显回避,所以我花了很多时间调整淡入/淡出计时和音量衰减量。 我们为空间音效、非空间声音、VO 和干总线设置了单独的总线,没有音乐混响。 然后,我们创建了高优先级、关键和非关键总线,以便将资产设置为相应的总线。

我希望音频专业人士在他们自己的应用程序上工作和我在 RoboRaid 上工作一样有趣和兴奋。 我迫不及待地想看到 (,听听!) Microsoft为 HoloLens 想出什么。

自行完成

我发现使某些事件 ((如爆炸) 声音“更大”)的一个技巧是创建空间声音的单声道资产,并将其与 2D 立体声资产混合,以 3D 播放。 这确实需要一些优化,因为立体声内容中信息过多会降低单声道资产的方向性。 然而,正确平衡将导致巨大的声音,让玩家转向正确的方向。

可以使用以下音频资产亲自尝试大声音:

场景 1

  1. 下载 roboraid_enemy_explo_mono.wav 并将其设置为通过空间声音播放并将其分配给事件。
  2. 下载 roboraid_enemy_explo_stereo.wav 并设置为在 2D 立体声中播放,并分配给上述同一事件。 由于这些资产已规范化为Unity,因此会衰减这两个资产的音量,使其不会剪裁。
  3. 同时播放这两种声音。 四处移动头部,感受空间感。

场景 2

  1. 下载 roboraid_enemy_explo_summed.wav 并设置为通过空间声音播放并分配给事件。
  2. 单独播放此资产,然后将其与方案 1 中的事件进行比较。
  3. 尝试单声道文件和立体声文件的不同平衡。

另请参阅