Metadatos de la escena

Aprende cómo configurar una escena y sus metadatos.

Una escena es un proyecto de Decentraland que está delimitado espacialmente y mapeado a uno o varios parcels. Si una escena se despliega en el mapa de Genesis City de Decentraland, los jugadores pueden experimentarla visitando las coordenadas de la escena. Si una escena se despliega en un Worldarrow-up-right, los jugadores pueden visitarla vía URL.

Vea Archivos en una escenaarrow-up-right para una lista de qué archivos se usan en un proyecto de escena.

Metadatos

Para editar los metadatos de una escena en el Scene Editor in Creator Hubarrow-up-right, abre una escena y haz clic en el icono de lápiz.



Esto abre el menú de la escena, donde puedes configurar múltiples propiedades.



Alternativamente, puedes editar directamente el scene.json archivo, donde se almacenan todos estos valores.

circle-exclamation

Título de la escena, descripción e imagen

Es muy importante dar a tu escena un título, una descripción y una imagen en miniatura para atraer a los jugadores y ayudarles a saber qué esperar.

Los jugadores verán esto mostrado en un modal cuando seleccionen los parcels de tu escena en el mapa. También lo verán en una pantalla de confirmación cuando sean teletransportadosarrow-up-right allí por otra escena. Configurar datos atractivos aquí puede ayudar significativamente a aumentar el tráfico hacia tu escena.

Cuando los jugadores navegan por el mundo y entran en tu escena, pueden leer el título de la escena debajo del minimapa.



Añade estos datos mediante el menú de la escena en el Scene Editor.

La miniatura debe ser de .png imagen de un tamaño recomendado de 228x160 píxeles. El tamaño mínimo compatible es 196x143 píxeles. La imagen puede estirarse si las proporciones ancho-alto no coinciden con 228x160.

La imagen en navmapThumbnail debe ser una ruta a un archivo de imagen en la carpeta del proyecto. También puede ser un enlace URL a una imagen alojada en otro sitio.

circle-exclamation

En caso de que quieras que otros desarrolladores puedan contactarte, también puedes añadir información de contacto a tu escena.

Categorías

Puedes añadir categorías a tu escena para ayudar a los jugadores a explorar Decentraland. Estas se usan en el Decentraland Places dApparrow-up-right para categorizar cada lugar y facilitar que los jugadores encuentren lo que les interesa.

Categorías deben elegirse de una lista predefinida de opciones:

  • 🎨 Arte

  • 🕹️ Juego

  • 🃏 Casino

  • 👥 Social

  • 🎶 Música

  • 👠 Moda

  • 🪙 Cripto

  • 📚 Educación

  • 🛍️ Tienda

  • 🏢 Negocios

  • 🏅 Deportes

  • 🏃 Parkour

Una escena puede pertenecer a más de una categoría, con un máximo de 3 categorías listadas.

En el scene.json las categorías se enumeran en la tags matriz.

Estas son las categorías predefinidas:

  • art

  • game

  • casino

  • social

  • music

  • fashion

  • crypto

  • education

  • shop

  • business

  • sports

  • parkour

Por ejemplo, una escena podría etiquetarse como game y casino añadiendo lo siguiente al scene.json

Después de eso, la escena se lista en la dApp Places bajo las game y casino categorías.

Clasificación por edad

El Clasificación por edad el campo se usa para clasificar el contenido de tu escena según su idoneidad para diferentes grupos de edad. Ayuda a filtrar contenido para los jugadores. Las siguientes opciones están disponibles:

  • 🟢 T para Adolescentes (13+): Este es el requisito de edad mínima tal como se especifica en los Términos de Usoarrow-up-right. Opta por esta categoría si tu escena se limita a violencia moderada, contenido sugerente o de temática de terror, juego simulado y lenguaje leve.

  • 🟡 A para Adultos (18+): Elige esta categoría si tu escena presenta cualquiera de los siguientes: lenguaje ofensivo intenso, violencia gráfica, contenido sexual explícito y/o desnudez, juego con dinero real o sustancias como alcohol, tabaco y drogas.

Al editar la Clasificación por Edad vía el scene.json, la clasificación es un código de una sola letra, escribe ya sea T para adolescentes, o A para adultos.



Contenido restringido

Hay una tercera categoría para escenas: 🔴 R para Restringido. Esta clasificación la aplican manualmente los Moderadores de Contenido a escenas que violan la Política de Contenidoarrow-up-rightde Decentraland. Las violaciones pueden incluir, pero no se limitan a:

  • Contenido sospechoso o spam

  • Contenido abusivo u odioso

  • Contenido sexual o degradante

  • Abuso infantil

  • Acoso o intimidación

  • Promoción del terrorismo/violencia

  • Infracción de IP/Derechos de autor

Las escenas con esta clasificación no se cargarán y nadie podrá interactuar con ellas. Si tu escena entra en esta categoría, deberías revisarla y actualizarla para cumplir con la Política de Contenidoarrow-up-right.

Configuraciones de funciones

Hay ciertas funciones que pueden desactivarse en escenas específicas para que los jugadores no las usen de forma abusiva. Configura estas en la pestaña Settings de la configuración de la escena.



Actualmente, solo la siguiente función se maneja así:

  • Voice Chat: Se refiere a que los jugadores usen sus micrófonos para tener conversaciones por voz con otros jugadores cercanos.

  • Desactivar Portable Experiences: Esta configuración establecerá el comportamiento de cualquier portable experience de un jugador mientras esté dentro de tu escena. Esto incluye no solo las portable experiencesarrow-up-right sino también wearables inteligentesarrow-up-right. Con esta configuración, puedes elegir mantenerlas todas habilitadas (por defecto), desactivarlas u ocultar su UI. Esto es útil para escenas donde las portable experiences podrían dar una ventaja injusta a algunos jugadores, por ejemplo usar un propulsor en un desafío de parkour. También se recomienda prevenirlas en escenas donde se realizan transacciones en blockchain, y donde una portable experience maliciosa podría potencialmente suplantar la UI de la escena.

En el scene.json archivo, estos interruptores se gestionan bajo featureToggles. Las funciones correspondientes están habilitadas por defecto, a menos que se especifiquen como disabled más cercano en el scene.json archivo.

Si una featureToggles propiedad no existe en tu scene.json archivo, créala en el nivel raíz del árbol json.

Ubicación de spawn

El Configuración de Spawn más cercano en el pestaña Settings la pestaña define dónde spawnean los jugadores cuando acceden a tu escena directamente, ya sea escribiendo directamente las coordenadas en el navegador o teleportando.



Tu escena podría tener objetos que pueden bloquear a los jugadores para moverse si spawnean encima de ellos, como árboles o escaleras. Tu escena también podría tener terreno elevado. Para evitar que los jugadores aparezcan en ubicaciones donde no puedan moverse, puedes establecer múltiples posiciones de spawn en ubicaciones específicas.

La posición consiste en coordenadas dentro de la escena. Estos números se refieren a una posición dentro del parcel, similar a lo que usarías en el código de la escena en un componente Transform para posicionar una entidadarrow-up-right.

circle-exclamation

Marca la casilla Random Offset para desplazar aleatoriamente a los jugadores que spawnean alrededor del punto de spawn. Esto evita que todos los jugadores aparezcan superpuestos cuando spawnean, lo cual se ve especialmente mal en escenas concurridas. El Max Offset valor es la distancia máxima posible desde el punto de spawn original, tanto en los ejes X como Z.

Configura el Camera Target para controlar la dirección hacia la que miran los jugadores cuando entran en tu escena. Esto te da un mejor control sobre su primera impresión y puede ayudar a guiarlos hacia una dirección específica. Por defecto esto apunta a {x: 8, y:1, z:8}, que es el centro de la escena para escenas de un solo parcel, o el centro del parcel inferior-izquierdo para escenas más grandes.

Haz clic Añadir Spawn Point para listar tantos puntos de spawn como desees. Los jugadores aparecerán aleatoriamente en uno de esos.

Puntos de spawn en JSON

Los puntos de spawn también pueden configurarse mediante el scene.json archivo, en el spawnPoints campo.

Una única escena puede tener múltiples puntos de spawn. Esto es especialmente útil en escenas grandes. Para tener muchos puntos de spawn, simplemente enuméralos como una matriz.

Cuando hay múltiples puntos de spawn, se selecciona el que está más cerca de las coordenadas indicadas por el jugador.

Si un punto de spawn está marcado como default, siempre se usará, independientemente de si es el más cercano. Si varios puntos de spawn están marcados como default, se selecciona el más cercano.

Regiones de spawn

Puedes establecer toda una región en la escena para que actúe como punto de spawn. Especificando una matriz de dos números para cualquier dimensión de la posición, los jugadores aparecerán en una ubicación aleatoria dentro de ese rango. Esto ayuda a evitar que los jugadores entrantes se superpongan.

En el ejemplo anterior, los jugadores pueden aparecer en cualquier lugar del cuadrado cuyos vértices están en 1,1,2 y 5,1,4.

Una escena también puede tener múltiples regiones de spawn, al igual que puede tener múltiples puntos de spawn.

Rotación

También puedes especificar la rotación de los jugadores cuando spawnean, para que miren en una dirección específica.

Simplemente añade un cameraTarget campo a los datos del punto de spawn. El valor de cameraTarget debe referenciar una ubicación en el espacio, con x, y y z coordenadas relativas a la escena, igual que el position campo.

Este ejemplo spawnea a un jugador en 5, 1, 4 mirando al Este hacia 10, 1, 4. Si la posición de spawn es un rango, la rotación del jugador siempre coincidirá con el objetivo indicado. Si hay múltiples puntos de spawn, cada uno puede tener su propio objetivo separado.

Permisos requeridos

El requiredPermissions la propiedad gestiona varias funciones controladas que podrían usarse de manera abusiva y dañar la experiencia de un jugador.

circle-exclamation

Estas funciones están bloqueadas para su uso en la escena a menos que el permiso se solicite en el scene.json archivo.

Actualmente, los siguientes permisos se gestionan en smart wearables y portable experiences:

  • ALLOW_TO_MOVE_PLAYER_INSIDE_SCENE: Se refiere a mover a un Playerarrow-up-right

  • ALLOW_TO_TRIGGER_AVATAR_EMOTE: Se refiere a Reproducir emotes en el avatar del jugadorarrow-up-right

  • USE_WEB3_API: Se refiere a interactuar con las wallets del navegador del jugador, para hacer transacciones o firmar mensajes.

  • USE_FETCH: Se refiere a enviar solicitudes http a servidores de terceros, usando fetch o signedFetch

  • USE_WEBSOCKET: Se refiere a abrir conexiones websocket con servidores de terceros

  • OPEN_EXTERNAL_LINK: Se refiere a solicitar al jugador que abra enlaces a sitios externos

Si una requiredPermissions propiedad no existe en tu scene.json archivo, créala en el nivel raíz del árbol json.

Parcels de la escena

Cuando se al desplegararrow-up-right una escena, el contenido se sube a las coordenadas asignadas en la configuración de la escena. Una escena puede incluir un solo parcel, o una lista de hasta docenas de ellos.

Edita esto en la segunda pestaña del menú de la escena en el Scene Editor.



Usa los desplegables y haz clic en Aplicar diseño para cambiar las dimensiones de tu escena. También puedes hacer clic en cada parcela individual para desactivarla en tu diseño.



La escena por defecto tiene sus coordenadas establecidas en 0,0. No necesitas cambiar esto mientras desarrollas una escena offline, a menos que necesites ocupar múltiples parcels. Deberás cambiar esto antes de desplegar en coordenadas donde tengas permisos de despliegue.

También puedes cambiar las coordenadas de la escena en el scene.json archivo:

El base el campo define qué parcel considerar como el parcel base. Si tu escena tiene un solo parcel, la base debería ser ese parcel. Si tu escena tiene múltiples parcels, la base debería ser el parcel inferior-izquierdo (South-West). Todas las posiciones de las entidades se miden respecto a la esquina South-West de este parcel.

Para mostrar múltiples parcels en la vista previa de la escena, lista tantos parcels como pienses usar. No necesitan ser exactamente los parcels a los que desplegarás, pero deberían ser todos adyacentes y estar organizados en las mismas posiciones relativas.

circle-exclamation

Establecer parcels via la línea de comandos

Puedes establecer los parcels en tu escena ejecutando el npx update-parcels comando en la carpeta de tu escena. Esto es especialmente útil para escenas grandes, ya que no necesitas listar cada parcel involucrado.

Parcel único

Pasa un solo argumento con las coords de la escena. Esta coordenada también se establece como el parcel base.

npx update-parcels <parcel>

Por ejemplo:

npx update-parcels 15,-26

Múltiples parcels

Pasa dos argumentos: los parcels South-West y North-East. El parcel South-West también se establece como parcel base.

npx update-parcels <parcel> <parcel>

circle-info

💡 Consejo: El parcel South-West siempre es el que tiene los números más bajos en ambas coordenadas X y Y .

Por ejemplo:

npx update-parcels 15,-26 17,-24

Este comando genera una escena 3x3, con su parcel base en 15,-26.

Personalizar parcel base

Pasa tres argumentos: los parcels South-West y North-East, y el parcel a usar como parcel base.

npx update-parcels <parcel> <parcel> <parcel>

circle-exclamation

Escenas no cuadradas

Los comandos anteriores generan escenas con forma rectangular. Las escenas de Decentraland pueden tener forma de L u otras configuraciones. Puedes generar un cuadrado más grande con npx update-parcels y luego eliminar manualmente los parcels excedentes del scene.json archivo.

circle-exclamation

Hora del día del Skybox

Puedes establecer una hora del día fija para tu escena. Todos los jugadores verán la escena con esa hora del día, y el skybox no seguirá el ciclo día/noche.

Abre la configuración de la escena y haz clic en la pestaña pestaña Settings para encontrar la sección Skybox . Desmarca la opción Auto y establece la hora del día que quieras.

También puedes establecer la hora del día del skybox en el código de tu escena. Para hacerlo, añade la siguiente sección a tu scene.json en el nivel raíz:

El número se refiere al número de segundos desde el inicio del día, que va de 0 (representando 00:00) a 86400 (representando 24:00). Cualquier número mayor que 86400 también se interpreta como medianoche.

Aquí hay más ejemplos de valores válidos:

  • 0 segundos => 00:00

  • 21600 segundos => 06:00

  • 43200 segundos => 12:00

  • 64800 segundos => 18:00

  • 86400 segundos => 24:00

Configuración del World

Al publicar en un Decentraland Worldarrow-up-right, puedes configurar varios ajustes específicos de World en tu scene.json archivo usando la worldConfiguration objeto.

Configuración básica de World

Para publicar en un World, debes especificar el NAME o dominio ENS en tu scene.json:

El name lo especificado puede ser un NAME de Decentraland o un dominio ENS y debe ser propiedad de la wallet que firma el despliegue (o de cualquier wallet a la que se le haya dado permiso vía Access Control Lists).

Configuración del servicio de comunicación

El fixedAdapter la propiedad indica qué Communication Service debe usar la escena. Por el momento, solo el valor offline:offline está permitido. Cuando se establece, la escena no tendrá ningún Communication Service, y cada usuario que se una a ese world siempre estará solo. Si no se establece, el servidor de contenido de Worlds generará un valor apropiado según cómo esté configurado.

Configuración de listado en Places

Todos los Worlds se listan automáticamente en la página Places a menos que optes por no hacerlo. Si deseas optar por no indexar tus Worlds en Places, puedes añadir lo siguiente:

Ejemplo completo

Aquí hay un ejemplo completo con todas las opciones de configuración de World:

Vea Publicar en Worldsarrow-up-right para más información sobre desplegar en Worlds.

Obtener metadatos desde el código de la escena

Referencia de la API de Scenearrow-up-right

Puede que necesites el código de tu escena para acceder a campos de los metadatos de la escena, como los parcels a los que se despliega la escena o las posiciones de los puntos de spawn. Esto es especialmente útil para escenas que están pensadas para replicarse, o para código que se reutilizará en otras escenas. También es muy útil para librerías que necesitan saber dónde están los límites de la escena.

Para acceder a estos datos, primero importa la getSceneInformation función:

Luego puedes llamar a la getSceneInformation() función, que devuelve un objeto JSON que incluye la mayoría del contenido del archivo scene.json. El ejemplo a continuación muestra cómo acceder a varios de los campos más comunes desde la respuesta de esta función:

circle-exclamation

El objeto devuelto por getSceneInformation() incluye lo siguiente:

  • baseUrl: La URL base donde se aloja el contenido de la escena

  • content: Una matriz con todos los archivos de la escena, incluyendo su hash, que puede usarse junto con la baseUrl para recuperarlos.

  • metadataJson: El contenido completo del scene.json de la escena, como una cadena. Debes parsearlo para obtener valores específicos.

  • urn: El urn único para la escena en su conjunto.

El ejemplo a continuación parsea el contenido de metadataJson para obtener valores de propiedades en el archivo scene.json

Última actualización