什麼是非玩家角色(NPC)?定義、類型與即時 3D 範例
打造你自己的非玩家角色
非玩家角色(NPC)是遊戲中任何不受玩家控制的角色。瞭解六種 NPC 類型,並走進一個 NPC 會實際行動的即時 3D 世界——免下載。
非玩家角色(NPC)是遊戲中任何不受玩家控制的角色。這就是完整的定義。混淆始於人們把這個詞套用在任何無需輸入就會移動的東西上——一架沒有名字的巡邏無人機、一面會滑動的牆、一場死鬥裡的機器人。那些都不是 NPC。NPC 首先是一個角色,其次才是一套演算法。
這個詞源自桌上角色扮演遊戲。在一場紙筆遊戲中,有一個人擔任裁判,扮演所有玩家沒有扮演的角色。當這套結構搬到電腦上,詞彙也隨之一併遷移。在 Neta Studio 建構的瀏覽器 3D 世界裡,NPC 是一個網格,附加了一份行為腳本和一張對話表。刪掉腳本,它就變成佈景;刪掉網格,它就什麼都不是。兩者都需要。
定義:「非玩家角色」究竟是什麼意思
非玩家角色是遊戲世界裡虛構的人物或生物,由遊戲控制,而非玩家。它擁有身分——名字、身體、一句台詞、一個角色定位——並依照設計者所寫的規則運作。玩家通常可以和它交談、交易、戰鬥或跟隨它。玩家無法操控它。
這個說法比電子遊戲更古老。它出現在 1970 年代的桌上角色扮演遊戲文本中,用來區分由遊戲主持人操控的角色與由玩家操控的角色。縮寫 NPC 不久後便進入一般遊戲書寫,並維持穩定長達五十年。這種穩定性並不尋常。渲染、物理、尋路與對話系統都已被汰換過好幾輪。這個標籤之所以留存,是因為它描述的是一種關係,而不是一項技術。
兩個條件必須同時成立。第一,這個實體是一個角色——它在虛構世界裡具有存在感與身分。第二,控制權在系統手上,而不是人類。賽車遊戲裡的交通錐不符合第一個條件。合作模式中的第二名玩家不符合第二個。格鬥遊戲裡的 CPU 對手如果完全沒有角色性,就不符合第一個條件,這也是下一節要把這些情況分開的原因。
可重複使用的實用定義
非玩家角色是由遊戲控制的角色。這句話涵蓋了一切,從站在櫃檯後的店主,到陪著你穿越三個區域、還記得你做過什麼的同伴。
NPC 對玩家對 CPU
這三個詞會被混用,是因為它們在畫面上看起來可能一模一樣。一個 CPU 對手和一個敵對 NPC 可能共用相同的模型與相同的攻擊節奏。差別在於這個實體在設計上是什麼,而不是它渲染成什麼樣子。玩家對角色擁有主導權。NPC 在虛構世界裡擁有身分。CPU 則是「對抗」的一種實作方式。
當你著手建構時,這個區別就很重要。在 Neta Studio 中,玩家操控的實體會綁定到輸入事件。NPC 綁定到一份行為腳本和一張對話表。CPU 對手綁定到一條難度曲線,通常就別無其他——沒有名字、沒有台詞、沒有記憶。你可以替一個 CPU 取名字、給聲音、給一個存在的理由,把它提升為 NPC。你也可以剝掉 NPC 的對話,把它降級為道具。標籤跟隨的是設計,而不是檔案。
| NPC | 玩家 | CPU |
|---|---|---|
| 具備角色身分:名字、模型、聲音、角色定位 | 具備角色身分,無論是自選或指派的 | 可能完全沒有身分——往往是玩家的鏡像 |
| 由遊戲的邏輯控制 | 由人類透過輸入控制 | 由遊戲的邏輯控制 |
| 能交談、交易、發布任務、跟隨、記住事情 | 自行決定下一步要做什麼 | 存在的目的是戰鬥、競速或競爭 |
| 可能友善、中立或敵對 | 陣營取決於玩家的選擇 | 通常預設為敵對 |
| 刪掉對話,它就變成道具 | 刪掉輸入綁定,它就變成 NPC | 加上一個名字和一句台詞,它就變成 NPC |
NPC 的 6 種類型
在已上市的遊戲中,大多數 NPC 可歸入六個功能類別。單一角色可以屬於多於一類——一個既販售裝備又發布任務的鐵匠,同時是商人與任務發布者。這些類別很有用,因為每一類都隱含著不同份量的行為程式碼、對話量與尋路需求。
如果你正在學習如何建構它們,請從背景型與互動型著手。它們幾乎不需要任何邏輯,卻能讓場景顯得有人氣。等你有物品欄系統時再加入商人。同伴留到最後再加,因為跟隨行為正是尋路錯誤最容易付出高昂代價的地方。
- 任務 NPC發布目標、追蹤完成進度,並在目標達成時改變狀態。需要一張至少具備三種狀態的對話表:之前、進行中、之後。你會在獨眼巨人島的碼頭遇到一位。
- 商人 NPC交換物品或貨幣。需要一份物品清單和一個交易介面的掛鉤。困難的部分是定價,而不是行為。在 Mini World 中,有一位商人備有三件商品,並在某個旗標設定之前拒絕交易。
- 背景 NPC存在的目的是讓一個地方顯得有人居住。沿著固定路線繞行、播放待機動畫、沒有對話樹。執行成本低,也是最常被誤認為佈景的一種類型。
- 敵人 NPC具有敵意,帶有仇恨半徑和一套攻擊模式。與 CPU 對手不同,因為它通常有名字、有陣營,也有待在這個關卡裡的理由。
- 同伴 NPC跟隨玩家、並肩作戰,通常還帶有忠誠度或生命狀態。跟隨行為是最容易出錯的部分:它會在樓梯、門口和狹窄的邊緣處失靈。
- 互動 NPC回應特定的玩家動作——打開一道閘門、觸發一段過場動畫、交出一個物品。沒有任務、沒有商店。它只對一個觸發條件做出反應。
什麼讓 NPC 成為角色,而不是道具
有四項要素在發揮作用:外觀、對話、行為,以及在故事中的角色定位。去掉其中任意三項,你就得到一個道具。會移動的道具依然是道具。一個掛著名牌、會移動的木箱,依然是個木箱。
外觀是最便宜、也最被高估的要素。一個沒有對話、沒有角色定位的精細模型,讀起來就只是裝飾。當大多數玩家說一款遊戲的 NPC 很棒時,他們指的其實是對話,因為那是最清楚的訊號,表明牆裡有某個東西正選擇對你說話。行為是讓角色在你走開之後依然存在的關鍵。角色定位則是你為何在意它再次出現的原因。
建構它們的順序是:外觀,接著行為,然後對話,最後是角色定位。外觀擺第一,因為你需要有東西可以看著來除錯。行為第二,因為一個從不移動的角色很難測試。對話第三,因為它取決於狀態。角色定位留到最後,因為那是一項設計決策,而不是程式碼決策——而且正是它把一台販賣機變成一個人。
為什麼會移動的道具依然不合格
給一個木桶一條巡邏路徑,它就會移動。給它一個名字,它就有了標籤。它依然沒有對話、沒有角色定位,對這個世界也無話可說。玩家會把它讀成機械裝置。判斷的標準很簡單:如果玩家從不期待它有所回應,它就不是一個角色。
四要素檢驗
在你把某個東西稱為 NPC 之前,先檢查全部四項。外觀:你能描述它嗎?對話:你能引述一句台詞嗎?行為:在無人觀察時,它會做任何事嗎?角色定位:如果你把它刪掉,故事會改變嗎?四項中符合三項,那就是一個有企圖心的道具。
走進一個這些 NPC 真實生活的世界
閱讀關於 NPC 的內容,和親眼看著一個 NPC 決定朝你走來,是兩回事。Neta Studio 的 3D 遊戲製作器在瀏覽器中執行——免安裝、免外掛、免下載。下方的世界是即時且可遊玩的。走近每個角色並與之互動。六種類型全都在場。
獨眼巨人島使用 NPC 的方式就像一款小型冒險遊戲:寥寥數個角色,每個各司其職。開場的任務發布者設定目標。商人負責交易。同伴在某個旗標設定後加入。敵人帶著視野錐沿固定路線巡邏。背景 NPC 讓村莊顯得有人氣,而一位互動 NPC 會在你帶著正確物品靠近時打開一道閘門。
如果你想修改它們,3D 遊戲製作器會公開每個角色所附加的行為腳本。Agent Sprite Forge 會為每個 NPC 產生角色美術與精靈圖集。你可以替換對話表並重新載入,而無須重新啟動工作階段。
- 任務 NPC站在起點碼頭附近。與它交談,任務目標標記就會在你的 HUD 上更新。
- 商人 NPC在西側小徑的攤位後方。交易三件物品;第三件會在任務旗標翻轉後解鎖。
- 背景 NPC有兩個沿固定路線繞行村莊。它們沒有對話,也不會停下來。
- 敵人 NPC在山脊上巡邏。它帶有視野錐和仇恨半徑。中斷視線即可讓它重置。
- 同伴 NPC在任務旗標設定後加入。以兩公尺的距離跟隨,並攻擊你所攻擊的目標。
- 互動 NPC在閘門旁。帶著正確物品靠近,它就會打開閘門;沒帶就靠近,它會拒絕。
為什麼這個詞至今依然重要
這套詞彙之所以留存,是因為它標記了一條每一項新技術都必須跨越的界線。桌上遊戲在裁判的角色與玩家的角色之間劃下這條線。早期的文字冒險遊戲沿用。三 A 級預算的遊戲沿用它,同時為玩家依然無法操控的角色砸下大筆資金做動作捕捉與配音。由 LLM 驅動的角色也沿用——一個即興生成對話的語言模型依然是非玩家角色,因為說話的仍然不是玩家。
改變的是每一項要素的成本。外觀以前是最昂貴的一項;如今對一個風格化的角色來說幾乎免費。對話以前是一張固定表格;現在可以在執行階段生成。行為以前是手工撰寫的狀態機;現在往往是行為樹或規劃器。角色定位依然是最難、也最貼近人性的一項——也就是關於一個角色究竟為何存在於故事中的那個決定。
這個詞對建構很重要,因為它逼你回答那個問題。如果你說不出一個實體由誰控制,你就說不出它的用途是什麼。在 Neta Studio 中,場景裡的每個角色都帶有一個控制標籤:玩家、NPC 或道具。這個標籤決定了什麼會綁定到它。改變標籤,行為也隨之改變。
在現代遊戲中,什麼算是 NPC
現代遊戲模糊了這些類別。召喚物、寵物、AI 隊友和多人遊戲機器人全都坐落在這條界線附近。有用的問題不是這個實體在技術上算不算 NPC,而是它的行為是否像一個角色——身分、對話、行為、角色定位——以及玩家是否直接控制它。
有兩種邊緣情況經常出現。一個聽從命令的 AI 隊友擁有角色性,也會回應指令,但控制權是共享的。一個填補空位的多人遊戲機器人則完全沒有角色性——它只是人類的替身。兩者在日常對話中都被稱為 NPC。兩者都不完全符合定義。
| 情況 | 判定 | 原因 |
|---|---|---|
| 召喚出的生物 | NPC | 具有身分與行為,玩家無法操控它 |
| 聽從指令的寵物 | NPC | 具有身分的角色;玩家下達命令,而非直接控制 |
| 小隊中的 AI 隊友 | 通常算 NPC | 具有身分與角色定位;共享的戰術控制權使它難以界定 |
| 填補空位的多人遊戲機器人 | 不算 NPC | 代替人類玩家;通常沒有角色性或對話 |
| 格鬥遊戲的 CPU 對手 | 不算 NPC | 純粹的對抗演算法,在故事中沒有角色定位 |
| 提供指示的新手教學語音 | 若有形體則算 NPC | 如果它沒有身體或名字,它就只是介面,而非角色 |
走進它所屬的世界
精靈是一個無處可站的角色。最後一步是別人都不提供的那一步:把你剛剛做好的圖集放進一個有人能走動的世界——一座小島、一顆行星、一個下雨的街角。這個網站上的每個世界都是由一段文字描述所製成,並發布成一個你可以遊玩的頁面。
FAQ
NPC 的全稱是什麼? +
非玩家角色。這個縮寫自 1970 年代桌上角色扮演遊戲以來便一直沿用,意義從未改變。
NPC 是 AI 嗎? +
有時候是。一個沿固定路線繞行的背景 NPC 是腳本化的,不是 AI。一個會繞過障礙物尋路、並對戰鬥做出反應的同伴,則使用了搜尋與決策邏輯。「AI」這個標籤描述的是實作方式,而不是角色本身。
NPC 和機器人有什麼不同? +
機器人代替人類玩家,通常沒有角色身分。NPC 則是虛構世界裡由遊戲控制的角色。填補空位的多人遊戲機器人不是 NPC。
第一個 NPC 是什麼? +
無法查證出單一的第一個。1970 年代的文字冒險遊戲已有能回應輸入指令的角色,而這個詞本身更早來自桌上遊戲。
為什麼叫「非玩家」? +
因為這個標籤用「不是什麼」來定義這個實體:它不受玩家控制。這種否定式框架標記了玩家主導權的邊界。
你可以扮演 NPC 嗎? +
不能在同一個工作階段裡。如果你控制這個角色,依定義它就是玩家角色。有些遊戲讓你暫時附身於一個 NPC,但在那段期間,遊戲會把它當作玩家操控來處理。
回到 3D 遊戲製作器
全部 31 個完成的 3D 世界、遊戲與場景都在同一頁上——每一個都可以遊玩。