您的位置:首页 > 移动开发 > Unity3D

Unity3D学习笔记(六)音乐和音效

2016-02-23 17:05 387 查看
即使AFK魔兽世界已经好多年了,在生活中听到电视或者电台里放的奥格瑞玛的背景音乐的时候还是会虎躯一震。虽然不是联盟玩家,闪金镇狮王之傲旅店的背景音乐依然悠悠回荡在耳边。一个好的游戏没有好的配乐和音效,就好像无暇的水晶缺少了灯光的陪衬。而音乐不仅能渲染出玩家攻略游戏时的氛围,还能增加提高玩家对游戏的认知度。

比如我说魂斗罗和超级马力,玩过的同学一定能回想起那简单而经典的声音。还有诸君可曾记得当年整网吧的《红色警戒》激战的声音?还有那《传奇》战士“喝啊哈”的刺杀剑法、道士的治愈术、法师的闪电术的声音?如果都没听过,那你至少听过CS的“Fire
in the hole!”和“Terrists/Counter terrists win!”吧,哈哈。

反过来也是一样的,还记得几个月前坐火车回杭州,我正玩着《英雄传说:空之轨迹》,结果耳边突然响起一阵《星之所在》的手机铃声。圣光啊,如果是身边的美女那么我们可以相视一笑然后一切尽在不言中……可惜多番寻觅后猛然发现前排的一位大叔正冲着我笑呢……咳,总而言之,音乐的魅力是很大的,有句话说得好,音乐是不分语言、不分种族和不分性别的(这是哪跟哪啊喂)。

作为时下热门的游戏引擎,Unity当然少不了对音乐和音效这种基本功能的支持了。本篇笔记就对整个场景背景音乐和瀑布流水声的制作做个记录,不过文字是没办法发出声音的,所以感兴趣的读者们还是亲自动手一试比较好。另外由于这次Unity没有自带的音乐音效可以派上用场,所以我从网上下载了魔兽世界中艾尔文森林的背景音乐和某个瀑布的音效。在工程面板中新建一个文件夹,取名叫做Sound来存放声音资源,然后把两个声音文件直接拖到这个文件夹里,操作跟Windows资源管理器一样,是不是很方便呢?



接下来要介绍一下本篇的第一主人公,Audio Source(声音源)组件,还有第二主人公,Audio Listener(声音收听者)组件。从名字上就可以看出,前者是负责播放声音的,后者是负责接收声音的。为什么需要一个接收声音的组件呢?因为在现实生活中,声音的传播是会递减的,并且耳朵能够分辨声音的方向,比如听声辩位夹苍蝇什么的……哈哈,更贴切的例子应该是像在CS中通过脚步声来判断敌人进攻的方向。为了更加真实地模拟这个效果,所以需要一个收听者的组件来代表收听者的位置。

如果跟着我之前的笔记一起做练习,则会发现在Unity窗口左下角的提示信息栏里一直出现这样的字样:“There are 2 audio listeners in the scene. Please ensure there
is always exactly one audio listener in the scene.”,中文意思是“在场景中有两个声音收听者,请确保场景里边一直只有一个声音收听者。”,因为收听者其实就是玩家,所以只需要一个收听者代表玩家的位置就可以了。检查一下Main Camera和First Person Controller里边的Main Camera,可以在检视面板中发现他们都带了Audio Listener组件,由于游戏中只需要一个镜头来代表玩家的视野就可以了,所以干脆把Main Camera直接删除掉。运行一下游戏,发现烦人的提示消失啦。

清理过Audio Listener之后,就可以制作环境音乐效果了。思路很简单,因为背景音乐是一直能够被玩家听到的,所以给First Person Controller中的Main Camera加个声音源,相当于有个随身听一直在我们耳边播放音乐。有了思路后就可以按想好的步骤进行操作了,首先选中在First
Person Controller里边的Main Camera,然后在主菜单中点击“Component→Audio→Audo Source”为其创建声音源组件,然后在检视面板中就可以看到对应的组件了。

选项比较多,但是比起来上一篇的粒子系统来说还是小巫见大巫了,而且功能也是一目了然,比较好理解。同样也请注意下面的功能选项解释留个印象就好,不需要完全背下来。



Audio Clip(声音剪辑): 也可以叫声音片段,把点右边那个小原点就能选择需要播放的声音了,也可以在工程面板中直接把声音资源拖到上面。

Mute(是否禁音): 这个好理解,勾上就不会发出声音了。

Bypass Effects(忽略声音效果): 不知道是干嘛的……

Play On Awake(唤起时播放): 如果勾选这个,那么当First Person Controller被加载到游戏场景中时音乐就会自动播放。

Loop(是否循环): 这个也简单,如果勾上那么音乐播放完毕后会再从头开始播放。

Priority(优先级): 当游戏里同时播放的音乐数量太多时,优先级低的音乐可能不会被播放,调整优先级可以防止背景音乐这种重要的音乐被忽略。 0-最重要,256-最不重要,128-默认

Volume(音量): 还有比这个更容易理解的选项吗^_^

Pitch(音调): 虽然功能名写的是音调,但是好像是用来调整声音播放速率的。当然播放速率高了,音调也会变高,反之则会变低。

3D Sound Setting(3D声音设置)

Doppler Level(多普勒效应等级): 好吧,这是个物理知识点,点这里问度娘吧。

Volume RollOff(音量过渡模式) 这里可以设定当玩家从远处靠近声音源的过程中,音量的渐变方式。 1、Logarithmic Rolloff(对数过渡模式) 2、Linear Rolloff(线性过渡模式) 3、Custom Rolloff(自定义过渡模式) 唔,涉及到数学问题,不过完全可以不理会这些这么专业的叫法,只要看那个XY坐标系就可以了。

横坐标表示收听者与声音源的距离,纵坐标表示音量。所以红色线曲线就代表距离与音量的变化,绿色曲线好像是用来调整声像的,也就是让声音出现在左右声道的比例,像CS一样模拟出声音是在玩家的前后方和左右方,具体我也没有搞明白……不过在本篇里也不需要用到这个功能。蓝色曲线则代表声音从声音源发出的传播角度。

Min Distance(最小距离)、Pan Level(声音均衡等级)、Spread(传播角度)、Max Distance(最大距离): 这些其实都是用来调整曲线的,可以自己手动调一下。

2D Sound Settings(2D声音设置)

Pan 2D(2D声音均衡):可以用来调整左右声道,-1.0为最左,1.0为最右,0.0为均衡。

了解完声音源的属性后回到本篇的目标,添加背景音乐。由于声音源就在收听者的位置上,所以只要把艾尔文森林的声音拖到Main Camera的Audio Source的Audio Clip上,勾选循环播放,其他参数完全不需要动。然后就是给瀑布添加音效,如法炮制给WaterFall添加Audio
Source,并设定好瀑布的音效。过渡模式要调整为线性过渡,因为要实现离瀑布越近,声音越大的效果。如下图所示:



这是我在运行游戏模式下的图,会有个Listener的竖线,它表示收听者离该声音源的当前距离。并且可以看出此时的音量大概是0.7多,声音均衡是1.0,传播角度是0,虽然我也不知道这两个参数为什么要这么设置…希望能在以后的学习过程中理解。至此我的游戏世界里已经能听到艾尔文森林那悠扬的乐声了,远方还传来轰隆隆的瀑布声,真是很有成就感啊,哈哈。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: