Smart Wearables
Crea wearables con capacidades interactivas
Los smart wearables son un tipo de escena global. Al igual que portable experiences,son gameplay que los jugadores llevan consigo mientras se mueven por el metaverse. Por ejemplo, mientras ejecuta una escena global, un jugador podría tomar una bola de nieve del suelo en Genesis Plaza, alejarse hacia otra escena y lanzar la bola de nieve a otro jugador que también esté jugando el mismo juego.
Los smart wearables son experiencias portátiles que se activan cuando el jugador se pone una determinada prenda. Los smart wearables pueden otorgar a los jugadores nuevas habilidades, como un jetpack que les permite volar, o añadir una nueva capa de contenido sobre el resto del mundo, como colocar aleatoriamente monedas para recoger por todo Genesis City.
📔 Nota: Los Smart Wearables solo se pueden crear usando SDK 7.
El Creator Hub actualmente no admite la creación de proyectos de Smart Wearables.
Primeros pasos
Usando la CLI
Abre una línea de comandos en una nueva carpeta y ejecuta
npx @dcl/sdk-commands init --project smart-wearable
Este comando crea los archivos básicos y la estructura para un nuevo smart wearable.
Los archivos de la plantilla
La carpeta de un proyecto de Smart Wearable totalmente nuevo es muy similar a la de una escena de Decentraland, pero notarás las siguientes diferencias:
wearable.jsonincluye todos los metadatos de la experiencia portátilHay un modelo 3D de marcador de posición (glasses.glb) y una miniatura (glasses.png) para un par de gafas oscuras. Debes reemplazarlos por el wearable real que estás creando
scene.jsones mucho más corto, no incluye propiedades que no son relevantes para un wearable, como parcels o spawn points
Acerca de wearable.json
El wearable.json archivo predeterminado se ve así:
Los siguientes campos son obligatorios en wearable.json:
id: ID único del smart wearable.name: El nombre del wearable que los usuarios verán en el marketplacedescription: La descripción del wearable que los usuarios verán en el marketplace. Asegúrate de indicar qué puede hacer el smart wearable, ya que los usuarios del marketplace no tendrán forma de previsualizar su funcionalidad antes de comprarlo.rarity: La rareza del suministro del token. Los valores posibles son:unique (1 copia)
mythic (10 copias)
exotic (50 copias)
legendary (100 copias)
epic (1000 copias)
uncommon (10.000 copias)
common (100.000 copias)
📔 Nota: Si hiciste fork de tu proyecto a partir de uno existente, asegúrate de que el id valor sea único antes de publicar tu wearable. Usa uuidgenerator.net para generar un nuevo UUID aleatorio
Los siguientes campos también se pueden incluir opcionalmente. Estas configuraciones también se pueden configurar desde la UI de Builder, una vez que subas el smart wearable.
los datos: Incluye lo siguientereplaces: Lista de categorías de otros wearables que deben ser quitados al equipar este wearable, además del valor predeterminado de esta categoría. Ej.: al ponerse una capa de upper_body, también ocultar feet.hides: Lista de categorías de otros wearables que deben ocultarse (pero no quitarse) al equipar este wearable, además del valor predeterminado de esta categoría.tags: Etiquetas usadas para que el wearable se pueda buscar en el marketplace.representations:bodyShapes: La lista de representaciones de avatar que pueden usar este wearable. Todos los smart wearables deben estar disponibles para las body shapes masculina y femenina.mainFile: El archivo principal con el modelo 3D del wearable.contents: La lista completa de archivos usados para renderizar el modelo 3D del wearable. Por ejemplo, el modelo 3D podría incluir texturas como archivos separados.overrideHides: Cualquier excepción al comportamiento predeterminado de hide de esta categoría de wearable.overrideReplaces: Cualquier excepción al comportamiento predeterminado de replace de esta categoría de wearable.
category: Qué categoría de wearable usar. Los valores posibles son:'eyebrows'
'eyes'
'facial_hair'
'hair'
'mouth'
'upper_body'
'lower_body'
'feet'
'earring'
'eyewear'
'hat'
'helmet'
'mask'
'tiara'
'top_head'
'skin'
'hands_wear'
menuBarIcon: Imagen que se usará en el menú “experiences”, para representar esta experiencia portátil. Esta imagen debe estar en el nivel raíz de tu carpeta. El tamaño recomendado de la imagen es 256x256.model: El modelo 3D que se usará para el wearable. Este archivo debe estar en el nivel raíz de tu carpeta.bodyShape: El tipo de cuerpo de avatar con el que este wearable es compatible. Valores posibles:male
female
both
collectionAddress: La dirección ethereum de la colección publicada de wearables. Esta dirección se asigna al publicar; puede dejarse en blanco.
La miniatura
Debes incluir una imagen llamada thumbnail.png en el nivel raíz de tu carpeta. Esta imagen se mostrará tanto en la backpack como en el marketplace, para representar tu wearable en 2D. El tamaño recomendado requerido de la imagen es 256x256.
Elige una imagen que establezca las expectativas del jugador y represente correctamente tu creación.
La vista previa
Ejecutar una vista previa de una experiencia portátil es igual que ejecutar la de una escena; simplemente haz clic en Run Scene en la pestaña de Decentraland, o ejecuta npm run start en la línea de comandos. Si el wearable.json archivo está correctamente configurado y el proyecto se reconoce como un smart wearable, notarás que todo lo visible a tu alrededor son los parcels vacíos predeterminados. En este modo de vista previa, no estás restringido a ningún conjunto de parcels; puedes añadir modelos 3D o sonidos en cualquier parte del mundo.
Para probar cómo se comporta el smart wearable en el contexto de una escena, también puedes ejecutar una vista previa de tu wearable al mismo tiempo que ejecutas una vista previa de una o varias escenas usando un Workspace. Por ejemplo, puedes ejecutar tu smart wearable junto con la Genesis Plaza escena para probar cómo se comporta en una escena concurrida, mientras estás en un ascensor, etc.
Consejos
Al posicionar una Entity, ten en cuenta que las posiciones son globales, relativas a las coordenadas 0,0 de Genesis Plaza.
Para reaccionar a los jugadores cercanos:
Consulta Obtener todos los players para saber cómo obtener datos de otros jugadores en los alrededores.
Ten en cuenta que la carga del smart wearable, las escenas cercanas y otros jugadores puede ocurrir en distinto orden según la situación. Si el jugador entra en Decentraland con el smart wearable ya puesto, es probable que la escena global de tu wearable se cargue antes que la de otros jugadores. Por otro lado, si el jugador primero carga una escena y luego se pone el wearable, es probable que otros jugadores ya estén cargados cuando la escena del wearable empiece a ejecutarse.
Para experiencias multijugador, espera hasta que el jugador esté conectado a una isla dentro de su realm. Obtén los datos del realm y comprueba el campo ‘room’. Si el campo ‘room’ es null, el jugador aún no está conectado a una isla y los demás jugadores todavía no se habrán cargado. Puedes comprobar esto periódicamente cada 1 segundo hasta que el campo ‘room’ esté presente, y solo entonces inicializar tu lógica.
Para interactuar con las escenas cercanas:
No puedes enviar directamente instrucciones a las escenas cercanas ni a otras experiencias portátiles, el
messageBusestá actualmente en sandbox para cada experiencia portátil/escena.Puedes usar un servidor intermedio para enviar información entre la experiencia portátil y una escena.
Si haces un raycast, puedes detectar impactos contra los colliders de las Entities de las escenas cercanas. Esto puede indicarte la ubicación exacta del impacto, la dirección normal e incluso el nombre de la Entity y el nombre del mesh del modelo 3D. Esto solo funciona al impactar con Entities en escenas escritas con SDK7.
Eliminar una experiencia portátil: ejecuta el
kill()método para autodestruir una experiencia portátil.
Publish
Para publicar tu smart wearable:
Asegúrate de que la información en
wearable.jsonsea correcta. Si usaste otro proyecto como punto de partida, asegúrate de que elidsea un identificador único, no usado por otros wearables.Ejecuta
npm run packen la carpeta de tu proyecto. Esto genera un archivosmart-wearable.zipen la carpeta de tu proyecto.
📔 Nota: La salida de npm run pack indicará el tamaño del proyecto exportado sin comprimir; debe estar por debajo de 3MB. Si es mayor que eso, no será aceptado por el builder.
Abre el Builder, abre la pestaña Collections, haz clic en + para subir un nuevo wearable.
Arrastra tu archivo comprimido
smart-wearable.zipal Builder y verifica que toda la información sea correcta.
Nota: Si tu wearable contiene diferentes representaciones del modelo, necesitas hacer un workaround:
En tu proyecto, crea una nueva carpeta para cada representación(
maleyfemale), y coloca el modelo 3D de cada representación en su carpeta correspondiente.Actualiza tu
wearable.jsonarchivo para incluir las nuevas representaciones.Ejecuta
npm run packpara generar un nuevo archivo smart-wearable.zip.Arrastra el nuevo archivo smart-wearable.zip al Builder.
Abre el editor de wearables y asegúrate de que las categorías “hide” y “remove” estén configuradas correctamente para desactivar otras categorías de wearables cuando este wearable esté puesto.
Crea una nueva colección con este y quizá otros wearables.
Haz clic en el icono de 3 puntos junto a “Mint Items” y selecciona “See in world”. Esto abrirá una pestaña con el explorer en Sepolia, donde podrás probar todos los wearables de tu colección en Decentraland y ver cómo se comportan en un escenario más real, por ejemplo corriendo por Genesis Plaza.
En este punto, tu wearable está listo para ser publicado.
Acciones restringidas
Para evitar abusos, ciertas funciones no están permitidas en las experiencias portátiles por defecto y requieren añadir un indicador de permiso.
Consulta Permisos requeridos para más detalles.
Limitaciones
IMPORTANTE: Todo el smart wearable debe caber dentro de 3MB. Esto incluye el modelo 3D, la miniatura, el código, las libraries, los archivos de sonido, modelos 3D adicionales, imágenes de UI, etc. Este límite es para la carpeta sin comprimir. El builder no te permitirá subir wearables más grandes que esto. Para comprobar el tamaño de tu experiencia portátil, ejecuta
npm run pack, el tamaño del proyecto se especifica en el texto de salida del comando. También puedes verificarlo descomprimiendo elsmart-wearable.ziparchivo generado y comprobando el tamaño de la carpeta.
Los smart wearables solo ejecutan la experiencia portátil para el jugador que lleva puesto el wearable. Los demás jugadores no ven los efectos. Por ejemplo, si la experiencia portátil renderiza una mascota que sigue al jugador, los demás jugadores cercanos no verán esta mascota. Sin embargo, los demás jugadores sí verán a los avatares realizar animaciones que se ejecuten como parte de la escena del wearable, incluso animaciones personalizadas de avatar subidas como parte de los archivos del smart wearable.
Los smart wearables solo funcionan cuando los jugadores los tienen puestos. Por esta razón, los jugadores solo pueden tener un número limitado de smart wearables activados y, según la parte del cuerpo que ocupen, algunos serán incompatibles con otros. Por ejemplo, no puedes tener dos hats al mismo tiempo, ni un helmet y hair al mismo tiempo.
Si un wearable está “hidden” pero no “removed” por otros wearables que se lleven puestos, entonces el smart wearable todavía puede estar activo, incluso si el wearable correspondiente no es visible.
Ejemplos
Última actualización