目录
为了减轻内存负荷,我们可以直接从光盘、硬盘或 U 盘对音频进行流播放。流播放对较大的音频文件来说非常有用,它可以避免占用大量 SoundBank(音频包)内存;不过,因为要在触发时加载,所以可能会带来些许延迟。因此,流播放并不适合依赖于精准计时的声音(如对口型对白),不过它对计时精度要求不高的声音(如环境声和有些音乐)来说效果还是不错的。
流播放跟 SoundBank 加载流程非常相似。在加载 SoundBank 时,相当于以流传输形式通过 CPU 将内容添加到内存中。在对音频文件进行流播放时,则会使用少量 CPU 资源从硬盘或光盘提取流播放文件,而流播放数据在播放完后会被清空或被继续保存在内存中(因所指定的设置而异)。
您可以在 Wwise 工程的 Audio Structure(音频结构)层级配置流播放设置。接下来,我们演示一下如何对 Quest 4 Blacksmith Dialogue(任务 4 Blacksmith 对白)语音对象进行流播放。
Sound Voice(语音)对象类型一般用于对白,专门设计用来处理多种语言。注意不要把 Sound Voice 对象和 Voice(声部)混为一谈。 |
-
在 Wwise 菜单栏中,单击 Layouts(布局)菜单,然后选择 Designer(设计师)。
-
在 Project Explorer(工程资源管理器)的 Audio(音频)选项卡中,依次展开 Actor-Mixer Hierarchy > Default Work Unit > World > NPCs > QuestGivers > Dialogue Blacksmith,然后选择 Blacksmith_DialogueLine_Q4b_01。
-
在 Object Tab 的 General Settings(常规设置)选项卡中,确保选中 Stream(流播放)。
通过直接启用 Stream 选项,在生成 SoundBank 时就会将声音存储到 SoundBank 文件旁的 WEM 文件中以供在游戏当中进行流播放。
WEM (Wwise Encoded Media) 文件是存储在编译游戏中的 Wwise 专有文件。 |
对于流播放文件,可选用以下选项:
-
Non-cachable(不可缓存):在对音频进行流播放时,不保留任何缓存。该选项适合长循环或非重复性声音,因为它们在播放完成后一般不需要继续缓存在内存中。在《WAG》中,所有对白都启用了此选项,因为它们通常只出现一次。
-
Zero latency(零延迟):为音频文件的开头部分创建一个小的缓冲区,以免流播放文件造成延迟。该选项对《WAG》中的音乐来说比较有用,因为两首主题是同步播放的,所以触发时机非常关键。
-
Prefetch length (ms)(预取长度 (ms)):指定要在内存中存储的素材时长(毫秒)。对于《WAG》中的所有素材,该选项都保留为默认的 100 毫秒。
《WAG》中的音乐、对白和环境声全部采用流播放形式,这样可以节省约 57 MB 的运行时内存。其中,对白大概占 37 MB。由此可见,Non-cachable 选项有多重要。所以,为了移除内存中遗留的缓存,一般都会启用该选项。