NPC 對話 · 提示、變體、審閱

NPC 對話生成器:寫出像真人會說的角色台詞

打造你自己的 NPC 對話生成器

實用的 NPC 對話流程:以人設、目標與限制構成提示,生成變體,逐項審閱,並在可即時遊玩的 3D 示範中讓 NPC 在世界裡開口說話。

✦遊戲
製作一個 NPC 對話生成器

NPC 對話生成器會把一段文字描述,轉換成角色可能說出口的台詞。你提供人設、情境與目標,它回傳草稿;但哪一份草稿能定案,不由它決定。這個決定留在寫作者手上:刪減、修改,並在台詞真正會被聽見的場景裡測試。

本頁介紹一套可重複的流程:建立三段式提示,透過改變情境(而不是改寫措辭)生成三到五個變體,執行五點審閱清單,最後把核准的台詞放進可漫步的世界。最後一步很重要。只存在於文字檔裡的台詞,送到玩家耳中時會像旁白;附在站在定點的角色身上、搭配觸發半徑與對話氣泡的台詞,才會被讀成對話。

快速解答:NPC 對話生成器能做什麼

NPC 對話生成器接收三項輸入——人設、情境與目標——並回傳候選台詞。人設定住誰在說話、他知道什麼。情境定住玩家在哪裡、剛剛發生了什麼。目標定住 NPC 想從這次交流中得到什麼。三者之中改變任何一項,輸出就會改變;三者都不變,你就會得到幾乎重複的內容。

它做不到的是把台詞完成。生成器產出的是草稿:長度正確、語氣可信、對準正確目標,但仍有某種問題,而那個問題往往要等你朗讀出來,或看著它出現在畫面上才會發現。寫作者仍要在候選之中挑選,刪掉解釋過多的句子,並修改留下來的那一句,直到它像真人會說的話。把輸出當成一位快速、不知疲倦、略嫌過度字面解讀的協作者交出的第一版。

是什麼讓遊戲裡的對話像真的

有四項特性發揮了大部分作用。句子要短,因為玩家一邊移動一邊閱讀,需要換兩口氣才讀完的台詞會被跳過。每句只承載一個意圖,因為一句話若同時警告又提問,兩件事都不會成立。每個角色要有前後一致的嗓音,也就是詞彙、句長,以及角色拒絕說出口的內容。還有知識界線:NPC 只該知道他所處位置會讓他知道的事。碼頭工人不會知道國王的健康狀況。北門守衛不會知道下水道發生了什麼,除非有人告訴過他。

知識界線是寫作者最常打破的一條,也是玩家最容易察覺的一條。如果每個角色都能回答每個問題,世界就不再像一個地方,而開始像一個搜尋框。在生成任何內容之前,先決定每個角色合理知道什麼。這個決定應該寫進人設提示裡,而不是留在你腦中。

同一個請求,有兩種寫法。平鋪直敘:「告訴玩家橋斷了,他們得走東邊的路。」放進角色口中,對一個整夜未睡的擺渡人說:「橋昨晚塌了。現在只有東邊那條路是乾的。你有錢,我就載你過去;但天黑我不划船。」第二個版本承載同樣的資訊,也承載了一個人。它暗示了價碼、限制與情緒,這些都不在平鋪直敘的版本裡。

平鋪直敘的版本並非無用,它是規格。先寫平鋪直敘的那一句,再用角色的口吻重寫。直接從目標生成、不給人設,就是你得到正確卻可互換台詞的原因。

提示範式:人設、目標、限制

三段式模板是人設、目標、限制。人設是誰在說話、他知道什麼。目標是這次交流要達成什麼。限制是長度、語氣,以及這句台詞不能做什麼。每次都要填滿三項。只有目標的提示會產出泛泛的台詞;只有人設的提示會產出一段沒有功能的獨白。

填寫範例:「人設:瑪塔,擺渡人,在河上四十年,知道橋昨晚塌了,也知道東邊的路漲潮時會淹水。目標:告訴玩家橋斷了,並說她可以收費載他們過河。限制:三十個詞以內,不交代她的過去,不提國王,口語語域,她累了。」這個提示會回傳可用的候選。拿掉限制,你會得到一段文字。拿掉人設,你會得到一塊路標。

欄位要填什麼常見錯誤
人設姓名、職務、這個角色知道與不知道什麼、當下情緒列出背景故事而非知識界線,導致 NPC 回答不該回答的問題
目標這次交流必須為玩家完成的唯一一件事疊加兩個目標(警告與推銷),讓台詞兩邊都做不好
限制字數、語域、禁止話題、不得揭露的內容省略限制,結果四秒的氣泡配上六十字的段落

生成變體,又不失嗓音

要求三到五個變體,不要十個。少於三個,你看不見選項的空間;多於五個,你花在閱讀的時間會比寫作還多。功能型台詞三個就夠,玩家會反覆聽見的台詞則用五個。

改變情境,而不是措辭。如果你用相同的人設、目標與限制重跑同一個提示,模型會回傳幾乎重複的內容:相同的句型,只換了形容詞。這不是程式錯誤,而是近乎確定性的取樣器在輸入不變時會做的事。要得到真正的多樣性,就改變角色正在反應的那一件事。玩家在黎明抵達,還是在夜晚抵達。玩家受了傷。玩家第三次問了同一個問題。同樣的嗓音,不同的壓力,不同的台詞。

讓不同變體之間的人設區塊保持固定。如果你任由人設在每次執行之間漂移,你生成的就不再是同一個角色的變體,而是好幾個剛好同名的人。凍結人設、改變情境,輸出才保持可比性。

把你最後採用那句話時所用的提示存下來。六週後,當你需要同一個角色的第二句台詞,你可以重新載入那個提示,而不是憑記憶重建嗓音。提示檔案應該和對話資料一起納入版本控制。

台詞定案前的審閱清單

五項檢查,依序進行。每一句台詞進入對話表之前,都要跑過一遍。

1

01

畫面上的長度。數一下字數,並以每秒約三個詞估算閱讀時間。超過約二十個詞的台詞,在你延長計時器之前,會來不及在對話氣泡關閉前讀完。刪短,不要延長。

2

02

NPC 不該擁有的知識。問問自己:以這個角色的崗位與近期經歷,他合理會知道什麼。如果台詞揭露了從未有人告訴他的事,就刪掉,或補上他被告知的那場戲。

3

03

名稱與設定一致性。對照角色表檢查拼寫,並對照世界觀設定文件檢查每一個專有名詞。生成器會發明聽起來很對、卻和你的地圖互相矛盾的地名。

4

04

這句台詞是否提供出口。一句話若結束對話,卻沒有分支、沒有任務更新、也沒有道別,玩家就會站在一個無話可說的角色面前。每一句對話台詞都需要出口,即使出口只是「我沒什麼好說的了」。

5

05

朗讀測試。以說話速度把台詞念出聲。螢幕上看起來沒問題的句子,會卡在子音叢集和不順的重音上。如果你會吃螺絲,配音員也會吃螺絲,玩家就會跳過。

把台詞放進角色口中

挑一句已核准的台詞。把角色放在定點:可漫步場景中的固定位置,面向一個符合他工作的方向。擺渡人站在碼頭邊緣,而不是馬路中央。附上觸發半徑——角色周圍的球體或膠囊體,小到玩家靠近時才觸發,而不是玩家走在街道另一側經過時就播放。接著把對話氣泡綁到角色的頭部錨點,讓它跟著角色移動,並能正確地與幾何物件互相遮擋。

沒有定點的台詞,讀起來像旁白。玩家聽見一個沒有可見來源的聲音,大腦會把它歸類為旁白,而不是角色。定點在第一個字出現之前,就告訴玩家是誰在說話。觸發半徑讓台詞像是對玩家到來的回應,而不是廣播。氣泡則讓台詞在玩家移動時,仍附著在身體上。

在即時 3D 場景裡測試擺位,而不是在模擬圖裡。在 Neta Studio 的 3D 遊戲製作器中,你可以把角色放進可漫步的世界、設定觸發半徑、把核准的台詞綁到氣泡,並讓玩家走過去。Mini World 正是適合這類檢查的小型場景。如果氣泡穿進牆壁,或觸發從廣場另一頭就啟動,你走個十秒就會看見。獨眼巨人島是更大的場景,玩家與角色之間有更多幾何物件,適合用同一句台詞測試。

  • 定點為角色選定的固定位置與面向,讓身體看起來屬於那個地方。
  • 觸發半徑近距離的範圍體,玩家靠近時觸發台詞;調整它,讓台詞不會從房間另一頭就播放。
  • 對話氣泡錨定在角色頭部的世界空間元素,讓台詞在玩家移動時仍附著在身上。
  • 氣泡持續時間依字數設定,約每秒三個詞;先刪短台詞,再考慮延長計時器。

對話在 NPC 行為中的位置

對話只是其中一層。它之上還有感知(NPC 能看到與聽到什麼)、決策(它選擇下一步做什麼)與動畫(這個選擇如何呈現在身體上)。說出口的台詞是這些層次的可見輸出,而不是它們的替代品。一個 NPC 口中發出警告,卻繼續朝同一個方向走,代表它的對話層與動畫層互相矛盾,玩家會把這讀成故障。

如果你使用行為樹,對話應放在葉節點,且要在行為樹已判定角色進入交談之後才抵達。行為樹負責靠近、轉身、停頓與退出;對話節點提供台詞。這能讓台詞清單由資料驅動,並讓行為樹掌管時序。這也意味著你可以把固定台詞換成生成台詞,而不必重寫行為樹。

對於會回應玩家輸入的 AI NPC,結構相同:感知餵給行為樹,行為樹選出對話節點,節點則在執行時取出固定台詞,或帶著人設、目標與限制呼叫模型。Agent Sprite Forge 在這裡很有用,因為角色的視覺身分與對話身分會保持配對——你不會把一句生成台詞,放到一張從未為那種嗓音設計過的角色圖像上。

固定台詞清單往往是比表面看起來更好的選擇。當台詞會被聽見很多次、資訊必須精確、角色屬於狀態可預期的任務鏈,或延遲會破壞場景時,就用固定清單。當輸入開放、台詞只聽一次,且稍微答錯的代價低於完全沒有回答時,就用模型。

Mini World——把角色放進可漫步的場景,看看台詞會落在哪裡。

走進它真正所屬的世界

一張角色圖像,是一個無處可站的角色。最後一步是別人沒有提供的:把你剛做好的角色圖集放進一個有人可以四處走動的世界——一座小島、一顆行星、一個下雨的街角。這個網站上的每個世界,都是從一段文字描述開始製作,並發布成可供遊玩的頁面。

FAQ

什麼是 NPC 對話生成器? +

一種工具或提示範式,接收人設、情境與目標,回傳非玩家角色的候選台詞。它產出的是草稿;台詞定案前,仍由寫作者挑選、刪減與修改。

NPC 對話需要大型語言模型嗎? +

不需要。資料表裡的固定台詞清單就能涵蓋多數 NPC,尤其是反覆聽見或與任務狀態綁定的台詞。當輸入開放、台詞只聽一次時,模型才值得承擔延遲與成本。

每個 NPC 該寫幾句台詞? +

角色功能需要多少就寫多少,不要多寫。背景 NPC 需要兩到四句。任務給予者需要每個狀態一句,外加一句備援。先數狀態,再數台詞。

如何讓角色在生成台詞之間保持一致? +

固定人設區塊,並逐字重複使用。建立角色表,記錄詞彙、句長、知識界線與禁止話題,並把提示與對話資料放在一起,讓後續台詞從同一份輸入出發。

生成的對話可以商用嗎? +

這取決於你所用模型或工具的條款,以及你自己的審閱流程,而不是生成器本身。請確認你特定供應商的授權,並在發布前保留人工審閱。

如何在遊戲中測試對話? +

把角色放在可漫步場景中的定點,設定觸發半徑,將核准的台詞綁定到對話氣泡,然後以說話速度讓玩家走過去。檢查閱讀時間、氣泡是否穿模,以及台詞是否提供出口,再行簽核。

回到 3D 遊戲製作器

全部 31 個完成的 3D 世界、遊戲與場景都在同一頁——每一個都能玩。

平台:Neta Studio頁面:NPC 對話生成器:寫出像真人會說的角色台詞接著閱讀:/explore/guide/ai-npc · /explore/guide/npc-behavior · /explore/guide/what-is-a-non-player-character
×