Mô hình dữ liệu

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.


Mỗi địa điểm được đại diện bởi một mô hình dữ liệu, một thứ bậc của các đối tượng mô tả mọi thứ về địa điểm đó. Mô hình dữ liệu chứa tất cả các đối tượng tạo nên thế giới 3D, chẳng hạn như các phần, địa hình, ánh sáng và các yếu tố môi trường khác. Nó cũng chứa các đối tượng có thể điều khiển hành vi chạy thời gian, chẳng hạn như các tập lệnh thay đổi thuộc tính, gọi các phương thức và hàm, và phản hồi các sự kiện cho phép hành vi động và tính tương tác.

Roblox Engine sử dụng mô hình dữ liệu như một nguồn sự thật cho trạng thái của một địa điểm, để nó có thể mô phỏng và hiển thị nó trên các thiết bị khách. Để biết thêm thông tin về cách Roblox Engine diễn giải mô hình dữ liệu, xem Chạy thời gian giữa khách và máy chủ.

Các đối tượng


Bạn đặt và tổ chức các đối tượng trong mô hình dữ liệu để mô tả một địa điểm trong Roblox. Mỗi đối tượng trong Roblox đều kế thừa từ lớp Instance, định nghĩa các thuộc tính, phương thức và sự kiện chung cho tất cả các đối tượng. Các đối tượng cũng xác định các đặc điểm của chúng tùy thuộc vào chức năng mà đối tượng cung cấp. Có nhiều loại đối tượng với nhiều cách sử dụng khác nhau, nhưng bạn thường xuyên làm việc với các đối tượng BasePartLuaSourceContainer, thường được gọi là các phần và tập lệnh.

Để biết danh sách đầy đủ về tất cả các tính năng của Roblox Engine, xem tài liệu tham khảo.

Các khối xây dựng 3D

BasePart là lớp cốt lõi cho các khối xây dựng 3D mô phỏng vật lý trong thế giới. Nó định nghĩa các thuộc tính và phương thức chung của tất cả các đối tượng vật lý với các thuộc tính như vị trí, kích thước và hướng.

Đối tượngMô tả
PartMột phần nguyên thủy có thể có hình dạng của một khối, quả cầu, hình trụ, hình chóp, hoặc hình chóp góc.
MeshPartMột lưới nhập khẩu từ phần mềm mô hình hóa 3D như Maya hoặc Blender.
TrussPartMột thanh giằng mà nhân vật có thể leo lên như một cái thang.

Khi bạn có thể lý thuyết tạo ra một trò chơi Roblox hoàn chỉnh chỉ bằng các phần đơn giản, có lẽ bạn sẽ nhập khẩu các lưới và kết hợp các phần nguyên thủy thành các đối tượng và cấu trúc phức tạp hơn thông qua mô hình rắn.

Tập lệnh

Bạn có thể thêm tính tương tác và hành vi vào thế giới 3D của địa điểm và xác định logic bằng cách sử dụng các tập lệnh. Bạn viết các tập lệnh bằng ngôn ngữ lập trình Luau để thực hiện các nhiệm vụ như di chuyển các phần, gọi các tập lệnh khác và phản hồi các sự kiện. Bởi vì Roblox hoạt động theo mô hình máy chủ-khách, bạn có thể chạy các tập lệnh trên máy chủ, máy khách hoặc để chúng giao tiếp qua giới hạn mạng.

  • Một đối tượng Script đại diện cho một tập lệnh chỉ có thể chạy trên máy chủ.
  • Một đối tượng LocalScript đại diện cho một tập lệnh chỉ có thể chạy trên máy khách.
  • Một đối tượng ModuleScript đại diện cho một tập lệnh tái sử dụng mà bạn có thể require() từ cả các tập lệnh máy chủ và máy khách.

Để các tập lệnh hoạt động đúng cách, bạn phải đặt chúng vào các container thích hợp trong mô hình dữ liệu. Để biết thêm thông tin, xem các phần Máy chủMáy khách.

Tổ chức đối tượng

Trong khi bạn có rất nhiều sự linh hoạt trong cách tổ chức mô hình dữ liệu của mình, Roblox Engine mong đợi một số đối tượng phải có trong các dịch vụ container nhất định, có nghĩa là các đối tượng có các hành vi cụ thể và có thể ảnh hưởng đến hành vi của các đối tượng mà chúng chứa. Các danh mục dịch vụ container chính bao gồm:

  • WorkspaceWorkspace lưu trữ tất cả các đối tượng hiển thị trong thế giới 3D.
  • Môi trường — Các container như LightingSoundService chứa các đối tượng cho các thiết lập và yếu tố môi trường.
  • Sao chép — Các container cho nội dung và logic sao chép giữa máy chủ và khách, chẳng hạn như ReplicatedStorageReplicatedFirst.
  • Máy chủ — Các container cho nội dung và logic chỉ dành cho máy chủ, chẳng hạn như ServerScriptServiceServerStorage.
  • Khách — Các container cho nội dung và logic chỉ dành cho máy khách, chẳng hạn như StarterPlayerStarterGui.
  • Chat — Các container cho các đối tượng cho phép tính năng chat, chẳng hạn như VoiceChatServiceTextChatService.

Ngoài ra, bạn có thể tổ chức các đối tượng của mình hơn nữa bằng các đối tượng sau:

  • Thư mục — Một Folder là nhằm mục đích tổ chức và không định nghĩa bất kỳ hành vi nào. Ví dụ, bạn có thể sử dụng thư mục để nhóm các đối tượng tương tự như một tập hợp các tập lệnh trong lưu trữ máy chủ.
  • Mô hình — Một Model chủ yếu được thiết kế cho sự nhóm hình học của các phần, chẳng hạn như nhóm lại một bộ bàn làm việc bao gồm một ghế, bàn, và một đèn. Để tổ chức các bộ phức tạp hơn, bạn thậm chí có thể lồng các mô hình vào bên trong các mô hình khác.

Workspace

Workspace chứa tất cả các đối tượng tạo nên thế giới 3D của một địa điểm. Bạn có thể thêm các đối tượng vào workspace để tùy chỉnh thế giới 3D của mình, chẳng hạn như các phần cơ bản, các phần lưới và các mô hình. Các khách hàng sẽ hiển thị mọi thứ xuất hiện trong container này và không gì bên ngoài nó, vì vậy bạn có thể kiểm soát những gì người dùng thấy và tương tác trong địa điểm của bạn. Mặc dù không thực sự được hiển thị, bạn cũng có thể thêm các tập lệnh mà được cha mẹ đến các phần và mô hình mà chúng liên kết. Theo mặc định, workspace đã được điền sẵn với một đối tượng TerrainCamera.

Camera

Camera xác định cách mà khách hàng nhìn thế giới 3D. Theo mặc định, có một camera trong workspace, nhưng bạn có thể thêm nhiều đối tượng camera cho việc tạo ra các góc nhìn và quan điểm khác nhau. Mỗi khách hàng lấy các thiết lập này và tạo ra cái nhìn camera riêng mà máy chủ không thể trực tiếp thay đổi.

Ví dụ, bạn có thể thiết lập camera để theo dõi chuyển động của người dùng hoặc giữ cố định ở một vị trí cụ thể. Bạn cũng có thể điều chỉnh trường nhìn, khoảng cách và góc để tạo ra các hiệu ứng trực quan khác nhau về cách người dùng nhìn thấy thế giới 3D của bạn.

Để biết thêm thông tin, xem tùy chỉnh camera.

Terrain

Terrain cho phép bạn tạo ra cảnh quan cho địa điểm của bạn. Bạn có thể áp dụng một vật liệu cho địa hình để mô phỏng môi trường tự nhiên mong muốn, chẳng hạn như cỏ, nước, cát, hoặc một vật liệu tùy chỉnh. Mặc dù bạn chỉ có thể có một đối tượng địa hình cho thế giới 3D của mình và áp dụng một vật liệu cho địa hình đó, bạn có thể sử dụng Trình chỉnh sửa Terrain để chỉnh sửa các vùng của địa hình của bạn.

Để biết thêm thông tin, xem địa hình môi trường.

Môi trường

Ánh sáng tùy chỉnh có thể làm cho thế giới 3D của bạn trở nên sống động và chân thực hơn. Dịch vụ Lighting chứa các đối tượng điều khiển các thiết lập ánh sáng toàn cầu của địa điểm bạn, chẳng hạn như Atmosphere để mô phỏng các hiệu ứng khí quyển hoặc Sky để thay đổi mặt trời, mặt trăng và các ngôi sao trong môi trường của bạn. Ngoài ra, bạn có thể sử dụng nguồn sáng để phát sáng từ các đối tượng cụ thể.

Việc thêm âm thanh vào các trò chơi của bạn cũng rất quan trọng để nâng cao trò chơi của bạn lên những tầm cao mới. Bằng cách sử dụng chiến lược âm thanh định vị và không định vị, bạn có thể làm cho người chơi đắm chìm vào thế giới của bạn, cung cấp cho họ phản hồi hữu ích cho các hành động của họ, và hướng sự chú ý của họ đến những gì họ cần làm để thành công trong mục tiêu của mình.

Sao chép

Sao chép là quá trình máy chủ đồng bộ hóa trạng thái của địa điểm bạn với tất cả các khách hàng kết nối. Roblox Engine thông minh và tự động sao chép dữ liệu, vật lý, và tin nhắn chat giữa máy chủ và khách cho nhiều trường hợp, nhưng bạn cũng có thể chỉ định một số đối tượng cụ thể để sao chép bằng cách đặt chúng vào các container cụ thể.

ReplicatedFirst

ReplicatedFirst chứa các đối tượng mà bạn muốn sao chép đến một khách hàng khi nó tham gia địa điểm của bạn. Nó thường chứa các đối tượng cần thiết để khởi tạo một người chơi, chẳng hạn như các đối tượng LocalScript phía máy khách và các đối tượng liên quan đến các tập lệnh. Tất cả nội dung trong container này chỉ được sao chép từ máy chủ sang máy khách một lần.

ReplicatedStorage

ReplicatedStorage chứa các đối tượng có sẵn cho cả máy chủ và các khách kết nối. Bất kỳ sự thay đổi nào diễn ra trên khách sẽ vẫn tồn tại nhưng sẽ không được sao chép về máy chủ. Máy chủ có thể ghi đè lên các sự thay đổi trên khách để duy trì tính nhất quán. Container này thường được sử dụng cho các đối tượng ModuleScript cần phải được chia sẻ và truy cập bởi cả các đối tượng Script (bên máy chủ) và LocalScript (bên máy khách). Ngoài ra, bạn có thể sử dụng container này để sao chép bất kỳ đối tượng nào không cần tồn tại trong thế giới 3D cho đến khi cần thiết, chẳng hạn như một ParticleEmitter để sao chép và cha mẹ hóa đến tất cả các mô hình nhân vật đang đến.

Để biết thêm thông tin về cách sao chép hoạt động, xem chạy thời gian giữa khách và máy chủ.

Máy chủ

Mô hình dữ liệu xác định các container chuyên dụng cho các đối tượng chỉ dành cho máy chủ mà không bao giờ được sao chép đến khách. Điều này cho phép máy chủ ảnh hưởng đến hành vi và trạng thái của khách mà không hé lộ các đối tượng và logic của máy chủ cho khách.

ServerScriptService

ServerScriptService chứa các đối tượng Script, các đối tượng ModuleScript mà các tập lệnh máy chủ yêu cầu, và các đối tượng liên quan đến lập trình khác chỉ dành cho máy chủ sử dụng. Nếu các tập lệnh của bạn yêu cầu các đối tượng khác không phải lập trình, bạn phải đặt chúng trong ServerStorage. Các tập lệnh trong container này không bao giờ được sao chép đến khách, điều này cho phép bạn có logic an toàn, ở phía máy chủ.

ServerStorage

ServerStorage chứa các đối tượng chỉ dành cho máy chủ sử dụng. Bạn có thể sử dụng container này để lưu trữ các đối tượng mà bạn muốn sao chép và cha mẹ hóa đến workspace hoặc các container khác trong thời gian chạy. Ví dụ, bạn có thể lưu trữ các đối tượng lớn như bản đồ trong container này cho đến khi chúng cần thiết và chỉ di chuyển chúng vào workspace khi cần thiết. Điều này cho phép bạn giảm thiểu lưu lượng mạng của khách khi tham gia ban đầu.

Khách

Các dịch vụ container phía khách được thiết kế cho các đối tượng được sao chép đến mọi khách hàng kết nối. Loại container này sao chép đến mọi khách hàng kết nối và thường chứa các đối tượng 3D và các đối tượng LocalScript liên quan. Tất cả các đối tượng bạn lưu trữ trong các container này không tồn tại trên các phiên và được thiết lập lại mỗi khi một khách hàng tham gia lại. Bạn có thể đặt các đối tượng trong các container này như các GUI của người chơi, các tập lệnh phía khách, và các đối tượng khác chỉ liên quan đến khách.

Khi một khách hàng kết nối với máy chủ, dịch vụ container Players lắng nghe người dùng tham gia địa điểm của bạn và tạo ra một đối tượng Player cho mỗi khách hàng. Máy chủ sao chép các đối tượng từ các container khách trong mô hình dữ liệu chỉnh sửa đến vị trí tương ứng trong mô hình dữ liệu chạy thời gian bên trong đối tượng Players. Bảng sau mô tả container ban đầu mà nó cư trú trong container và container kết quả mà chúng được sao chép đến trên khách:

Mô hình dữ liệu chỉnh sửaMô hình dữ liệu chạy thời gianGhi chú
StarterPackPlayer.BackpackCác tập lệnh thiết lập kho đồ của người chơi và thường chứa các đối tượng Tool nhưng thường cũng chứa các tập lệnh địa phương.
StarterGuiPlayer.PlayerGuiCác tập lệnh có thể quản lý GUI cục bộ của người chơi. Khi một người chơi hồi sinh, nội dung của PlayerGui sẽ được xóa. Máy chủ sao chép các đối tượng bên trong StarterGui vào PlayerGui.
StarterPlayerScriptsPlayer.PlayerScriptsCác tập lệnh chung cho phía khách. Ví dụ, nếu bạn muốn tạo ra hiệu ứng đặc biệt trên máy khách khi một số điều kiện nhất định được đáp ứng, bạn có thể đặt một tập lệnh cục bộ trong container này để thực hiện điều đó. Máy chủ không thể truy cập vào container này.
StarterCharacterScriptsPlayer.CharacterCác tập lệnh được sao chép đến khách khi họ xuất hiện. Những tập lệnh này không tồn tại khi người chơi hồi sinh.
ReplicatedFirstNội dung của container này được sao chép đến tất cả các khách hàng (nhưng không quay lại máy chủ) trước tiên, trước bất kỳ thứ gì khác.

Chat

TextChatService

TextChatService đại diện cho dịch vụ quản lý các tác vụ chat văn bản khác nhau trong trò chơi, chẳng hạn như quản lý các kênh, trang trí tin nhắn, lọc văn bản, tạo lệnh, và phát triển các giao diện chat tùy chỉnh.

Để biết thêm thông tin, xem tổng quan về chat văn bản.

VoiceChatService

VoiceChatService đại diện cho tính năng chat thoại dựa trên khoảng cách mô phỏng giao tiếp thực tế dựa trên mức độ gần gũi của bạn với các người dùng khác. Bạn có thể sử dụng dịch vụ này để bật hoặc tắtc tính năng này.

Để biết thêm thông tin, xem chat thoại.

Thư mục và mô hình

Có hai phương pháp chính để nhóm các đối tượng trong mô hình dữ liệu: thư mụcmô hình. Cả hai đều là các container cho các đối tượng, nhưng có các mục đích khác nhau.

  • Thư mục tốt nhất cho việc lưu trữ các phần của môi trường, chẳng hạn như sảnh hoặc một đấu trường chiến đấu.
  • Mô hình được sử dụng cho các bộ đối tượng, chẳng hạn như một bộ bàn làm việc bao gồm một ghế, bàn, và một đèn. Để tổ chức các bộ phức tạp hơn, bạn có thể lồng các mô hình vào bên trong các mô hình khác.

Bạn nên luôn đặt tên cho các đối tượng của mình một cách mô tả. Điều này giúp dễ dàng tìm kiếm và sửa đổi các đối tượng sau này nếu cần thiết.

Cửa sổ Explorer với một ví dụ về cấu trúc tổ chức thư mục.
Các đối tượng được tổ chức thành Folders
Cửa sổ Explorer với một ví dụ về cấu trúc tổ chức mô hình trong một số dịch vụ.
Các mô hình "bản đồ" khác nhau để chuyển đổi giữa WorkspaceServerStorage
©2026 Roblox Corporation. Roblox, logo Roblox và Powering Imagination là các nhãn hiệu đã đăng ký và chưa đăng ký của chúng tôi tại Hoa Kỳ và các quốc gia khác.