NPCs (nhân vật không phải người chơi) có thể thêm chiều sâu cho một trải nghiệm. Tất cả các NPC sau đây có thể được tùy chỉnh về mặt hình ảnh, hành vi có thể được sửa đổi, và zombie/lính có thể thậm chí tự vệ một khu vực bằng cách tấn công người chơi hoặc các nhân vật khác thông qua hệ thống thẻ để thiết lập hành vi.
Để sử dụng một NPC trong trò chơi của bạn:
Trên trang sản phẩm của NPC, nhấn nút xanh Lấy và xác nhận giao dịch.
Trong Studio, mở Toolbox.
Chọn phần Kho trong toolbox của bạn.

Tìm NPC và nhấn vào nó để thêm vào nơi đặt.
Cấu trúc nhân vật
Mỗi mô hình NPC thường chứa các đối tượng sau:
| Tên đối tượng hoặc [Loại] | Loại | Mô tả |
|---|---|---|
| Animations | Folder | Chứa Animations, chẳng hạn như AttackAnimation hoặc DeathAnimation. |
| Initial Poses | Folder | Chứa thông tin về tạo dáng. |
| Animate | Script | Tải và phát hoạt ảnh trên rig của nhân vật. Xem Animate để biết thêm chi tiết. |
| [Accessory] | Accessory | Một trong số nhiều Accessories có thể có cho NPC như mũ, vũ khí, v.v. |
| Health | Script | Thường phục hồi Humanoid sức khỏe theo thời gian. Tắt cái này sẽ ngăn nhân vật không phục hồi sức khỏe. |
| Humanoid | Humanoid | Quản lý các thuộc tính liên quan đến Humanoid, chẳng hạn như Humanoid.Health, Humanoid.WalkSpeed, Humanoid.DisplayDistanceType, v.v. |
| NPC | Script | Xác định các hành vi cụ thể của nhân vật như đi lang thang, tấn công, v.v. Làm cha cho các đối tượng sau: Maid (ModuleScript) định nghĩa một lớp hữu ích trong việc giải phóng tài nguyên đã sử dụng. Ragdoll (ModuleScript) xác định một chức năng biến nhân vật thành một cơ thể bị ảnh hưởng bởi vật lý (làm cha cho một RigTypes ModuleScript định nghĩa một số chức năng trợ giúp). |
| RbxNpcSounds | Script | Xác định và quản lý hành vi liên quan đến hiệu ứng âm thanh của nhân vật như chạy, chết, v.v. |
| BodyParts | BasePart | Các bộ phận thân thể khác nhau của nhân vật được gắn với HumanoidRootPart hoặc các bộ phận thân cận thông qua các đối tượng Motor6D hoặc hạn chế. Xem BodyParts để biết thêm chi tiết. |
| HumanoidRootPart | BasePart | Một phần vô hình đặc biệt được coi là gốc của rig; đây cũng là PrimaryPart của Model của nhân vật. |
| Configuration | Configuration | Chứa các đối tượng giá trị mà tinh chỉnh các hành vi khác nhau. Xem Configuration để biết thêm chi tiết. |
Ghi chú thiết kế
Khi sử dụng bộ công cụ NPC, hãy ghi nhớ các ghi chú thiết kế sau:
Hình ảnh bên ngoài của một NPC có thể được tùy chỉnh bằng cách thêm/sửa đổi các đối tượng [BodyParts] khác nhau và bằng cách thêm các đối tượng Accessory.
Các Lính, Zombie Nhễ nhãi và Robot NP-C 9000 đều sử dụng Rthro làm cơ sở cho rig của chúng. Tuy nhiên, các Robot RO-01 sử dụng một cơ sở Rthro đã được chỉnh sửa thêm các bộ phận thruster kết nối với UpperTorso thông qua WeldConstraints. Việc sử dụng các khớp đơn giản theo cách này cho phép bạn bao gồm thêm hình học cho nhân vật của bạn mà không làm thay đổi rig cơ sở ban đầu.
Ở mức cơ bản, các hoạt ảnh của NPC có thể được tùy chỉnh bằng cách sửa đổi AnimationId của các đối tượng Animation hiện có trong tạo dáng Animate, hoặc các đối tượng trong thư mục Animations. Một sự thay đổi như vậy về cơ bản là một sự hoán đổi tài sản - để thay đổi các chi tiết tinh vi hơn, bạn có thể tạo các bản sao tùy chỉnh của các hoạt ảnh hiện có, và để phát hoạt ảnh dưới các điều kiện khác nhau, bạn có thể chỉnh sửa trực tiếp các kịch bản Animate hoặc NPC. Để biết thêm thông tin, xem Animation.
Animate
Kịch bản Animate Script trong mô hình NPC Model xử lý các cấu hình liên quan đến hoạt ảnh và chứa các đối tượng sau:
| Tên đối tượng hoặc [Loại] | Loại | Mô tả |
|---|---|---|
| ScaleDampeningPercent | NumberValue | Định nghĩa cách tốc độ hoạt ảnh được điều chỉnh khi nhân vật được thay đổi kích thước (nhỏ hơn 1 có nghĩa là hoạt ảnh sẽ phát ngược lại khi nhân vật được thay đổi kích thước). |
| PlayEmote | BindableFunction | Điều này có thể được gọi bởi các kịch bản khác để buộc thực hiện một tư thế. |
| [Pose] | StringValue | Tham chiếu đến một danh mục hoạt ảnh có thể phát như đứng yên, nhảy, đi bộ, v.v. Đối tượng này có thể làm cha cho bất kỳ số lượng nào của Animations. Các Animations này làm cha cho một Weight (NumberValue) mà ưu tiên một trong những hoạt ảnh nhiều diện để phát trong khi tư thế đang được thực hiện; thường được sử dụng để thêm sự đa dạng vào các tư thế đứng yên và nhảy múa. |
BodyParts
Bộ phận cơ thể BasePart trong mô hình NPC Model đại diện cho các bộ phận cơ thể của nhân vật và chứa các đối tượng sau:
| Tên đối tượng hoặc [Loại] | Loại | Mô tả |
|---|---|---|
| AvatarPartScaleType | StringValue | Xác định cách mà bộ phận sẽ được thay đổi kích thước; các giá trị có thể là Classic, ProportionsNormal, hoặc ProportionsSlender. |
| OriginalSize | Vector3Value | Xác định kích thước của bộ phận khi tỉ lệ nhân vật là 1. |
| [Attachment] | Attachment | Xác định một điểm tương đối với bộ phận riêng lẻ mà các kịch bản, hiệu ứng và các đối tượng như Tool hoặc Accessory có thể sử dụng trong việc định vị. |
| [Motor6D] | Motor6D | Một khớp động giữa hai bộ phận cơ thể. Chú ý rằng Animator phụ thuộc vào tên của Motor6Ds phải nhất quán với tên của Motor6Ds được sử dụng khi một hoạt ảnh được tạo, vì vậy hãy tránh đổi tên đối tượng này. |
| [Joint] | WeldConstraint, Constraint, JointInstance | Một khớp không động giữa hai bộ phận cơ thể. |
| [Sound] | Sound | Thường được tìm thấy trong đầu hoặc HumanoidRootPart; phát ra âm thanh từ trong rig được kiểm soát bởi kịch bản RbxNpcSounds. |
Configuration
Mỗi NPC đều bao gồm một đối tượng Configuration trong cấu trúc của nó, hoạt động như một bộ chứa các đối tượng giá trị. Những đối tượng này được sử dụng bởi kịch bản NPC để điều chỉnh các hành vi khác nhau. Nếu không có gì chỉ định khác, các điều này áp dụng cho tất cả các nhân vật.
| Tên đối tượng hoặc [Loại] | Loại | Mô tả |
|---|---|---|
| DestroyOnDeath | BoolValue | Khiến toàn bộ NPC bị tiêu hủy ngay sau khi nó chết. Tắt cái này để các ragdoll vẫn tồn tại. |
| PatrolEnabled | BoolValue | Khiến NPC di chuyển quanh khu vực xung quanh vị trí bắt đầu của nó. |
| PatrolRadius | NumberValue | Xác định khoảng cách tối đa mà một NPC sẽ di chuyển từ vị trí bắt đầu, giả sử PatrolEnabled là true. |
| RagdollEnabled | BoolValue | Khiến NPC trở nên mềm yếu khi nó chết, thay vì bị vỡ ra. |
| AttackDamage | NumberValue | Xác định mức sức khỏe bị mất bởi nạn nhân khi bị tấn công bởi NPC. Điều này chỉ áp dụng cho bộ Zombie và Lính. |
| AttackDelay | NumberValue | Xác định số giây tối thiểu giữa các lần bắn. Điều này chỉ áp dụng cho bộ Lính. |
| AttackMode | NumberValue | Xác định đối tượng mà quân lính sẽ tấn công, dựa trên hệ thống gán thẻ. Điều này chỉ áp dụng cho bộ Lính. |
| AttackRadius | NumberValue | Xác định khoảng cách tối đa mà NPC phải cách xa một nạn nhân tiềm năng trước khi nó cố gắng tấn công. Điều này chỉ áp dụng cho bộ Zombie và Lính. |
| ClipCapacity | NumberValue | Xác định số viên đạn mà lính có thể bắn trước khi cần nạp lại. Điều này chỉ áp dụng cho bộ Lính. |
| ReloadDelay | NumberValue | Xác định số giây phải trôi qua trước khi băng đạn của vũ khí của lính được nạp lại. Điều này chỉ áp dụng cho bộ Lính. |
Gán thẻ
Kịch bản NPC sử dụng CollectionService thẻ để quản lý sự hung hăng đối với các nhân vật và người chơi khác. Nhiều thẻ từ bảng sau có thể được gán như sau:
Để gán thẻ cho một nhân vật Player, bạn có thể thêm một Script vào StarterCharacterScripts với một lệnh gọi CollectionService:AddTag(). Ví dụ:
local CollectionService = game:GetService("CollectionService")CollectionService:AddTag(script.Parent, "SoldierEnemy")
| Thẻ | Mục đích |
|---|---|
| SoldierEnemy hoặc SoldierFriend | Xác định xem một lính, dựa trên giá trị cấu hình AttackMode của nó, có nên tấn công một nhân vật khác không. Khi AttackMode của lính được thiết lập thành 1, các nhân vật khác phải được gán thẻ SoldierEnemy để được coi là có thể tấn công. Khi AttackMode của lính được thiết lập thành 2, tất cả các đối tượng không có thẻ SoldierFriend sẽ được coi là có thể tấn công. Khi AttackMode của lính được thiết lập thành 3, các thẻ này sẽ bị bỏ qua hoàn toàn và lính sẽ tấn công tất cả các nhân vật. |
| ZombieFriend | Thẻ này được sử dụng bởi zombie để xác định xem nó có nên không tấn công một nhân vật hay không. Khi được áp dụng, zombie trở nên hiền lành đối với nhân vật được gán thẻ. |



