游戏里的声音大小可以按距离套一条明确曲线。近处保持不变、中间逐渐变小、远处静音,是一种容易演算和调试的规则,但不是所有作品都采用相同方式。
下面给出一组可以从头复算的练习数据。先按约定记录每一步,再比较最后的核对条件;遇到差异时,不急着修改答案,而是先找出从哪一步开始不同。本例描述的是明确限定的游戏规则模型,不代替某款作品自己的说明。
约定与输入
本例使用自定义线性强度刻度,不是分贝,也不模拟真实声学。近阈值以内为一百,远阈值及以外为零,中间线性变化,不考虑遮挡或多个声音混合。
近段固定100,远段固定0,中间为100乘远阈值减当前距离再除阈值差。
近阈值8,远阈值19 距离记录[0, 1, 5, 8, 11, 12, 14, 18, 19, 21, 23]
逐步观察
距离0:处于近段,输出强度100。
距离1:处于近段,输出强度100。
距离5:处于近段,输出强度100。
距离8:处于近段,输出强度100。
距离11:在中间段,剩余距离8占跨度11,输出强度800/11。
距离12:在中间段,剩余距离7占跨度11,输出强度700/11。
距离14:在中间段,剩余距离5占跨度11,输出强度500/11。
距离18:在中间段,剩余距离1占跨度11,输出强度100/11。
距离19:处于远段,输出强度0。
距离21:处于远段,输出强度0。
距离23:处于远段,输出强度0。
依次得到强度['100', '100', '100', '100', '800/11', '700/11', '500/11', '100/11', '0', '0', '0']。
复核办法
中间段的强度乘以阈值间距,应等于剩余距离乘一百。距离增加时强度不能上升,两个阈值处必须与两端的固定值衔接。
数值强度减半不应直接被解释为主观听起来响度减半。若要讨论音频混音或听觉体验,需要额外的刻度和播放条件;本例仅核对这条自定义距离映射。
把边界、顺序与适用范围写进记录,比只记一个最后数字更有用。可以另外构造刚好在边界、完全没有变化和多个条件同时成立的情况,查看规则是否仍自洽;若要改变设定,保留原案例作为对照,再重新计算受影响的部分。