WENOPAL

Ropa y modelos 3D en mods de Project Zomboid

Cómo se arma una prenda en B42, qué ropa es un modelo 3D y cuál se pinta sobre el cuerpo, y los errores que nos costó encontrar haciendo zapatillas, gorras y buzos.

Nivel avanzado · Actualizada el

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

  1. El ítem (script .txt), con ItemType = base:clothing, dónde se pone (BodyLocation) y qué prenda visual usa (ClothingItem):
text
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.

  1. La prenda visual, un XML en media/clothing/clothingItems/ que dice qué modelo y qué textura usar.
  2. 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:

TipoCómo funciona en el juegoQué hicimos
PolerasSe pintan sobre la textura del cuerpo (256×256)Fútbol Chileno Z: escudos pintados en el pecho
Zapatos vanillaTambién se pintan sobre el pieCatimbas: hicimos modelos 3D propios para que se viera el logo
Gorros y sombrerosSon modelos 3D del juegoJockies: reusamos el modelo de la gorra y solo cambiamos la textura
Chaquetas y pantalonesModelos 3D que usan el UV del cuerpoBuzitos: 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:

xml
<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 .x con 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.