La ropa es de lo más satisfactorio de modear, porque se ve puesta en tu personaje y en los zombis. También es lo que más trampas tiene. Esta guía sale de hacer Catimbas (89 zapatillas), Jockies (46 gorras), Buzitos (buzos) y TeletuZombi.
Las tres piezas de una prenda
- El ítem (script
.txt), conItemType = base:clothing, dónde se pone (BodyLocation) y qué prenda visual usa (ClothingItem):
item Nike_AirForce1_White
{
DisplayCategory = Clothing,
ItemType = base:clothing,
BodyLocation = base:shoes,
BloodLocation = Shoes,
ClothingItem = Nike_AirForce1_White,
Icon = Nike_AirForce1_White,
WorldStaticModel = Nike_AirForce1_White_Ground,
}Los valores posibles de BodyLocation están en la referencia de BodyLocations.
- La prenda visual, un XML en
media/clothing/clothingItems/que dice qué modelo y qué textura usar. - El registro del GUID en
media/fileGuidTable.xml, que une el XML con un identificador único.
¿Modelo 3D o pintada sobre el cuerpo?
No toda la ropa del juego es un modelo 3D. Esto define cuánto trabajo es tu mod:
| Tipo | Cómo funciona en el juego | Qué hicimos |
|---|---|---|
| Poleras | Se pintan sobre la textura del cuerpo (256×256) | Fútbol Chileno Z: escudos pintados en el pecho |
| Zapatos vanilla | También se pintan sobre el pie | Catimbas: hicimos modelos 3D propios para que se viera el logo |
| Gorros y sombreros | Son modelos 3D del juego | Jockies: reusamos el modelo de la gorra y solo cambiamos la textura |
| Chaquetas y pantalones | Modelos 3D que usan el UV del cuerpo | Buzitos: reusamos las mallas del buzo vanilla con texturas nuevas |
Reusar un modelo del juego y cambiarle la textura es, por lejos, el camino más rápido.
El error de los hoyos: m_MasksFolder
Síntoma: la prenda se ve perfecta en el suelo y en el inventario, pero puesta le faltan pedazos, como láminas que no cierran. Con pantalón encima es peor.
Causa: el juego recorta cada prenda con "máscaras" para que no asome lo que tapan las prendas de encima. Esas máscaras están dibujadas para el UV del cuerpo. Si tu modelo tiene un UV propio (una zapatilla, un casco), los recortes caen en lugares al azar.
Solución: en el XML de la prenda:
<m_MasksFolder>none</m_MasksFolder>Antes de dar con esto probamos invertir las caras y hacer la malla de doble cara. Nada de eso era el problema.
Texturas: textureChoices o m_BaseTextures
En el XML de la prenda:
- Si la prenda tiene modelo, la textura va en
<textureChoices>. Si la pones en<m_BaseTextures>y alguien tira la prenda al suelo, la consola se llena de errores. <m_BaseTextures>es solo para ropa sin modelo que se pinta sobre el cuerpo (como una polera o un traje entero).
Modelos 3D rígidos
- Formato: el juego lee
.x(texto) y.fbx. Nosotros generamos.xcon Python o exportamos desde Blender. - Pesos de esqueleto: para un objeto rígido (zapato, casco), que siga un solo hueso. Si copias los pesos de la piel, se estira como goma al doblar el tobillo.
- Pruébalo puesto en el juego. Los renders de Blender no aplican las máscaras ni las poses reales, así que muchos problemas solo se ven dentro del juego.
Vestir a los zombis
Para que tu ropa aparezca en zombis, se define un outfit en media/clothing/clothing.xml y se registra en ZombiesZoneDefinition. Así hicimos TeletuZombi y Fútbol Chileno Z.