关于 CrossVoice
我热爱 Mordhau 和 Hunt: Showdown 这样的游戏,也一直很喜欢 Mordhau 中的语音台词系统,Chivalry 2 中的也一样。后来我开始思考,怎样才能在 Hunt: Showdown 中使用同样的机制——再进一步,为什么不在任何带语音聊天的游戏中使用呢?
这个想法最终变成了一个用 Python 编写、通过虚拟音频设备工作的初版原型。概念是可行的,但由于种种原因,这个项目被搁置了好几年。
后来,我接触到了 Soundpad 这类音效板,了解到通过麦克风播放声音能做到什么。但我找到的所有音效板都是同一种方式:一个按键,一个声音。这促使我重新拾起这个项目,并让它远远超越最初的原型。我开始尝试用 C++ 构建原生音频方案,让我能够真正掌控声音的处理和传输方式。
在此基础上,我用 C# 构建了应用程序的其余部分,首先是用于管理配置文件和设置语音命令的界面。我很快意识到,播放声音只是问题的一部分:一切还必须与每款游戏的语音聊天配合工作,包括使用按键说话的游戏。这让我深入研究了音频路由和底层键盘处理,从而能够可靠地管理这些按键操作。

随着开发推进,CrossVoice 不断成长。配置文件逐步演进,可以将命令组织到页面中,并支持按键和修饰键、音频变体,以及音量、音高和播放速度等设置。我还加入了常驻的叠加层,让你在对局中无需离开游戏就能使用和控制应用。
我的目标始终是让 CrossVoice 不依赖任何特定游戏。你可以按自己的方式设置配置文件,并在不同游戏中使用,无需针对特定游戏的集成,应用也无需知道你在玩什么。
到了这一步,让所有这些成果只留在我自己的配置文件里就没什么意义了。为什么不让玩家分享他们的配置文件,享受社区创作的内容呢?CrossVoice 的社区功能就这样成形了。
就这样,CrossVoice 从一个 Python 原型成长为今天的项目。最初在玩 Mordhau 和 Hunt: Showdown 时萌生的想法,变成了一个远比当初宏大的项目,而我亲手构建并扩展了这个应用程序几乎所有的部分。
— Raúl Mateo