繁體
  • 简体中文
  • 繁體中文

熱門資訊> 正文

成立2年融資近9億!AI NPC引爆遊戲行業鉅變,微軟等大廠已經入局

2023-12-25 22:40

來源:新智元

遊戲行業真在加速擁抱大語言模型等AI技術,不論是大廠還是獨立遊戲製作人,都開始依靠LLM的技術創立全新的AI NPC體驗。

在聊天機器人之外,如何讓大語言模型完成產品化落地,一直是一個世界性的難題。

因為大語言模型本身可解釋性低,內容受到幻覺影響,很多專業度很高的行業,要真正用上大模型的能力,也許還有一段距離。

而遊戲行業,已經成爲了第一批全面擁抱大模型的行業!

最近,$微軟(MSFT.US)$宣佈與AI初創公司inworld達成合作,一同開發Xbox工具,讓遊戲開發者能夠創建由AI驅動的角色、故事和任務。

微軟與inworld簽訂了一個持續多年的合作伙伴關係,將包括共同開發一個「AI 設計副駕駛」系統,Xbox開發人員可以使用該系統創建詳細的腳本、對話樹、任務線等。

根據微軟官方的説法,nworld在使用生成式AI模型進行角色開發方面的專業知識、微軟尖端的基於雲的 AI 解決方案(包括 Azure OpenAI 服務)、微軟研究院對未來遊戲的技術見解,以及Team Xbox的遊戲製作和發行方面的經驗,為所有開發人員提供負責任的創建者工具。

合作目標是共同提供一個易於使用的多平臺人工智能工具集,以協助和授權創作者進行對話、故事和任務設計。該工具集將包括:

AI遊戲設計Copilot,可協助遊戲設計師探索更多創意,將提示轉化為詳細的腳本、對話樹、任務等。

集成到遊戲客户端中的AI角色引擎,通過動態生成的故事、任務和對話來實現全新的故事和劇情,供玩家體驗。

inworld作為一家由前谷歌員工成立的初創公司,已經為很多大型遊戲公司提供了AI生成的NPC和故事線的解決方案。

公司成立兩年多的時間,融資超過一億兩千萬美元,已經和網易,$迪士尼(DIS.US)$等遊戲和動畫行業的大廠完成了合作。

$網易(NTES.US)$旗下的工作室推出的Cygnus Enterprises, 就利用了inworld推出的AI NPC的功能,創制出來的AI伴侶不僅可以為玩家提供一個有趣的角色,讓他們在收集資源時與之交談,還可以在玩家通過語音命令要求 AI 同伴收集資源時,指示他們為玩家收集資源。

被谷歌收購的連續創業者再次創業

Inworld創始人Ilya Gelfenbeyn,Michael Ermolenko之前創立了API.AI。

API.AI被Google收購后更名為Dialogflow,集成進了Google Cloud之中,成爲了市場上最受歡迎的對話式AI平臺。

之后於2021年,他們再次創業,成立了Inworld。

在2022年底推出了一款利用GPT-3來生成遊戲NPC對話內容的工具,成爲了OpenAI的官方宣傳案例。

隨后,Inworld推出了名為「角色引擎」的產品,專門幫助遊戲開發人員創立個性化的AI NPC。

AI NPC 可以學習和適應,利用情商處理關係,具有記憶力和回憶能力,並且能夠自主啟動目標、執行行動並遵循自己的動機。

使用定義的觸發器、意圖識別和動機來觸發角色對玩家行為的反應並驅動遊戲中的交互。「角色引擎」的目標和行動功能讓用户驅動NPC行為,以動態和自定義的方式響應玩家的輸入。

玩家認為,就像遊戲動畫引擎一樣,角色引擎可能會改變未來3A大作的體驗方式。

角色通過從閃存和長期記憶中檢索信息,以類似人類的記憶功能進行操作,從而創造出玩家返回的引人入勝的體驗。

Inworld通過編排30多個機器學習模型來支持多模式角色表達,這些模型旨在模仿全方位的人類交流,包括語音變化和語調、面部表情和肢體語言等非語言線索。

世界中的角色能夠根據與用户的互動來表達情感。情緒可以映射到動畫、目標和觸發器之上,呈現出性格豐富而真實的NPC。

「角色引擎」可以使用內置語音設置以最小化延迟,並配置角色的性別、年齡、音調和説話速度。或者,使用類似像「ElevenLabs」這樣的第三方服務來創建自定義和復刻聲音。

在自己的電腦上實現本地AI NPC的框架

而大部分像「角色引擎」這種使用生成式AI提供AI NPC功能的工具,都可以使用幾乎免費或者開源的技術替代。

這給了很多獨立遊戲製作者在這個領域趕上大廠的希望。

我們曾經就介紹過一個「上古卷軸」的AI NPC mod。

最近,開發者Joe Gibbs,分享了自己在自己的電腦上自己通過開源大模型搭建智能NPC的本地框架:

具體來説,Joe Gibbs使用llama.cpp和Mistral7b來創造對話內容,並利用StyleTTS2來生成語音,同時使用Unreal Engine 5來進行場景渲染。

項目地址:https://github.com/joe-gibbs/local-llms-ue5

起初,他將llama.cpp作為動態鏈接庫(DLL)集成到了Unreal中,但過程並不順利。於是,他轉而構建了一個用Node.js腳本實現的解決方案。

至於語音部分,則使用mrfakename提供的StyleTTS2演示版Docker容器鏡像,並通過Gradio的API接口與之進行交互。理想情況下,如果不必依賴Docker容器會更好,但我沒能在我自己的電腦上直接運行 StyleTTS2 模型。

實現配置如下:

系統:Windows 11

硬盤:三星980 PRO M.2 1TB

CPU:英特爾Core i5 12600KF

內存:64GB DDR5

GPU:$英偉達(NVDA.US)$GeForce RTX 4070 12GB

工作原理

在Unreal中,通過調用FInteractiveProcess類來執行Node腳本。這個腳本將先前的對話歷史作為命令行參數傳入,然后逐句輸出NPC的對話內容。爲了提升性能,可以不等整個對話生成完畢,邊播放當前句子邊生成併發聲下一句。

輸出一個JSON對象,包含字幕所需的文本和相應音頻文件的位置信息,Unreal會解析成結構體后進行播放。

性能表現

性能方面意外地出色。生成新句子時會略微卡頓,但影響不大。StyleTTS2需要使用14GB的RAM,而Llama服務器需要3GB,因此運行它需要較大的內存空間。

至於幀率,正如視頻所展示的,系統能輕松保持流暢的60 FPS。

生成新句子大約需要2-3秒。或許可以在生成句子期間播放一些動畫,以減少等待時的不適感,但現狀已經相當不錯了。

如果搭配使用Whisper,可以在生成迴應時稍微延迟玩家語音轉錄顯示在屏幕上的速度,這種體驗用户在使用Siri等服務時已經比較熟悉了。

缺陷

儘管速度更快,但Mistral模型與GPT-3.5相比,主要的缺點在於其連貫性較差。

容易跑題,而且還是會有幻覺問題的存在。例如,在一個測試中,它指引玩家前往幾英里外的村莊,儘管玩家實際上已經處於那個村莊之中。

同樣地,在視頻中可以看到,它知道玩家名為John,這個信息實際上並未在對話中被提及,它還提到了Angers這個要在數百年之后纔出現的地名。

此外,它對於遊戲世界里可能發生和不可能發生的事情也缺乏現實感。比如,在演示視頻中展示的訓練村民的任務,實際上是不可能完成的,因為遊戲內根本沒有相關的機制支持。

StyleTTS2的語音合成效果也不夠自然,仍然帶有些許機械感。對於它不熟悉的單詞,它的發音也不太準確,或者會根據上下文錯誤地發音。

未來的改進方向

目前,這只是一個初步的概念實驗框架,如果要在本地良好的運行這個框架,還有許多方面可以進行優化。

- 首先,可以嘗試將llama.cpp 作為動態鏈接庫 (DLL) 集成到Unreal引擎中。這樣可以避免使用Node.js腳本,從而大大簡化遊戲的分發流程。

- Mistral有時會跑題,因此最好針對遊戲的背景進行調整。比如,目前似乎無法通過設定來完全避免它產生不符合時代背景的表述,當一個設定在12世紀的角色突然能解釋如何使用AWS時,這會讓玩家感到很齣戲。

- 此外,調整算法這樣能在文本輸出中標註情感也是一個可能的選項。通過使用StyleTTS2,可以傳入語音克隆的片段,這樣只需讓配音演員用不同的情感朗讀一個句子,就可以根據這個特定的樣本來生成語音。

- 還有一些其他的方法值得探索,比如StyleTTS2能與Unreal引擎更緊密地結合。如果能擺脫對特定Python版本和特定Python包的依賴,那將大有裨益。

- 集成Whisper也許就能讓玩家自然地與NPC對話並得到回答。

在技術展示的其他方面,還有一些間接相關的改進措施。例如,NPC在對話時嘴脣不會動。可以使用類似於audio2face的技術來解決這個問題,而且不會對遊戲性能產生太大的影響。

此外,還可以讓大語言模型(LLM)通過返回包含動畫指令的JSON數據,來控制 NPC的肢體動作,從而使得對話更加生動。

對未來的一些思考

作者設想了一個隨着玩家開始對話而更新的數據庫方案。

該數據庫將儲存關於玩家、NPC(包括他們的背景故事和目標)、世界等方面的信息,以此作為對話的基礎。

系統會創建一個詳盡的文件,記錄玩家的所有任務歷史(NPC 所知道的部分)、玩家身上的裝備、當前天氣、NPC 與其他 NPC 的互動、以及與玩家的聊天記錄(包括日期、時間等,方便推測玩家提到的是過去的某個事件),接着在提交給大語言模型 (LLM) 前,對這份文件進行自然語言的查詢分析。

當然,最理想的情況還是由人工精心設計任務。

目前來看,讓大語言模型自行設計完整任務還暫時做不到 。

可能會導致像《上古卷軸》中那樣重複的任務,簡單的重複「去某地做某事」是很難被遊戲玩家接受的。

行業還需要精確訓練的大語言模型,專注於其擅長的領域,並拒絕執行超出能力範圍的任務。可以給它設定一個能力列表(如給予物品、取走物品、開始任務等),並讓它拒絕執行列表之外的操作。

不過這篇分享的重點是展示如何在本地完整運行一個AI NPC角色框架,現在來看實現這目標並不複雜。

編輯/lambor

風險及免責提示:以上內容僅代表作者的個人立場和觀點,不代表華盛的任何立場,華盛亦無法證實上述內容的真實性、準確性和原創性。投資者在做出任何投資決定前,應結合自身情況,考慮投資產品的風險。必要時,請諮詢專業投資顧問的意見。華盛不提供任何投資建議,對此亦不做任何承諾和保證。