unity5x --------Music Mixer参数详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity5x --------Music Mixer参数详解相关的知识,希望对你有一定的参考价值。

  我们一直在致力开发出业界最顶尖水准音频处理功能,而经过很长一段时间的努力,在Unity5.0中,音频处理功能将成为非常重点的一个功能。

    要达成这个目标,我们首先重写了很多Unity中音频相关得处理流程以及资源管理部分。我们需要确保对编码器进行稳妥的选择,以及确保我们提供一个能够让开发者在游戏中使用高品质音频的框架。在后续的文章中我们会提供更多的详细信息,但是现在我们只想告诉大家我们在Unity5.0中的第一个重要的音频特性,那就是:混音器(AudioMixer)

第一步

   除了为未来Unity中的音频开发创造坚实基础之外,我们还想为大家提供一个全新的功能,作为我们实现“让你做出绝赞音频”的第一份大礼,展示我们的决心,愿意竭尽所能为您带来音频方面的享受。

   在接下来的发行周期中,音频系统中还有很多地方需要不断改进。其中一些非常不起眼,但却解决Unity中至今悬而未决的问题,可以将这些看作是修复现有功能集;另外一些则会相对庞大,比如让用户做出绝赞交互音效的功能、浸入式音乐系统和高细节精确控制音频音景混合。


为什么选择AudioMixer?

   为什么我们选择AudioMixer作为Audio 5.0首先推出的重大功能?答案非常简单:在以前的Unity版本中,不可能实现音频局部混合。声音可以在Audiosource中进行播放,并且可以将音效效果作为组件来添加,游戏中的所有声音都会混合在AudioListener中,AudioListener还可以在整个音景中添加效果。

   我们决定用AudioMixer来解决这个问题,与此同时,我们觉得可以将其更进一步,集成了许多你可以在已有数字音频工作站应用程序中找到的功能。

声音的分类

<ignore_js_op>技术分享 


许多音响师都知道,能够将声音集合合并成不同分类,并在某一处对一个类别中的所有声音进行音量控制是超级实用的功能。将音量和效果参数与游戏的逻辑连接起来,就相当于对游戏中的整个音景区域有了有效的控制。

对整个混合音景的控制真的超级重要,是控制音频混缩的情绪和身临其境之感的绝佳方式。好的混音和音乐能带领玩家在游戏中经历各种情绪的变化,营造出仅凭图形效果根本无法产生的气氛。

用Unity进行混音

这正是AudioMixer的目的所在,它是一种资源,可以被用户整合到场景之中,控制游戏里的所有音频混缩。场景中播放的所有声音都会被放入一个或多个AudioMixer中,之后再进行分类,并将各种修改和效果应用到混缩音频中。
<ignore_js_op>技术分享


每个AudioMixer都有类定义的层次结构,这在AudioMixer中被称为AudioGroup。您也可以在音乐或电影界人士较为熟悉的传统调音台布局中查看这些AudioGroup。
 
 
 
   
技术分享

130

主题

366

帖子

3600

贡献

管理员

技术分享技术分享技术分享

积分
3600
沙发
 
技术分享  楼主发表于 2014-10-28 05:01:28 只看该作者
DSP
<ignore_js_op>技术分享


   当然,AudioMixer并不仅仅只是设置混缩层次而已。正如大家预期的那样,每一个AudioGroup都可以包含各种不同的DSP音频效果,这些效果以信号形式按顺序叠加到音频上。

   现在我们有一些进展了!你不仅可以创建自定义传送方案和混合层次结构,还可以将各种DSP的好效果放在信号链上的任何地方,为你的音景提供各种效果选项。你甚至还可以添加蒙版路径,只允许其对一部分信号进行处理。

   但如果你想在Unity的内置效果里就获得更多的DSP控制,怎么办?这在以前完全由OnAudioFilterRead脚本回调来处理,它可以让你直接在脚本中处理音频采样。

   这对于处理轻量级效果或将一时的奇思妙想做成原型来说是非常棒的,但有时,你希望能够写出原生编译的效果,以达到最佳性能,让你能够写出更重量级的想法,比如自定义采样混响或多波段均衡器。
<ignore_js_op>技术分享


    Unity现在还支持自定义DSP插件效果,使用户能够为游戏写出自己的原生DSP,或许还可以将他们的绝佳音效创意放到资源商店中供他人使用。这样便开辟了无限可能,可以编写自己的合成器引擎,甚至还能与Pure Data等其他音频应用对接。自定义DSP插件还可以请求旁链支持,可以从混合音频中的任何地方得到旁链数据!简直棒极了!

   AudioGroup中效果堆栈可以实现的一个很酷的事情便是,你可以在堆栈中的任何地方应用组衰减。现在甚还至可以增强信号,因为我们允许高达+20分贝的音量水平。检测器中甚至还集成有声量计来告诉你信号在衰减点处经历了怎样的变化。

<ignore_js_op>技术分享


当与非线性DSP、发送/接收和新的闪避插入相结合时(将在后文中做出解释),这将成为一种通过混音控制音频信号的超强方法。
 
 
 
 
   
技术分享

130

主题

366

帖子

3600

贡献

管理员

技术分享技术分享技术分享

积分
3600
板凳
 
技术分享  楼主发表于 2014-10-28 05:04:56 只看该作者
情绪转变

   刚才谈及了凭借音景的混音来控制游戏的情绪。这可以通过引入或引出新的音乐主干或环境声效来实现。实现这点的另一种常见方法是转变混音本身的状态。更改混音部分的音量和过渡至不同的效果参数状态是按照自己的意图来引导玩家情绪的一种有效方法。

   所有AudioMixers都有定义快照的能力。快照会捕获AudioMixer内所有参数的状态。效果湿度水平和AudioGroup音高水平等内容均可被捕获并在它们之间进行转换。

<ignore_js_op>技术分享


   想象一下,从地图上的一片开放领域走入一个险恶的洞穴,利用混音过渡来强调更微妙的氛围,加入乐团的不同乐器,改变配乐的混响特性。想象一下无需编写任何一行脚本代码便可设置此功能的感觉。

分支信号

而当结合发送、接收和闪避时,快照的能力将尤为加强。

发送

<ignore_js_op>技术分享


   除了可在Unity中插入传统的DSP效果之外,您也可以在混音的任何位置插入“发送”。“发送”可在其插入的任何位置有效地分支音频信号,并且在发送内,您可以选择希望分支的信号量。

   事情现在变得更加有趣了!鉴于您分支的信号水平是快照系统的一部分,您可以把信号流的变化与快照过渡相结合。由此,潜在的设置可能性便开始如滚雪球般增长。

  但是被分支的信号去了哪里呢?目前,Unity内有两个可供发送选择的目标,即接收和音量闪避。


接收
   接收是相当简单的处理单元。它们是如同任何其他效果一样,可以插入其中,简单地把所有从发送瞄准它们的分支声音混合在一起,将其传递给AudioGroup中的下一种效果。

  接收可被置于一组效果和AudioGroup衰减点的任意位置,这将使得分支信号应被引入混音时获得巨大的灵活性。

音量闪避
发送也可针对音量闪避插入单元。就如同接收一样,这些单元可与其他DSP效果一同被置于混音之内。

<ignore_js_op>技术分享


当发送瞄准音量闪避插入时,它的作用就像侧链压缩器设置,这意味着您可以从混音的任何位置做侧链,并从其任何其他位置应用音量闪避!
这对于外行而言意味着什么呢?想象一下,您在为FPS游戏混音,您希望玩家突然听到一阵枪声和爆炸声。好吧,但是如果当你走向战场上的NPC时,你需要听到他们所说的话又该怎么办呢?音量闪避允许您动态地调整混音整个部分的音量(在此情况下是所有的军械声),使其低于其他部分的音量(NPC说话声)。您只需从包含所有NPC对话的AudioGroup发送到军械AudioGroup上的音量闪避单位即可。

您甚至可以将侧链压缩动态地应用于音乐设置,让其余的乐器压缩掉低音轨道。
最棒的一点是您无需任何一行代码便可以在编辑器中设置这一切内容!

结束语

尽管在本文中我仅仅介绍了AudioMixer所提供可能性的皮毛,但是我希望它足以激发人们对Unity 5.0中音频可能性的兴趣。
我们真心希望通过Unity 5.0及后续产品来推动游戏音效的未来,为您提供制作震撼音效所需的工具套件! 
让我们知道您的想法!

音频团队































































































以上是关于unity5x --------Music Mixer参数详解的主要内容,如果未能解决你的问题,请参考以下文章

Stealth潜行风格游戏源码(Unity5x)

SDL。当前音乐位置

mix.scripts 不工作 (webpack.mix.js)

Laravel mix 的压缩插件

在 laravel 5.4 mix 上添加 jQuery

如何将两个 m4a 音频文件“混合/叠加”在一起