Creación de Wearables
Consejos y pautas para crear Wearables de Decentraland

Introducción
Esta guía introduce los conceptos básicos para crear modelos 3D personalizados para wearables de Decentraland. Explica cómo funciona el sistema de avatar de Decentraland, e ilustra cómo modelar correctamente tus propios wearables.
Nota: esta guía asume que ya tienes algunos conocimientos básicos a intermedios de modelado 3D. Si eres nuevo en el modelado 3D, empieza aquí.
Antes de empezar, descarga los archivos de ejemplo para referencia de meshes y textures: Modelos de referencia de wearables
El sistema de avatar de Decentraland
El "sistema de avatar" de Decentraland es la amplia colección de diferentes componentes y subcomponentes del cuerpo que pueden decorarse con wearables personalizados. Estos componentes son:
Body shape
Head
Head shape
Eyebrows
Eyes
Mouth
Upper body
Lower body
Handwear
Feet
Accessories
Forma base del cuerpo
Después de descargar el archivo de ejemplo del avatar base, carga el modelo en tu editor 3D, como Blender.
Notarás que cada modelo contiene 8 meshes diferentes relacionadas con una armature. Estas meshes representan la cabeza, las eyebrows, los eyes, la mouth, el upper body, el lower body, las manos y los feet. Puedes usar estos modelos de ejemplo como referencia y punto de partida para tu propio wearable personalizado.
Actualmente, hay dos body shapes: A o B.

Head

La cabeza base incluye diferentes meshes adjuntas que pueden personalizarse como wearables: Eyebrows, Eyes y Mouth funcionan como máscaras de transparencia renderizadas delante de la cara.
Upper Body

La parte superior del cuerpo, o torso, de un avatar. No incluye las manos.
Lower Body

La parte inferior del cuerpo incluye la pelvis y las piernas de un avatar.
Hands

Las manos son las mismas para Shape A y B, y comienzan en las muñecas de un avatar.
Feet

Los feet incluyen los tobillos y el pie.
Importante: no modifiques los vértices de "cuts/stitches" entre la cabeza, el upper y lower body.
Cada parte del cuerpo tiene capuchones, lo que las hace "water tight". Estos capuchones existen para evitar fallos visuales antiestéticos si hay problemas de clipping de animación debido a un mal skin weighting. Lo mejor es no quitar estos capuchones al editar el mesh.

Creación de modelos 3D para wearables
Limitaciones de tris, materials y textures
Para garantizar que Decentraland funcione sin problemas para todos los jugadores, es importante crear modelos de wearables sin usar demasiados triángulos, materials y textures. El objetivo es mantener los modelos 3D lo más simples posible para que se puedan renderizar fácilmente, sin sacrificar demasiado detalle.
Hay límites en la cantidad de triángulos y textures que se pueden usar para cada wearable o accessory:
No más de 1.5K triangles por wearable slot: hat, helmet, upper body, lower body, feet y hair.
No más de 500 triangles por categorías: mask, eyewear, earring, tiara, top_head y facial hair.
Para los hand accessories, el presupuesto es de 1k tris. Si el hand wear oculta la hand base del avatar, el presupuesto es de 1.5k tris.
No más de 2 textures (a una resolución de 512x512px o menor) por wearable. Todas las textures deben ser cuadradas con una resolución de 72 pixel/inch.
No más de 2 materials (sin contar el AvatarSkin_MAT)
En el caso del skin wearable, la cantidad de tris permitidos es 5k y 5 textures.
Wearable Tris Combiner:
Si el wearable oculta otros wearables, el creador puede combinar los tris por slot. Por ejemplo: si quieres hacer un jumpsuit podrías crearlo usando la categoría upper body ocultando lower body; en ese caso podrías tener 1.5K2= 3K triangles.*
En el caso del helmet, si ocultas todos los wearables de la cabeza (head, earrings, eyewear, tiara, hat, facial_hair, hair y top_head puedes alcanzar los 4k tris, 2 materials y 2 textures)
Dimensión máxima de ancho, alto y profundidad de los wearables
Hay un límite de distancia para los wearables para garantizar que no obstruyan la visibilidad de las pantallas de otros jugadores ni invadan el espacio de la scene de forma excesiva.
La dimensión de los wearables no puede exceder:
Altura: 2.42 m,Ancho: 2,42 m,Profundidad: 1,4 m


Maps
Los wearables de Decentraland actualmente admiten 3 tipos de maps, que son:
Color Base: Esta es la textura principal con los colores y detalles de tu modelo.
Emission: Este map es para las partes que brillan en tu modelo. El emission map va en un material separado específicamente para emission.
Alpha: Este map sirve para manejar la transparencia. Usa el canal de opacidad de la texture. (Siempre es preferible usar Alpha Clip en lugar de Alpha Blend, usando una textura en blanco y negro para el recorte)

Como el cliente de referencia de Decentraland usa un Toon Shader para los materials del avatar, algunos maps son no necesarios como:
Normal maps: texturas usadas para simular detalles de alta resolución en modelos de baja poligonización codificando las normales de la superficie como valores RGB.
Roughness maps: texturas usadas para definir la rugosidad de la superficie de objetos 3D.
Para usar estos maps en Decentraland, la solución alternativa es hornearlos en una sola texture. Puedes encontrar más información sobre el horneado de textures aquí: https://docs.blender.org/manual/en/latest/render/cycles/baking.html
Normales
El engine de Decentraland renderiza solo las normales de un lado. (Eso significa que un plano solo será visible desde un lado, el otro lado no se renderizará) Así que, para asegurarte de que tu 3D sea absolutamente correcto con las normals, podemos comprobarlo de dos maneras diferentes.
La primera es activar "Backface culling" en la configuración de propiedades del Material; esta es una buena práctica para detectar normals invertidas, como en esta imagen:


La segunda forma de comprobar si las normals están bien es activando "Face orientation" en las opciones de superposición del viewport. Esto pondrá tu modelo en azul, pero no te preocupes. Las caras azules son las correctas y las rojas son las que necesitan ser corregidas; puedes encontrar esta opción aquí:

Armature
Recuerda no cambiar ninguna de las especificaciones, convenciones de nombres, jerarquía o transforms de la armature proporcionada. Cambiar cualquiera de estas cosas hará que el wearable deje de funcionar en el client después de exportarlo.

Asegúrate de que la armature importada no tenga ningún end o neutral bones, de lo contrario el wearable no va a funcionar después de exportarlo al builder. Si estás importando un .fbx que tiene este problema, puedes activar Ignore Leaf Bones al importar la armature.

Eyebrows, Eyes y Mouth
Estas meshes funcionan con un shader transparente, así que no tienes que hacer nada aparte de crear tu propia textura PNG para el nuevo estilo de eyebrow, eye o mouth que quieras y colocarla correctamente en el UV map. Estas textures deben ser de 256x256px y necesitan tener un canal alpha para la transparencia.
Aquí hay algunas texturas PNG de ejemplo:



Eyes y Eyewbrows usan la misma mesh y UV map.


Mesh y UV map de la Mouth.
Para visualizar el resultado final necesitarás usar estos nodes (en Blender):


Masks: El Avatar Editor tiene diferentes opciones de color que los jugadores pueden elegir para personalizar sus avatares.

Estas opciones de color se aplican a una máscara específica del wearable.


El área negra en la imagen de la izquierda (Eyes Mask) indica el área de la texture de la derecha (Eyes Base) que se coloreará. Es importante recordar que las irises siempre necesitan tener una escala de grises (si el iris es negro puro, el tint no va a funcionar. Por el contrario, si el iris es blanco puro, quedaría completamente teñido por el color seleccionado usando el editor).
Handwear
Hay dos tipos de Handwear que puedes hacer dentro de la misma categoría.
Reemplazar manos:

Si quieres crear handwear que reemplace ambas manos, probablemente necesitarás sobrescribir el hand base mesh. Haciendo eso, el límite para el wearable de handwear sería de 1500 tris.
Hand Accessories:

También puedes crear hand accessories como relojes, pulseras, anillos, etc. En ese sentido, la hand no necesita ser sobrescrita y el límite es de 1000 tris por objeto.
Nota: La handwear categoría es específicamente para hand accessories o manos de reemplazo que siguen la armature del avatar con el skin weighting adecuado. No está pensada para objetos como espadas, escudos o cualquier asset similar. Enviar un objeto que no siga estas especificaciones puede dar lugar a que sea rechazado por el comité de curadores.
Hair y Facial Hair
Hay dos cosas importantes que recordar al crear wearables personalizados de hair.
Primero, intenta seguir la forma de la cabeza. Siempre puedes consultar la mesh de la cabeza proporcionada en los archivos de ejemplo si necesitas un punto de partida.

Segundo, si quieres que los usuarios puedan cambiar el color del hair o facial hair usando el avatar editor, entonces necesitas pintar el hair en escala de grises y usar "Hair" en el nombre del material (ejemplo "M_Hair_Short"). Si quieres incluir otro objeto que no esté influenciado por el tint, simplemente no añadas esa convención de nombres.



Los tonos más oscuros de gris aparecerán más oscuros y los tonos más claros de gris aparecerán más brillantes, multiplicados por el color seleccionado por el usuario en el avatar editor.
Materials y Textures base
Hay tres materials básicos para los modelos de avatar. Uno es el material usado para el wearable en sí, otro se usa para la skin y otro para las eyebrows, eyes y mouth.

Cada base mesh viene con su propia skin texture.


La skin texture está hecha en escala de grises, por lo que permite que el render engine tiña la skin del avatar usando el editor según la preferencia del usuario. Para poder teñir el color de la skin usando el editor, el nombre del material debe ser AvatarSkin_MAT.

Importante: preserva siempre el UV mapping de cualquier parte del cuerpo que quede expuesta por un wearable, como las piernas expuestas por los shorts o las skirts.
\src="../images/wearables-and-emotes/creating-wearables/19_skin_uv.png"width="600"/>
¡Puedes crear textures personalizadas para tus wearables! Sin embargo, siempre es mejor usar un único archivo de texture, muy pequeño, para cada wearable. ¡Usar la texture predeterminada de AvatarWearable_MAT proporcionada en los archivos de ejemplo garantizará que tus wearables tengan buen rendimiento!

Para evitar activar shaders específicos de rasgos faciales, no incluyas '_mouth,' '_eyebrows,' ni '_eyes' en el nombre de ninguna mesh. Estos términos están reservados para rasgos faciales, y usarlos inapropiadamente aplicará el shader incorrecto al mesh.
✨ En caso de que quieras hacer tus propias textures para el modelo, recomendamos los siguientes addons para un mejor UV Unwrapping:
UVPacker
UvPacker es un addon gratuito que te ayuda a empaquetar y organizar tus uvs con solo unos pocos clics. Como Decentraland trabaja con 512x para los wearables, esta herramienta es una gran ayuda para crear textures mejores y más organizadas.
Puedes descargarlo directamente desde el sitio web aquí:
https://www.uv-packer.com/download/
UVToolKit
UvToolKit es un addon que te ayuda a ampliar tus ajustes y opciones de UV para crear excelentes UVs en blender.
Aquí tienes el enlace de descarga: https://alexbel.gumroad.com/l/NbMya
Skin Weighting
Skin weighting es el proceso de determinar qué bones en la rigging del avatar afectan a qué wearables durante una animación.
Al hacer skin weighting de nuestros nuevos wearables, hay varias consideraciones que debemos tener en cuenta.
Cada asset debe tener weight sobre el esqueleto completo. Por ejemplo, un asset de upper body se vería así al aplicar skin weights:

Los wearables que se unen en intersecciones entre partes del cuerpo deben tener weight completo sobre el mismo bone. Por ejemplo, en estas dos zonas verdes, los vértices del cuello deben tener weight completo solo sobre el bone "Neck".

Key Bones
Los bones "key" que se usan al hacer skin weighting son:
Head Bone: para el hair, earrings, tiaras, eyes, eyebrows, mouth y cualquier accessory que necesite seguir el movimiento de la cabeza.
Neck Bone: para los vértices de intersección entre la cabeza principal y el upper body.
Hips Bone: para los vértices de intersección entre el upper body y el lower body.
Right Leg y Left Leg Bones: para los vértices de intersección entre el lower body y los feet.
Right Forearm y Left Forearm para los vértices de intersección de las hands.
⚠️ Sugerencia
Recuerda que puedes usar cualquier bone para influir en los vértices de cualquier mesh. Por ejemplo, podrías crear una nueva mesh de foot para un par de botas altas, y aplicar skin weighting a la parte superior de la bota con los "Leg Bones". O podrías crear un hair largo y usar los bones "Shoulder" o "Spine" para influir en el hair cuando el avatar se mueve.
Siempre es recomendable mantener una simetría en ambos lados de la rig, el lado izquierdo y el derecho deben tener influencias de bones similares.
Como consejo general, un vértice no puede ser influenciado por más de 4 bones o joints.
Ten en cuenta exportar la armature exactamente como la proporcionada en la documentación. Si tiene otros bones como "_end_bones" o similares, no funcionará en el client.
Exportación de wearables
Al exportar wearables, asegúrate de que no haya otros bones fuera de la armature dada. Un problema común al importar armatures entre distintos programas es la aparición de "_end" o "_neutral" bones. Asegúrate de eliminarlos antes de exportar. De lo contrario, es muy probable que los wearables no funcionen después en el client.

Para exportar el wearable, selecciona el objeto y luego la armature. Asegúrate de no exportar nada más, como cámaras, lights o empty objects.
A continuación, exporta el wearable en glTF2.0 formato. Asegúrate de exportar solo el wearable con sus propiedades de skinning, y sin otras funciones innecesarias como animación o shape keys.

Buenas prácticas para modelado
Cambia tu mesh de T-Pose a A-Pose
Cuando estás creando wearables, la mejor forma de visualizar el resultado final, y de facilitar cómo manejas la topología y la posición del wearable, es trabajar con el modelo en A-Pose. Para hacerlo, tienes que seguir estos sencillos pasos:
Primero selecciona el upper body, luego tienes que activar "Edit mode" y "On cage" en el modificador de armature.

Ahora, en pose mode puedes rotar los brazos 60°.

Puedes editar tu mesh en A-Pose en lugar de T-Pose.

Pero también es bueno tener en cuenta que puedes alternar fácilmente de A-Pose a T-Pose simplemente volviendo a activar "Edit mode" y "On cage" en el modificador de armature.

Deformación de articulaciones:
Para obtener los mejores resultados en la topología del wearable cuando se trata de joints (brazos o piernas, por ejemplo), es importante tener buenas prácticas al crear loops. Aquí podemos ver la diferencia en la deformación del mesh para diferentes loop cuts:

Una buena forma de asegurarte de que todo se deforma correctamente es hacer un weight paint como en el siguiente ejemplo:


Skirts
Un consejo útil y una buena práctica al modelar skirts/dresses es añadir loopcuts adicionales en las intersecciones de los pliegues. Esto será muy útil cuando tengas que pintar los weights del rig.

Con estos loopcuts, la influencia de los vértices se ve mucho más suave y te da mejores resultados cuando estás animando una skirt/dress.
Aquí tienes un ejemplo de cómo debería ser la influencia de los bones:

Hats
Una buena práctica al crear hats es añadir un hair a la base mesh del hat y luego ocultar la categoría hair usando el editor. Hacer esto va a evitar que el hat haga clipping con otros hairs y reducirá resultados inesperados.

Añadir recuento de polígonos
Un consejo valioso es llevar siempre un control del polycount de tus modelos. Para hacerlo en Blender, necesitas activar las estadísticas en el panel de overlays del viewport.

Recursos
En esta carpeta compartida puedes encontrar modelos base, textures y otros recursos varios, incluidos ejemplos de wearables completamente creados. Siéntete libre de aprovechar estos recursos al crear los tuyos propios.
Última actualización