一年多前,当我被叫去开发一款新的游戏时,没想到居然是大名鼎鼎的《Tetris®》系列游戏。我在 Amber 的同事罗德里戈•费祖利建议使用 Wwise 创建若干互动系统,来突显其将节奏游戏与俄罗斯方块融合的理念。 这款游戏的名字叫《Tetris Beat》。它要求玩家巧妙地摆放四联拼块来清除整行方块(还有人没玩过吗),其每一步操作都要压着拍子完成,同时尽量减少错过连击得分的次数。在理想情况下,玩家会在现代音乐或流行歌曲的带动下渐入佳境。
(国内观赏视频通道)
水到渠成
其中一项挑战在于要构建音乐网格来确定所有输入的准确性并以音乐的方式控制动画事件。这项任务占用了太多开发资源,但在我们集成 Wwise 之后,一切便都水到渠成了。
首先,通过 Wwise 发送一系列回调并由相应脚本捕获。然后,将这些与玩家输入进行比对来确定四联拼块的移动是否跟节拍同步。为此,我们使用了以下 AkCallbackType:AkCallbackType.AK_MusicSyncBeat、AkCallbackType.AK_MusicSyncBar 和 AkCallbackType.AK_EnableGetMusicPlayPosition。注意,这里有一个时间窗口。在此区间内,玩家的输入可被视为“操作不是很精准,但足够贴近网格”。如果输入是可以接受的,就播放与指定乐曲协调的积极音效或插播乐句;否则,会触发消极状态并播放对应的“无奖励”音效。
视效响应
对于这款游戏的每个关卡,都配有由不同艺术家创作并具有不同曲速的乐曲。有很多视觉辅助手段可以帮助玩家紧跟节拍,其中大部分由基本的同步节拍 Callback 驱动。比如,游戏场地会发出不同亮度的光,就像节拍器一样标记节拍。另外,还有一些有节奏的画面元素基于音频频率在背景舞台上律动。为此,我跟音频团队的其他成员一起设法将信息发送回 Unity 游戏引擎,以便技术美工关联到 RTPC 值来实时地对每首乐曲做出动态响应。这样他们就不用制作好几个小时跟音乐同步的动画了,而且还可以在添加了新的关卡时保证能按时交付内容。除此之外,我们还使用了 Wwise Meter 插件。该组件被用作了包络跟随器,方便将增益分析指派给 RTPC。对于每一首乐曲,我们都会将一些 Aux 声道输出到“无输出”总线。这样音量就不会加倍了;这些 Aux 声道全都带有 LP、HP 或 BP 滤波器,方便以分频或多频段处理器的方式分隔频段,以此来限制各个 RTPC 捕获的频率范围。在有些情况下,我们还添加了单条 Ghost 音轨以分开处理人声、贝斯或鼓声等关乎画面表现的元素。
Tetris ® & © 1985~2022 Tetris Holding.
借助单独的 Ghost 音轨,我们可以夸大起音电平来提高响应速度,甚至还可在白噪声音轨上应用音量包络和 LFO,来营造渐变、脉动和韵律效果,并让电平表按照所需方式运作。在 Meter 属性内,可对指派给 RTPC 的值进行校准,来限制 dB 范围并确保仅向视效美术师发送有用的数据。此外,在将这些 Ghost 音轨传给 Unity 游戏引擎前,还可为其应用补偿增益。这样开发人员或技术美工在每次播放给定频率范围或乐器振幅包络时都可获得 0 ~ 100 的恒定值。
Tetris ® & © 1985~2022 Tetris Holding.
Spatial Audio
近年来,市面上推出了很多配有加速度计并可对多声道内容实施双耳渲染的耳机产品。藉此,玩家可以在游戏当中获得身临其境般的沉浸视听体验。
之前,玩家只能看着固定不变的游戏场地。这次,我们选择了打破这种僵化的游戏模式。为此,工程师们设法将某些功能跟加速度计关联了起来,以便将头部位置值转变为 Wwise 听者旋转。在 iOS 中激活对应选项时,音频内容会随着玩家头部转动实时变换,从而实现对音频的声像摆位。这样无论看向哪一侧,声音都会留在屏幕上。这也使得玩家能够“跟随”环绕声场中经过声像摆位的声音。对此,所有常用衰减参数(如滤波器、散布和音量)都将通过 Wwise 进行控制。
为了增强音频内容,我们还准备了专门的分轨。只要配有环绕声系统、条形音箱或模拟耳机,就会在后部声场中播放这些分轨。有些音轨,通常是那些有音乐内容在立体声场中变换的音轨,很自然地就可以转换为在后部播放。还有一些乐曲元素(如过渡)可以在环绕声环境中自动营造微妙的环绕感。得益于 iOS 中内嵌的 Spatial Audio 功能,剩余工作直接交给玩家设备上配备的双耳渲染来处理就行了。
Hard Drop 插播乐句
对一款配有由全球各地艺术家创作的各类音乐的游戏来说,每次玩家压着拍子得分时都播放相同的积极音效有点单调。为此,我们专门制作了一组与每首乐曲都很协调的声音。对此,我们使用了 Wwise Container。其中包含调到特定音阶的各种乐句、打击乐声或乐曲元素。它们被指派为在相同操作当中播放,但被设为了 Wwise State 以在特定乐段变换。有时,在完成连击或一系列打击乐时,可以听到一连串有旋律的声音。如此一来,玩家便可获得游戏和音乐的双重享受。
实时效果器和参数控制 (Fever Time)
作为乐曲的高潮,每次玩家累积一定数量的正确输入时都会触发 Fever Time。对玩家来说,这被视为“狂热时刻”,就跟明星 DJ 在混音器中旁通 LF 声道并使用效果器和节奏辅助工具随性发挥一样。为了实现这一解决方案,我们使用了 Auxiliary Send,来将来自音乐轨的音频放到效果器链中;随着发送音量的增加,画面会增强玩家体验。在该奖励环节结束、游戏恢复正常模式时,会以全带宽播放音频并将具有空间感的音效切换为普通音效。这时的音乐会有一种落差感。
动态 Hard Drop 乐音
《Tetris® Beat》现已登陆 Apple Arcade:https://apps.apple.com/us/app/tetris-beat/id1536485727
|
RODRIGO FERZULI |
评论