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 tym 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 reagują na zdarzenia, które umożliwiają dynamiczne zachowanie i interaktywność.

Silnik Roblox używa modelu danych jako źródła prawdy dla stanu miejsca, aby mógł symulować i renderować je na urządzeniach klienckich. Aby uzyskać więcej informacji na temat tego, jak silnik Roblox interpretuje model danych, zobacz Czas działania klient-serwer.

Obiekty


Umieszczasz i organizujesz obiekty w modelu danych, aby opisać miejsce w Roblox. Każdy obiekt w Roblox dziedziczy z klasy 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 o szerokim zakresie zastosowań, ale często będziesz pracować z obiektami BasePart i LuaSourceContainer, powszechnie nazywanymi częściami 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 pozycja, rozmiar i orientacja.

ObiektOpis
PartPrymitywna część, która może mieć kształt bloku, kuli, cylindra, klinu lub narożnego klinu.
MeshPartZaimportowana siatka z oprogramowania do modelowania 3D, takiego jak Maya lub Blender.
TrussPartBelka kratownicza, po której postacie mogą wspinać się jak po drabinie.

Chociaż teoretycznie możesz stworzyć w pełni funkcjonalną grę Roblox, używając tylko prostych części, najprawdopodobniej zaimportujesz siatki i połączysz prymitywne części w bardziej złożone obiekty i struktury poprzez modelowanie bryłowe.

Skrypty

Możesz dodać interaktywność i zachowanie do 3D świata swojego miejsca oraz zdefiniować logikę za pomocą skryptów. Piszesz skrypty w języku programowania Luau, aby robić rzeczy takie jak poruszanie częściami, wywoływanie innych skryptów i reagowanie na zdarzenia. Ponieważ Roblox działa w modelu klient-serwer, możesz uruchamiać skrypty na serwerze, kliencie lub sprawić, że będą komunikować się przez granicę sieci.

  • Obiekt Script reprezentuje skrypt, który może działać tylko na serwerze.
  • Obiekt LocalScript reprezentuje skrypt, który może działać tylko na kliencie.
  • Obiekt ModuleScript reprezentuje wielokrotnego użytku skrypt, który możesz require() zarówno z skryptów serwera, jak i klienta.

Aby skrypty działały poprawnie, 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 organizacji swojego modelu danych, silnik Roblox oczekuje, że niektóre obiekty będą znajdować się w określonych usługach kontenerowych, które są obiektami o specyficznych zachowaniach i mogą wpływać na zachowania obiektów, które zawierają. Główne kategorie usług kontenerowych obejmują:

Dodatkowo możesz dalej 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 pamięci serwera.
  • ModeleModel jest głównie przeznaczony do geometrycznych grup 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 w modelach.

Workspace

Workspace zawiera wszystkie obiekty, które tworzą 3D świat miejsca. Możesz dodawać obiekty do workspace, aby dostosować swój 3D świat, takie jak części bazowe, części siatkowe i modele. Klienci renderują wszystko, co pojawia się w tym kontenerze, a nic poza nim, więc możesz kontrolować, co użytkownicy widzą i z czym mogą wchodzić w interakcje w swoim miejscu. Chociaż nie są faktycznie renderowane, możesz również dodać skrypty, które są przypisane do części i modeli, z którymi są związane. Domyślnie workspace jest wstępnie wypełnione obiektami Terrain i Camera.

Camera

Camera określa, jak klient widzi świat 3D. Domyślnie w workspace znajduje się 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 własny widok kamery, który serwer nie może bezpośrednio modyfikować.

Na przykład możesz ustawić kamerę, aby podążała za ruchami użytkownika lub pozostała w stałej lokalizacji. Możesz również dostosować kąt widzenia, odległość i kąt, aby stworzyć różne efekty wizualne, jak użytkownicy widzą twój 3D świat.

Aby uzyskać więcej informacji, zobacz dostosowywanie kamery.

Terrain

Terrain pozwala tworzyć krajobrazy dla twojego miejsca. Możesz zastosować materiał do terenu, aby symulować pożądane naturalne środowiska, takie jak trawa, woda, piasek lub niestandardowy materiał. Chociaż możesz mieć tylko jeden obiekt terenu dla swojego 3D świata i zastosować jeden materiał do tego terenu, możesz użyć Edytora terenu, aby edytować obszary swojego terenu.

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

Środowisko

Niestandardowe oświetlenie może sprawić, że twój 3D świat 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. Dodatkowo możesz używać źródeł światła, aby emitować światło z określonych obiektów.

Dodawanie dźwięku do twoich gier jest również kluczowe dla podniesienia ich na wyższy poziom. Strategicznie używając dźwięku pozycyjnego i niepozycyjnego, możesz zanurzyć graczy w swoich światach, dostarczyć im użytecznych informacji zwrotnych na temat ich działań i skierować ich uwagę na to, co muszą zrobić, aby odnieść sukces 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ć niektóre 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ą niezbędne do 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 występują po stronie klienta, utrzymują się, ale nie będą replikowane do serwera. Serwer może nadpisać zmiany po stronie klienta, aby zachować 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). Dodatkowo możesz użyć tego kontenera do replikacji wszelkich obiektów, które nie muszą istnieć w 3D świecie, dopóki nie będą potrzebne, takich jak ParticleEmitter do klonowania i przypisania do wszystkich nadchodzących modeli postaci.

Aby uzyskać więcej informacji na temat tego, jak działa replikacja, zobacz czas działania klient-serwer.

Serwer

Model danych definiuje dedykowane kontenery dla obiektów tylko po stronie serwera, które nigdy nie są replikowane do klienta. Pozwala to serwerowi wpływać na zachowanie i stan klienta, nie ujawniając obiektów i logiki serwera klientowi.

ServerScriptService

ServerScriptService zawiera obiekty Script, obiekty ModuleScript, które są 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ą związane ze skryptami, musisz umieścić je 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 sklonować i przypisać do workspace lub innych kontenerów w czasie rzeczywistym. Na przykład możesz przechowywać duże obiekty, takie jak mapy, w tym kontenerze, dopóki nie będą potrzebne, i przenieść je do workspace tylko wtedy, gdy będą wymagane. Pozwala to zmniejszyć ruch sieciowy klienta przy początkowym dołączeniu.

Klient

Usługi kontenerowe klienta są przeznaczone dla obiektów, które są replikowane do każdego podłączonego klienta. Ta kategoria kontenerów replikuje 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ą nietrwałe w sesjach i resetują się za każdym razem, gdy klient dołącza ponownie. Możesz umieszczać obiekty w tych kontenerach, takie jak GUI gracza, skrypty po stronie klienta i inne obiekty, które są tylko istotne dla klienta.

Gdy klient łączy się z serwerem, usługa kontenerowa 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 klienta w modelu danych edytora do odpowiadającej lokalizacji w modelu danych w czasie rzeczywistym wewnątrz obiektu Players. Poniższa tabela opisuje oryginalny kontener, w którym się znajduje, oraz wynikowy kontener, do którego są kopiowane na kliencie:

Model danych edytoraModel danych w czasie rzeczywistymUwagi
StarterPackPlayer.BackpackSkrypty, które konfigurują ekwipunek gracza i zazwyczaj 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 wewnątrz StarterGui do PlayerGui.
StarterPlayerScriptsPlayer.PlayerScriptsOgólne skrypty dla klienta. Na przykład, jeśli chcesz stworzyć efekty specjalne 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 się odradzają. Te skrypty nie utrzymują się, 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 grze, 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, aby włączać i wyłączać tę funkcję.

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

Foldery i modele

Istnieją dwa główne 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.

Zawsze powinieneś nazywać swoje obiekty opisowo. Ułatwia to znalezienie i modyfikację 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 wymiany 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.