NPC 套件

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

NPC(非玩家角色)可以為一個體驗增添許多深度。所有以下的 NPC 都可以進行視覺上的自訂,它們的 行為可以修改,而殭屍/士兵甚至可以通過使用 標籤系統 來設定行為,以攻擊玩家或其他角色來防衛某個區域。

要在您的遊戲中使用 NPC:

  1. 選擇以下 NPC 套件之一:

    流口水的殭屍
    士兵
    RO-01 機器人
    NP-C 9000 機器人
  2. 在 NPC 的項目頁面上,點擊綠色的 取得 按鈕並確認交易。

  3. 在 Studio 中,打開 工具箱

  4. 選擇您的工具箱 庫存 部分。

  5. 找到 NPC,點擊它將其添加到場地中。

角色結構

每個 NPC 模型通常包含以下對象:

對象名稱或 [類型]類型描述
動畫Folder包含 Animations,例如 AttackAnimationDeathAnimation
初始姿勢Folder包含姿勢信息。
AnimateScript加載並播放角色模型上的動畫。欲了解更多詳情,請參見 Animate
[配件]Accessory可能為 NPC 提供的多個 Accessories 之一,例如帽子、武器等。
健康Script通常隨時間恢復 Humanoid 健康。禁用此功能將防止角色恢復健康。
類人類Humanoid管理 Humanoid 相關屬性,例如 Humanoid.HealthHumanoid.WalkSpeedHumanoid.DisplayDistanceType 等。
NPCScript

定義特定於角色的行為,例如漫遊、攻擊等。包含以下對象:

女傭ModuleScript)定義一種有助於釋放使用的資源的類。

剛體ModuleScript)定義將角色轉換為鬆散的受物理影響的身體的函數(包含定義多個輔助函數的 RigTypes ModuleScript)。

RbxNpcSoundsScript定義和管理與角色音效相關的行為,如奔跑、死亡等。
BodyPartsBasePart各種角色身體部位,通過 Motor6D 或約束對象附加到 HumanoidRootPart 或相鄰的身體部位。詳情請參見 BodyParts
HumanoidRootPartBasePart視為模型的根部的特殊隱形部件;這也是角色 ModelPrimaryPart
ConfigurationConfiguration包含調整各種行為的值對象。詳情請參見 Configuration

設計註解

在使用 NPC 套件時,請記住以下設計註解:

  • NPC 的視覺外觀可以通過添加/修改各種 [BodyParts] 對象和添加 Accessory 對象來自訂。

  • 士兵、流口水的殭屍和 NP-C 9000 機器人使用 Rthro 作為其模型的基礎。然而,RO-01 機器人使用了修改過的 Rthro 基礎,增加了連接到 UpperTorso 的推進器部件,使用 WeldConstraints。以這種方式使用簡單關節可以讓您在不改變原始基礎模型的情況下為角色包含額外的幾何形狀。

  • 在基本層面上,NPC 動畫可以通過修改 Animate 腳本姿勢中的現有動畫對象的 AnimationId,或修改 Animations 文件夾中的動畫來進行自訂。這種更改本質上是一種資產交換 - 要改變細節,您可以創建現有動畫的自定義副本,並要在不同條件下播放動畫,您可以直接編輯 AnimateNPC 腳本。欲了解更多信息,請參見 動畫

Animate

NPC Model 中的 Animate Script 處理與 動畫 相關的配置,並包含以下對象:

對象名稱或 [類型]類型描述
ScaleDampeningPercentNumberValue定義當角色縮放時動畫速度如何改變(小於 1 意味著動畫播放速度會隨著角色的縮放而呈反比例變化)。
PlayEmoteBindableFunction此功能可以被其他腳本調用,以強制假定一個姿勢。
[Pose]StringValue參考可播放的動畫類別,例如靜止、跳躍、行走等。該對象可以包含任意數量的 Animations

這些 Animations 包含一個 Weight (NumberValue),用於優先播放多個動畫中的一個,通常用於增加靜止和舞蹈姿勢的多樣性。

BodyParts

NPC Model 中的 BodyPart BasePart 代表各種角色身體部件,並包含以下對象:

對象名稱或 [類型]類型描述
AvatarPartScaleTypeStringValue確定部件將如何縮放;值可以是 ClassicProportionsNormalProportionsSlender
OriginalSizeVector3Value確定當角色縮放為 1 時部件的大小。
[Attachment]Attachment定義一个相對於個別部件的位置,腳本、特效和物件,如 ToolAccessory 可能在放置時使用。
[Motor6D]Motor6D兩個身體部件之間的動畫關節。請注意,Animator 依賴於 Motor6Ds 的名稱與創建動畫時使用的 Motor6Ds 一致,因此請避免重命名此對象。
[Joint]WeldConstraint, Constraint, JointInstance兩個身體部件之間的非動畫關節。
[Sound]Sound通常位於頭部或 HumanoidRootPart;從模型中播放由 RbxNpcSounds 腳本控制的聲音。

Configuration

每個 NPC 包括一個 Configuration 對象,在其層次結構中作為值對象的容器。這些由 NPC 腳本使用,以調整各種行為。除非另有說明,否則這些適用於所有角色。

對象名稱或 [類型]類型描述
DestroyOnDeathBoolValue導致整個 NPC 在死亡後不久被摧毀。禁用此功能可使剛體持續存在。
PatrolEnabledBoolValue使 NPC 在其起始位置周圍漫遊。
PatrolRadiusNumberValue定義 NPC 將從起始位置漫遊的最大距離,假設 PatrolEnabled 為真。
RagdollEnabledBoolValue使 NPC 在死亡時變得鬆弛,而不是碎裂。
AttackDamageNumberValue定義當 NPC 攻擊受害者時,受害者失去的健康值。這僅適用於殭屍和士兵套件。
AttackDelayNumberValue定義射擊之間的最小秒數。這僅適用於士兵套件。
AttackModeNumberValue根據 標記系統 指定士兵將攻擊的對象。這僅適用於士兵套件。
AttackRadiusNumberValue定義 NPC 必須距離潛在受害者的最大距離,然後它才嘗試攻擊。這僅適用於殭屍和士兵套件。
ClipCapacityNumberValue定義士兵在需要重新裝填之前可以發射的子彈數。這僅適用於士兵套件。
ReloadDelayNumberValue定義在士兵武器彈匣重新裝填之前必須經過的秒數。這僅適用於士兵套件。

分配標籤

NPC 腳本使用 CollectionService 標籤來管理對其他角色和玩家的攻擊性。可以根據以下表格中的標籤進行分配:

  • 要將標籤分配給另一個 NPC,將其分配給 NPC 的頂級 Model,使用其屬性的 Tags 部分。

  • 要將標籤分配給 Player 角色,您可以在 StarterCharacterScripts 中添加 Script,並調用 CollectionService:AddTag()。例如:


    local CollectionService = game:GetService("CollectionService")
    CollectionService:AddTag(script.Parent, "SoldierEnemy")
標籤目的
SoldierEnemySoldierFriend確定士兵是否應該根據其 AttackMode 配置值攻擊另一個角色。當士兵的 AttackMode 設置為 1 時,其他角色必須標記為 SoldierEnemy 才能被視為可攻擊目標。當士兵的 AttackMode 設置為 2 時,所有未帶有 SoldierFriend 標籤的對象都被視為可攻擊目標。當士兵的 AttackMode 設置為 3 時,這些標籤完全被忽略,士兵將攻擊所有角色。
ZombieFriend此標籤由殭屍使用,以確定它是否不應攻擊某個角色。當應用時,殭屍對標記的角色變得溫和。
©2026 Roblox Corporation、Roblox、Roblox 標誌及 Powering Imagination 是我們在美國及其他國家地區的部分註冊與未註冊商標。