For the complete documentation index, see llms.txt. This page is also available as Markdown.

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 se asigna a una o varias parcelas. Si una escena se despliega en el mapa de Decentraland Genesis City, los jugadores pueden تجربarlo visitando las coordenadas de la escena. Si una escena se despliega en un World, los jugadores pueden visitarlo a través de una URL.

Consulta Archivos en una escena para ver una lista de qué archivos se usan en un proyecto de escena.

Metadata

Para editar los metadata de una escena en el Scene Editor en Creator Hub, abre una escena y haz clic en el icono de lápiz.



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



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

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

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

Los jugadores verán esto mostrado en un modal cuando seleccionen las parcelas de tu escena en el mapa. También lo verán en una pantalla de confirmación cuando sean teletransportados allí por otra escena. Configurar datos atractivos aquí puede ayudar significativamente a dirigir tráfico a 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 una .png imagen con un tamaño recomendado de 228x160 píxeles. El tamaño mínimo admitido es 196x143 píxeles. La imagen puede estirarse si las proporciones de ancho a alto no coinciden 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 lugar.

Si quieres que otros desarrolladores puedan ponerse en contacto contigo, 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 la dApp Places de Decentraland 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

  • 🪙 Crypto

  • 📚 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 el tags array.

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 aparece en la dApp Places bajo las game y casino categorías.

Clasificación por edad

La Clasificación por edad el campo se usa para clasificar el contenido de tu escena. Decentraland es una plataforma para mayores de 18 años. La siguiente opción está disponible:

  • 🟡 A para Adultos (18+): Este es el requisito de edad mínimo, según se especifica en los Términos de uso. Elige esta categoría si tu escena incluye contenido apropiado para adultos, como lenguaje moderado o intenso, violencia, contenido explícito, apuestas o sustancias como alcohol, tabaco y drogas.

Al editar la Clasificación por edad mediante el scene.json, la calificación es un código de una sola letra, escribe A para adultos. El campo de calificación va en el nivel raíz del árbol JSON.



Contenido restringido

Hay una tercera categoría para las escenas: 🔴 R para Restricted. Esta clasificación la aplican manualmente los moderadores de contenido a las escenas que infringen la Content Policy. Las infracciones pueden incluir, entre otras:

  • contenido sospechoso o spam

  • contenido abusivo o de odio

  • 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 cae en esta categoría, deberías revisarla y actualizarla para que cumpla con la Content Policy.

Conmutadores de funciones

Hay ciertas funciones que pueden deshabilitarse en escenas específicas para que los jugadores no puedan usarlas de forma abusiva. Configúralas en la pestaña de Configuración de los ajustes de la escena.



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

  • Voice Chat: se refiere a que los jugadores usen sus micrófonos para tener conversaciones por chat de 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 portable experiences sino también smart wearables. Con esta configuración, puedes elegir mantenerlos todos habilitados (predeterminado), deshabilitarlos o ocultar su UI. Esto es útil para escenas en las que las portable experiences podrían dar una ventaja injusta a algunos jugadores, por ejemplo usando un jetpack en un desafío de parkour. También se recomienda impedirlos en escenas donde se realizan transacciones de blockchain y donde una portable experience maliciosa podría suplantar potencialmente la UI de la escena.

En el scene.json archivo, estos toggles se gestionan bajo featureToggles. Las funciones correspondientes están habilitadas de forma predeterminada, a menos que se especifiquen como disabled 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.

Propinas

Puedes recibir propinas de los jugadores que visiten tu escena. Para habilitar las propinas, ve a la pestaña de Detalles de la configuración de la escena y proporciona una dirección de Ethereum bajo Dirección de la wallet del creador.



También puedes proporcionar la dirección para propinas de tu escena en el scene.json archivo, bajo el creator campo.

Cuando un jugador visita tu escena, verá un icono de hucha en la esquina superior izquierda de la pantalla. Al hacer clic en él, se abre un modal donde puede enviarte una propina. También se puede acceder a este menú abriendo la información de tu escena en el mapa.



El modal de propina permite al jugador seleccionar la cantidad de MANA que quiere enviar. El jugador debe tener MANA en su wallet para enviar una propina. Si la dirección que proporcionaste está vinculada a un Decentraland NAME, este modal mostrará el nombre del propietario de la wallet junto con la dirección de Ethereum.



Recibirás una notificación en la pestaña de notificaciones de Decentraland cada vez que un jugador te envíe una propina.

Ubicación de aparición

La Configuración de aparición en el pestaña de Configuración la pestaña define dónde aparecen los jugadores cuando acceden a tu escena directamente, ya sea escribiendo directamente las coordenadas en el navegador o teletransportándose.



Tu escena puede tener objetos que bloqueen a los jugadores si aparecen encima de ellos, como árboles o escaleras. Tu escena también puede tener terreno elevado. Para evitar que los jugadores aparezcan en lugares donde no puedan moverse, puedes establecer varias posiciones de aparición en ubicaciones específicas.

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

Marca la casilla de Random Offset para desplazar aleatoriamente a los jugadores que aparecen alrededor del punto de aparición. Esto evita que todos los jugadores aparezcan superpuestos entre sí cuando surgen, lo cual se ve especialmente mal en escenas concurridas. El Max Offset valor es la distancia máxima posible desde el punto de aparición 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 ayudarte a orientarlos hacia una dirección específica. Por defecto apunta a {x: 8, y:1, z:8}, que es el centro de la escena para escenas de una sola parcela, o el centro de la parcela inferior izquierda para escenas más grandes.

Haz clic en Añadir punto de aparición para listar tantos puntos de aparición como quieras. Los jugadores aparecerán aleatoriamente en uno de ellos.

Puntos de aparición en JSON

Los puntos de aparición también se pueden configurar mediante el scene.json archivo, en spawnPoints campo.

Una sola escena puede tener varios puntos de aparición. Esto es especialmente útil en escenas grandes. Para tener muchos puntos de aparición, simplemente enuméralos como un array.

Cuando hay varios puntos de aparición, se selecciona el más cercano a las coordenadas indicadas por el jugador.

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

Regiones de aparición

Puedes establecer una región completa de la escena para que actúe como punto de aparición. Al especificar un array de dos números para cada 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 que entran se superpongan. Ten en cuenta que las tres dimensiones deben usar el mismo formato: o bien todas números únicos, o bien todos arrays de dos números. Para mantener una dimensión fija, usa un array con el mismo número dos veces, como "y": [1,1].

En el ejemplo anterior, los jugadores pueden aparecer en cualquier punto del cuadrado cuyas esquinas están en 1,1,2 y 5,1,4.

Una escena también puede tener varias regiones de aparición, igual que puede tener varios puntos de aparición.

Rotación

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

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

Este ejemplo genera un jugador en 5, 1, 4 mirando al Este hacia 10, 1, 4. Si la posición de aparición es un rango, la rotación del jugador siempre coincidirá con el objetivo indicado. Si hay varios puntos de aparición, cada uno puede tener su propio objetivo independiente.

Permisos requeridos

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

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

Se pueden solicitar los siguientes permisos:

  • ALLOW_TO_MOVE_PLAYER_INSIDE_SCENE: Se refiere a mover a un Player

  • ALLOW_TO_TRIGGER_AVATAR_EMOTE: Se refiere a Reproducir emotes en el avatar del jugador

  • ALLOW_MEDIA_HOSTNAMES: (legacy) Se refiere a transmitir media (como video o audio) desde dominios externos.

  • 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 pedirle 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.

Al usar ALLOW_MEDIA_HOSTNAMES, incluye también un campo allowedMediaHostnames a nivel raíz, que liste los dominios desde los que la escena tiene अनुमति para transmitir media:

Parcelas de la escena

Cuando desplegando una escena, el contenido se carga en las coordenadas asignadas en la configuración de la escena. Una escena puede incluir una sola parcela o una lista de hasta docenas de ellas.

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



Usa los menús 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 quitarla de tu diseño.



La escena predeterminada tiene sus coordenadas establecidas en 0,0. No necesitas cambiar esto mientras desarrollas una escena sin conexión, a menos que necesites ocupar varias parcelas. Tendrás que cambiarlo antes de desplegar en coordenadas para las que tengas permisos de despliegue.

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

La base campo define qué parcela considerar como parcela base. Si tu escena tiene una sola parcela, la base debería ser esa parcela. Si tu escena tiene varias parcelas, la base debería ser la parcela inferior izquierda (Suroeste). Todas las posiciones de entidades se miden con respecto a la esquina suroeste de esta parcela.

Para mostrar varias parcelas en la vista previa de la escena, lista tantas parcelas como pienses usar. No necesitan ser exactamente las parcelas a las que vas a desplegar, pero todas deben ser adyacentes y estar dispuestas en las mismas posiciones relativas.

Establecer parcelas mediante la línea de comandos

Puedes establecer las parcelas de 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 parcela involucrada.

Parcela única

Pasa un solo argumento con las coordenadas de la escena. Esta coordenada también se establece como la parcela base.

npx update-parcels <parcel>

Por ejemplo:

npx update-parcels 15,-26

Múltiples parcelas

Pasa dos argumentos: las parcelas Suroeste y Noreste. La parcela Suroeste también se establece como la parcela base.

npx update-parcels <parcel> <parcel>

💡 Consejo: La parcela Suroeste siempre es la que tiene los números más bajos en ambas X y Y coordenadas.

Por ejemplo:

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

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

Personalizar parcela base

Pasa tres argumentos: las parcelas Suroeste y Noreste, y la parcela que se usará como parcela base.

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

Scenes no cuadradas

Los comandos anteriores generan todas scenes de forma rectangular. Las scenes 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 sobrantes del scene.json archivo.

Hora del día del Skybox

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

Abre la configuración de la scene y haz clic en la pestaña de Configuración tab para encontrar la Skybox sección. Desmarca la Auto opción 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 scene. Para ello, añade la siguiente sección a tu scene.json en el nivel raíz:

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

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

  • 0 segundos => 00:00

  • 21600 segundos => 06:00

  • 43200 segundos => 12:00

  • 64800 segundos => 18:00

  • 86400 segundos => 24:00

Terreno del paisaje

Las scenes publicadas en un Decentraland World están rodeadas por un paisaje generado automáticamente de pradera, árboles y mar. Si este paisaje no coincide con la estética de tu scene, por ejemplo una scene que flota en aguas abiertas o en el espacio, puedes desactivarlo. Para ello, añade el siguiente campo a tu scene.json en el nivel raíz:

Con landscapeTerrain configurado en false, no se renderiza nada más allá de los parcels de tu scene, y los players solo ven el skybox alrededor de la scene. Eliminar el terreno circundante también libera recursos de renderizado, lo que puede ayudar a que tu scene funcione con más fluidez.

Si el campo no está configurado, su valor predeterminado es true y el paisaje se muestra como de costumbre.

Configuración de World

Al publicar en un Decentraland World, scene.json file usando el worldConfiguration objeto.

Configuración básica de World

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

La name especificado puede ser un Decentraland NAME o un dominio ENS y debe pertenecer al wallet que firma el deployment (o a cualquier wallet a la que se le haya dado permiso mediante Access Control Lists).

Configuración del servicio de comunicación

La fixedAdapter la propiedad indica qué Communication Service debe usar la scene. Por ahora, solo se permite el offline:offline valor. Cuando se establece, la scene no tendrá ningún Communication Service, y cada usuario que se una a ese World estará siempre solo. Si no se establece, el content server de Worlds generará un valor adecuado según cómo esté configurado.

Configuración del listado de Places

Todos los Worlds se incluyen automáticamente en la página de Places, a menos que optes por no hacerlo. Si deseas excluir tus Worlds de la indexación en Places, puedes añadir lo siguiente:

Ejemplo completo

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

Consulta Publicar en Worlds para más información sobre desplegar en Worlds.

Obtener metadata desde el código de la scene

Referencia de la API de Scene

Es posible que necesites el código de tu scene para acceder a campos de los metadata de la scene, como los parcels en los que se despliega la scene o las posiciones de los spawn points. Esto es especialmente útil para scenes que están pensadas para replicarse, o para código que se reutilizará en otras scenes. También es muy útil para libraries que necesitan saber dónde están los límites de la scene.

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 parte del contenido del archivo scene.json. El siguiente ejemplo muestra cómo acceder a varios de los campos más comunes de la respuesta de esta función:

El objeto devuelto por getSceneInformation() incluye lo siguiente:

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

  • content: Un array con todos los files de la scene, incluido su hash, que puede usarse junto con la baseUrl para recuperarlos.

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

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

El siguiente ejemplo analiza el contenido de metadataJson para obtener valores de las propiedades del file scene.json

Última actualización