以下是所有工程示例的列表,这些工程作为本 SDK 的一部分发布。
请参阅 目录结构 了解有关 SDK 中例程位置的更多信息。
Integration Demo 是包含多个小型演示的应用程序,展示如何在游戏中集成各种 Wwise 功能。
它目前包含指示如何集成以下功能的演示:
有关 Integration Demo 的更多信息,请参阅 Integration Demo 示例
以下源插件和效果器插件与 Wwise 一起安装,但它们作为例程也是本 SDK 的一部分。
|
Caution: 如果您在此例程基础上开发您自己的插件,请确保参阅 WwiseObject元素 了解有关插件 ID 的重要信息。 |
这一简单的源插件可以让音频设计师选择正弦波音的频率、增益和时长。
位置:“samples\Plugins\AkSineTone”
这一更加高级的源插件为音频设计师提供更大的控制权,用户可以添加使用不同波形、横跨预定义的频率范围、指定自定义包络,以及将频率随机化。
位置:“samples\Plugins\AkToneGenerator”
此插件可以让声音设计师使用来自外部源(例如网络流或连接到 PC 声卡的话筒)。
位置:“samples\Plugins\AkAudioInput”
请参阅 音频输入源插件 了解有关此插件的更多信息。
这是一个简单的延迟效果。
位置:“samples\Plugins\AkDelay”
这是一个将音频连通到自定义声卡的简单音频设备插件。(仅限于 MAC 和 Windows)
位置:“samples\Plugins\AkSink”
这是将 Wwise 声音引擎集成到开源第一人称射击游戏中的完整示例。如果您还没有下载安装的话,可以从 Audiokinetic 下载页面下载游戏和 Wwise 工程。有关更多帮助和信息,请联系支持人员。
此 DLL 中组合了声音引擎的各个模块,并提供简单的初始化、终止等功能来简化集成过程。如果您选择把与声音引擎有关的所有库组合到一个 DLL 中来使用您的 Windows 版本游戏,则可以从此工程示例入手来开始创建 DLL。请参阅 AkCube 声音引擎集成工程示例 了解在游戏中如何使用此 DLL 的示例。
|
Note: 此工程使用了以下讨论的 默认底层 I/O 实现 。 |
位置:“samples\SoundEngine\Win32”
实现 Low-Level I/O(底层 I/O)接口(在 AkStreamMgrModule.h 中定义)是把 Wwise I/O 集成到游戏中的首选方法。SDK 提供 Low-Level I/O 的平台专用默认实现。请参阅 流播放/流管理器 了解 Wwise I/O 的概述 .
这些示例可按原样使用,也可抛砖引玉,用来实现您自己的底层 I/O 系统。集成 Wwise I/O 简单明了地解释了如何使用和为何要使用这些示例。
默认实现示例纵览 以更详细的语言描述默认底层 I/O 实现示例。
位置(通用):
位置(平台专用):
另外,可使用 CAkDefaultLowLevelIODispatcher 类来管理有多台设备的 I/O 系统。
位置(通用):
此示例支持使用通过 File Packager 实用程序生成的文件包,增强了默认底层 I/O 实现(请参阅 File Packager 实用程序 )。请参阅 Low-Level I/O 了解底层 I/O 模块背后概念的解释。本节末尾提供了文件包底层 I/O 实现的功能说明(示例 File Package Low-Level I/O 实现纵览 )。
您可以通过在游戏中加入以下类和 Default Low-Level I/O 的代码,在游戏中直接使用文件包。您还可以编辑此实现和 File Packager 来加入您自己的游戏相关文件。如果您计划对游戏中的所有 I/O 使用 Audiokinetic 的 Stream Manager,这特别有用。或者,代码可视为一种概念验证,帮助您实现您自己的将文件 ID 映射到文件描述符的策略。
位置:
CAkFilePackageLowLevelIO<> 是一个模板类,用来向底层 I/O 挂钩的平台专用默认实现添加服务。文件包底层 I/O 类的具体定义位于平台的文件夹中:
File Packager 实用程序用于创建可结合上述文件包底层 I/O 使用的文件包(文件包底层 I/O 实现 )。它的可执行文件随 Wwise 一起安装,位于 Tools\ 子文件夹中。Wwise SDK 提供此实用程序的源代码,您可以改进这些源代码,也可以只用来参考查阅。
位置:"samples\Tools\FilePackager"
File Packager 将针对给定项目的给定平台把 Wwise 生成的所有文件即 SoundBank 和流播放音频文件连接起来,声音引擎在运行时会阅读这些文件。File Packager 一般在生成 SoundBank 后使用。它有用户界面,在此界面中,您可以编辑和保存包中文件的顺序。它还可以“生成模式”启动,在此模式下,将直接生成文件包底层 I/O 可以加载的文件包。请参阅 Wwise Help 了解有关 File Packager 的详情,包括其用法、其命令行参数以及指定在生成 SoundBank 过程结束时自动执行的命令行。本节的其它内容简短地介绍 File Packager 代码的类。
File Packager 采用 C# 编写。类 GenerateModeAppContext 以“生成模式”处理应用程序,EditModeForm 以“编辑模式”(UI)处理。分组到“Package Layout”文件夹中的类处理编辑模式 UI 的业务逻辑和布局的持续性。打包操作以 SoundBanksInfo.xml 文件的内容为基础(在“Info File”文件夹中的类的帮助下进行解析)。SoundBanksInfo.xml 文件按平台枚举项目的所有 SoundBank 和流播放音频文件(请参阅 SoundBanksInfo.xml 了解更多信息)。
应用程序调用 FilePackageGenerator::Generate() 执行文件打包,后者使用“File package header”文件夹中的类执行。以下是文件打包的步骤(SoundBanksInfo.xml 被称为 INFO 文件):
显示生成过程和消息的 UI 窗体采用类 Progress(“UI”文件夹)实现。它听取 FilePackageGenerator 的进度通知。
请参阅 Wwise 帮助了解 File Packager 命令行参数的说明。
为了使用文件包(采用 File Packager 实用程序 或任何其它工具创建),您需要编写底层 I/O 代码来处理文件包。基本上它需要为包中所请求的文件的偏置指定正确的 AkFileDesc::uSector() 值。
类 CAkFilePackageLowLevelIO 提供用作例程。它是默认底层 I/O 的延伸,可按原样用于通过 File Packager 创建的文件包。您只需要初始化 CAkFilePackageLowLevelIO 即可,而无需初始化 CAkDefaultLowLevelIO。因此,在采取任何行动之前,您需要通过调用 CAkFilePackageLowLevelIO::LoadFilePackage() 显式地加载文件包。底层 I/O 将打开并解析文件包的头,创建它的查询表。它不会加载内存中的实际打包文件。因此,在每次 Stream Manager 调用 AK::StreamMgr::IAkFileLocationResolver::Open() 时,Wwise 都会在所有包中查找此文件。如果找不到,则调用默认实现。
在此示例中,搜索文件包的顺序与加载它们(使用 LoadFilePackage())的顺序相反。如果您使用文件包实现 DLC,您的游戏则应该先加载“基础”(默认)文件包,然后再加载 DLC 文件包。CAkFilePackageLowLevelIOOpen() 将因此先在 DLC 文件包中搜索。如果某个文件同时存在于 DLC 文件包和“基础”文件包中,将选用 DLC 文件包中的文件。
请参阅上文所述的 文件包底层 I/O 实现 中对此实现示例的简短描述。在此,您将发现其它文档相关部分的链接(例如底层 I/O 例程纵缆)。
CAkFilePackageLowLevelIO 和相关联的 File Packager 实用程序 代码可用来抛砖引玉,实现更复杂文件打包解决方案。
Copy Streamed Files 实用程序可用于替代 File packager 或与它并行使用。它采用外部工具的形式实现,作为例程提供,便于您修改它或将它用作创建您自己工具的基础。它采用 C# 编写。
此工具可将流播放文件从项目的缓存中复制到 SoundBank 文件夹中。它的可执行文件随 Wwise 一起安装,位于 Tools 子文件夹中。如果您修改此工具,则请确保更新公司中运行 Wwise 的所有机器(程序员、声音设计师、编译机器……)中的可执行文件。
位置:"samples\Tools\CopyStreamedFiles"
如 使用 SoundFrame(已弃用) 中的解释,SoundFrame 可让您将 Wwise 连接到其它设计工具,例如 3D 应用程序和游戏编辑器。请参阅 使用 SoundFrame(已弃用) 了解更多信息。
这是演示 SoundFrame API 用途的简单应用程序。
位置:"samples\SoundFrame\SFTest"
有关这些插件示例的详细信息,请参见 版本控制插件例程 。
这是示例 DLL 工程,显示如何为 Wwise 创建版本控制插件。它不执行版本控制操作,但可用作开发此类插件的框架。
位置:"samples\SourceControl\SourceControlSample"
请参阅 基本版本控制插件示例 了解更多信息。
这是 Wwise 中默认包含的 Perforce 插件。它可以让您在 Wwise 设计工具中执行 Perforce 操作。其中包含完整的源代码,为您提供版本控制插件的完整示例。如果您愿意,它还可以让您自定义和增强此插件。
位置:"samples\SourceControl\Perforce"
请参阅 Perforce 版本控制插件示例 了解更多信息。
这是 Wwise 中默认包含 的 Subversion 插件。它可以让您在 Wwise 设计工具中执行 Subversion 操作。其中包含完整的源代码,为您提供版本控制插件的完整示例。如果您愿意,它还可以让您自定义和增强此插件。
|
Note: 此插件当前仅提供 32 位版本。 |
位置:"SDK\samples\SourceControl\Subversion"
请参阅 Subversion 版本控制插件示例 了解更多信息。
Wwise Authoring API (WAAPI)包括多个小演示,展示了如何用以下三种编程语言编写各种特性和功能:C++,JavaScript,和Python.
C++文件夹包含一个展示如何实现以下功能的演示:
JavaScript文件夹包含几个演示,展示了各种连接到Wwise的协议,比如:
除了提供简单连接的例子,JavaScript 文件夹也包含更多的动手实例,探索了通过 Wwise Authoring Protocol(Wwise设计协议)可用的不同功能:
Python 文件夹包含了展示连接到 Wwise 所使用的不同协议: