Integration Demo 应用程序包含一系列的演示,展示如何在游戏中集成声音引擎的各种功能。
![]() |
Note: 本节中展示的所有代码在“samples\IntegrationDemo$(Platform)”目录下的工程示例中都可以找到。 |
此程序的 Wwise 工程也可在“samples\IntegrationDemo\WwiseProject”中找到。
![]() |
Note: 此程序的 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,只需启动在上述目录中找到的可执行文件即可。
![]() |
Note: 安装程序中不包含这些 SoundBank,必须使用设计工具生成。 |
![]() |
Note: 安装程序中不包含这些 SoundBank,必须使用设计工具生成。 |
备选构建方法,采用 NVIDIA CodeWorks:若已安装适用于 Visual Studio 的 CodeWorks 插件,我们将提供一个用于编译和部署 IntegrationDemo 的 Visual Studio 工程。 它跟其他 Visual Studio 工程的构建或运行方式完全相同。
![]() |
Note: 您将需要使用软件键盘或硬件键盘与 integration demo 进行互动。按住 Menu 按钮 2 秒钟可打开软件键盘。 |
在 Windows 中,您可以使用键盘、连接的控制器或任何 DirectInput 兼容设备浏览 Integration Demo。
某些控件(例如切换控件和数字滑块)可让您修改数值。要修改数值,单击 LEFT 和 RIGHT 方向键或者游戏手柄上的 LEFT 和 RIGHT 按钮。
![]() |
Tip: 此应用程序有联机帮助功能!要访问帮助页面,按键盘上的 F1 键或者游戏手柄上的 START 按钮。 |
所有演示代码均可在 samples 目录中找到。 例如,您可以在该目录下的 DemoLocalization.h 和 DemoLocalization.cpp 文件中找到 Localization 演示代码。
![]() |
Tip: 有关每个演示的相关信息也可在 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 个变量来修改:表面类型、行走速度和行走人体重。
对于每种表面,我们展示了处理声音样本和变量的不同方式。它们只是一些您可以在自己的结构中使用的建议和想法。
在此演示中, SoundBank 分为四个媒体 SoundBank (每种表面各一个媒体 SoundBank )。我们将屏幕一分为四,每种表面之间有一个缓冲区,在该缓冲区内要加载两个媒体 SoundBank。其目的在于避免加载媒体 SoundBank 时导致脚步声中存在间隙。在 SoundBank 管理器中,查看 GameSync 选项卡。注意,每个表面 SoundBank 仅包含相应的表面切换开关。这仅包括与该 SoundBank 中的切换开关相关的层级结构,与其它的无关。在大型游戏中,这一设置有限制特定场景中用不上的样本数量,从而限制内存占用的优势。对于基于关卡或分区的游戏,识别所用的表面非常容易,因为在设计阶段就已经知道了。对于开放世界式游戏,这更为棘手,很大程度上取决于游戏的组织,但仍可以实现。例如,如果玩家目前位于一个温暖的城市,在长时间内不会移到寒冷的环境,那么在内存中保留“冰雪”表面声音则没有任何用处。
此演示展示如何设置回调函数以在点击声音文件内部的标记时接收通知。对于此演示,我们使用标记来对字幕和音频轨进行同步。
有关标记的更多信息,请参阅 集成 Marker 。
音乐同步回调演示——此演示展示一般如何使用音乐回调。节拍和小节通知从音乐节拍和拍号信息中生成。 音乐播放列表回调演示——此示例强制随机播放列表按顺序选择下一项目。播放列表项目也可通过回调来阻止。 MIDI 回调演示——展示在回调期间游戏可收到的 MIDI 消息。MIDI 消息包括 MIDI 音符、CC 值、弯音、触后和程序变化。
有产在音乐回调的更多信息,请参阅 集成详情——音乐回调
此示例使用音乐切换容器。尝试切换状态,方法是触发在演示页面中所列的事件。切换状态可能产生立即结果,或者在音乐容器规则中指定的时间发生状态切换。
这是多人游戏演示,展示如何将 Wwise 的振动引擎集成到游戏中。
在此演示中,每个玩家可选择是关闭房门还是使用他们手中所持的枪支开枪。靠近门这个游戏对象的每个玩家和玩家自己的枪支都设有听者。通过这种方法,当任何玩家关门时,所有玩家都会收到强制反馈反应。然而,只有开枪的玩家才会收到该事件的强制反馈。另外,在 PS4 上,将只在各个玩家对应的游戏控制器扬声器中播放枪声。
![]() |
Note: 使用键盘的玩家应插入游戏手柄来参与此演示。 |
此代码展示了如何使用二路输出、Wwise Motion 以及 Listener/Emitter 管理。
本例展示了 Xbox One 和 PS4 相关 DVR 法律要求的应对措施。由于很多游戏中的音乐都受版权保护,所以一般不允许使用内置 DVR 进行录制。此演示展示了使用和不使用 DVR 录制的声音之间的差异。请参阅 Wwise Project 并检查 BGMDemo 文件夹中的声音设置,同时注意其通路及所用 Audio Device。Non-Recordable 声音将被发送到输出至 DVR_Bypass 输出的总线。
此演示展示如何记录来自话筒的音频以及在 Wwise 声音引擎中输入该音频。在 Integration Demo 中,选择“Microphone Demo”,并对着话筒讲话,以试听从 Wwise 声音引擎播放出来的您的声音。切换“Enable Delay”以试听送入到音频输入插件中的音频数据如何被处理,如同在 Wwise 中创建的任何其它声音一样。
每个平台用来访问话筒的核心 API 大不相同。检查 Integration Demo 代码中的 SoundInput 和 SoundInputMgr 类以查看它们如何与 AudioInput 插件互动。
话筒样本都在所有平台上使用“Logitech USB Microphones”进行了测试。
此演示展示如何使用外部源。两个按钮播放同一声音结构,但在运行时使用源“1”、“2”和“3”或源“4”、“5”和“6”设置。
有关外部源功能的更多信息,请阅 集成 External Source 。
另外,外部源在文件包装程序中打包,并在打开演示页面时加载。请参阅 Wwise 帮助了解有关 File Packager 的更多信息,并参阅 流播放/流管理器 一章了解有关文件包运行时情况的更多详情。
Integration Demo 及其 Wwise 工程做得非常简洁,其目的是演示声音引擎集成的基础知识。有关更加逼真的集成工程,请参阅 AkCube 声音引擎集成工程示例 。