遊戲開發者會議「CEDEC 2023」已在 2023 年 8 月 23 日舉辦。在首日的講座上,由卡普空的薮下剛史、岩本卓也,以及 Andrew Alfonso 帶來《快打旋風6》新增的功能「實時旁述」的背後運作邏輯。
如果玩家開啟「實時旁述」功能,就能夠在對戰中聽到主播賽評針對遊戲的現況進行實況講解。這個功能其實有 3 大目標。一是傳達目前的賽況、二是精確傳達比賽關鍵點、三則是讓玩家體驗到真實比賽的緊張感。
為了要讓「實時旁述」可以成功實現上面 3 大目標,其實背後可以大略概括承三個處理步驟。從事前開發這套系統時,就要先界定好「什麼時候用什麼台詞」,例如用普通摔的話,就要對應到「摔了!」等相關台詞等。
接著第二個要面對的,就是要讓系統去「找出有哪幾句台詞大致符合現在的遊戲戰況」,例如當對戰真的出現普通摔時,跟普通摔相關的複數台詞就會被系統鎖定。
系統最後一個步驟,就是要選擇「最符合當下戰況的台詞,並撥放出來」。例如執行普通摔指令時,會有「摔了!」、「要摔嗎?」、「這邊用摔技!」等複數台詞被鎖定,接著再輔以由目前戰況構成的變數,選擇出最適合當前戰況的台詞。
不僅如此,每個台詞都有自己所謂的「條件」。這邊同樣以「普通摔」來舉例。當有玩家執行「普通摔」指令時就會對應到 4 種狀況:摔空、摔到、摔到康,以及被解摔;關於體力方面的台詞條件也是,雙方80%、50%、25%、5%血量時都會對應到各種不同的條件。
但其實格鬥遊戲有著許多戰鬥技巧以及狀況,當然必須要盡可能定義出能含括所有狀況的條件,但這仍有極限。開發團隊在用上權力後,遊戲發售時約有350種以上的台詞條件。
而台詞總數對應「與每個條件相關的數量」,為了避免相同的台詞不斷重複出現讓玩家聽膩,基本上會針對每個條件準備專屬的台詞,特別是在重要場景或常發生的狀況時,會設定較多的台詞。
最後畫龍點睛的就是旁述員的情緒了。包括「雙方體力差距」、「體力剩餘量」、「剩餘時間」、「現在第幾局」等都代表著一套變數,系統會根據目前的戰況在背後進行變數計算,得出這個時候的旁述員是應該比較冷靜的播報、還是情緒高昂的播報。
在系統層面上也有問題需要解決。第一是開發團隊在初期無法在確保遊戲60FPS的同時、還能處理超過4000條以上的台詞;第二是必須解決當遊戲「回溯」時的解決方案,因為如果遊戲回溯的話,哪麼實況台詞就有可能跟回溯後的戰況不同。
那麼該如何解決這兩個問題呢?開發團隊決定不讓旁述系統即時抓取當前frame數、而是抓取約當前frame數0.3秒前的frame數來做決定。這樣的好處可以減低系統處理的負擔,同時因為0.3秒前的frame數已經是比可能發生回溯frame數還要更之前的,所以自然也不用擔心發生回溯時播報台詞對不上的狀況。
至於台詞總是與各條件這麼多,到底該怎麼樣進行調整呢?答案就是投入大量的人力去進行除錯。雖然也是有運用一些工具來讓工作更有效率,但花費的時間依舊非常可觀。
雖然大部分玩家通常會將這個功能關閉(包括筆者),但是在了解卡普空在這套新系統背後投入的努力後,下次不妨開啟「實時旁述」打個幾場、體驗自己被實況播報的感覺吧!
新聞來源: 4gamer