Chaque lieu est représenté par un modèlisationdonnées, une hiérarchie d'objets qui décrivent tout sur le emplacement. Le modèle de données contient tous les objets qui composent le monde 3D, tels que les pièces, le terrain, l'éclairage et d'autres éléments environnementaux. Il contient également des objets qui peuvent contrôler le comportement d'exécution, tels que les scripts qui modifient les propriétés, appellent les méthodes et les fonctions et répondent aux événements qui activent le comportement dynamique et l'interactiv
Le moteur Roblox utilise le modèle de données comme source de vérité pour l'état d'un emplacement, soit il puisse le simuler et le rendre sur les appareils clients. Pour plus d'informations sur la façon dont le moteur Roblox interprète le modèlisationde données, voir temps d'exécution client-serveur.
Objets
Vous placez et organisez les objets dans le modèle de données pour décrire un lieu dans Roblox. Chaque objet dans Roblox hérite de la classe Instance, qui définit des propriétés, des méthodes et des événements génériques communs à tous les objets. Les objets définissent également leurs propres caractéristiques en fonction de
Pour une liste complète de toutes les fonctionnalités du moteur Roblox, consultez la documentation de référence.
3D Blocs de construction
BasePart est la classe principale pour les blocs de construction 3D physiquement simulés dans le monde. Elle définit les propriétés et les méthodes communes à tous les objets physiques avec des propriétés telles que la position, la taille et l'orientation.
Objet | Description |
---|---|
Part | Une partie primitive qui peut prendre la forme d'un bloc, d'une boule, d'un cylindre, d'une cale ou d'un coin. |
MeshPart | Une maille importée du réseau à partir d'un logiciel de modélisation 3D comme Maya ou Blender. |
TrussPart | Une poutre en treillis que les personnages peuvent escalader comme une échelle. |
Bien que vous puissiez théoriquement créer une expérience Roblox entièrement fonctionnelle en utilisant juste des parties simples, vous importerez très probablement des mailles et combinerez des parties primitives en objets et structures plus complexes grâce à modélisation solide.
Scripts
Vous pouvez ajouter de l'interactivité et du comportement au monde 3D de votre emplacementet définir une logique avec des scripts. Vous écrivez des scripts dans le langage de programmation Lua pour faire des choses comme déplacer des parties, appeler d'autres scripts et répondre à des événements. Étant donné que Roblox fonctionne dans un modèlisationclient-serveur, vous pouvez exécuter des scripts sur le serveur, le client ou les faire communiquer à travers la frontière du réseau.
- Un objet Script représente un script qui ne peut être exécuté que sur le serveur.
- Un objet LocalScript représente un script qui ne peut être exécuté que sur le client.
- Un objet ModuleScript représente un script réutilisable que vous pouvez require() à partir des scripts serveur et client.
Pour que les scripts se comportent correctement, vous devez les placer dans les conteneurs corrects dans le modèlisationde données. Pour plus d'informations, consultez les sections Serveur et Client.
Organisation d'objets
Bien que vous ayez beaucoup de flexibilité dans la façon dont vous organisez votre modèlisationde données, le moteur Roblox s'attend à ce que certains objets soient dans certains services de conteneurs qui sont des objets qui ont des comportements spécifiques et peuvent affecter les comportements des objets qu'ils contiennent. Les principales catégories de services de conteneurs incluent :
- Espace de travail - Workspace stocke tous les objets qui rendent dans le monde 3D.
- Environnement - Des conteneurs comme Lighting et SoundService que contiennent des objets pour les paramètres et les éléments de l'environnement.
- Réplication - Conteneurs pour le contenu et la logique qui se réplique entre le serveur et le client, tels que ReplicatedStorage et ReplicatedFirst.
- Serveur - Conteneurs pour le contenu et la logique côté serveur, tels que ServerScriptService et ServerStorage.
- Client - Conteneurs pour le contenu et la logique côté client, tels que StarterPlayer et StarterGui.
- Chat - Conteneurs pour les objets qui activent les fonctionnalités de discussion, tels que VoiceChatService et TextChatService.
En outre, vous pouvez organiser davantage vos objets avec les objets suivants :
- Dossiers - Un Folder est à des fins d'organisation et ne définit aucun comportement. Par exemple, vous pouvez utiliser des dossiers pour regrouper des objets similaires comme un ensemble de scripts dans le stockage du serveur.
- Models - Un Model est principalement destiné aux regroupements géométriques de pièces, tels que le regroupement d'un ensemble de bureaux comprenant une chaise, une table et une lampe. Pour organiser des ensembles plus complexes, vous pouvez même imbriquer des modèles dans des modèles.
Workspacede travail
Workspace contient tous les objets qui composent le monde 3D d'un emplacement. Vous pouvez ajouter des objets à l'espace de travail pour personnaliser votre monde 3D, comme des pièces de base, des pièces en maillage et des modèles. Les
Caméra
Camera détermine comment le client visualise le monde 3D. Par défaut, il y a une caméra dans l'espace de travail, mais vous pouvez ajouter plusieurs objets de caméra pour créer différentes perspectives et vues. Chaque client prend ces paramètres et crée sa propre vue de caméra que le serveur ne peut pas modifier directement.
Par exemple, vous pouvez configurer une caméra pour qu'elle suive les mouvements de l'utilisateur ou qu'elle reste fixée à un endroit particulier. Vous pouvez également ajuster le champ de voir, la distance et l'angle pour créer différents effets visuels sur la façon dont les utilisateurs voient votre monde 3D.
Pour plus d'informations, voir personnalisation de la caméra.
Terrain
Terrain vous permet de créer des paysages pour votre emplacement. Vous pouvez appliquer un matériau sur le terrain pour simuler les environnements naturels souhaités, tels que l'herbe, l'eau, le sable ou un matériau personnalisé. Bien que vous ne puissiez avoir qu'un seul objet de terrain pour votre monde 3D et appliquer un matériau à ce terrain, vous pouvez utiliser le Éditeur de Terrain pour mod
Pour plus d'informations, voir terrain environnemental.
Environnement
Les effets d'éclairage et de son peuvent rendre votre monde 3D beaucoup plus immersif et réaliste. Bien qu'il ne soit pas nécessaire d'ajouter ces effets à votre emplacement, ils peuvent le rendre plus visuellement et auditivement attrayant.
Éclairage
Lighting contient des objets qui contrôlent les paramètres d'éclairage globaux de votre emplacement, tels que Atmosphere pour simuler des effets atmosphériques ou Sky pour modifier le soleil, la lune et les étoiles dans vos environnements.
Pour plus d'informations, voir Éclairage .
Son
SoundService peut contrôler le volume et les paramètres de lecture des objets enfants Sound pour la musique de fond ou les effets sonores environnementaux.
Pour plus d'informations, voir sonnerie .
Réplication
La réplication est le processus par lequel le serveur synchronise l'état de votre lieu avec tous les clients connectés. Le moteur Roblox réplique intelligemment et automatiquement les données, la physique et les messages de chat entre le serveur et le client dans de nombreux cas, mais vous pouvez aussi spécifier certains objets à répliquer en les plaçant dans des conteneurs spécifiques.
ReplicatedFirst
ReplicatedFirst contient des objets que vous souhaitez répliquer sur un client lorsqu'il rejoint votre emplacement. Il contient généralement des objets essentiels pour initialiser un joueur, tels que les objets côté client LocalScript et les objets associés aux scripts. Tout le contenu de ce conteneur est répliqué du serveur au client une seule fois.
Répliqué de stockage
ReplicatedStorage contient des objets disponibles à la fois pour le serveur et les clients connectés. Toutes les modifications qui
Pour plus d'informations sur le fonctionnement de la réplication, voir temps d'exécution client-serveur.
Serveur
Le modèle de données définit des conteneurs dédiés pour les objets uniquement côté serveur qui ne sont jamais répliqués au client. Cela permet au serveur d'affecter le comportement et l'état du client sans exposer les objets et la logique du serveur au client.
ServerScriptService
ServerScriptService contient Script objets, ModuleScript objets qui sont requis par les scripts du serveur, et d'autres objets liés aux scripts qui ne sont destinés qu'à l'utilisation du serveur. Si vos scripts nécessitent d'autres objets non scriptés, vous devez les placer dans 0> Class
Stockage du serveur
ServerStorage contient des objets destinés uniquement à l'utilisation du serveur. Vous pouvez utiliser ce conteneur pour stocker des objets que vous souhaitez cloner et parent à l'espace de travail ou à d'autres conteneurs au moment de l'temps d'exécution. Par exemple, vous pouvez stocker de grands objets tels que des cartes dans ce conteneur jusqu'à ce qu'ils soient nécessaires et les déplacer dans l'espace de travail uniquement lorsque cela est nécessaire. Cela vous permet de réduire
Client
Les services de conteneurs client sont destinés aux objets qui sont répliqués à chaque client connecté. Cette catégorie de conteneurs se réplique à chaque client connecté et contient généralement des objets 3D et des objets associés LocalScript. Tous les objets que vous stockez dans ces conteneurs ne sont pas persistants entre les sessions et sont réinitialisés à chaque fois qu'un client se reconnecte. Vous pouvez mettre des objets dans ces
Lorsqu'un client se connecte à un serveur, le service de conteneur Players écoute les utilisateurs qui rejoignent votre lieu et crée un objet Class.Players pour chaque client. Le serveur copie les objets des conteneurs clients dans le modèle de données d'édition à l'emplacement correspondant dans le modèle de données d'exécution à l'intérieur de l
Modifier le modèle de données | Modèle de données d'exécution | Notes |
---|---|---|
StarterPack | Joueur.Sac à dos | Scripts qui configurent l'inventaire du joueur et généralement contiennent Tool objets, mais contiennent souvent aussi des scripts locaux. |
StarterGui | Joueur.Gui du Joueur | Scripts qui peuvent gérer l'interface utilisateur graphiquelocale du joueur. Lorsqu'un joueur réapparaît, les contenus de PlayerGui sont vidés. Le serveur copie les objets à l'intérieur de StarterGui dans le PlayerGui. |
StarterPlayerScripts | Player.PlayerScripts | Scripts à usage général pour le client. Par exemple, si vous souhaitez créer des effets spéciaux sur le client lorsque certaines conditions sont remplies, vous pouvez placer un script local dans ce conteneur pour le faire. Le serveur ne peut pas accéder à ce conteneur. |
StarterCharacterScripts | Joueur.Personnage | Scripts qui sont copiés sur le client lorsqu'ils régénération, apparition. Ces scripts ne persistent pas lorsque le joueur réapparaît. |
ReplicatedFirst | Le contenu de ce conteneur est répliqué à tous les clients (mais pas au serveur) en premier, avant toute autre chose. |
chat
TextChatService
TextChatService représente le service qui gère diverses tâches de chat textuel pendant l'expérience, telles que la gestion des canaux, la décoration des messages, le filtrage du texte, la création de commandes et le développement d'interfaces de chat personnalisées.
Pour plus d'informations, voir système de chat textuel.
VoiceChatService
VoiceChatService représente la fonctionnalité de chat vocal basée sur la proximité qui simule une communication réaliste en fonction de la proximité avec les autres utilisateurs. Vous pouvez utiliser ce service pour offet désactiver la fonctionnalité.
Pour plus d'informations, voir Chat vocal.
Dossiers et modèles
Il y a deux méthodes principales pour regrouper les objets dans le modèlisationde données: dossiers et modèles . Les deux sont des conteneurs pour les objets, mais ils ont des buts différents.
- Les dossiers sont les meilleurs pour stocker des sections d'un environnement, telles que le lobby ou une arène de combat.
- Les modèles utilisés pour les ensembles d'objets, tels qu'un ensemble de bureau comprenant une chaise, une table et une lampe. Pour organiser des ensembles plus complexes, imbriquez les modèles dans les modèles.
Vous devez toujours nommer vos objets de manière descriptive. Cela facilite la recherche et la modification d'objets plus tard si nécessaire.