Version:

第28章 Wwise插件

第28章 Wwise插件

你最好明智一点,伙计! —The Outsiders, 1983

Introduction

注意:
本章的源代码可以在 GitHub 上找到: https://github.com/AMZN-Olex/O3DEBookCode2111/tree/ch28_wwise_setup

本章将介绍如何为我们的项目添加音效。O3DE 集成了 Audiokinetic Wwise。但是,安装程序不包含它,因为 Wwise 不是开源的。

注意:
Wwise 不是 O3DE 的产品。它是独立的产品。有关完整条件、许可和详细信息,请访问其网站。 http://www.audiokinetic.com/pricing

在本章中,我们将构建一个启用了 Wwise 集成的 O3DE 新安装。

安装 Wwise

  1. 浏览 https://www.audiokinetic.com/download/
  2. 下载适用于 Windows 的安装程序。
  3. 安装并打开 Wwise Launcher。
  4. 安装带有 “Authoring” 和 “SDK (C++)” 包的 Wwise 2021 版本。
注意:
在撰写本书时,Wwise 2021.1.7.7796 已经可用并使用。
注意:

如果您可以在控制台上看到环境变量 WWISEROOT,则表示安装成功。安装后,您可能需要重新打开命令控制台(甚至可能需要重新启动系统)才能看到它。

C:\git\book\build>set | findstr WWISEROOT
WWISEROOT=D:\Program Files (x86)\
Audiokinetic\Wwise 2021.1.7.7796

在 CMake 配置步骤中,您应该会看到一条消息,例如:

1>-- Using Wwise SDK at D:\Program Files (x86)\Audiokinetic\Wwise 2021.1.7.7796

您还可以通过将以下内容添加到您的 Gem 或工程中来测试它,以确认 CMake 可以看到 Wwise 安装。

BUILD_DEPENDENCIES
  PUBLIC
    3rdParty::Wwise

使用 Wwise 构建 O3DE 安装程序

注意:
我们目前使用的 O3DE 预构建安装程序不包含 Wwise Gem。

我们将构建一个新的本地 O3DE 安装程序,并启用 Wwise Gem。

  1. 克隆带有标签 2111.2 的 O3DE 存储库,以匹配我们目前在本书中使用的安装程序。
git clone -b 2111.2 https://github.com/o3de/o3de
  1. 我假设仓库是在 c:\git\o3de 克隆的。
  2. 在 c:\git\o3de\build 中创建一个构建文件夹。
  3. 在构建文件夹中,配置 CMake。这应该会选择 Wwise 安装。
C:\git\o3de\build> cmake -S .. -B .
  1. 在 c:\git\o3de\build\O3DE.sln 打开 Visual Studio 解决方案。
  2. 检查解决方案中是否存在 Gems\AudioEngineWwise。
  3. 构建 INSTALL 目标。
注意:
此步骤需要一段时间,因为它会构建整个引擎、所有 Gem 并创建本地安装。
  1. 新的引擎安装将放置在 c:\git\o3de\install。
  2. 打开 C:\git\o3de\install\engine.json。
  3. 将 engine_name 和 restricted_name 修改为 “my-o3de-2111”。
  4. 在新引擎中配置 python。
    C:\git\o3de\install> .\python\get_python.bat
  1. 注册引擎。
    C:\git\o3de\install> .\scripts\o3de.bat register --this-engine
  1. 打开 C:\Users<user>.o3de\o3de_manifest.json.
  2. 验证此引擎是否已注册。您应该会看到以下几行。
    {
      ...
      ...
      ...
    }
    "engines": [
      "C:/O3DE/21.11.2",
      "C:/git/o3de/install",
    ],
    "engines_path": {
      "o3de-sdk": "C:/O3DE/21.11.2",
      "my-o3de-2111": "C:/git/o3de/install",
  1. 通过修改 C:\git\book\MyProject\project.json 切换 MyProject 以使用这个新引擎。将“engine”从“o3de-sdk”更改为“my-o3de-2111”。
    "engine": "my-o3de-2111",
  1. 重新编译项目。
  2. 重新运行 Asset Processor。(它将重新处理所有资产)
提示:
避免在处理完所有资产之前启动 Editor。在所有关键资产准备就绪之前,可能会发生崩溃。

设置 Wwise 工程

O3DE 从称为 Sound Bank 的音频资产集合中提取音频资源。这些 Sound Bank 由 Wwise 工程生成。我们将使用 Wwise Launcher 创建一个全新的 Wwise 工程。

转到 WWISE 选项卡并启动 Wwise

最初,您不会有任何 Wwise 工程,因此您需要创建一个新工程。

在“新建项目”对话框中设置以下值:

  • 对于 Name (名称),输入:wwise_project
  • 位置:C:\git\book\MyProject\Sounds\
  • 原始文件:“使用默认原始文件目录”
  • 项目文件夹:C:\git\book\MyProject\Sounds\wwise_project
注意:

O3DE 对 Wwise 工程提出了一些隐藏的要求。

  • 项目名称必须为 wwise_project。总是。
  • 它必须放在 MyProject\Sounds\wwise_project 中,MyProject 可以是您的任何项目。

创建工程后,您将收到 Wwise Project Explorer。

Wwise 应用程序

注意:

Wwise 的工作是为 O3DE 生成 Sound Bank。但是,O3DE 希望音色库位于特定位置,这与 Wwise 设置的默认音色库路径不同。因此,在将音频文件添加到项目之前,请配置一个重要的项目设置,该设置对于使音频与 O3DE 一起使用至关重要。从主菜单中选择 Project→Project Settings…

切换到 SoundBanks 选项卡

我们需要将 SoundBack 文件夹路径从 GeneratedSoundBanks\Generic\ 更改为 MyProject\Sounds\wwise。(如果 Wwise 文件夹还不存在,请创建它。执行此作时,Wwise 将调整 path 使其成为相对 path。所以当它变为..\Wwise 的 Wise 方法。这是应该的。

O3DE的SoundBank路径

在 Actor-Mixer Hierarchy 下创建一个新的音频元素。右键单击 Default Work Unit(默认工作单元)→New Child(新建子项)→ Sound SFX(声音音效)。

New Child → Sound SFX

Sound SFX 是开始向 Wwise 工程添加音频的最简单方法。它表示单个音频效果。将新声音 sfx 重命名为 Cheer。下一步是通过右键单击 Cheer→Import Audio Files,为其分配音频资源。

此时将显示导入器对话框。选择 Add Files…并导航到 C:\git\book\MyProject\Assets\Source Audio\ 的 applause.wav。在 Audio File Importer 对话框中单击 Import。

Audio file importer 对话框

这会将 wave 文件分配给 Cheer。您应该在 Contents Editor 中看到这一点。

导入的音乐资产

提示:
您可以在选择 Cheer 时按 SPACE 键来测试声音是否是您想要的声音,以及它是否确实播放,至少在 Wwise 应用程序中是这样。

就我个人而言,我发现掌声效果太响亮了,不符合我的口味。因此,我在 Sound Property Editor 中将此声音元素的音量修改为 -8。

Wwise 中的每个音频对象都应该有两个事件:play 和 stop。O3DE 将通过这些事件作对象。您必须先在 Wwise 中明确创建它们,方法是右键单击 Cheer→ New Event→Play。

“Stop” 事件需要类似的过程:Cheer→ New Event→ Stop→ Stop。现在,在 Event Viewer (事件查看器) 和 Cheer (欢呼) 下,您应该会看到新事件。

播放和停止事件

“生成 Sound Bank”一节

  1. 从主菜单。切换到 Soundbank → Layouts。
  2. 在 SoundBankManager 下,单击 New…这将为我们创建一个新的音库。
  3. 在“New SoundBank”对话框中的 Name 下输入“Main”。单击 OK(确定)。

  1. 从 Event Viewer 中,将Play_Cheer Stop_Cheer事件拖放到 SoundBank Manager 中的 Main sound Bank 中。
  2. SoundBank Editor 窗口现在应该列在 Hierarchy Inclusion 下的事件下。

  1. 返回 SoundBank Manager,单击 Generate All 按钮。

小结

最后一步是在 C:\git\book\MyProject\Code\enabled_gems.cmake 中启用 AudioSystem 和 AudioEngineWwise gem

set(ENABLED_GEMS
  ...
  AudioSystem
  AudioEngineWwise
)

这样就完成了工程的 Wwise 设置。

注意:
您应该会在 C:\git\book\MyProject\Sounds\wwise 文件夹中看到 Main.bnk。它应该是由 Wwise 工程生成的。
注意:
本章的源代码可以在 GitHub 上找到: https://github.com/AMZN-Olex/O3DEBookCode2111/tree/ch28_wwise_setup

下一步是将这些资产导入 O3DE。下一章将向您展示如何做到这一点。