# 无障碍设计 本节我还想再次强调一下《节奏医生》这款游戏的特殊性。在官方的UI设计以及剧情模式里面,是完整地设计了无障碍模式的。也就是说,里面的每一关理论上你都可以闭着眼睛打出S+,并且是只靠声音提示,不靠记忆节奏(背板)。如果你不相信的话,可以看看这个[系列视频](https://www.bilibili.com/video/BV1iK4y1d7cY)。 另外,本节部分内容不仅用于无障碍,也同样适用于视觉干扰过强以至于影响读谱的情况。 至于说要如何做到这一点,详细铺开来说就比较复杂了,并且由于网页上没有办法直接发音频,很多内容并不容易靠文字说明。对于下面的长篇大论请给与理解。 ### 1、轨道音效切不可重复 多轨道关卡中,同时响起节奏的轨道不可使用相同的音效,否则只听声音的话节奏会全部混在一起无法辨别。 ### 2、调整轨道音效的声像 多个轨道的节奏比较相近的情况下,为了把节奏音效区分得更明显,可以让一个声音偏左声道,另一个偏右声道。 ### 3、官方已有的节奏尽量仿照官方 例如`-x-x-x ---♥`使用玄凤叫声,`-xx-xx ---♥`使用猫头鹰叫声。这些已经存在的节奏型音效是能让玩家很快回忆起该怎么打的。 但注意,如果这样的提示音非常破坏音乐的氛围,要考虑调整音效的声音大小或是考虑其他的提示形式。 ### 4、节奏型不要随意突变 一根轨道原本是`------ ---♥`,突然变成`-x-x-x ---♥`且节拍速度还有变化,在没有额外的音效或者护士提示的情况下,只靠声音无法区分变化后的轨道是响了1,3,5,7拍还是1,2,3,4拍。 变化时如果加入护士数拍(例如第3点中的情况),读谱就会轻松许多。或者用自定义音效提示一下变速后的节奏速度,例如加入“**嘀嘟嘀嘟**”的音效。 ### 5、即使是电脑演示也要有声音提示 不能觉得反正是电脑在玩,自己瞎按空格键也不会判错,就随意设置了。当轨道切换到电脑时,可以考虑加入一个“**凹兔启动**”音效,当电脑轨道切换到玩家时,可以考虑加入一个“**凹兔停机**”音效。 ![我就是凹兔](../images/accessibledesign-otto.gif) 并且在电脑演示时最好只设置一根轨道,否则听声音无法辨别是哪个轨道的节奏正在被演示。 ### 6、让玩家按出空拍也是问题 玩家在没有节奏的位置误以为有节奏而按下空格,结果听到“啵”的一声。这一下音效的响起对后续的节奏声音判断也是会产生干扰的,所以在设计节奏的时候应尽量避免令人误解/误导的情况。 那么,为何空拍音效会对节奏的判断产生干扰? 节奏医生在第一次打开剧情模式时通常都会让你校准你的视觉和输入偏移,这是因为节奏医生所使用的游戏引擎在不同的设备上会产生不同的延迟,尤其是声音延迟极为明显,严重点的可以多达200毫秒以上。通俗点讲,你会感觉你按下按键后需要等一小会儿才会听到你的按键音效,而作为一个音乐游戏,如果出现这样的偏移现象,会非常影响节奏的判断,不仅仅是听觉受到干扰,如果不解决这种情况的话,就会出现你在正确的节拍点上按确被系统判定为失误,那就有点不太妥当了,所以节奏医生通过校准偏移的方式,适当的通过玩家的偏移量提前或延后判定时机。 但是请注意,判定时机被调节了,音效位置是不会一起被调节的,不然如果因为音效位置一起被调节所导致的无法避免的音效偏移,那就有点得不偿失了。 举个例子,假如你的设备输入延迟比较大,又或者你用的是蓝牙耳机,更甚至是Steam远程畅玩或是和好友远程玩双人关卡,此时你会发现,你按下空格键,会等大概一秒钟才会听到空拍音效,节奏点也会因为网络延迟延后判断,通常这时候我们会通过调整输入偏移来解决,但即使是调整了输入偏移,你在按空拍的时候还是会因为网络延迟等原因延后一秒钟才会播放空拍音效。 这也就是为什么说空拍音效的响起会对后续节奏判断产生影响了,偏移量小的玩家还没什么,无非就是多响一声而已,但偏移量大的玩家呢?所以制作过程中尽量不要让玩家在没有节拍的位置误认为有节拍并按了一个空拍,毕竟如果延迟比较大的话,这种误导性影响还是挺大的。 ### *7、 使用屏幕朗读事件 官方在v0.19.0无障碍更新中加入了屏幕朗读事件,以为视障玩家群体提供更多支持。 > 为你的关卡添加屏幕朗读事件是可选的,但是请确保你正确使用了事件。同时,你**不应该**: > > - 添加会干扰正常游玩的屏幕朗读事件(如场景描述与画面不符、对轨道的错误提示等); > - 将屏幕朗读事件作为谱面玩法的一部分(除非在关卡描述中特别说明)。 在继续之前,请确保在`设置>易用性设置>朗读设置`中启用了`朗读`。 阅读[关卡屏幕阅读器的适配测试指南](https://docs.qq.com/doc/DUVJVc1pjam1uT1R6)以了解如何配置屏幕朗读。 另外,推荐在启用朗读的情况下先游玩官谱以作参考。 #### 朗读轨道信息 ![](../images/readrowinformation.png) **轨道**:选择要朗读哪条轨道的信息。 **类型**:“**患者上线**”表示新的轨道被引入;“**患者更新**”表示某条轨道的行为模式改变;“**患者离线**”表示某条轨道在当前谱面不再被使用。 “**医生上线**”“**医生离线**”与“**患者上线**”“**患者离线**”类似,只不过由电脑操控。 **仅声音提示**:启用该选项时,游戏将不会朗读该提示的类型。 **朗读X字拍子**:选择**开启**时,游戏将会朗读该轨道当前的X字拍子。选择**自定义**时,将会朗读玩家自定义的X字拍子,而不是轨道当前的X字拍子。例如,对于`----xx ---♥`,游戏会朗读“X拍56”;而当轨道没有X字拍子时,游戏会朗读“无X拍”。 **紊乱**:用于提示X字拍子连续变化的节拍(例如`X-WOT`)。 **玩家**:选择在双人模式下,该轨道由哪位玩家接管。 **自定义长度**:启用后将朗读所填的轨道长度。 一般情况下,游戏会按以下的顺序来朗读: `[玩家][类型][轨道角色][X字拍子]` #### 朗读口述 **口述内容**:游戏朗读的内容。 **朗读分类**:该朗读事件的类别。下面是官方对朗读分类的说明: - 提示:适用于常规屏幕文字提示,“状态标识”信息默认归入此类。 - 描述:“朗读口述”事件的默认分类,专用于呈现纯视觉信息(如角色动画、背景环境等)。玩家可按`F6`键切换此类播报。 - 字幕:"浮动文字"事件的默认分类,适用于语音内容字幕(如歌词字幕),支持多语言翻译。玩家可按`F7`键切换此类播报。 - 说明:专用于游戏控制说明。播报后,玩家可随时按`F1`键重复听取当前指引(直至下一条指引信息覆盖)。