# 音效设计 在介绍音效的各种功能之前先要插一句话。在所有的声音有关的设置里面都会出现一个小扳手的按钮,点开之后可以设置声音的音量(也就是声音大小),音高(也就是音调高低)和声像(也就是左右声道),这些设置别看好像藏得有点深,但其实用得巧妙的话是能极大提升关卡的细节感的。 同时还有一个文件夹按钮,可以支持你插入自定义的音效文件,格式必须是.ogg。如果要导入其他游戏里面的音效文件会很方便。如果要自己制作一个音频文件,要注意不要给音效文件前面留空白的时间,这样放在游戏里会感觉到音效出现延迟。 前面的铺垫完,接下来本节要介绍的主要是下面这五个功能:设置节拍音效、设置按拍音效、设置游戏音效、心爆以及播放音效。 ## 设置节拍音效 如果你还有印象的话,在添加一个人物之后,里面就自带了一个设置节拍音效的选项: ![轨道属性页面](../images/audodesign-rowsettings.png) 如上图所示,沙锤就是洛根登场之后出现的节拍音效。如果你想在中途改变洛根的音效,就需要在红色的界面里面添加一个**设置节拍音效**事件,然后在轨道里面选择洛根,在音效里选择其他的。 点一下下面的“复制轨道节拍音效设置”,就会把添加人物时设置好的节拍音效(包括音量音高声像)的具体内容全部粘贴到这个事件里面来。 ## 设置按拍音效 在编辑器中节拍音效和按拍音效是分开设置的。想要改变按拍时候的音效用的就是**设置按拍音效**,里面普通轨道(普通拍子)和单发轨道(单发拍子)又是分开设置的。但是不能对每一个人物单独设置,这一点需要注意。 ## 设置游戏音效 除了节奏音效和按拍音效之外,游戏里还有一些地方会出现音效,主要是失误的时候(分为微小失误和严重失误),没有节拍却按了空格的时候(默认是“啵”一声,所以在编辑器里面叫“手掌-啵音”),第七拍按下之后第八拍“咚”地一声回音(叫做心爆,这时候心脏图标也会小抖一下),以及跳过拍(嘎↘的声音),长按拍,冻结拍,灼热拍的音效。 这些音效在设置的时候是无法下拉列表选择更改的,只能通过键入游戏内置的音效文件名,或者导入自定义的音效来改变。目前已公开的内置音效文件名因为数量太多,集中收录在了[附录3](../pages/appendix_audios.md)中。 ## 心爆 在玩家正确按拍后,心会发光跳动并伴随有“嘣”的声音,这种现象叫做**心爆**。 ### 设置游戏音效 在红色声音版块的**设置游戏音效**事件中,心爆具有三种音效,分别是**心爆**、**心爆 2** 、**心爆 3** 。 **心爆**:一次单独按拍产生的心爆。 **心爆 2** :两次累计的按拍 / 两个重叠的按拍产生的心爆。 **心爆 3** :三次及以上累计的按拍 / 三个及以上重叠的按拍产生的心爆。 ```rdview 3 5 eb.AddFreeTimeBeat 1 1[pulse=7]; eb.AddFreeTimeBeat 1 2[pulse=7]; eb.AddFreeTimeBeat 1 2[pulse=7]; eb.AddFreeTimeBeat 1 3[pulse=7]; eb.AddFreeTimeBeat 1 3[pulse=7]; eb.AddFreeTimeBeat 1 3[pulse=7]; ``` ### 设置心跳音量 顾名思义,就是调整心爆的音量。三个音效音量会**一起调整**。 ### 设置心爆间隔 心爆延迟选项下有一个“**间隔**”选项,用于调整**按拍之后多久再播放心爆音效**。 心爆延迟选项有四:**固定间隔**、**即刻**、**固定间隔组合**、**强排组合**。 **固定间隔**:每次按拍后经过一个固定时长都各会响一次心爆。注意,间隔处填 0 拍长**不能达到立刻心爆效果**。 **即刻**:每次按拍立刻心爆,但是心爆音效会**消失**。无视间隔处的拍长参数。 **固定间隔组合**:**累计在阈值内的所有按拍**并在最后一次按拍后固定间隔形成**一次**心爆。 **强拍组合**:累计在阈值内的所有按拍并在最后一次按拍后**一定间隔的强拍上**形成一次心爆。 后面俩组合得好好说道说道。 首先带**组合**后缀的这两个选项可以**在心爆之前**检测**是否还存在按拍**,存在则累计按拍不心爆,并以新的按拍开始判定按拍。**直到完全到达判定区间尾部时,心爆才会发生。** 对**强拍组合**而言,其按拍判定如下: 按拍固定间隔后,如果尾部**刚好**在小节线上,则判定范围仍与间隔**相等**; 如果尾部**不在小节线上**,则判定范围会**延长至下一小节线**。 ```rdview 4 9 g 1 1{ g 1 0 0 1 #08f{}; eb.AddFreeTimeBeat [pulse=7]; }; g 1.25 3 1.75 1 #08f{ g{}; eb.AddFreeTimeBeat [pulse=7]; }; g 1.5 5 1.5 1 #08f{ g{}; eb.AddFreeTimeBeat [pulse=7]; }; g 1.75 7 1.25 1 #08f{ g{}; eb.AddFreeTimeBeat [pulse=7]; }; ``` 对**固定间隔按拍**而言,其按拍判定如下: 当间隔设置为 1 拍长及以下时,判定范围是**间隔 + 0.2 秒**; 当间隔设置为 1 拍长以上时,判定范围不会变化。 图例为 BPM=150(即每拍 0.4 秒)下的情况: ```rdview 7 9 g 1 1 0.75 1 #08f{ g 0 0 0.25{}; eb.AddFreeTimeBeat [pulse=7]; }; g 1 3 1.25 1 #08f{ g 0 0 0.75{}; eb.AddFreeTimeBeat [pulse=7]; }; g 1 5 1.25{ g 1.25 0 0 1 #08f{}; eb.AddFreeTimeBeat [pulse=7]; }; g 1 7 1.75 { g 1.75 0 0 1 #08f{}; eb.AddFreeTimeBeat [pulse=7]; }; g 4 1 1 1 #08f{ g 0 0 0.5{}; eb.AddFreeTimeBeat [pulse=7]; }; g 4 3 1.5 1 #08f{ g{}; eb.AddFreeTimeBeat [pulse=7]; }; g 4 5 1.5{ g 1.5 0 0 1 #08f{}; eb.AddFreeTimeBeat [pulse=7]; }; g 4 7 2 { g 2 0 0 1 #08f{}; eb.AddFreeTimeBeat [pulse=7]; }; ``` ## 播放音效 **播放音效**是所有音效设置里面自由度最高的一个,可以在任意的时间开始播放一个音效文件,和游戏的轨道与按键没有任何关联。如果处理得当,你甚至可以用这个功能写一个打击乐段在游戏里面。 另外,剧情模式里面的内置音效也可以在这里通过写文件名的形式添加进自己的谱面。但是官方目前并没有公开所有的音效文件,我们收集了其中的一部分放在了[附录3](../pages/appendix_audios.md)中整理成了表格,需要的话可以自取。