在现实当中运用 Wwise 制作互动音乐

互动音频 / 互动音乐 / Wwise 技巧和工具

前段时间,我决定对互动音频展开更加深入的研究。为此,我想创建一个跟工作相关的工程。希望既充满乐趣,又具有指导意义。不仅可以避免枯燥,还能提升自身技能。

正是出于以上考虑,我才想到了要构建 Robotic Orchestra (RRO)。RRO 可对输入作出反应、实施随机化处理并自主地予以改进。也就是说,作品的完成一半靠我一半靠 RRO。RRO 既要拥有乐段编排能力,还要能据此生成不同的乐曲。换句话说,这一实时循环装置必须具备 Wwise 所提供的全部互动功能。

原型

RRO 包含三个基本组件:输入端、中间件和输出端。对这三个组件,我有很多设想。最初,我侧重于围绕以下组件构建原型:

  • MIDI 输入设备 (Komplete Kontrol S88),作为输入端 
  • Wwise,作为中间件
  • 系统音频设备(立体声耳机),作为输出端 

注意,如果想快速了解如何在 Wwise 中使用 MIDI,不妨参考贝拉克•尼尔•博亚 (Berrak Nil Boya) 制作的两段视频教程(第 1 部分第 2 部分),其中提供了所需的各种信息。在经过一番探究之后,我就做了一个原型并马上投入了实践,来使用钢琴踏板测试发动机运行声音。

(国内观赏视频通道

在对原型进行完善之后,我使用了一个简单的 MIDI 控制器:Playtron。Playtron 控制器非常有意思,它可以跟任何导电的东西相连。无论是蔬菜、餐具还是人体,都可以充当音乐创作的道具。我详细探究了该控制器的用法并进行了系统梳理,然后在最近专门制作了一段与此相关的演示视频。在本文中,我会重点介绍视频中展示的各种技巧。

(国内观赏视频通道

结合使用 MIDI 和 Wwise:概述

要想在 Wwise 中使用 MIDI,需要执行几个简单的步骤。首先,要由设计工具对 MIDI 输入进行初始化。为此,可依次转到 Project -> Control Surface Devices,然后单击 Add... 添加新的设备并从列表中选择 Received From 输入设备。

RecievedFromInput

1. 合成器

操作起来非常简单。如果尝试使用 Wwise Synth One 或 Tone Generator 音频源,可通过弹奏 MIDI 键盘或触摸 Playtron 引脚来触发音符。为了播放不同的音符,必须将 Frequency Mode 切换为 MIDI Note。

MidiNote

跟 Wwise 中的其他插件一样,该工具也需要选择或创建会话。

WwiseUtility

2. 采样器

选用合成器固然便捷(复制粘贴 SynthOne 预设或直接触按来让它发声),但也可以构建采样器。不过,这需要花费更多时间,因为会有素材和 RTPC。当然,也可以将其映射到不同的音阶。如需了解如何使用 Wwise 构建更为复杂的 MIDI 采样乐器,请参阅这篇博文。除此之外,也可将采样器映射到特定的音阶。对此,我创建了没有升降调的自然小调音阶,并将其映射到了 Playtron 的半音音阶。

thesampler

3. 控制消息

除了直接使用琴键弹奏音符,还可通过 MIDI 控制器来切换 Container 或 Event。SoundCaster 视图主要用于试听 Sound 和 Event,以便访问相关属性和参数,用作节奏创作工具再适合不过了。

如果想即时调节音色或在合成器和采样器声音之间切换,直接将相应 Container 放到 SoundCaster 中即可:

samplesoundssoundcaster

A) 切换到 Control Surface Bindings 视图,接着转到 View Groups,然后创建新的文件夹并添加新的 Binding Group。

B

B2

B) 若要将其与控制器设备上的引脚绑定,可按下 Learn 并触摸要设定控制开关的对象/琴键。

C

C) 在 Learn 按钮右侧的菜单中,依次选择 Object commands -> Inspect。倘若选择 Play,则会播放循环的合成器声音。

Inspect

接下来,针对第二种音色重复步骤 A-C。若使用控制引脚检视 SoundCaster 中的对象,则会针对该输出选中对应乐器。同时,其余引脚相对于 Current Selection/Pass MIDI note 保持激活状态。这样方便选择要将哪个声部指派给各个旋律。注意,Object/Index 列中的编号要与 SoundCaster 中的对象顺序保持一致。

playtroncontrolsurfacebindings

4. Event

对我来说,之所以使用 Wwise 作为 MIDI 控制器的中间件,主要是为了能将 Wwise Event 放到 SoundCaster 中。这样的话便可创建依赖关系来播放 Interactive Music Hierarchy 下曲速同步的 Music Segment 和 Music Playlist(包括 Stinger 和 Transition),同时设置 State、Switch 和 Game Parameter。

ControlBindings2

如果所有这些都由游戏来正常触发,那么在此音乐家就相当于游戏角色了。在此,利用 SoundCaster 这款功能强大的工具,便可直接访问游戏在运行时获取的信息。

SetRhythmicState

若将 Interactive Music Hierarchy 下的循环声音或容器绑定到 MIDI 控制器,请确保设有相应的 Wwise Event 以使用 "Stop All" Event Action 来终止播放所有声音,同时还要将 Event 添加到 SoundCaster Session 中。藉此,可避免交叠播放而导致音乐杂乱、聒噪。

StopEverything

5. Game Parameter

一般来说,带有推子或电位器的 MIDI 键盘能够轻松控制 RTPC。为此,可创建新的 Game Parameter,然后转到 Control Surface Bindings,并在 Global 文件夹中设置新的绑定。接着,按下 Learn 并触摸控制器上的推子。然后,在 Property/Command Name 中依次选择 Object Properties -> Simulation Value,并在 Object/Index 列中选择之前创建的 Game Parameter。

Playtronsimulation

为了进行更加复杂精细的研究,我还使用了一个 Playtronica 乐器:TouchMe。它就像个电容传感器:控制器的一端与自己的身体部位相连,另一端与设备在有电容连通时感应到的其他装置相连。注意,控制器已被开发者预先映射为默认传送 MIDI Note 消息而非要与 Game Parameter 绑定的 CC。对此,我尝试了利用 PureData 补丁和 Python 代码构建一个由 MIDI Note 到 CC 的简易转换器。各位不妨参阅与此相关的两篇博文(第 1 部分第 2 部分)及 One Minute Wwise 视频(实现方式略有不同)。遗憾的是,最终没能成功。因为,Wwise 设计工具似乎无法理解源 MIDI 插件。效果器 MIDI 插件恐怕也不行,因为其要使用数字音频流。

后来,我抱着试试看的态度找到了 Bome MIDI Translator。此工具可将某一 MIDI 消息轻松转换为其他 MIDI 消息。

(国内观赏视频通道

接下来,便可将 TouchMe 控制器绑定到之前创建的 Game Parameter,以此来控制音量、音高、滤波器甚至某些插件属性。为了提高操作效率,不妨看看 Wwise 从 TouchMe 控制器接收的数据,并将播放时显示的最小值和最大值设为 Range 中 Min 和 Max 值。这样的话,只要触摸 TouchMe 控制器,参数值就会发生改变。

ControlSomethingPropertyEditor

以上就是有关如何结合使用 Wwise 和 MIDI 控制器的基础知识。Wwise 设计工具中执行的所有这些操作同样适用于其他各种控制器,包括 DIY 控制器(如 Arduino 或 Raspberry Pi)。不过,这是题外话了…

 

雷莎•施沃德 (Ressa Schwarzwald)

雷莎•施沃德 (Ressa Schwarzwald)

雷莎•施沃德 (Ressa Schwarzwald) 现任 TinyBuild 音频制作人,致力于互动音频技术的实践和探索。

 @the_ressium

评论

留下回复

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

更多文章

关于音频复用和高效利用的几点经验分享

大家好,“如何对音频资源做有节制、更高效的利用”,应该是大家工作中都会考虑的问题。...

30.12.2019 - 作者:胡正伟

在 Wwise 中设定 Audio Object

未来遥不可及,往日似水流年。亦如费里斯•布勒 (Ferris Bueller) 所说:“生活快速向前,时光转瞬即逝。如不偶尔驻足停留,就可能会错失良辰。”距离 Wwise 2021...

24.8.2021 - 作者:戴米安·卡斯特鲍尔(Damian Kastbauer)

Impacter 与 Unreal | 利用游戏物理控制 Impacter 插件

简介 Impacter 是最近针对 Wwise 开发的一款撞击建模插件原型(详可参阅这篇博文)。在本文中,我将介绍如何使用 Impacter 来实现声音并整合到采用 Unreal Engine...

14.9.2021 - 作者:肖恩·索拉汉(SEAN SORAGHAN)

开发ReaWwise | 第一部分 - 预生产

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

结合使用 Strata、Wwise 和 Unreal 构建沉浸游戏体验

在这篇博文中,我们将深入探讨如何使用 Strata 进行互动设计。为此,我们要在 Unreal Engine 5 工程中结合 Wwise...

31.5.2023 - 作者:蔡斯•斯蒂尔 (Chase Steele)

Wwise 开发流程改进 | 针对 Unreal Engine Preview 的 Sim-Patch 发布和开发支持

这篇博文旨在跟各位分享我们在过去几个月里对开发流程所做的一些改进。这些改进是根据 Wwise 社区用户的反馈做出的,目的是更频繁地发布 Wwise 以缩短获取下一小版本的间隔。除此之外,我们还改变了对...

28.5.2024 - 作者:纪尧姆·雷诺 (GUILLAUME RENAUD)

更多文章

关于音频复用和高效利用的几点经验分享

大家好,“如何对音频资源做有节制、更高效的利用”,应该是大家工作中都会考虑的问题。...

在 Wwise 中设定 Audio Object

未来遥不可及,往日似水流年。亦如费里斯•布勒 (Ferris Bueller) 所说:“生活快速向前,时光转瞬即逝。如不偶尔驻足停留,就可能会错失良辰。”距离 Wwise 2021...

Impacter 与 Unreal | 利用游戏物理控制 Impacter 插件

简介 Impacter 是最近针对 Wwise 开发的一款撞击建模插件原型(详可参阅这篇博文)。在本文中,我将介绍如何使用 Impacter 来实现声音并整合到采用 Unreal Engine...