GameMaker Studio 2

创建于:2017-04-19

创建人: dougen

192 信息 1091 成员
游戏开发工具 GameMaker Studio 2 的讨论小组

[ 分享 ]GMS2官方教程系列6/8——添加音效

顺子 2017-06-22

声音,对于一个游戏而言,其重要程度毋庸置疑,好的音乐和音效可以更好的渲染游戏气氛,让玩家产生更强的代入感,从而增强游戏体验,因此今天我们介绍如何给游戏添加音效。
首先,我们要创建一个声音文件,从右侧资源树中找到“Sounds”然后新建一个,设定好名称之后就可以点名称右侧的按钮打开管理窗口来选择你准备好的声音文件了,添加好的声音文件可以点击播放按钮预览声音效果,如下图所示:

Image title

我们这次添加的是一个敌人爆炸的音效,当敌人被飞船子弹击毁时播放这个音效来反馈敌人的死亡,所以我们要在敌人对象中添加播放音效的方法,如下图所示:

Image title

我们在敌人的Step事件中找到了之前通过HP判断敌人是否被摧毁的代码,因为我们这次是敌人爆炸的音效,因此也是在敌人被摧毁时触发,所以可以直接合并到这个方法中,我们增加了这样一行代码:

audio_play_sound(snd_death,0,0)

这个方法也是GMS2自带的播放声音的方法,这个方法有三个参数,分别是:

  • 声音资源的ID/名称
  • 播放优先级
  • 循环方式

其中名称就填入我们刚刚创建的那个声音的名称即可,播放优先级是指当你同时有很多声音需要播放时指定的播放顺序,不过目前我们只播放一个音效,所以此处为0,最后一个循环方式则是有些游戏中需要循环播放一些特殊的音效,而我们这里敌人爆炸只需要发出一次声音即可,因此这里也填0。当以上完成后我们就可以运行测试我们的游戏了,如果一切正常应该就能正常发出爆炸声了,但是所有的声音都完全是一个声调。我们最开始在制作发射子弹效果时,曾经给子弹的发射角度设定过一个随机的角度变化,这样能更好的模拟发射的感觉,所以我们也希望敌人死亡时的音效能有这样一个小幅度的随机变化,这样显得更加真实,我们回到敌人的Step事件中稍加修改:

Image title

如上图,我们增加了这样一行代码:

audio_sound_pitch(snd_death,random_range(0.8,1.2))

这个方法也是GMS2自带的调整音量的方法,这个方法有两个参数,第一个参数也是声音资源的ID或名称,而第二个参数就是音量的值,这个值默认是1,就是100%,因为我们希望这个音量随机变化,所以也用了“random_range”这个方法来确保每次都随机获取一个值,这个随机的范围我们定义为0.8到1.2,就是在默认音量的基础上进行上下20%的浮动。这样我们再测试游戏的时候就会发现声音已经会忽大忽小地随机变化了。为了测试时能更清楚地观察到声音变化,可以在场景中多放一些敌人的对象,这样能确保声音的随机变化尽量多一些更明显一些。PS. 在官方教程的基础上还可以自己给自己设定个目标来拓展一下,比如让离飞船远的敌人在爆炸时声音小一点,近的敌人在爆炸时声音大一点,试试看自己能不能完成:)常用的判断距离的函数GMS2中有distance_to_point和distance_to_object两种,可以自己思考看看哦~另外reddit的六月挑战也是有关音效的,有兴趣可以看前天发的挑战内容。

(转发自:原日志地址
 
TomasLiu 2017-11-04

audio_sound_pitch  设置的是音调的高低吧  不是音量的

 
顺子 2017-11-04

TomasLiu 嗯,是音高……

 

加入 indienova

  • 建立个人/工作室档案
  • 建立开发中的游戏档案
  • 关注个人/工作室动态
  • 寻找合作伙伴共同开发
  • 寻求线上发行
  • 更多服务……
登录/注册