什麼是 NPC?遊戲中非玩家角色的完整指南
打造你自己的 NPC
非玩家角色(NPC,常被誤寫為「npc's」)是指遊戲中任何不受玩家控制的角色。認識各種 NPC 類型、它們的行為方式,並在瀏覽器中即時遊玩一個 NPC。
非玩家角色(NPC)是指遊戲中任何玩家無法直接控制的角色。這包括始終不動的店主、沿著固定路線巡邏的衛兵、擁有既定攻擊模式的頭目,以及陪你穿越整個關卡的盟友。當你把這個詞寫成「npc's」時,通常是在問文法問題,而不是設計問題——因此本指南兩者都會回答:NPC 是什麼、它們如何行動,以及如何實際把它們放進一個能在瀏覽器中打開的世界。
這個詞比大多數關於它的建議都更古老。它源自桌上角色扮演遊戲,在那種遊戲裡,有一個人扮演除了玩家角色之外的每一個角色。每個數位 NPC 都繼承了這份職責描述:它們存在的目的,是給玩家一個可以做出反應的對象。在 Neta Studio 的 3D 遊戲製作器中,NPC 是一個角色實體,附帶狀態機、導航網格,以及一份對話表或行為表——與你在任何引擎中會使用的原語相同,只是少了編譯步驟。
快速解答:「NPC」代表什麼?
NPC 代表非玩家角色:遊戲中由遊戲邏輯而非真人玩家控制的角色。NPC 涵蓋了所有不是你自己的角色——商人、任務發布者、敵人、盟友、群眾以及頭目。
複數形是 NPCs,不加撇號。單數所有格是 NPC's,例如「NPC 的巡邏路線」。複數所有格是 NPCs',例如「NPC 們的行程表」。單獨的形式 NPC's 也經常出現在搜尋查詢與日常書寫中,這也是下文之所以有拼寫章節的原因。
該寫成「NPC」、「NPCs」還是「NPC's」?
這三種形式之所以容易混淆,是因為撇號在英文中扮演兩種不同的角色。縮寫的複數形一律不加撇號,所有格則一定要加。如果不確定,就把片語展開:「某個 NPC 的路線」用單數所有格,「多位 NPC 的路線」用複數所有格。
在搜尋查詢中,「npc's」很常見,因為語音輸入與自動完成並不在意文法,所以人們在表達複數時也照樣輸入它。如果你是在撰寫文件或遊戲設計文件,複數請使用 NPCs。撇號請保留給所有格,以及本來就不該在此使用的縮寫。
| 形式 | 用法 | 範例 |
|---|---|---|
| NPC | 單數名詞。一個角色。 | NPC 在北門等候。 |
| NPCs | 複數名詞。多於一個角色。不加撇號。 | 十二個 NPC 在市場廣場上活動。 |
| NPC's | 單數所有格,或「NPC is」的縮寫。絕不用作複數。 | 這個 NPC 的對話樹有三條分支。 |
| NPCs' | 複數所有格。屬於多個角色。 | 這些 NPC 的行程表在正午重疊。 |
遊戲中的 NPC:你會遇到的所有涵義
人們用五種說法搜尋 NPC,它們都指向同一個概念,只是切入的角度不同。以下說明每一種說法通常代表什麼,以及在 Neta Studio 的世界中,你可以在哪個場景看到它實際運作。
NPC 遊戲
這是最廣泛的類別用語。它指的是設計、編寫腳本與平衡非玩家角色的整套實務。在 Mini World 中,中央廣場周圍的人群是最簡單的版本:二十個角色共用同一套待機與漫遊行為,並由單一行為表驅動。它們不思考,只是可信地佔據空間。
遊戲 NPC
某款特定遊戲中的單一角色。這種說法通常出現在針對某個具名角色的問題之前——它如何行動、為什麼會出現異常、你能不能招募它。在 The Cyclops' Island 中,獨眼巨人是遊戲中的一個 NPC,具有三種狀態:巡邏、察覺與衝鋒。牠會透過視線檢查進行狀態轉換,使用九百單位的視錐與兩秒的停留計時器,之後才會發動攻擊。
NPC 遊戲作品
在這些遊戲中,NPC 才是重點,而不是佈景。模擬與生活模擬類型正是如此。在 Mini World 中,你可以打開 NPC 面板、新增一個角色,並設定一份行程表,讓他在模擬的一天中從家裡移動到工作地點,再到第三個地點——這與城鎮模擬遊戲所用的結構相同,只是規模更小。
遊戲中的 NPC
這是較為學術的說法,用於論述與設計討論。它問的是 NPC 在這種媒介中發揮什麼功能,而不是某個特定角色如何行動。誠實的答案是:它們傳遞資訊、把關進度,並提供一種社交質感,讓一個空間讀起來像有人居住,而非只是搭建出來的。
遊戲內的 NPC
這是修飾詞形式,通常接在別的詞之後——例如遊戲內的 NPC 商店、遊戲內的 NPC 同伴。它表示這個角色存在於運行中的世界裡,而不是存在於選單中。對建構者來說,這正是關鍵區別:清單上的 NPC 是資料,而遊戲內的 NPC 是具有碰撞體與更新週期的導航網格代理。
六十秒認識歷史
桌上角色扮演遊戲在 1970 年代引入了這個詞:由一名裁判扮演除了玩家角色之外的每一個角色。1970 年代後期的文字冒險遊戲為這些角色加上了剖析器——你對它們輸入文字,少數幾個字詞就會觸發回應。
1980 年代的多使用者地牢加入了持續性。NPC 會在數次連線之間保留狀態、持有物品欄,並對其他 NPC 做出反應。3D 時代為它們加上了形體:網格、行走循環、導航網格與碰撞膠囊。行為幾乎沒變,呈現方式則徹底改變。
過去十年則是 AI 層。效用評分、行為樹,以及最近期的語言模型。這些模型改變了 NPC 說話的方式,卻沒有改變最困難的部分,也就是決定 NPC 在每一秒當下應該想要什麼。
今日遊戲中的 NPC
如今玩家對一個自稱活著的角色有三項期待。第一是行程表:NPC 應該在特定時間出現在特定地點,而且那個地點要說得通。第二是反應:它應該注意到玩家並改變行為。第三則是承諾得最少的一項——記憶:它應該記得先前的互動發生過。
行程表與反應是已經解決的問題。一份路徑點清單加上日夜時間查詢,就能得到一座可信的城鎮。一個視線視錐加上狀態轉換,就能得到一個可信的衛兵。兩者的執行成本都很低;在瀏覽器畫布上跑一百個有行程表的 NPC 不是渲染問題,而是尋路預算問題。
記憶則是已出貨系統與行銷語言之間落差最大的地方。持續性記憶需要一個儲存庫、一套檢索策略,以及一種讓過時資訊淘汰的機制。少了淘汰機制,NPC 就會不斷累積矛盾。如果某個商店頁面聲稱每個角色都能記住一切,請找找看它有沒有處理矛盾的方案,否則就假設那只是一個沒有持續性層的提示詞包裝。
- 行程表依日夜時間安排路線。NPC 會在指定時刻走到指定地點。成本低,且對玩家非常清楚易懂。
- 反應由接近、視線或數值門檻觸發的狀態轉換。巡邏、察覺、交戰、返回。
- 記憶一項關於玩家的已儲存事實,並附帶一條何時失效的規則。在已出貨的遊戲中罕見,在行銷文案中常見。
遊玩一個擁有真實 NPC 的世界
這個世界在瀏覽器中運行,無需安裝。打開它,然後朝中央廣場走去,停在獨眼巨人的察覺視錐內。觀察狀態轉換:停留兩秒,然後衝鋒。在停留完成前走出視錐,牠就會回到巡邏狀態。這是行為表,而不是過場動畫。
接著按下這個世界上的編輯按鈕。打開 NPC 面板,選取廣場上的任何角色。你會看到驅動一切的三個相同欄位:地點清單、視線半徑與轉換表。把停留時間從兩秒拖曳到四秒,這場遭遇就會變得輕而易舉地逃脫。
當你改變了一個數值並重新執行這個世界,你就創作了一個 NPC。下一步是 Agent Sprite Forge,它能把一段文字角色描述轉換成可附加到實體的精靈圖集。從那裡你可以放置第二個 NPC,並讓兩者的行程表彼此重疊。
01
打開世界,走進獨眼巨人的視線視錐內。
02
站在原地兩秒,觀察從巡邏到衝鋒的狀態轉換。
03
在停留計時器完成前走出視錐,觀察返回狀態。
04
打開 NPC 面板,選取一名廣場角色。
05
編輯視線半徑或停留時間,然後重新執行世界。
06
從 Agent Sprite Forge 附加一個新的精靈圖,並放置第二個 NPC。
為什麼 NPC 能讓一個世界感覺有人居住
有 NPC 的街道讀起來像一個場所,沒有 NPC 的街道讀起來像一個關卡。兩者的幾何結構完全相同;差別在於場景裡有些東西存在的理由與玩家無關。
這就是為什麼沒有遊戲功能的群眾 NPC 依然重要。從不賣你任何東西的商人,以及從不說話的路人,都在告訴玩家:當他們轉開視線,這個世界仍會繼續運轉。在 Mini World 中,廣場人群沒有任務、沒有對話,只有一份行為表,卻比任何單一腳本化的遭遇更能為場景的可信度加分。
實用的設計準則:放置一個行程表與你明顯衝突的 NPC。一個在你抵達時正要離開的人。光是這一個重疊,就比把人群數量加倍更能營造出有人生活之地的感覺。
走入它所屬的那個世界
精靈圖是一個無處可站的角色。最後一步是其他人都沒有提供的那一步:把你剛做好的圖集放進一個有人可以四處走動的世界——一座小島、一顆行星、一個下雨的街角。這個網站上的每一個世界,都是從一段文字描述製作而成,並發布成一個可以遊玩的頁面。
FAQ
什麼是 NPC 的全稱? +
非玩家角色——遊戲中任何不由真人玩家控制的角色。這個詞源自桌上角色扮演遊戲,在那裡由一個人扮演除了玩家角色之外的每一個角色。
遊戲中的 NPC 是什麼? +
在遊戲中,NPC 是任何由遊戲邏輯控制的角色:商人、任務發布者、衛兵、敵人、盟友與群眾角色。玩家會與它們互動,但不能操控它們。
該寫成「NPCs」還是「NPC's」? +
NPCs 是不加撇號的複數形。NPC's 是單數所有格(NPC 的路線),或是「NPC is」的縮寫。NPCs' 是複數所有格。撇號絕不用來構成複數。
NPC 一定都是敵人嗎? +
不是。在大多數遊戲中,多數 NPC 是中立或友善的。敵對角色也是 NPC,但這個類別取決於誰控制角色,而不是取決於敵意。
NPC 會使用 AI 嗎? +
有些會。行為樹、效用評分與 A* 尋路都是 AI 技術。大型語言模型則是較新的一層,通常應用於對話,而非移動或戰鬥。
我可以在瀏覽器中製作 NPC 嗎? +
可以。在 Neta Studio 的 3D 遊戲製作器中,你新增一個實體、附加一份行為表與導航網格,並設定行程表或視線半徑。Agent Sprite Forge 能把一段文字角色描述轉換成可附加到該實體的精靈圖集。
NPC 和怪物有什麼不同? +
怪物是 NPC 的一種特定類型——通常是敵對、通用、沒有名字的角色,存在的目的就是被擊敗,並且會重生。所有怪物都是 NPC;但並非所有 NPC 都是怪物。
為什麼 NPC 在世界設計中很重要? +
它們表明一個空間存在的理由超越了玩家本身。有行程表角色的街道讀起來像一個場所;同樣的街道少了它們,就讀起來像一個關卡。
一個世界能容納多少 NPC? +
限制在於尋路成本,而不是渲染。一百個共用同一份行為表與路徑點圖的角色跑得很順;一百個各自進行路徑協商的導航網格代理則不行。
什麼讓 NPC 感覺像活著? +
三件事,依成本排序:一份讓它在特定時間出現在特定地點的行程表、一個在玩家出現時改變其行為的反應,以及對過去互動的記憶。行程表與反應成本低且可靠;記憶成本高,而且極少真正出貨。
回到 3D 遊戲製作器
全部 31 個完成的 3D 世界、遊戲與場景都在同一頁上——每一個都可以遊玩。