Wwise SDK 2021.1.14
|
在许多主机上,可以将游戏音乐替换成用户个人收藏的音乐。在 Wwise 中,此功能几乎是自动完成的。然而,某些平台在实现和行为上有一些差异。
在所有平台上,初始设置是相同的:启动用户音乐时,声音设计师可以标记若干条总线让其静音。这一点通过“Mute for Background Music”复选框来实现。在程序方面,根据具体的平台另有细节处理。
确保为 AkPlatformInitSettings 的 jActivity 成员赋值。只有当用户从音乐播放器应用程序切换到游戏时才会发生 Mute/Unmute(静音/取消静音)操作。这意味着,如果用户音乐自行结束,则不会发生“Unmute”操作。
如果声音引擎初始化设置中设置了 AudioSession 标志 “MixOther”,则只有当用户从音乐播放器应用程序切换到游戏时才会发生 Mute/Unmute 操作。这意味着,如果用户音乐自行结束,则不会发生“Unmute”操作。在 iOS 8 及更高版本中,如果使用了 AVAudioSessionCategoryAmbient 类别,只要出现应用程序的音频中断(audio interruptions),就会发生游戏音乐静音和取消静音操作。
某些平台具有 DVR 功能,可让游戏玩家记录和发布其游戏过程。这会带来一些法律问题,其中涉及到游戏音频当中受版权保护的音乐或用户可替换音乐。虽然游戏工作室有权在其游戏中使用所述音乐,但最终用户可能无权以任何形式对其进行分发。因此,平台要求中通常会声明不允许录制用户背景音乐。
针对这个问题,一个高性价比的解决方案(对 CPU 而言)是将音乐和游戏的其他内容分开混音。这通过使用 Secondary Output (二路输出)功能来实现。
在设计工具中,您需要将音乐对象输出至单独的 Master Audio Bus 而非默认总线或主总线。也就是说,在大部分工程中,都要创建全新的 Master Audio Bus(右键单击 Master Mixer Hierarchy 的 Work Unit,然后依次选择 Add > Child)。在默认情况下,所有总线均连通至 System 输出。请更改 Audio Device ShareSet,使其指向 DVR 输出。
请记住,并非所有平台都支持 DVR。对于不支持 DVR 的平台,必须取消链接 Audio Device 属性,以便指向 System 输出。另外,也可取消链接音乐对象的 Output Bus 属性。
如果游戏中要使用 DVR 输出,则必须手动添加这个输出。实现方式为使用 AK::SoundEngine::AddOutput()
一并传递 Audio Device ShareSet 名称/ID 和 AkOutputSettings
中的其他参数。
有关 示例,请参阅 <Wwise installation path>/SDK/samples/IntegrationDemo/DemoPages/DemoBGM.cpp。