關於 CrossVoice
我熱愛 Mordhau 和 Hunt: Showdown 這類遊戲,也一直很喜歡 Mordhau 的語音台詞系統,Chivalry 2 的也一樣。後來我開始思考,要怎麼在 Hunt: Showdown 中使用同樣的機制——更進一步,何不在任何具備語音聊天的遊戲中使用呢?
這個想法後來成了一個以 Python 撰寫、透過虛擬音訊裝置運作的初版原型。概念行得通,但因為種種原因,這個專案被擱置了好幾年。
後來,我接觸到 Soundpad 這類音效板,了解到透過麥克風播放聲音能做到哪些事。但我找到的每一款音效板都是同一種方式:一個按鍵,一個聲音。這促使我重新拾起這個專案,並讓它遠遠超越最初的原型。我開始嘗試用 C++ 打造原生音訊解決方案,讓我能真正掌控聲音的處理與傳送方式。
接著,我用 C# 打造了應用程式的其餘部分,首先是用來管理設定檔和設定語音指令的介面。我很快就發現,播放聲音只是問題的一部分:所有功能還必須能與每款遊戲的語音聊天搭配運作,包括使用按鍵說話的遊戲。這讓我深入研究音訊路由與低階鍵盤處理,才能可靠地管理這些按鍵動作。

隨著開發推進,CrossVoice 不斷成長。設定檔逐步演進,能將指令整理到頁面中,並支援按鍵與輔助鍵、音訊變體,以及音量、音高和播放速度等設定。我也加入了常駐的浮動介面,讓你在對戰中不必離開遊戲就能使用和控制應用程式。
我的目標始終是讓 CrossVoice 不依賴任何特定遊戲。你可以依照自己的方式設定設定檔,並在不同遊戲中使用,不需要針對特定遊戲的整合,應用程式也不需要知道你在玩什麼。
到了這一步,讓這些成果只留在我自己的設定檔裡就沒什麼意義了。何不讓玩家分享他們的設定檔,享受社群創作的內容呢?CrossVoice 的社群功能就這樣成形了。
就這樣,CrossVoice 從一個 Python 原型成長為今天的專案。最初在玩 Mordhau 和 Hunt: Showdown 時萌生的想法,變成了一個遠比當初宏大的專案,而我親手打造並擴充了這個應用程式幾乎所有的部分。
— Raúl Mateo