《Clocker》的声音设计 - Part 2

游戏音频 / 声音设计

请阅读第一部分。

音乐

如何利用音乐控制玩家的行为

玩家在音乐里面经历的故事是有情感元素在里面的,这种情感元素实际上应该是被制作人控制的。无论是音乐制作人还是游戏制作人,需要控制玩家的情感来达成我们对这个文化作品传递的目的。游戏中一共制作了14首音乐,在下图中我们可以看到在Wwise中的列表。

image031

在整体的音乐设计上我们使用了父女主题与章节主题来做情绪的变换,看过游戏介绍的朋友已经知道父亲出现时世界是黑白色的,制作人更想突出父亲的压抑情绪。所以在制作父亲主题音乐的时候,我们整体的音乐设计偏忧伤压抑。切换到女儿的时候整体音乐的色彩偏活泼可爱。为了一些特殊场景的变化与推进剧情的发展我们在每个章节的情绪上做了一些变化,不离开整体的音乐基调,又让玩家更换章节时可以有离女儿越来越近的感觉。我们希望音乐在每一个合适的时期,进入到一个合适的情绪用来推进氛围的层次。

通过上述的手段我们想要玩家可以在女儿时间多做一些停留,游戏中女儿时间有着很多的隐藏剧情。下图中我们可以看到在餐厅门口有一个年轻人与一个老头,这时咖啡厅只有一个位置了。这两个人根据父亲的操作,在女儿出现时可以有一个人进入到其中。如果老头进入就是正常的吃饭,年轻人进入就会触发一个隐藏的剧情(这里就不剧透了)。在多次测试后,我们在玩家群中得到一个数据:大部分的玩家更愿意在女儿出现的时候多做一些停留,父亲的音乐过于压抑,我更愿意多听一会女儿的音乐来缓解一下。

到此我们希望的结果发生了,通过音乐的对比来引导玩家的行为。

CLOCKER互动音乐设计

在游戏最后的一段剧情里面,玩家要控制主角父亲走过时空的裂缝,在这段时间内迅速的老去,这一切都是为了寻找自己的女儿,是一段非常感人的剧情。玩家互动的方式就是一直控制主角不停的往前走,然后背景会出现非常华丽的变化,以体现时空的快速流逝以及年华的老去。

在这一路上 游戏会有几个阶段的内容变化:

  1. 进入时空裂缝
  2. 小心翼翼的探索并摔了一跤
  3. 开始正常行进并侧身穿过石头缝
  4. 日月星辰迅速变化,主角迅速老去
  5. 走到尽头并坠入时空的深渊

这几个阶段是一个递进的变化,所以从音乐设计上也需要递进的变化,我们根据这5个互动阶段设计了5个情绪上递进的乐段 分别是:

  1. Intro (神秘的情绪)
  2. Verse1(用柱式的和弦和简单的旋律来渲染基础氛围)
  3. Verse2(加入一些低频和Hihat宣告着探索开始)
  4. Verse3(加入鼓,吉他铺底和人声把情绪推到最高)
  5. End(沉静下来,并做结束段)
 image0335个情绪上递进的乐段设计(基础结构)

使用这样的分段方式的目的是让玩家控制的人物在这一路上感受到情感,在每一个内容变化的时候都有相应的气氛和情绪来烘托,从而感受到时光的流逝与父爱的触动。这是我们在音乐设计上考虑的第一个核心:情绪的调动。

从作曲层面上来讲,推进情绪可用的手段并不少,比如节奏,旋律,和声走向,配器等等的变化,但在Clocker的配乐里,能用的并不多,只有旋律和配器,因为我们要考虑的第二个核心内容是:互动。

这是游戏音乐和其他实用类音乐最大的区别,因为我们的画面,镜头,呈现的内容并不是固定的,而是通过玩家的操作来实时改变的,所以在音乐上需要配合玩家的行动来做相应的变化,以适应不同的玩家操作。

Clocker的这一段游戏内容中,玩家可以控制人物向前以及向后移动,也可以控制玩家站立不动,那么如果我们的音乐是一整段的播放,而玩家在中途停了下来,就会发生玩家控制的主角还在阶段2停留,而音乐已经播放到了阶段4的状况,我们创作音乐的目的就无法达成了,我们无法预估每一个玩家的行动,所以只能通过音乐的交互设计来让玩家无论怎么操作,都可以达成我们的引导目的。

这就是为什么我们可用的推进情绪的手段并不多的原因,因为要达成以上的目的,在音乐的设计上必须满足一下几点:

  • 除了IntroEnd以外,剩下的3个乐段必须要能够无缝循环,因为如果玩家一直停留在其中一个阶段(无法预估玩家会在一个阶段停留多久),我们要保证该乐段的音乐可以一直播放下去
  • 必须要保证每个阶段的乐段之间的衔接也是无缝的,需要满足切换的时候不突兀,让玩家自然而然的感受到情绪的变化
  • 必须要保证在单乐段的循环中,音乐有着不同的变化,这是为了满足在同一阶段停留时间过长的玩家耳朵不会疲劳或者听腻
  • 必须要保证玩家在进入下一个阶段的时候,乐段在最自然与最快速的情况下完成切换,否则游戏流程就会有顿挫感,情感的代入就会受到影响。如果切换速度慢,那么不能及时的在游戏内容变化的时候进入相应的音乐氛围里

基于以上几点需要满足的功能,我们做了如下的设计:

1. 每个乐段制作成可以无缝循环的LOOP,为此特地用FL STUDIO作为制作的DAW,能够更好的设计LOOP以及更好的无缝返听功能。 

image035和弦部分的循环乐段

2. 每个乐段设计同样的节奏BPM,同样的底层配器,以及同样的和声走向。我们用了1-3-6-1的和弦搭配,一个是为了满足情绪的渲染,另外一个是保证了在1-13-16-1的情况下都能够达成自然的衔接,为后面的播放逻辑设计打好了基础。

image0371-3-6-1的根音走向

3. 在每个单乐段的上层设计多个旋律和变化内容,与底层的基础乐段结构并行并且随机播放,这样能够使单乐段不断循环和重复的过程中,每次重复所听到的内容都是不一样的,但情绪又是相同的。详细见下图。

image039

4. 我们将整首曲子从横向及纵向都切分成非常多的Clip,如图所示,除了IntroEnd单独存在外,其他的3个阶段分别从横向切割成了Verse1-3,因为每段Verse6416个小节,但每8个小节32拍才是一个完整的LOOP,所以又将Verse1-3切割成了AB,以保证每一个循环都是无任何新添内容的段落。 除此之外,在纵向上,我们切分了几层旋律轨(Verse Random Part)这些轨道用于在循环时随机增添不同的内容以避免疲劳。最后单独切分出两个综合轨道(FX轨和鼓的Fills轨)用于段落之间的链接和推动情绪用(Build_verse1 to 2)。

image041

至此,我们按照需求完成了音乐的制作以及切分,然后经过几次实验和试错,决定了最后的播放逻辑。

 image043被抛弃的播放逻辑设计之一
 
image045最终确定的实现逻辑草图

在最终确定的实现逻辑中,我们按照最初的玩家游玩阶段,把地图分成了4个区域,每一个地图区域播放一段Verse,每两个区域之间的分割点作为切换Verse的触发点,当玩家控制主角移动到下一个区域的时候,当前的Verse会自动播放完一个小节4拍,然后无缝衔接到段落链接的轨道(Build_verse 1 to 2),如果是Verse2Verse3,则衔接的是(Build_verse 2 to 3),然后在无缝衔接到下一段Verse里。

这首配乐的速度是70BPM,所以在这个逻辑里,每一个小节4拍的时长是3.44秒,当人物进入触发点的时候,只需要3拍(2.58秒)到1拍(0.86秒)的时间就可以完成Verse的衔接与转换,并且是在玩家不知情的状况下自然的转换。

这个延迟的时间在我们的可接受范围之内,于是开始了声音引擎上的实现和测试。

声音引擎中的实现

我们在wwise工程中把所有的音乐段落衔接设置了过度。下图中我们可以看到整体的段落衔接安排。

image047Transitions截图

1. Intro To   A的时候我们使用了Exit Cue退出点来执行的过度。Intro是一个比较短的音乐,在游戏中玩家从Intro To A的时间很短,所以没有使用循环方式只是自然过度过去。

2. VerseA To  VerseB的时候使用了Next Bar的过度,也就是说会在这个小节播放完毕切换到VerseB。在上面我们讲过为了满足音乐的切换我们在音乐的调性设计中使用了1-3-6-1的和声走向,B段的起始和声是1级,可以完美的过度。

3. VerseB To  VerseC的时候我们使用了Next Bar与过度段落相结合来达到无缝切换的目的。从配器的角度考虑VerseC相较于VerseB更加丰满,所以衔接的位置如果不使用过渡段会比较突兀,在过度段落中我们使用了1级和声搭配了一个鼓花来把音乐切换过去。这样有了鼓花的过度吉他等其他乐器出现就不会很突兀。

image049VerseB To VerseC

4. VerseC To  VerseD时,由于C段中有两段VocalD段又正好是一个结束段落有一个强切的结束。无法使用Next Bar切换,我们无法判断玩家到底在什么时候会走到D的触发点,有可能正好卡在人声的阶段切换了段落,这样会导致之前的人声有突然的结束感,所以我们使用了Next Cue方式过度到D。下图中可以看到我们设计了两个同名的Cue点,这两个Cue点都正好设置在4小节可以结尾的位置。

image051

性能优化

Soundbank的管理

游戏中一共有22个场景,分别对应所有场景把当前场景的所有逻辑、环境声、音乐分开到不同的bank下来选择加载与卸载,这样可以很好的控制内存,优化游戏性能。下图中是soundbank界面的截图。(因为界面大小问题就不在Soundbank Manager界面中截图了)

image053Soundbank

针对不同平台的音频压缩

游戏是一个多平台类型的游戏对应WindowsAndroidMacXboxOne,现在游戏的整体音频体积已经超过1G。对于手机平台来说这个体积过于庞大,我们使用了wwise针对不同平台转码的功能,对应不同平台选择了不一样的编码格式。在安卓平台压缩后的整体包体达到了58M效果非常理想。

 image055

结语

Wwise是一款非常好的声音引擎,给予了我们很多在声音上的帮助和更多的发挥空间。感谢Wwise社区和读者朋友们,期待与大家共同学习和交流。

谭宇

资深音频设计师

一罐盐声音工作室

谭宇

资深音频设计师

一罐盐声音工作室

热爱并专注于游戏的声音设计,致力音频技术的研究与推广。

评论

留下回复

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

更多文章

《Total War: WARHAMMER 2》:我们如何创作并系统地运用音乐

可能有些读者并不熟悉《Total War》,所以有必要在此简单介绍一下。《Total...

2.12.2019 - 作者:_Creative Assembly

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

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

30.12.2019 - 作者:胡正伟

“零代码”开发小游戏—UE4蓝图与Wwise结合的设计思路 - Part 2

请阅读本文第一部分。

3.2.2020 - 作者:伍岚珊

人人都能用 WAAPI(一)概述

大家好,我是溪夜。 去年下半年我接触到了 WAAPI(Wwise Authoring API),作为头脑不怎么灵光的非专业程序员,看到 WAMP、JSON...

29.9.2020 - 作者:汪洋

加强线上交流,共建 Wwise 社区

经过多年的辛勤耕耘,Audiokinetic 取得了骄人的成绩,不仅是开发方面,全球创作者社区也壮大了不少,越来越多的人将 Wwise...

29.12.2020 - 作者:Damian Kastbauer

关于Wwise插件开发流程

前言...

24.3.2021 - 作者:李昱宸

更多文章

《Total War: WARHAMMER 2》:我们如何创作并系统地运用音乐

可能有些读者并不熟悉《Total War》,所以有必要在此简单介绍一下。《Total...

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

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

“零代码”开发小游戏—UE4蓝图与Wwise结合的设计思路 - Part 2

请阅读本文第一部分。