Wwise SDK 2019.1.11
|
Integration Demo 应用程序包含一系列的演示,展示如何在游戏中集成声音引擎的各种功能。
![]() |
备注: 本节中展示的所有代码在“samples\IntegrationDemo\”目录下的工程示例中都可以找到。 |
此程序的 Wwise 工程也可在“samples\IntegrationDemo\WwiseProject”中找到。
![]() |
备注: 此程序的 Wwise 工程使用各种音频文件转码格式,某些格式可能不可用,具体取决于安装的 Wwise 支持的平台。在 Wwise 中打开工程后,您可能会看到诸如以下警告: '\Actor-Mixer Hierarchy\Dialogues\Captain_A\UNA-BM-AL_01\UNA-BM-AL_01' uses the conversion plugin 'XMA', which is not installed. 您可以将所有不可用平台的转码格式更改为 PCM,从而移除这些消息。有关详细信息,请参阅《Wwise 用户指南》中的以下主题:音频文件转码。 |
此工程的 SoundBank 也与 SDK 一起安装在“samples\IntegrationDemo\WwiseProject\GeneratedSoundBanks”文件夹中。
要重新生成 SoundBank,请确保在 SoundBank Manager 中执行以下操作:
这些设置一旦正确,您可以在 SoundBank Manager 中单击 Generate 来生成 SoundBank。
Integration Demo 二进制文件位于“\[Debug|Profile|Release]\bin”目录下。如果您想自己重新构建此应用程序,则按照以下步骤执行:
要运行 Integration Demo,只需启动在上述目录中找到的可执行文件即可。
adb install IntegrationDemo.apk
。备选构建方法 – 采用 Android Studio:假如已安装 Android Studio,我们会提供一个用于编译和部署 Integration Demo 的 Gradle 工程。直接在 Android Studio 中打开 samples\IntegrationDemo\Android 目录,应该就可以构建并启动应用程序了。
![]() |
备注: 您将需要使用软件键盘或硬件键盘与 Integration Demo 进行互动。使用 A、W、S、D 键导航。使用 Enter 选择。使用空格键返回。 |
在 Windows 中,您可以使用键盘、连接的控制器或任何 DirectInput 兼容设备浏览 Integration Demo。
某些控件(例如切换控件和数字滑块)可让您修改数值。要修改数值,单击 LEFT 和 RIGHT 方向键或者游戏手柄上的 LEFT 和 RIGHT 按钮。
![]() |
技巧: 此应用程序有联机帮助功能!要访问帮助页面,按键盘上的 F1 键或者游戏手柄上的 START 按钮。 |
所有演示代码均可在 samples\IntegrationDemo\DemoPages 目录中找到。例如,您可以在该目录下的 DemoLocalization.h 和 DemoLocalization.cpp 文件中找到 Localization 演示代码。
![]() |
技巧: 有关每个演示的相关信息也可在 Integration Demo 应用程序联机帮助中找到。 |
此演示展示如何实现本地化音频。本地化的音频对象位于 SoundBank 生成目录的子目录下的相关语言 SoundBank 中。我们通过卸载当前 SoundBank,然后加载期望的特定语言的 SoundBank 来达到本地化效果。
使用“Language”切换控件切换当前语言。然后按 Say Hello 按钮试听选定语言的问候。
有关语言和本地化的更多信息,请参阅 集成详情——语言与语音 。
Dynamic Dialogue 演示运行一系列使用 Wwise Dynamic Dialogue 功能的测试。每项测试演示不同的控制流程,以便您可以试听它产生的效果:
有关动态对白的更多信息,请参阅 集成详情——动态对白
此演示展示如何使用 RTPC。RPM 数字滑块链接到与发动机相关联的 RTPC 值(RPM)。按“Start Engine”按钮启动/停止汽车发动机音频。使用 RPM 滑块更改 RTPC 值并试听效果。
有关 RTPC 的更多信息,请参阅 集成详情——RTPC 。
此演示展示在游戏中实现脚步声的各种方式。它还展示了基于表面类型驱动的 SoundBank 管理,以最大限度地降低当某个表面类型不用时的媒体和元数据内存占用。最后,此演示还展示了一个非常简单的环境效果器示例。
在此示例中,脚步声通过 3 个变量来修改:表面类型、行走速度和行走人体重。
对于每种表面,我们展示了处理声音样本和变量的不同方式。它们只是一些您可以在自己的结构中使用的建议和想法。
音频包管理: 在 Footsteps 演示中,音频包分为四个媒体音频包(每种表面各一个)。我们将屏幕一分为四,每种表面之间有一个缓冲区,在该缓冲区内要加载两个媒体 SoundBank。其目的在于避免加载媒体 SoundBank 时导致脚步声中存在间隙。在 SoundBank 管理器中,查看 GameSync 选项卡。注意,每个表面 SoundBank 仅包含相应的表面 Switch。这仅包括与该 SoundBank 中的切换开关相关的层级结构,与其它的无关。在大型游戏中,这一设置有限制特定场景中用不上的样本数量,从而限制内存占用的优势。对于基于关卡或分区的游戏,识别所用的表面非常容易,因为在设计阶段就已经知道了。对于开放世界式游戏,这更为棘手,很大程度上取决于游戏的组织,但仍可以实现。例如,如果玩家目前位于一个温暖的城市,在长时间内不会移到寒冷的环境,那么在内存中保留“冰雪”表面声音则没有任何用处。
此演示展示如何设置回调函数以在点击声音文件内部的标记时接收通知。对于此演示,我们使用标记来对字幕和音频轨进行同步。
有关标记的更多信息,请参阅 集成 Marker 。
此演示展示一般如何使用音乐回调。节拍和小节通知从音乐节拍和拍号信息中生成。
此示例强制随机播放列表按顺序选择下一项目。播放列表项目也可通过回调来阻止。
展示在回调期间游戏可收到的 MIDI 消息。MIDI 消息包括 MIDI 音符、CC 值、弯音、触后和程序变化。
有产在音乐回调的更多信息,请参阅 集成详情——音乐回调 。
此示例使用音乐切换容器。尝试切换 State,方法是触发在演示页面中所列的 Event。切换状态可能产生立即结果,或者在音乐容器规则中指定的时间发生状态切换。
本例展示了如何使用 MIDI API。按下 Start Metronome 按钮,以模拟生效的节拍器。然后,选择 BPM 滑杆并按下 LEFT 或 RIGHT,以更改该值。该演示将使用注册的回调函数,并通过 PostMIDIOnEvent
函数将 MIDI Event 发布至声音引擎。
这是多人游戏演示,展示如何将 Wwise 的振动引擎集成到游戏中。
在此演示中,每个玩家可选择是关闭房门还是使用他们手中所持的枪支开枪。靠近门这个游戏对象的每个玩家和玩家自己的枪支都设有听者。通过这种方法,当任何玩家关门时,所有玩家都会收到强制反馈反应。然而,只有开枪的玩家才会收到该事件的强制反馈。另外,在 PS4 上,将只在各个玩家对应的游戏控制器扬声器中播放枪声。
![]() |
备注: 使用键盘的玩家应插入游戏手柄来参与此演示。 |
此代码展示了如何使用二路输出、Wwise Motion 以及 Listener/Emitter 管理。
此演示展示如何记录来自话筒的音频以及在 Wwise 声音引擎中输入该音频。在 Integration Demo 中,选择“Microphone Demo”,并对着话筒讲话,以试听从 Wwise 声音引擎播放出来的您的声音。切换“Enable Delay”以试听送入到音频输入插件中的音频数据如何被处理,如同在 Wwise 中创建的任何其它声音一样。
每个平台用来访问话筒的核心 API 大不相同。检查 Integration Demo 代码中的 SoundInput
和 SoundInputMgr
类以查看它们如何与 AudioInput 插件互动。
![]() |
备注: 此演示适用于以下平台:Windows、UWP、macOS、iOS 和 tvOS。 |
这些演示展示了如何在 Wwise 中以各种方式进行 3D 定位。
在进入页面时,即开始播放直升机声。使用以下按键沿 X 和 Z 方向移动 o(屏幕平面):
此演示仅设有一个位置。
此演示设有两个位置。
此演示展示了 Portal 在空间音频定位中的作用。在两个 Room 中均设有门户及可移动发声体和听者时,将在左下角显示声音传播路径及最终衍射量。除门户驱动的传播外,同空间声障还会使用原生游戏端声障算法(发声体与听者的关系和门户与听者的关系)。最终,此演示展示了如何使用 Room 来播放多声道环境声/房间底噪,并在门户位置收缩成点声源。
此演示展示了可用于直达(干声)路径衍射并与 Wwise Reflect 插件结合使用的 Wwise Spatial Audio Geometry API(不过,演示中并未使用 Reflect)。在设有两个墙壁及可移动发声体和听者时,将在左下角显示衍射路径及最终衍射量。Spatial Audio 设为通过衍射同时控制工程全局声障和 Diffraction 这个内置参数。不过,工程中仅使用了前者。
此演示展示了仅用在总线层级结构中的定位。在 Position + Orientation 3D Spatialization 和 Attenuation 仅应用于总线时,声音引擎在 3 个子声音混合在一起后才会应用空间化。
此演示展示了可移动发声体和听者之间的交互作用。在 Room 内设有 Portal 时,清晰展示了:
3D 总线首先应用混响效果器,接着对输出进行定位和空间化,然后在 Master Audio Bus 中混音。
此演示展示在设有 Portal 的两个不同 Room 内,可移动发声体和听者之间的交互作用。根据游戏对象的位置,当 Room 离发声体够近时发声体输出声音将会激活该 Room 的声学效果。
3D 总线首先应用混响效果器,接着对输出进行定位和空间化,然后在 Master Audio Bus 中混音。
此演示展示如何使用外部源。两个按钮播放同一声音结构,但在运行时使用源“1”、“2”和“3”或源“4”、“5”和“6”设置。
另外,外部源在文件包装程序中打包,并在打开演示页面时加载。请参阅 Wwise Help 了解有关 File Packager 的更多信息,并参阅 流播放/流管理器 一章了解有关文件包运行时情况的更多详情。
本例展示了 Xbox One 和 PS4 相关 DVR 法律要求的应对措施。由于很多游戏中的音乐都受版权保护,所以一般不允许使用内置 DVR 进行录制。此演示展示了使用和不使用 DVR 录制的声音之间的差异。请参阅 Wwise Project 并检查 BGMDemo 文件夹中的声音设置,同时注意其通路及所用 Audio Device。Non-Recordable 声音将被发送到输出至 DVR_Bypass 输出的总线。
Integration Demo 及其 Wwise 工程做得非常简洁,其目的是演示声音引擎集成的基础知识。有关更加逼真的集成工程,请参阅 AkCube 声音引擎集成工程示例 。