锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

【CRIWARE】基于《十三机兵防卫圈》的音频整合设计理念及工程分享

时间:2023-01-24 08:30:00 g3高频电连接器

TLNOJGHw4LkSX7j9E6Lt.png

导言

如果能第一时间理解上面的乱码(visual anolog), 也许你对心中的声学现象并不那么陌生。在客观世界中,人类大脑中每时每刻都有非常复杂的操作来分析数据。因此,在实现游戏音频设计的概念之前,我们需要了解我们的听力。

在本文中,我将与大家分享日本著名游戏音频设计师金子先生参与的十三机兵防御圈的设计理念,并试图从已知的人体生理心理科学现象中探索引导游戏声音设计的方向。我希望能引入更多的技术讨论。

同时,我结合了我对游戏音频需求的相关心理声学知识,列出了一些我个人认为具有建设性意义的理论。

那么,金子昌晃式的整合思路是什么呢?

从我的角度来看,金子老师的分享最突出的是他对材料分类的逻辑思维和细节。这个想法源于他对听觉的理解。

听觉系统

从外耳传入的声音首先进入中耳,驱动三个鼓膜振动,振动能量被放大,然后转化为激励刺激(stimuli)传到内耳。在内耳中,声音首先传入控制身体平衡感知的半圆形扁管腔。然后传入耳蜗。

什么? ”no 中耳!”

由于内耳中的声音信号在液体中传播,液体中的传导能耗远高于空气。因此,中耳的主要功能是放大声音信号。

中耳结构由三个人体最小的听小骨织组成:malleus,incus和stapes。在拉丁语中,它们的意思是锤子、铁砧和搅拌机。我们体内最小的肌肉 stapedius muscle 也在其中(被搅拌机半包围),其作用是保护搅拌机连接内耳的薄膜

除了传递和放大声音外,中耳还可以调节脑压与外部气压的关系。中耳底部有一个连接呼吸系统的腔,称为咽鼓管(Eustachian tube)。当你用力屏住呼吸或打哈欠时,咽鼓管就会被打开。

此时,它会与呼吸系统中的另一个腔形成对流,中和气压,但对流过程也会影响中耳的听觉传导。这就是为什么我们在打哈欠时隐约听到一些底部噪音。

耳蜗的结构可以说是鬼斧神工。它的名字来自拉丁语cochlea,意思是蜗牛壳。而且它的内部结构也很有趣。耳蜗的主体由三个不同的蜗管腔体组成,而这三种蜗管里含有两种液体。这两种液体的振动和基底膜(basilar membrane)产生共鸣。 与基底膜相连的柯蒂氏器(organ of corti)不同长度的毛细胞可以在不同长度的毛细胞上找到(hair cells)。

我们的内耳由大约3500个内毛细胞和12000个外毛细胞组成。外毛细胞通过正负双极激励重复放大声音信号,而内毛细胞读取放大信号。蜗管底部的内毛细胞长度短,硬度高,顶部软。如果毛细胞又短又硬,这意味着这些毛细胞对高频能量的声音更敏感,反之亦然。

附着在这些毛细胞上的神经元去极化(depolirazation)所需的化学物质,然而这种物质积攒到了一定的程度便会转化成动作电位,传输给大脑。我们的听觉范围(20hz-22000hz)也是由这些内毛细胞而决定的。

正是因为这种毛细胞的结构,我们的听觉才会表现出下面介绍的一系列现象。

理论引导

1、心理声学

在金子老师带给我们的分享中,专业音频的朋友肯定会熟悉一张图片。

equal loudness contour等响曲线

对,就是Fletcher-Munson 曲线,aka等响曲线, aka“ISO266。其含义在于表示。在声压不同的情况下,人们对不同频段声音的感知是不同的

声压越大时,我们对中频信息就越不灵敏

例如:如果你在开车时听到一首歌,当音乐音量很小的时候,你会感觉很好,所以你会增加音量。当你听到更多的高音和低音时,你会感觉更饱满、更好。所以继续增加音量,直到一些不舒服的变量出现。这就是为什么绝大多数音乐制作人在制作混音时的音量通常高于平均观众。

制作游戏音频也是如此。我们不能为玩家调整音量,但如果游戏声音在音量小(我们的听力集中在中频)时表现良好,当音量增加时,我们的声音表现会更好。

我在阅读Harvey Fletcher他发现了许多有趣的故事。 他的父亲在55岁时耳鸣,这是他一生经历的重要来源。他是芝加哥大学毕业的第一个summa cum laude校友。他和他的导师在一起Robert A. Millikan油滴实验起着决定性的作用。(没错,Fletcher这项研究为真空二极管奠定了理论基础。博士毕业后,他回到母校任教,贝尔实验室的前身纽约西部电子公司连续五年邀请他出山。直到第六年,他才决定上任。当时,为了节省电话直接信号传输的成本,贝尔实验室需要找到信号处理的选择,Fletcher我的工作致力于此。直到偶然的机会,他才帮助听力不好的托马斯爱迪生设计了一个电子助听器。 他的研究也为许多领域奠定了基石。他也是一个酷爱音乐的交响粉丝。1933年,他和利奥波德·斯托科夫斯基完成了世界上第一个三维声交响乐的录音。flecther在1981犹他州去世,享年97岁。

伟大的科学家,立体声之父 Henry Fletcher

总之,作为游戏声音设计师,我们在声音方面应该有这样的目标:

让玩家在监控制作过程中尽可能地增加声音。

我们可以用一张图来模拟这个过程(纯个人观点):

当玩家点A时(声音很小),游戏音量很低,声音听不清楚。

所以我们加大声音来到点B(完全传输声音信息),我们从等响曲线中得出的结论是,如果我们增加音量,我们会感觉到更强大的低频和更微妙的高频。然后,如果环境允许,我们肯定会这样做。

所以我们继续增加音量到达或超过一点C。此时,我们的声音可能已经超出了舒适监控的范围,低频信息变得越来越强大,阻挡了中频信息。

那么,如果我们继续增加音量到达点D,就会导致更多的中频信息被掩盖,那么我们的体验就会下降。这里涉及到Henry Fletcher提出的一系列衍生理论(遮掩效应)

2、遮掩效应

游戏中出现各种声音的时间是不可预测的,所有声音都占据相同的动态余量空间。如何使用技术技术使更重要的音效突出和不重要的音效避让成为一个大话题。如何配置避让参数,我们需要了解隐藏效应。

以上我们了解了等响曲线及其广义的结论。

如果我们想让玩家同时感知两个声音,我们应该如何设计这两个声音?

通过Fastl和 Zwicker我们可以将隐藏现象总结如下图所示:

左图中有两个声音:

以绿点为代表的声压较弱的声音,以及以红点为代表的声压较强的声音。

绿线拟合了这样一组数据:

在有一个1000hz当隐藏声音时,我们的听觉感知不到隐藏声音的频率和声压。在这里我们可以观察到一个明显的现象。 当隐藏声音的频率接近隐藏声音的频率时, 被掩盖的声音需要更少的声压差才能被掩盖。

换句话说,对比频率几乎没有差异。如果一个声音想要掩盖另一个频率差异很大的声音,那么这个掩盖声音需要更多的能量

在右图中,我们可以观察到另一个现象:当两个声音的声压同时增加10时db。虽然低频和高频的能量同时增加,但低频的增加远小于高频。

然后总结两个结论,我们可以理解为:

若A声掩盖B声,那么,

(1)A频率越接近B;

(2)在高声压下,B频率越高, 遮盖效果越明显。

举个例子:

如果一个枪械射击声A的音量只需要比另一个基频相近的射击声B的音量大一点,就可以形成遮掩B的效应。

而如果射击声A要同样遮掩某个低频能量较多的爆炸声C的话,那么C对比B的音量要小很多。如果增加音量,那么ABC中的高频信息上的遮掩效果会比低频中的更明显。

接下来,我们来分析时域的遮掩效应。请看下图:

那么,这个图告诉我们什么呢。

如果有两个声音:声压较大的A遮掩声音和声压较小的B被遮掩声音。绿色曲线表示A在发声后的上限200毫秒都会遮掩B的声音的感知,而红色曲线表示A在发声前的20毫秒会遮掩B。

换句话说,遮掩效应中遮掩声音A甚至可以在不同时发声情况下遮掩B,仿佛遮掩音A长出了一个能被听觉感知而又不存在的音头和音尾(音头上限20毫秒音尾上限200毫秒)。

在这个现象上,研究还发现我们的时域分辨率temporal resolution,在高频时比较好(隐形音头音尾上限较短)。

3、音高的感知

在游戏音频中我们为了优化性能,会在素材的音高上加以随机变化来增加多样性。

如果我们遵循对音高感知的理论引导,那么我们的游戏音频会更具有带入感。因此,我们在音高的参数设定方面,应该注意哪些呢?

人耳对音高的感知是一个十分复杂的运算过程,而其中不仅仅包括对基频的感知。其他影响音高感知的因素还有谐波,音量,频域带宽等。

首先,在音量大幅度变化的时候,我们对音高的感知会产生变化。

当声音由高频信息居多时,音量的剧增会感到同一个声音的音高也随之增高

当声音由低频信息居多时,音量的剧增会感到同一个声音的音高也随之降低

4、最小可觉差(just noticeable difference)

音高上的最小可觉差是指在我们能感知出两个在不同时间发声的声音,它们的音高之间的差值调节要达到的最小值。

具体曲线如下图所示:

在这里我们使用200,202,204hz来示范:

虽然只有2hz的区别,但是我们却可以很清楚的辨别200和204直接的音高差。但200和202却不易识别

5、   临界效应

临界效应源于Fletcher的研究,其意义在于告诉我们人的耳蜗就像是一组滤波器

当两个声音的频率十分接近时,那么就会有一个滤波器被两个声音所占据而导致这两个声音之间互相影响。经过研究,我们可以发现临界效应的可以帮助我们判定两个同时发声的声音的频率需相差多少才能让我们觉得这是两个不同的声音。

具体曲线如下图所示:

从这几个研究的观察中,我们就可以对二手手游卖号平台音高的在整合工程中的实际应用有更深一层的理解。

举一个例子:我们在脚步声的整合过程中,通常会使用随机音高范围来增加脚步的多样化。

但是根据脚步击打的表面材质的不同,我们的脚步声可能带有突兀的音高信息。

如果击打表面是高频信息居多金属板,那么在此加上过多的音高随机化可能会让玩家觉得每一步都是一个音符在发声。在这种情况下,由于耳蜗的生理结构影响,导致玩家感知到了不应该被感知到的音高。所以我们要酌情在中间件中做出调整。

谐波的完整性对音高的感知有着正面影响,如果我们将一个150hz的声音的锯齿波的前9个谐波去掉,我们还是可以感知到音高的。


频域的带宽对音高感知也有着影响。我们将白噪做频域塌陷处理后以生成带宽为30,60,150,200,300,500,700,1000,1500,2000,3000hz。可以在这里发现频域越窄,我们就越容易感知到音高。

实际操作

关于心理声学的知识,我在上面尽量使用通俗的语言表述了一些基本理论和公认的结论。如果您想深入一步了解,本文的最后罗列有所有的相关参考文献。

那么装备了一些理论基础,我们下面就开始照葫画瓢,尝试模仿大师的制作理念并自己捏一个adx2 工程,其大略步骤如下:

1.      在素材层将音乐素材分类并拆分。

2.      将影响音乐素材的其他素材类型分类。

3.      导入至CriAtomCraft并设置类别。

4.      调试REACT。

1、       在宿主软件中对音乐素材拆分

打开宿主软件,这里我使用的是REAPER6。

我使用VST插件制作了一个loop interactive_music-001和interactive_music-002。

其中Interactive_music-001_instrumentation包含吉他扫弦,吉他琶音,军鼓,踩镲。 Interactive_music-002_instrumentation包含底鼓,合成器pad,钢琴,贝斯。

我们在这里需要选择如何分割音乐。

如果按照配器的方式来分割,那么我们这在创作音乐时就需要分“高频乐器”和“低频乐器”来制作,混音,缩轨. 如果按照频谱能量来分割,那么我们需要找到一个临界频段,并在这个频段上方塌陷所有的高频信息来得到高频音轨,而低频音轨则反之。

要注意的是,我们在选择临界频段时要确保分割后得到的两个轨道尽量保持大部分时间dbFS值接近。如果临界频段过高,那么我们需要用更多的数字增益弥补,从而产生高低频动态范围和动态余量不均匀的现象。

比较这两种方法,配器分割方式的结果并不纯粹。

也就是说,所谓的“低频乐器”的高频谐波还是会被分割到低频音轨里,而“高频乐器”也会加载它们本来的基频信息。但相比较更纯粹的频谱塌陷,这种方式可以使两个分轨在整合工程中被单独使用,也同时避免了动态范围不均匀的问题(极端情况下我们才会识别出现动态范围不均匀的声音,所以这里在一个轨道上少许的数字增益并无大碍)。

出于演示目的,我使用的是频谱能量来分割的办法。

2、      将其他影响音乐的素材进行分类

影响音乐的素材可以根据低频信息量来分类。

比如爆炸声和低频较多的音效可以被分为一类,高频较多的音效可以被分为一类,而对话和旁白也可以被分为一类。如果有不同场景,那么可以以场景为单独分类标准进行细分。

3、      将素材导入CriAtomCraft并开始构建工程

其大略结构如下:

总体设置>分类>分类组>创建分类

Vo,

Sfx_firearms,

High_fq_music,

Low_fq_music,

Sfx_explosion,

Sfx_high_fq_generic

总体设置>REACT>创建REACT

sfx_firearms_on_high_fq_music,

Sfx_firearms_on_low_fq_music,

Sfx_high_fq_generic_on_high_fq_music,

Sfx_explosion on low_fq_music,

Vo_on_high_fq_music,

Vo_on_low_fq_music

4、      编辑每一个REACT

触发类别和变化类别的关系:当一个触发cue被激活时,如果没有任何限制发生的条件发生(多重播放禁止时间), 那么变化类别就会根据我们设计的逻辑进行变化。


 

如图中所示,当被划分至枪械类的音效sfx_firewarms被激活时,高频音乐high_fq_music的音量就会被降低至原始值的70%。这里需要注意的几个选项有:

a)    REACT类型:

Ducker类型是直接对变化cue的音量产生变化,而AISAC类型则是AISAC调制触发器通过播放触发目标,产生AISAC调制.(对于“使用AISAC,仅在播放某个Cue期间更改特定Cue的音高”这样的用途,REACT应使用Ducker而不是AISAC调制触发器。AISAC要以调制,One Shot和Key来驱动。如果变化的参数在变化开始时和结束时值不相同,可能会在播放时听不到声音。)

b)    变化时间:

在判定生成REACT之后,对指定变化cue音量降低所需时间。

c)    Hold 类型:

“播放中” 是指只要触发cue在播放中,那么变化cue就一直不会被释放;“固定时间”指触发cue被触发后指定时间内,变化cue就会被释放。

如果一个类型中只有一个音效或者类型中的音效的时长和包络很接近,那么hold类型可以使用固定时间。这样做的意义在于增加音效与音效之间变化的稳定性

例如一个礼花爆炸的音效中的音尾包含小爆竹爆炸的高频信息,在不拆分礼花音效素材的情况下我们可以通过计算礼花爆炸的低频能量衰减的大概时间来设置hold固定时间。这样做就相当于将低频能量多的礼花爆炸作为触发而忽略高频的爆炸

d)    Hold时间:

“播放中”下的Hold时间指被触发cue播放完毕后的一段等待时间。在等待时间过后,变化cue才会开始恢复到原始音量。“固定时间”下的Hold时间指触发cue开始触发REACT的一瞬间后的一段等待时间时间。等待时间过后,效果同“播放中”一样。

e)    返回时间:

变化cue回到原始音量所需时间。

f)     变化参数:

“音量电平”指变化cue被影响的目标是音量。 或者选中任意AISAC控制器 作为变化参数。

g)    变化电平值:

在“音量电平”下,此数值值域0-1,代表原始音量的百分比。 在AISAC控制器中,此数值代表返回目标AISAC控制器中的函数值。例如:

如果变化电平值输入的是0.2, 那么AISAC控制器 此时的变化应该是:音量调制原始值的2倍(音量aisac图表起点为1值域为0-2)。这么一来,我们的变化参数是AISAC控制器的REACT就会增加了不少的灵活性。

h)    在特殊的cue中使用块和action track

在重要且播放逻辑复杂的cue上可以加入块和action track,例如样板工程中玩家增加经验值的音效。

如果使用actiontrack,我们的可以在不同阶段的声音(加速,匀速,减速)cue上绑定参数action来控制目标音轨的参数。

i)     在反复出现的cue上设置多重播放禁止时间

结合心理声学理论,我们可以对多重播放禁止时间做调整。

由于在高声压下频域高的音效之间的遮掩效果好,那么我们可以在高频域的音效上使用较短的多重播放禁止时间。而低频信息居多的音效可以设置较长的多重播放禁止。

金子老师的教给我们的一个小窍门是将射速很快的枪声音效放入一个连击逻辑的cue中两次。这样做的话可以完美控制第一发后枪声的大小,还可以确保第一击音效的完整。

j)     各种音效对音乐的react

由于爆炸声的低频能量较多,那么它对对低频音乐的REACT效果也应该强。

从理论角度来看,我们只需要用小量的变化时间和返回时间就可以避免时域遮掩。

但我使用了较长的返回时间,而在爆炸REACT高频音乐使用了更短的返回时间。这样错开两个同类的REACT的释放其意义在于避免音量大幅度变化导致听觉对音高产生变化

k)    爆炸音效

​ 

同样道理,我在样板工程中使用一个高频信息较多的power up 音效,在这里这个音效应该是对高频音乐的REACT 效果强于对低频音乐。

在语言类的声音对音乐方面,我认为人类的语言中辅音(consonant)中的高频信息有可能会被音效的高频信息遮掩。所以在语音对应音乐的REACT中,我设置了较强的高频闪避效果来给这些辅音留有更多的动态余量空间。

​ 

最后,我们可以通过Session来测试我们的声音。在这里,我们可以手动播放一系列音效来模拟游戏运行中的声音效果:

尾声

本次的分享就到此结束了,希望可以为大家带来一些启发

您可以在此进行以上样例工程的下载:

链接:https://pan.baidu.com/s/16xXjz9G3PG_SNDtHPtcH9A

提取码:ADX2

本工程由CRI Atom Craft Ver.3.44.17创建

此外,需要注意的是,本样例工程仅作展示使用,因此使用的音频素材样本量较少。在实际的工程运用当中,可能会有大量的素材需要批量导入及编辑。

在后续一月份的ADX2版本更新中,马上将会上线新功能“Robot”,它可以编辑脚本,快速导入大量文件,减轻声音设计师的负担。

新SDK发布的同时,我们也会同步更新Robot的使用方法,即使是没有接触过编程语言的设计师朋友也可以轻松上手,敬请期待!

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章