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