AI NPC 與互動敘事:讓遊戲角色「活起來」的對話設計入門

AI NPC 與互動敘事:讓遊戲角色「活起來」的對話設計入門

讓 NPC 即時回應玩家每一句話,技術上做得到,難的是成本、延遲,和讓角色「該閉嘴時閉嘴」。從 LLM NPC 四塊積木、Convai 與 Inworld 怎麼選、人設 prompt 範本,到每玩家每日成本怎麼算,一篇入門講透。

週三下午,台北內湖一間二十人遊戲工作室的會議室,敘事設計師林子軒把手把遞給製作人。demo 裡,玩家對酒館老闆娘說:「你弟弟欠的錢,我幫他還清了。」老闆娘沉默兩秒,聲音放軟,酒錢打了對折——這段對話不在任何腳本裡,是語言模型即時生成的。會議室安靜三秒,製作人開口的第一句不是「太神了」,是「這樣一句話,成本多少?」

這兩個反應,剛好就是 LLM NPC 在 2026 年的全貌:體驗上確實是魔法,帳單上確實要精算。這篇講清楚原理、工具、prompt 寫法,以及沒人愛講的成本與延遲。

LLM NPC 的四塊積木:人設、記憶、知識、護欄

把 ChatGPT 塞進遊戲,不等於 AI NPC。一個能上線的 LLM NPC 至少有四層。人設卡(system prompt)定義角色是誰、說話口吻、知道什麼、絕不做什麼。記憶讓角色記得玩家上次做過的事——實務上是把對話摘要存檔,每次呼叫時塞回上下文,不然 NPC 會像失憶症患者。知識庫用 RAG 接世界觀設定,玩家問「北方戰爭誰贏了」,答案從設定文件檢索,而不是讓模型瞎編,原理同什麼是 RAG

護欄最重要,也最常被忽略:NPC 不能爆雷主線、不能被玩家騙出任務解法、不能被誘導說出踩線內容。Steam 對即時生成內容還要求玩家檢舉機制——護欄不是選配,是上架條件。

工具怎麼選:整合套件省事,自己串省錢

要語音、嘴型同步、引擎整合一次到位,看兩家。Convai 提供 Unity 與 Unreal 的 SDK,對話、行動、語音全包,有免費方案;獨立開發者方案月費 29 美元,含三千次互動(其中一千五百次可用旗艦模型)——原型期夠用,正式營運要重新算帳。Inworld AI 這兩年轉型為即時語音 AI 與 agent 執行框架,改採用量計價,語音合成每百萬字元 5 美元起、延遲壓在 200 毫秒內,微軟與迪士尼都是投資方,適合工程能量強的團隊。

敘事導向的互動劇可以看 Charisma AI,走劇情樹加 AI 即興的混合寫法。至於 Character.AI,拿來測人設手感、找對話靈感可以,別指望接進正式產品。

文字型 NPC 自己串 API 其實不難:OpenRouter 一把鑰匙切換各家模型,Groq 的推理速度適合即時對話,離線單機遊戲甚至能用 Ollama 在玩家電腦跑小模型,零 API 成本。多模型管理可用 LiteLLM 統一介面。動手前可讀AI Agent 工具鏈實戰

Prompt 設計:讓角色守得住人設

NPC prompt 和聊天機器人 prompt 的最大差別:你要的不是有問必答,是「有所不答」。一份實戰結構長這樣:

你是「鐵錨酒館」老闆娘瑪爾妲,52 歲,喪偶,講話直接、帶碼頭腔,好面子但心軟。

【你知道的】酒館八卦、碼頭走私傳聞(只跟熟客透露)、亡夫欠船長的債。
【你不知道的】王城政局、魔法原理、任何你沒聽過的地名——被問到就說不知道,不准編造。
【絕對禁止】透露地下室的祕密(除非玩家出示船長的戒指)、談論遊戲以外的世界、以任何形式承認自己是 AI。

【輸出格式】回傳 JSON:
{"dialogue": "台詞,50 字以內", "emotion": "warm/neutral/hostile 擇一",
 "action": "give_discount/refuse_service/none 擇一"}

玩家好感度:{{affinity}}/100。低於 30 時語氣冷淡、提高戒心。

三個實測心得。一,輸出結構化 JSON,讓遊戲邏輯讀 emotion 和 action 欄位去驅動表情與行為,比解析自然語言可靠得多。二,「不知道的事說不知道」要明寫,不寫,模型必編。三,每條護欄都要附例外條件,不然玩家都拿到戒指了,老闆娘還在裝傻。更多角色人設範本可逛提示詞庫

成本與延遲:先算帳,再做夢

算一筆帳。一次 NPC 對話呼叫,人設卡加記憶摘要加對話歷史,輸入約 1,500 token、輸出約 150 token。用旗艦模型,單次成本大約新台幣零點二到零點五元,聽起來便宜;乘上「十萬玩家、每人每天跟 NPC 聊 30 句」,就是每天數十萬元的帳單。商業遊戲的現實解是分層:九成閒聊用便宜快速的小模型(Groq 上的開源模型、DeepSeek 這類低價 API),劇情關鍵 NPC 才用旗艦;常見問題直接快取,玩家問「這裡是哪」不必每次都燒 token。

延遲是另一面牆。文字對話,玩家可以忍一秒;語音對話,超過 500 毫秒就開始尷尬。完整鏈路是語音辨識、LLM、語音合成三段,每段都要串流:LLM 逐 token 吐、TTS 逐句念,別等全文生完才出聲。網路差或伺服器掛掉的場景,準備預寫對話當 fallback——LLM 斷線,NPC 至少退回罐頭台詞,別直挺挺當機站著。

2026 年的主流答案是混合設計:主線劇情照樣人工手寫,保住敘事品質;LLM 負責支線閒聊、環境反應、玩家自由提問。讓 AI 補「活著的感覺」,不是取代編劇。

TheAI學院 總結與評語

LLM NPC 的技術已經到位,難的是設計紀律:人設卡要寫「不知道什麼」、護欄要有例外條件、成本要分層、延遲要串流、掛掉要有 fallback。demo 的驚豔和上線的穩定之間,隔著這五件工程活。想入門的人,先用文字型 NPC 加自串 API 跑通一個角色,再決定要不要上整合平台。美術與整體開發,搭配AI 遊戲美術工作流一人做遊戲路線圖服用。

一句話評語:AI NPC 最難的不是讓角色什麼都能聊,是讓它「該閉嘴時閉嘴」——護欄設計才是真功夫。

給台灣讀者的具體建議:獨立開發者從單機文字 NPC 起步,用 Ollama 跑本機小模型零成本練手;中型團隊先拿 Convai 免費方案做一個垂直切片,驗證玩家真的會跟 NPC 深聊,再談規模化;算帳要用「每玩家每日對話成本」,不要拿 demo 的單次成本自我安慰。

常見問題

AI NPC 的營運成本會不會很貴?

單次對話成本約新台幣零點幾元,但乘上玩家數與對話量就很可觀。主流做法是分層:閒聊用小模型、關鍵劇情才用旗艦模型,並對常見問題做快取。

做 AI NPC 一定要用 Convai 或 Inworld 嗎?

不一定。文字型 NPC 自己串 API(OpenRouter、Groq)就能做;需要語音、嘴型同步與引擎深度整合時,整合平台才明顯省工。

怎麼防止玩家把 NPC「玩壞」?

人設卡明寫禁止事項與例外條件、輸出用結構化 JSON 交給遊戲邏輯把關、上線前做紅隊測試;Steam 也要求即時生成內容須提供玩家檢舉機制。

單機遊戲能做 AI NPC 嗎?

可以。用 Ollama 在玩家電腦跑量化小模型即可離線運作,零 API 成本;代價是人設遵循度較弱,護欄要寫得更嚴,並準備預寫對話當備援。