Modelo de datos

Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Cada lugar está representado por un aplicación de modeladodatos, una jerarquía de objetos que describe todo sobre el lugar. El modelo de datos contiene todos los objetos que componen el mundo 3D, como partes, terreno, iluminación y otros elementos ambientales. También contiene objetos que pueden controlar el comportamiento del tiempo de ejecución, como scripts que modifican propiedades, llaman métodos y funciones, y responden a eventos que habilitan el comportamiento y la interactividad dinámica.

El motor de Roblox usa el modelo de datos como una fuente de verdad para el estado de un lugar, por lo que puede simularlo y renderizarlo en dispositivos cliente. Para obtener más información sobre cómo el motor de Roblox interpreta el aplicación de modeladodatos, consulte Tiempo de ejecución del cliente-servidor .

Objetos

Coloca y organiza objetos en el modelo de datos para describir un lugar en Roblox. Cada objeto en Roblox hereda de la clase Instance, que define propiedades genéricas, métodos y eventos que son comunes a todos los objetos. Los objetos también definen sus propias características según la funcionalidad que proporciona el objeto. Hay muchas categorías de objetos con una amplia variedad de usos, pero a menudo trabajarás con BasePart y LuaSourceContainer objetos, comúnmente conocidos como partes y scripts.

Para una lista completa de todas las características del motor de Roblox, consulta la documentación de referencia .

Bloques de construcción 3D

BasePart es la clase principal para los bloques de construcción 3D simulados físicamente en el mundo. Define las propiedades y métodos comunes a todos los objetos físicos con propiedades como la posición, el tamaño y la orientación.

ObjetoDescripción
PartUna parte primitiva que puede tomar la forma de un bloques, bola, cilindro, cuña o cuña de esquina.
MeshPartUna malla importada de un software de modelado 3D como Maya o Blender.
TrussPartUna viga de braguero que los personajes pueden escalar como una escalera.

Si bien en teoría puedes crear una experiencia de Roblox totalmente funcional usando solo partes simples, lo más probable es que importes mallas y combines partes primitivas en objetos y estructuras más complejas a través de modelado sólido.

Scripts

Puede agregar interactividad y comportamiento al mundo 3D de su lugar y definir lógica con scripts. Escribe scripts en el lenguaje de programación Lua para hacer cosas como mover partes, llamar a otros scripts y responder a eventos. Debido a que Roblox funciona en un aplicación de modeladocliente-servidor, puede ejecutar scripts en el servidor, cliente o hacer que se comuniquen a través del límite de la red.

  • Un objeto Script representa un script que solo se puede ejecutar en el servidor.
  • Un objeto LocalScript representa un script que solo se puede ejecutar en el cliente.
  • Un objeto ModuleScript representa un script reutilizable que puedes require() desde scripts de servidor y de cliente.

Para que los scripts se comporten correctamente, debe colocarlos en los contenedores correctos en el aplicación de modeladode datos. Para más información, consulte las secciones Server y Client.

Organización de Objetos

Si bien tienes mucha flexibilidad en cómo organizas tu aplicación de modeladode datos, el motor de Roblox espera que ciertos objetos estén en ciertos servicios de contenedor que son objetos que tienen comportamientos específicos y pueden afectar los comportamientos de los objetos que contienen. Las principales categorías de servicios de contenedor incluyen:

Además, puedes organizar tus objetos con los siguientes objetos:

  • Carpetas - Un Folder es para fines organizativos y no define ningún comportamiento. Por ejemplo, puede usar carpetas para agrupar objetos similares, como un conjunto de scripts en el almacenamiento del servidor.
  • Modelos - Un Model está destinado principalmente a agrupaciones geométricas de piezas, como agrupar un conjunto de escritorio que incluye una silla, una mesa y una lámpara. Para organizar conjuntos más complejos, incluso puede anidar modelos dentro de los modelos.

Espacio de trabajo

Workspace contiene todos los objetos que componen el mundo 3D de un lugar. Puede agregar objetos al espacio de trabajo para personalizar su mundo 3D, como partes básicas, partes de malla y modelos. Los clientes renderizan todo lo que aparece en este contenedor y nada fuera de él, por lo que puede controlar lo que los usuarios ven e interactúan en su lugar. Aunque en realidad no se renderiza, también puede agregar scripts que están relacionados con las partes y modelos con los que están asociados. Por defecto, el espacio de trabajo está pre-poblado con un Terrain y Camera objeto.

Cámara

Camera determina cómo el cliente ve el mundo 3D. Por defecto, hay una cámara en el espacio de trabajo, pero puedes agregar múltiples objetos de cámara para crear diferentes perspectivas y vistas. Cada cliente toma estas configuraciones y crea su propia vista de cámara que el servidor no puede modificar directamente.

Por ejemplo, puede configurar una cámara para seguir los movimientos del usuario o permanecer fijo en una ubicación particular. También puede ajustar el campo de vista, la distancia y el ángulo para crear diferentes efectos visuales de cómo los usuarios ven su mundo 3D.

Para más información, consulta Personalización de la cámara .

Terreno

Terrain te permite crear paisajes para tu lugar. Puedes aplicar un material al terreno para simular entornos naturales deseados, como hierba, agua, arena o un material personalizado. Aunque solo puedes tener un objeto de terreno para tu mundo 3D y aplicar un material a ese terreno, puedes usar el Editor de terreno para editar regiones de tu terreno.

Para más información, ver Terreno Ambiental .

Entorno

Los efectos de luz y sonido pueden hacer que tu mundo 3D sea mucho más envolvente y realista. Aunque no es necesario agregar estos efectos a tu lugar, pueden hacerlo más atractivo visualmente y auralmente.

Iluminación

Lighting contiene objetos que controlan la configuración de iluminación global de tu lugar, como Atmosphere para simular efectos atmosféricos o Sky para alterar el sol, la luna y las estrellas en tus entornos.

Para más información, ver Iluminación .

Sonido

SoundService puede controlar el volumen y los ajustes de reproducción de los objetos infantiles Sound para música de fondo o efectos de sonido ambiental.

Para más información, ver Sonido .

Replicación

La replicación es el proceso del servidor de sincronizar el estado de su lugar con todos los clientes conectados. El motor Roblox replica de manera inteligente y automática los datos, la física y los mensajes de chat entre el servidor y el cliente en muchos casos, pero también puede especificar ciertos objetos para replicar colocándolos en contenedores específicos.

ReplicadoPrimero

ReplicatedFirst contiene objetos que desea replicar a un cliente cuando se une a su lugar. Por lo general, contiene objetos que son esenciales para inicializar un jugador, como los objetos del lado del cliente LocalScript y los objetos asociados con los scripts. Todo el contenido de este contenedor se replica desde el servidor al cliente solo una vez.

Almacenamiento replicado

ReplicatedStorage contiene objetos que están disponibles tanto para el servidor como para los clientes conectados. Cualquier cambio que ocurra en el cliente persiste pero no se replicará en el servidor. El servidor puede sobrescribir los cambios en el cliente para mantener la consistencia. Este contenedor se usa típicamente para ModuleScript objetos que deben ser compartidos y accesibles tanto por Script (lado del servidor) como por LocalScript (lado del cliente) objetos. Además, puede usar este contenedor para replicar cualquier objeto que no necesite existir en el mundo 3D hasta que sea necesario, como un ParticleEmitter para clonar y dar a luz a todos los modelos de personajes entrantes.

Para obtener más información sobre cómo funciona la replicación, consulte Tiempo de ejecución del cliente-servidor .

Servidor

El modelo de datos define contenedores dedicados solo para objetos del lado del servidor que nunca se replican al cliente. Esto permite que el servidor afecte el comportamiento y el estado del cliente sin exponer los objetos y la lógica del servidor al cliente.

Servicio de Serverscript

ServerScriptService contiene Script objetos, ModuleScript objetos que son requeridos por los scripts del servidor y otros objetos relacionados con los scripts que solo están destinados al uso del servidor. Si sus scripts requieren otros objetos que no sean de scripting, debe colocarlos en ServerStorage. Los scripts en este contenedor nunca se replican a los clientes, lo que le permite tener una lógica segura del lado del servidor.

Almacenamiento del servidor

ServerStorage contiene objetos que solo están destinados al uso del servidor. Puede usar este contenedor para almacenar objetos que desea clonar y parentalizar en el espacio de trabajo u otros contenedores en tiempo de ejecución. Por ejemplo, puede almacenar objetos grandes como mapas en este contenedor hasta que sean necesarios y moverlos al espacio de trabajo solo cuando sea necesario. Esto le permite reducir el tráfico de red del cliente al unirse inicialmente.

Cliente

Los servicios de contenedor de cliente están destinados a objetos que se replican a cada cliente conectado. Esta categoría de contenedores se replica a cada cliente conectado y típicamente contiene objetos 3D y objetos asociados LocalScript. Todos los objetos que almacena en estos contenedores no son persistentes a través de las sesiones y se reinician cada vez que un cliente vuelve a unirse. Puede colocar objetos en estos contenedores, como GUI de jugador, scripts del lado del cliente y otros objetos que solo son relevantes para el cliente.

Cuando un cliente se conecta a un servidor, el Players servicio de contenedores escucha a los usuarios que se unen a su lugar y crea un Player objeto para cada cliente. El servidor copia los objetos de los contenedores del cliente en el modelo de datos de edición a la ubicación correspondiente en el modelo de datos de tiempo de ejecución dentro del objeto Players. La siguiente tabla describe el contenedor original en el que reside en el contenedor y el contenedor resultante en el que se copian en el cliente:

Editar Modelo de DatosModelo de datos de tiempo de ejecuciónNotas
StarterPackJugador.MochilaLos scripts que configuran el inventario del jugador y generalmente contienen Tool objetos, pero a menudo también contienen scripts locales.
StarterGuiJugador.PlayerGuiScripts que pueden administrar la Interfaz gráfica (o GUI)local del jugador. Cuando un jugador reaparece, el contenido de PlayerGui se vacía. El servidor copia los objetos dentro de StarterGui en PlayerGui.
StarterPlayerScriptsJugador.Scripts de Jugadorscripts de propósito general para el cliente. Por ejemplo, si desea crear efectos especiales en el cliente cuando se cumplan ciertas condiciones, puede colocar un script local en este contenedor para hacer eso. El servidor no puede acceder a este contenedor.
StarterCharacterScriptsJugador.PersonajeScripts que se copian al cliente cuando regeneración. Estos scripts no persisten cuando el jugador reaparece.
ReplicatedFirstEl contenido de este contenedor se replica a todos los clientes (pero no al servidor) primero, antes que cualquier otra cosa.

chat

Servicio de chat de texto

TextChatService representa el servicio que se ocupa de varias tareas de chat de texto en la experiencia, como la administración de canais, la decoración de mensajes, el filtrado de texto, la creación de comandos y el desarrollo de interfaces de chat personalizadas.

Para más información, consulta In-Experience Text Chat System .

Servicio de chat de voz

VoiceChatService representa la función de chat de voz basada en la proximidad que simula una comunicación realista basada en lo cerca que estás de otros usuarios. Puede usar este servicio para activar o desactivadola función.

Para más información, ver Chat con Voz .

Carpetas y Modelos

Hay dos métodos primarios para agrupar objetos en el aplicación de modeladode datos: carpetas y modelos . Ambos son contenedores para objetos, pero tienen diferentes propósitos.

  • Las carpetas son las mejores para almacenar secciones de un entorno, ambiente, como el lobby o una arena de combate.
  • Los modelos se usan para conjuntos de objetos, como un conjunto de escritorio que incluye una silla, mesa y lámpara. Para organizar conjuntos más complejos, anida modelos dentro de los modelos.

Siempre debes nombrar tus objetos de forma descriptiva. Esto hace que sea fácil encontrar y modificar objetos más tarde si es necesario.

The Explorer window with a demonstration of a folder organization structure.
Objetos organizados en Folders
The Explorer window with a demonstration of a model organization structure in several services.
Varios modelos de "mapa" para intercambiar entre Workspace y ServerStorage