menu
 

Wwise 基础知识

目录

对声音进行流播放

还有一种方法可以降低内存用量,就是每次只把音频文件的一部分加载到游戏系统的内存中。这种方式称为流播放。我们可以通过流播放来直接从存储介质(如光盘或硬盘)播放音频。流播放尤其适合用于可能持续好几分钟的长音频素材(如音乐)。

流播放的缺点在于,从游戏引擎调用声音到开始播放声音,这之间可能会有短暂的滞后(即延迟)。这是因为找到文件并开始流播放是需要时间的。对于有些声音(如 Ice Gem 投掷声),这种延迟可能比较明显;不过,对持续播放的环境声或音乐来说并无大碍。

流播放还有一个缺点,就是在一次性读取的数据总量上存在一定的限制,并且游戏的其他方面(如视频)可能会跟音频争用同一播放流的带宽。

《Cube》中的背景音乐包含在 "DCP_the_core" SoundBank 中。该 SoundBank 目前超出了内存预算。接下来,我们试着对音乐进行流播放,看有没有办法解决这个问题。

  1. 在 Project Explorer(工程资源管理器)中,选中 "Cube_Main_Theme" Sound SFX(音效)对象。

  2. 在 Property Editor(属性编辑器)中,选中 Sound SFX(音效)选项卡,然后在 Stream(流播放)分组下单击选中 Enable(启用)。

    接下来,我们要重新生成 SoundBank,看看通过弃用部分对象和对主题音乐进行流播放是否节省了足够多的内存。

  3. 在菜单栏中,依次单击 Layouts > SoundBank(布局 > 音频包)或按下 F7,然后单击 Generate All(全部生成)。

  4. 在完成流程后,在 Generating SoundBanks(生成音频包)对话框中单击 Close(关闭)。

    在 SoundBank Manager 中可以看到,在对音乐进行流播放之后,其内存用量大大降低了。"DCP_the_core" SoundBank 的大小之前有 26,000,000 字节,现在只有 6,000,000 字节预算的一半还不到。另外,因为弃用了其中的一些对象,"Main" SoundBank 也稍微小了一点。

  5. 在菜单栏中,依次单击 Layouts > Designer(布局 > 设计师)或按下 F5,准备学习下一课。

好样的!您完成了第 19 课的学习,成功将两个 SoundBank 的大小控制在了内存预算以内。为此,我们首先设定了 SoundBank 的 Max Size;这样在超出该值时 Wwise 会发出警告。接着,将多个音频文件转码为了 Vorbis 格式,减少了对空间的占用。然后,弃用了 Random Container 中的部分 Sound SFX 对象。这样会减少变化版本,但不会带来太大影响。最后,还对主题音乐进行了流播放。因为通过流播放不仅可以大幅降低内存的用量,而且由此产生的延迟对音乐而言可以忽略不计。

接下来,我们将学习第 20 课:优化声音设计,了解如何监控并优化游戏的性能。


此页面对您是否有帮助?