Model danych

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.


Każde miejsce jest reprezentowane przez model danych, hierarchię obiektów, które opisują wszystko o miejscu. Model danych zawiera wszystkie obiekty, które tworzą świat 3D, takie jak części, teren, oświetlenie i inne elementy środowiskowe. Zawiera również obiekty, które mogą kontrolować zachowanie w czasie rzeczywistym, takie jak skrypty, które modyfikują właściwości, wywołują metody i funkcje oraz odpowiadają na zdarzenia, które umożliwiają dynamiczne zachowanie i interaktywność.

Silnik Roblox używa modelu danych jako źródła prawdy o stanie miejsca, aby mógł symulować i renderować go na urządzeniach klienckich. Aby uzyskać więcej informacji na temat interpretacji modelu danych przez silnik Roblox, zobacz Czas wykonywania klient-serwer.

Obiekty


Umieszczasz i organizujesz obiekty w modelu danych, aby opisać miejsce w Roblox. Każdy obiekt w Roblox dziedziczy po klasie Instance, która definiuje ogólne właściwości, metody i zdarzenia, które są wspólne dla wszystkich obiektów. Obiekty definiują również swoje własne cechy, w zależności od funkcjonalności, jaką zapewniają. Istnieje wiele kategorii obiektów z szeroką różnorodnością zastosowań, ale często będziesz pracować z obiektami BasePart i LuaSourceContainer, powszechnie nazywanymi częścią i skryptami.

Aby uzyskać pełną listę wszystkich funkcji silnika Roblox, zobacz dokumentację referencyjną.

Bloki budowlane 3D

BasePart jest podstawową klasą dla fizycznie symulowanych bloków budowlanych 3D w świecie. Definiuje właściwości i metody wspólne dla wszystkich obiektów fizycznych, takie jak położenie, rozmiar i orientacja.

ObiektOpis
PartPrymitywna część, która może przyjmować kształt bloku, kuli, cylindra, klina lub kąta klina.
MeshPartZaimportowana siatka z oprogramowania do modelowania 3D, takiego jak Maya lub Blender.
TrussPartBezmian w trzepotaniu, który postacie mogą wspinać się jak po drabinie.

Chociaż teoretycznie można stworzyć w pełni funkcjonalne doświadczenie w Robloxie, korzystając tylko z prostych części, najprawdopodobniej zaimportujesz siatki i połączysz prymitywne części w bardziej złożone obiekty i struktury za pomocą modelowania stałego.

Skrypty

Możesz dodać interaktywność i zachowanie do świata 3D swojego miejsca oraz zdefiniować logikę przy użyciu skryptów. Pisz skrypty w języku programowania Luau, aby wykonywać czynności takie jak poruszanie częściami, wywoływanie innych skryptów oraz reagowanie na zdarzenia. Ponieważ Roblox działa w modelu klient-serwer, możesz uruchamiać skrypty na serwerze, kliencie, lub sprawić, aby komunikowały się przez granicę sieci.

  • Obiekt Script reprezentuje skrypt, który może być uruchamiany tylko na serwerze.
  • Obiekt LocalScript reprezentuje skrypt, który może być uruchamiany tylko na kliencie.
  • Obiekt ModuleScript reprezentuje skrypt wielokrotnego użytku, który można require() z obu skryptów serwera i klienta.

Aby skrypty działały prawidłowo, musisz umieścić je w odpowiednich kontenerach w modelu danych. Aby uzyskać więcej informacji, zobacz sekcje Serwer i Klient.

Organizacja obiektów

Chociaż masz dużą elastyczność w tym, jak organizujesz swój model danych, silnik Roblox oczekuje, że niektóre obiekty będą znajdować się w określonych usługach kontenerowych, które są obiektami o określonych zachowaniach i mogą wpływać na zachowania zawartych w nich obiektów. Główne kategorie usług kontenerowych obejmują:

Dodatkowo możesz jeszcze bardziej organizować swoje obiekty za pomocą następujących obiektów:

  • FolderyFolder służy do celów organizacyjnych i nie definiuje żadnego zachowania. Na przykład, możesz używać folderów do grupowania podobnych obiektów, takich jak zestaw skryptów w przechowywaniu serwera.
  • ModeleModel jest głównie przeznaczony do geometrycznego grupowania części, takich jak grupowanie zestawu biurowego, który zawiera krzesło, stół i lampę. Aby zorganizować bardziej złożone zestawy, możesz nawet zagnieżdżać modele wewnątrz modeli.

Workspace

Workspace zawiera wszystkie obiekty, które tworzą 3D świat miejsca. Możesz dodawać obiekty do workspace, aby dostosować swój świat 3D, takie jak podstawowe części, części siatek i modele. Klienci renderują wszystko, co pojawia się w tym kontenerze, i nic poza tym, więc możesz kontrolować, co użytkownicy widzą i z czym mogą interagować w swoim miejscu. Choć nie są faktycznie renderowane, możesz także dodawać skrypty, które są powiązane z częściami i modelami, z którymi się wiążą. Domyślnie workspace jest wstępnie wypełnione obiektami Terrain i Camera.

kamera

Camera określa, jak klient widzi świat 3D. Domyślnie w workspace jest jedna kamera, ale możesz dodać wiele obiektów kamery, aby tworzyć różne perspektywy i widoki. Każdy klient przyjmuje te ustawienia i tworzy swój własny widok kamery, który serwer nie może bezpośrednio zmodyfikować.

Na przykład, możesz ustawić kamerę, aby śledziła ruchy użytkownika lub pozostawała w stałej lokalizacji. Możesz również dostosować pole widzenia, odległość i kąt, aby tworzyć różne efekty wizualne, które pokazują, jak użytkownicy widzą twój świat 3D.

Aby uzyskać więcej informacji, zobacz dostosuj kamerę.

Terrain

Terrain pozwala na tworzenie krajobrazów dla twojego miejsca. Możesz zastosować materiał do terenu, aby zasymulować pożądane naturalne środowiska, takie jak trawa, woda, piasek lub niestandardowy materiał. Chociaż możesz mieć tylko jeden obiekt terenu dla swojego świata 3D i zastosować jeden materiał do tego terenu, możesz używać edytora terenu do edytowania regionów twojego terenu.

Aby uzyskać więcej informacji, zobacz teren środowiskowy.

Środowisko

Niestandardowe oświetlenie może sprawić, że twój świat 3D będzie znacznie bardziej immersyjny i realistyczny. Usługa Lighting zawiera obiekty, które kontrolują globalne ustawienia oświetlenia twojego miejsca, takie jak Atmosphere do symulacji efektów atmosferycznych lub Sky, aby zmieniać słońce, księżyc i gwiazdy w twoich środowiskach. Ponadto możesz używać źródeł światła, aby emitować światło z konkretnych obiektów.

Dodawanie dźwięku do twoich doświadczeń jest również kluczowe dla podniesienia twojego doświadczenia na nowe wyżyny. Strategicznie używając dźwięku pozycyjnego i niepozycyjnego, możesz zanurzyć graczy w swoich światach, zapewnić im przydatne informacje zwrotne na temat ich działań i skierować ich uwagę na to, co muszą zrobić, aby odnosić sukcesy w swoich celach.

Replikacja

Replikacja to proces synchronizacji stanu twojego miejsca przez serwer z wszystkimi podłączonymi klientami. Silnik Roblox inteligentnie i automatycznie replikuje dane, fizykę i wiadomości czatu między serwerem a klientem w wielu przypadkach, ale możesz również określić pewne obiekty do replikacji, umieszczając je w określonych kontenerach.

ReplicatedFirst

ReplicatedFirst zawiera obiekty, które chcesz zreplikować do klienta, gdy dołącza do twojego miejsca. Zwykle zawiera obiekty, które są istotne dla zainicjowania gracza, takie jak obiekty LocalScript po stronie klienta oraz obiekty związane z tymi skryptami. Cała zawartość w tym kontenerze jest replikowana z serwera do klienta tylko raz.

ReplicatedStorage

ReplicatedStorage zawiera obiekty, które są dostępne zarówno dla serwera, jak i podłączonych klientów. Jakiekolwiek zmiany, które zachodzą po stronie klienta, utrzymują się, ale nie będą replikowane na serwer. Serwer może nadpisać zmiany po stronie klienta, aby utrzymać spójność. Ten kontener jest zazwyczaj używany dla obiektów ModuleScript, które muszą być współdzielone i dostępne zarówno dla obiektów Script (po stronie serwera), jak i LocalScript (po stronie klienta). Ponadto możesz użyć tego kontenera do replikacji dowolnych obiektów, które nie muszą istnieć w świecie 3D, dopóki nie będą potrzebne, na przykład ParticleEmitter do klonowania i powiązywania ze wszystkimi przychodzącymi modelami postaci.

Aby uzyskać więcej informacji na temat działania replikacji, zobacz czasy wykonywania klient-serwer.

Serwer

Model danych definiuje dedykowane kontenery dla obiektów działających tylko po stronie serwera, które nigdy nie są replikowane do klienta. Umożliwia to serwerowi wpływanie na zachowanie klienta i stan, nie narażając obiektów i logiki serwera przed klientem.

ServerScriptService

ServerScriptService zawiera obiekty Script, ModuleScript wymagane przez skrypty serwera oraz inne obiekty związane ze skryptami, które są przeznaczone tylko do użytku serwera. Jeśli twoje skrypty wymagają innych obiektów, które nie są powiązane z obsługą skryptów, musisz je umieścić w ServerStorage. Skrypty w tym kontenerze nigdy nie są replikowane do klientów, co pozwala na posiadanie bezpiecznej logiki po stronie serwera.

ServerStorage

ServerStorage zawiera obiekty, które są przeznaczone tylko do użytku serwera. Możesz użyć tego kontenera do przechowywania obiektów, które chcesz klonować i powiązać z workspace lub innymi kontenerami w czasie rzeczywistym. Na przykład możesz w tym kontenerze przechowywać duże obiekty, takie jak mapy, aż będą potrzebne i przenieść je do workspace tylko wtedy, gdy zajdzie taka potrzeba. Dzięki temu możesz zmniejszyć ruch sieciowy klienta podczas początkowego dołączenia.

Klient

Usługi kontenerów klienckich są przeznaczone dla obiektów, które są replikowane do każdego połączonego klienta. Ta kategoria kontenerów replikuje się do każdego podłączonego klienta i zazwyczaj zawiera obiekty 3D oraz związane z nimi obiekty LocalScript. Wszystkie obiekty, które przechowujesz w tych kontenerach, są nieprzechowujące między sesjami i resetują się za każdym razem, gdy klient ponownie dołącza. Możesz umieszczać obiekty w tych kontenerach, takie jak GUI gracza, skrypty po stronie klienta i inne obiekty, które są istotne tylko dla klienta.

Gdy klient łączy się z serwerem, usługa kontenerów Players nasłuchuje użytkowników dołączających do twojego miejsca i tworzy obiekt Player dla każdego klienta. Serwer kopiuje obiekty z kontenerów klientów w modelu danych edytora do odpowiadającej lokalizacji w modelu danych czasów wykonywania wewnątrz obiektu Players. Poniższa tabela opisuje oryginalny kontener, w którym się znajduje, oraz kontener, do którego są kopiowane na kliencie:

Model danych edytoraModel danych w czasie rzeczywistymNotatki
StarterPackPlayer.BackpackSkrypty, które konfigurowują inwentarz gracza i ogólnie zawierają obiekty Tool, ale często zawierają również skrypty lokalne.
StarterGuiPlayer.PlayerGuiSkrypty, które mogą zarządzać lokalnym GUI gracza. Gdy gracz odradza się, zawartość PlayerGui jest opróżniana. Serwer kopiuje obiekty znajdujące się w StarterGui do PlayerGui.
StarterPlayerScriptsPlayer.PlayerScriptsSkrypty ogólnego przeznaczenia dla klienta. Na przykład, jeśli chcesz stworzyć specjalne efekty po stronie klienta, gdy spełnione są określone warunki, możesz umieścić skrypt lokalny w tym kontenerze, aby to zrobić. Serwer nie ma dostępu do tego kontenera.
StarterCharacterScriptsPlayer.CharacterSkrypty, które są kopiowane do klienta, gdy wchodzą na scenę. Te skrypty nie przetrwają, gdy gracz się odradza.
ReplicatedFirstZawartość tego kontenera jest replikowana do wszystkich klientów (ale nie z powrotem do serwera) jako pierwsza, przed wszystkim innym.

Czat

TextChatService

TextChatService reprezentuje usługę, która obsługuje różne, zadania czatu tekstowego w doświadczeniu, takie jak zarządzanie kanałami, dekorowanie wiadomości, filtrowanie tekstu, tworzenie poleceń i rozwijanie niestandardowych interfejsów czatu.

Aby uzyskać więcej informacji, zobacz przegląd czatu tekstowego.

VoiceChatService

VoiceChatService reprezentuje funkcję czatu głosowego opartą na bliskości, która symuluje realistyczną komunikację w zależności od tego, jak blisko jesteś innych użytkowników. Możesz użyć tej usługi do włączania i wyłączania tej funkcji.

Aby uzyskać więcej informacji, zobacz czat głosowy.

Foldery i modele

Istnieją dwa podstawowe sposoby grupowania obiektów w modelu danych: foldery i modele. Oba są kontenerami dla obiektów, ale mają różne cele.

  • Foldery są najlepsze do przechowywania sekcji środowiska, takich jak lobby lub arena walki.
  • Modele są używane do zestawów obiektów, takich jak zestaw biurowy, który zawiera krzesło, stół i lampę. Aby zorganizować bardziej złożone zestawy, zagnieżdżaj modele w modelach.

Powinieneś zawsze nazwać swoje obiekty w sposób opisowy. Ułatwia to znajdowanie i modyfikowanie obiektów później, jeśli zajdzie taka potrzeba.

Okno Eksploratora z demonstracją struktury organizacyjnej folderów.
Obiekty zorganizowane w Folderach
Okno Eksploratora z demonstracją struktury organizacyjnej modeli w kilku usługach.
Różne modele "map" do zamiany między Workspace a ServerStorage
©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.