徐子游欣赏音乐,但属实没啥天赋。他能写出复杂的游戏逻辑,但让他写一段好听的旋律,比登天还难。
音效在这个年代的游戏制作中也是一大难点。
pc喇叭只能发出简单的方波,想做出后世那种清脆的音效,得靠编程控制频率和时长。
他之前翻过几本讲pc喇叭编程的书,也听周师傅提过,一些游戏能用pc喇叭播语音。
但那玩意用的是最原始的pwm脉冲调制,靠快速开关喇叭模拟人声,听着像嗓子含了痰的外星人在说话。
没思路的他又翻了翻《电子游戏月刊》的旧刊,找到篇讲Amiga的文字转语音功能,用软件把文本转成合成语音,塞进游戏里当Npc配音。原始,粗糙,每个Npc声音一模一样,但起码算个动静。
能用。但徐子游要的不只是动静。他要的是音乐,是好听的音效,是沉浸体验。
他靠在藤椅上想了一会儿,突然坐直了身子。
既然可以用软件把文本转成语音,那能不能用软件把乐谱转成喇叭能播的东西?
如果能把整首曲子的节奏、音高、时长,用一种他能解析的格式写出来,再写个解释器,自动转成pc喇叭的指令,这不就完成了演奏吗?
那么如何把曲子记录成电脑能看懂的文本呢?
他拿过纸笔,开始边画边想。
有了!他可以搞一个中间格式,比如用字母表示音高,用数字表示时长,用符号表示停顿。
举个例子,c4_200表示中音c,持续200毫秒;G4_400表示一个c大三和弦,琶音奏法,总长400毫秒。
简单。
他还需要一个懂音乐的人,能按照他要求写这种格式形成旋律的人。
不巧,雅南的音乐细胞很强,从小就上钢琴课,深受音乐熏陶,以前一起玩的时候,这妮子还经常拟声成动物捉弄他。
他把格式写在纸上,便下楼去找雅南。
她正趴在糖水铺柜台上算数学题,嘴里咬着笔帽,眉头皱成一团。
林姨在旁边煮珍珠,蒸汽把她的脸熏得红扑扑的。
“雅南,帮我个忙。”
雅南抬起头,看见他手里拿着纸笔,高兴问道:“游戏做好了?”
可算出关了!都这样闭关好几天了,再不出来,雅南可能真就忍不住要上去看看是不是藏了狐狸精。
“就差声音了。”徐子游把纸递给她,“你看看这个格式,能不能看懂。”
雅南低头看了几秒,眉头舒展开了:“c4是中音c?这200又是什么?持续时间吗?”
“对,代表持续200毫秒换算就是0.2秒。你按这个格式写谱子,我写个程序自动播放,就能帮我搞定游戏音效。”
雅南眼睛弯了起来:“那我能写和弦吗?”
“当然可以,你先写单音,和弦我可以后面慢慢加。”
徐子游把自己对音效的需求讲给雅南听,她听的很认真,还不时点头。
“我以前写过一些曲子。”她转身跑上楼,抱下来一叠五线谱纸,还有一把木吉他。
她把谱纸摊开,手指在弦上轻轻拨了一下,“你先听听这个。”
旋律从吉他里流出来,轻快,跳跃,带着点滑稽的味道。
这调子可太适合小丑牌了,像马戏团的开场,又像魔术师亮相的前奏。
“好听。”徐子游一听就定下了,他说,“就这个。”
雅南笑了,拿起笔在纸上边写边哼,c4_200,E4_200,G4_200,A4_200……
她写得很快,不一会就把这调子写完了。
徐子游拿着纸回到三楼,开始写解释器验证想法。
解析文本行,按_分割音高和时长,查表转成频率值,送进pc喇叭的计时器端口。一个音播完,自动播下一个。
第一遍跑起来,节奏不对。音与音之间的间隔太短,像机关枪。他加了等待时间——每个音播完后,等当前时长的十分之一再播下一个,听起来像人弹的,不是机器。
第二遍,有个音解析错了。他查了一下代码,发现是分隔符的问题改了。
第三遍,终于对了。
轻快的旋律从pc喇叭里流出来,虽然只是单调的方波,没有和弦,但那个旋律是对的。俏皮,跳跃,像小丑在跳火圈。
雅南不知道什么时候跑上来了,站在门口听。
“好听吗?”徐子游问。
“比我想的还好。”她笑了,“电脑不会弹错音。”
接下来的时光,两个人窝在三楼,一个写谱,一个写程序。
雅南把游戏需要的所有音效都写成了文本。
出牌、得分、小丑牌触发、过关等等音效,他俩配合无间,挨个录入成功。
每写完一个,徐子游就跑一遍程序,让雅南听。她觉得不对的就改,觉得好的就定下来。
其中有一段旋律,明明和雅南写的一致,但程序跑出来,味道就是不对。
雅南一直在较真,反复的改。
徐子游想劝她算了,雅南却和他讲起了一个故事。
“你知道吗,我以前在学校合唱团,有一次演出,我的谱子丢了。”她低着头画着,声音很轻,“还有十分钟就要上台,我没有谱子,只能靠记忆弹。结果我弹完了,老师说,比有谱子的时候还好听。”
徐子游没说话,安静地听着。
“后来我就知道了,有时候真正的音乐,不是记录在谱子上的。”她抬起头,一本正经地说道:“是靠来自内心的真实感觉。”
她重新拿起笔,写了一段。
“这个好。”徐子游跑程序听了一遍说。这次的旋律不一样,更松弛,更自由,像一个人在午后晒太阳,懒洋洋的,但很舒服。适合放在通关后。
徐子游把所有的文本谱子合并成一个文件,写了一个统一的播放器。游戏运行的时候,根据场景调用对应的旋律,解释器实时解析播放。
他把程序编译好,正常开一把游戏跑了一遍。
果然,音乐是游戏的灵魂,有声音和没声音,完全是两个世界。
徐子游靠在椅背上,长长地呼了口气。
雅南站在旁边,手里还握着笔,眼睛盯着屏幕,嘴角带着笑。
“怎么样?”她问。
“完美。”徐子游说,“比我想的还要好。”
雅南把笔放下,揉了揉手指,指尖都红了,但她脸上的表情是满足的。
“游哥哥。”
“嗯?”
“我小时候,我爸一直让我学音乐,说女孩子学这个有出息。”她低头看着自己的手指,“我不喜欢这种强迫的感觉,但当我学会用音乐记住某刻的心情感受时,我改变了这个想法。”
他关了灯,和雅南一起下楼。糖水铺里,林姨还在煮珍珠,热气腾腾的,满屋子都是甜味。
“饿了吧?”林姨头都没抬,“锅里还有红豆沙,自己盛。”
徐子游盛了两碗,一碗给雅南,一碗给自己。
两个人坐在糖水铺的门口,端着碗,看着外面巷子里昏黄的灯光。
“下周就要飞美国了?”雅南小声说。
“嗯。”
“你的游戏,会有人玩吧?”
“会。”徐子游说,“而且他们一定会记住这个游戏的音效设计。”
雅南笑了,低头喝了一口红豆沙,很甜。
“那你要早点回来。”
“好。”