如何在 Unreal Engine 中播放来自 Wwise 的声音

Wwise 技巧和工具

Wwise 有很多功能;不过在开发初期,如果不是很清楚如何使用,其可能无法按照预期运行。我不想各位因为最初的小插曲而觉得 Wwise 太难用,所以请允许我在此详细地讲解一下。只要按照这里描述的步骤操作,就不会出错。

在这篇博文中,我将介绍如何通过 Unreal Engine 来播放声音。

为了验证所述操作是否可行,我使用了以下软件版本:

  • Wwise 2023.1.1.8417
  • Unreal Engine 5.3.2

注意,如果使用其他版本,行为可能有所不同。

 

目录

创建工程
创建 Unreal 工程
    集成 Unreal Integration
    Wwise 初始设置
    Unreal 初始设置
在 Wwise 工程中注册声音
创建 UAsset
通过 Blueprint 播放声音
最后总结
附录 – 示例文件夹配置
    将所有内容放在 Unreal 工程内
    将 Wwise 工程放在 Unreal 工程外
附录 – 如何创建 UAsset
附录 – 快速播放声音
    利用 AkAmbientSound 播放声音
    利用 Blueprint 播放声音
    利用 C++ 播放声音

 

创建工程

创建 Unreal 工程

1. 打开 Unreal Engine 并依次选择 GAMES > Third Person。
2. 在 Project Name 字段中指定工程名称。
• 在本例中,我将工程命名为了 ThirdPerson_Tutorial。
3. 单击 Create 按钮创建新的工程。
4. 在创建工程后,会打开 Unreal Editor 视图。不过在这里,我们先来将其关闭。

01_Unreal_Create_Project

 

集成 Unreal Integration

1. 打开 Audiokinetic Launcher,然后选中 Unreal Engine 选项卡。
2. 点击与刚才创建的 ThirdPerson_Tutorial 工程对应的 Integrate Wwise in Project... 按钮。

02_Integrate_Wwise

3. 确认所要集成的平台。
4. 若不指定 Wwise 工程路径,将在 Unreal 工程下自动创建 Wwise 工程。
• 若之前已在某个地方创建 Wwise 工程,请在此处指定路径以使用该工程。
5. 点击 Integrate 按钮。

03_Integrate_Wwise_Menu

6. 这样就完成集成了。
7. 接下来,要更新 Wwise 工程,请依次单击 Open in Wwise > Wwise 2023.1.1.8417。

04_Open_in_Wwise

 

Wwise 初始设置

1. 依次转到 Project > Project Settings > SoundBanks,然后选中 Enable Auto-Defined SoundBanks。
2. 保存 Wwise 工程,然后重新打开 Unreal Engine。

05_Wwise_Initial_Settings

 

Unreal 初始设置

1. 依次选择 Edit > Project Settings...。
2. 依次转到 Wwise > User Settings > WAAPI,然后启用 Auto Connect to WAAPI。

06_Unreal_Initial_Settings_1

3. 依次转到 Wwise > Integration Settings > Installation > Root Output Path,然后指定 Wwise 工程的 GeneratedSoundBanks 文件夹。
• 若将此字段留空,则将引用 Content 文件夹。这样会无法正确播放声音。

07_Unreal_Initial_Settings_2

4. 在打开 Unreal Engine 时,Wwise 设计工具会显示 External Project Changes 警告对话框。在此,请单击 Reload 按钮。

08_Unreal_Initial_Settings_3

5. Wwise Browser 中会显示警告消息,表明未找到 SoundBank 元数据。不过不用担心,直接单击 Generate SoundBanks... 按钮即可。

09_Unreal_Initial_Settings_4

6. 在 Generate SoundBanks 对话框中,单击 Generate 按钮以生成 SoundBank。这时会在 Wwise Browser 中显示目录配置。

10_Unreal_Initial_Settings_5

 

在 Wwise 工程中注册声音

接下来,我们试着播放环境声。
在此,我们选用 IntegrationDemo 文件夹中的声音:
•<Wwise>\SDK\samples\IntegrationDemo\WwiseProject\Originals\SFX

1. 将 waves.wav 文件从此文件夹拖放到 Actor-Mixer Hierarchy 下的 Default Work Unit。这时会打开 Audio File Importer 对话框。

11_Register_Assets_1

2. 单击 Import 按钮。这时会将其注册为名为 waves 的 Sound SFX。

12_Register_Assets_2

3. 在 Project Explorer 中,选中刚才注册的 "waves" Sound SFX 以在右侧显示该对象的相关信息。

13_Register_Assets_3

4. 在 General Settings 选项卡中,有个 Loop 设置。请选中与之对应的复选框。

14_Register_Assets_4

5. 右键单击 "waves" Sound SFX,并通过菜单创建以下 Event:
•Play_waves:播放 "waves" Sound SFX
•Stop_waves:停止播放 "waves" Sound SFX

15_Register_Assets_5

6. 在完成以上步骤后,保存 Wwise 工程并重新打开 Unreal Engine。

 

创建 UAsset

要播放声音,需创建 Unreal Engine 素材 (UAsset)。
有多种方式可以创建 UAsset。在此,我来展示一下如何使用 Reconcile 来做到这一点。

1. 首先,创建 SoundBank 来将之前添加的 Event 包含在内。

16_Create_UAssets_1

2. 然后,在 Wwise Browser 中单击 Reconcile 按钮。

17_Create_UAssets_2

3. 接着,确认将 UAsset Operation 设为 Create,然后单击 Reconcile Unreal Assets 按钮。

18_Create_UAssets_3

4. 这时便会创建 UAsset。在 Wwise Browser 中,选中 Wwise UAssets Status 列。

19_Create_UAssets_4

 

通过 Blueprint 播放声音

在本文中,我将向各位展示如何通过 Blueprint 来播放声音。

1. 在菜单中选择 Open Level Blueprint。

20_Play_by_BluePrint_1

2. 右键单击 Blueprint 视图来创建 BeginPlay Event。

21_Play_by_BluePrint_2

3. 从 BeginPlay Event 拖动连线来创建 PostEvent 节点。

22_Play_by_BluePrint_3

4. 在 Ak Event 中,设置 Play_waves。

23_Play_by_BluePrint_4

5. 编译。

24_Play_by_BluePrint_5

6. 不做任何其他更改,直接单击 Play 按钮。

25_Play_by_BluePrint_6

7. 现在应当可以听到波形的声音了!

26_Play_by_BluePrint_7

 

最后总结

为了确保相关操作切实可行,我按照本文中的步骤亲自做了验证。不过,有些步骤或截图可能会随着未来版本的升级而改变,所以如果各位发现跟我在这里的描述不同的行为,请在评论区告诉我。
若想了解其他功能,也请在评论区留言。

 

附录 – 示例文件夹配置

将所有内容放在 Unreal 工程内

您可以包含 Wwise 工程中的 Generated SoundBanks 文件夹,并将整个 Wwise 工程放在 Unreal 工程内。

27_Wwise_in_Unreal

  • 优点:所有内容都在同一文件夹/存储库中。
• 缺点:非声音设计师也要下载 Wwise 工程(尽管其并不需要 Wwise 设计工具)。

 

将 Wwise 工程放在 Unreal 工程外

您可以将 Generated SoundBanks 文件夹放在 Unreal 工程内,而将 Wwise 工程放在 Unreal 工程外。

28_Wwise_outside_Unreal

  • 优点:非声音设计师无需下载 Wwise 工程。
• 缺点:内容会被放到多个文件夹/存储库中。
*提示:为了能在 Unreal Editor 上运行,至少要配置 Generated SoundBanks 和 Windows 文件夹下的文件。

 

附录 – 如何创建 UAsset

A) 在 Wwise Browser 中,将 Event 拖放到 Content Browser。

29_Create_UAssets_1

B) 右键单击 Event 并从菜单中 Import Selected Assets。
• 您可以指定多个 Event 或文件夹。

30_Create_UAssets_2

C) 另外还可通过将 Event 从 Wwise Browser 拖放到 Actor 属性或目标 Blueprint 组件来创建 UAsset。

31_Create_UAssets_3

32_Create_UAssets_4

D) 仅对于 Event 可通过从 Wwise Browser 拖放到视口来同时生成 UAsset 和 AkComponent。

33_Create_UAssets_5

在执行步骤 CD 时,会在 Edit > Project Setting > Wwise > Integration Settings > Asset Creation > Default Asset Creation Path 中的给定位置生成 UAsset。

34_Create_UAssets_6

 

附录 – 快速播放声音

利用 AkAmbientSound 播放声音

1. 放置 "AkAmbientSound" Actor。

35_Play_by_AkAmbientSound_1

2. 设置要在 AkEvent 上播放的 Event。

36_Play_by_AkAmbientSound_2

3. 启用 Auto Post。

37_Play_by_AkAmbientSound_3

4. 转到 Obstruction Occlusion 并将 Refresh Interval 设为 0.0。

38_Play_by_AkAmbientSound_4

 

利用 Blueprint 播放声音

1. 选择 Open Level Blueprint。

39_Play_by_BluePrint_1

2. 创建 BeginPlay Event。

40_Play_by_BluePrint_2

3. 从 BeginPlay 创建 Post Event 节点。

41_Play_by_BluePrint_3

4. 设置要在 Post Event 的 AkEvent 上播放的 Event。

42_Play_by_BluePrint_4

 

利用 C++ 播放声音

您可以采用 AkAudioEvent.h 中定义的 UAkAudioEvent 方法来发送 Event。

1. 您可以将 Event 发送到给定的 Actor/Component/GameObject。

  • AkPlayingID UakAudioEvent::PostOnActor()
  • AkPlayingID UakAudioEvent::PostOnActorAndWait()
  • AkPlayingID UakAudioEvent::PostOnComponent()
  • AkPlayingID UakAudioEvent::PostOnComponentAndWait()
  • AkPlayingID UakAudioEvent::PostOnGameObject()
  • AkPlayingID UakAudioEvent::PostOnGameObjectAndWait()
  • AkPlayingID UakAudioEvent::PostOnGameObjectID()

2. 您可以使用空的 GameObject。

  • AkPlayingID UakAudioEvent::PostAtLocation ()
  • AkPlayingID UakAudioEvent::PostAmbient()

3. APIs that manage data loading:

  • void UakAudioEvent::LoadData()
  • void UakAudioEvent::UnloadData()
  • bool UakAudioEvent::IsDataFullyLoaded()
  • bool UakAudioEvent::IsLoaded()

合田浩(Hiroshi Goda)

合田浩(Hiroshi Goda)

合田浩 (Hiroshi Goda) 目前在 Audiokinetic K.K. (Japan) 担任高级现场应用工程师兼技术专员,负责为已在使用或考虑使用 Wwise 的客户提供技术支持。自 1997 年,他开始担任 PlayStation 的游戏程序员直到 PlayStation3,之后一直从事手游开发工作。合田于 2016 年转入网络安全行业,并于 2021 年重返游戏行业,自此开始担任现职。他拥有图像减色工具开发和 PS1 视频标准制定经验,并注册了使用 3 值 α 电影进行分层绘图的专利。事实上,他的工作更多侧重画面而非音频。

评论

留下回复

您的电子邮件地址将不会被公布。

更多文章

十条你得知道的 Wwise Launcher 用法(2019 版)

注:本文基于 2018 年初在 Audiokinetic 公众号上发表的文章《十一条你可能不知道的 Wwise Launcher 用法》,由作者针对软件更新做了改动,不影响操作的截图沿用旧版本。...

15.7.2019 - 作者:李北南

五分钟入门级音轨切换挑战

来一场五分钟入门级音轨切换挑战如何?

7.7.2020 - 作者:乔治.A.桑格 (GEORGE A. SANGER)

Wwise+GME游戏语音方案:解锁更多语音玩法,让玩家“声临其境”

导语:...

4.11.2021 - 作者:腾讯云

Wwise 2023.1 对 WAAPI 的更新

Wwise 2023.1 包含自 2017 年引入 API 以来对 Wwise Authoring API (WAAPI) 最大幅度的更新。如果还没看过 Wwise 2023.1...

1.8.2023 - 作者:伯纳德 罗德里格 (Bernard Rodrigue)

Wwise Spatial Audio 2023.1 新增功能 | 对 Aux Send 模型进行的完善

如果各位了解过 Wwise 2023.1 的新增功能,可能会注意到文档中有这么一句话:“对 Aux Send 模型进行的完善”。这个到底是什么意思呢?今天我们就来详细说说。在此,我会简要介绍对...

14.12.2023 - 作者:内森 哈里斯(NATHAN HARRIS)

教你如何选择适合自己的编解码器

9.9.2024 - 作者:马修.让(MATHIEU JEAN)

更多文章

十条你得知道的 Wwise Launcher 用法(2019 版)

注:本文基于 2018 年初在 Audiokinetic 公众号上发表的文章《十一条你可能不知道的 Wwise Launcher 用法》,由作者针对软件更新做了改动,不影响操作的截图沿用旧版本。...

五分钟入门级音轨切换挑战

来一场五分钟入门级音轨切换挑战如何?

Wwise+GME游戏语音方案:解锁更多语音玩法,让玩家“声临其境”

导语:...