Texturas, archivos y packs · 5 min de lectura

¿Por qué las texturas de FiveM salen rosas, moradas o blancas?

Leer en: English · Français · Deutsch · Português · Italiano · Polski · Türkçe · Русский

Tu nuevo prop, coche o MLO se carga, pero una parte sale totalmente blanca o de un rosa o morado llamativo. El modelo en sí cargó bien: lo que falta es una de sus texturas. El juego la buscó, no la encontró en ningún sitio y dibujó esa parte sin ella.

La solución casi nunca es borrar la caché o reinstalar el recurso. Hay que averiguar qué textura falta y por qué el modelo no puede verla. Aquí tienes dónde busca el juego, los errores que lo rompen y cómo encontrar al culpable sin abrir cada archivo en OpenIV.

Dónde busca el juego una textura

Un modelo no lleva una lista de archivos. Cada parte de él (cada shader) indica qué texturas necesita, y el juego busca cada nombre en este orden:

  1. Dentro del propio modelo. Un .ydr o .yft puede llevar sus propias texturas (incrustadas).
  2. El diccionario de texturas que indica su archetype. En un prop o un modelo de mapa es el textureDictionary de su entrada en el .ytyp, que no siempre es un .ytd con el nombre del modelo. En un coche es el txdName de vehicles.meta.
  3. Los padres de ese diccionario, definidos en un gtxd.meta (CMapParentTxds), uno tras otro hacia arriba en la cadena.
  4. Los diccionarios compartidos del propio juego, que siempre están cargados, como vehshare (cristales, ruedas y pintura de coches) y mapdetail.

Una textura que no esté en ninguno de estos sitios es la parte blanca, rosa o morada. Así que la pregunta nunca es solo "¿está la textura en mi recurso?", sino "¿está en algún sitio donde este modelo mira?".

Las causas habituales

  • El .ytd no es el que indica el .ytyp. Renombrar el .ytd para que coincida con el modelo es una suposición común, pero lo que cuenta es el diccionario de texturas del archetype.
  • El .ytd no está en el recurso, o no está en su carpeta stream, y el juego tampoco tiene uno con ese nombre.
  • La textura está en otro .ytd del mismo recurso que este modelo nunca consulta: un diccionario compartido sin vínculo de padre con él.
  • El gtxd.meta está, pero el fxmanifest no lo carga. Sin su línea data_file el juego nunca ve esos padres.
  • La txdName de un coche en vehicles.meta no coincide con su .ytd.

Hay otro caso que puede parecer igual pero no es una textura que falte: una textura guardada sin mipmaps. El ped addon de un cliente salía rosa de cerca en el juego con todas sus texturas en su sitio, y sus texturas no tenían mipmaps. Ese caso tiene su propia guía: cómo añadir mipmaps a un YTD.

Encuentra la textura que falta en un minuto

Missing Textures Check sigue la misma búsqueda para cada modelo de un recurso. Es gratis (inicias sesión con Discord) y solo lee: no cambia nada.

  1. Arrastra tu recurso de FiveM, su carpeta o su .zip, con su .ytyp, vehicles.meta y gtxd.meta si los tiene.
  2. Lee Totals (totales): Missing (que faltan) es el número de texturas que se dibujan en blanco o morado; From the game (del juego) son las texturas que solo tienen los diccionarios del juego, lo cual es normal.
  3. Abre la ficha de un modelo. Su tabla enumera cada textura con su ranura y dónde se encontró: en el modelo, en su .ytd, en un .ytd padre, en el juego o Missing.
  4. Cuando una textura que falta está en otro sitio de tu envío, la tabla lo indica bajo su nombre ("Is in X, where this model doesn't look." — está en X, donde este modelo no mira), y la pista bajo el modelo explica cómo arreglarlo.
  5. Deja marcado Only problems (solo problemas) para ver solo los modelos rotos, y descarga el informe como .csv si quieres repasarlos uno a uno.
Informe de Missing Textures Check de un coche de policía de prueba al que se le quitó el .ytd: 15 texturas que faltan, cada una con su ranura, el resto encontradas en los diccionarios del juego
Un coche de prueba sin su .ytd: 15 texturas que no aparecen en ningún sitio, y la pista que nombra el diccionario que pide su vehicles.meta.

Arregla cada causa

La textura de verdad falta

Ponla en el diccionario que usa el modelo. Texture Editor abre el .ytd y añade una: Add a texture (añadir una textura), le pones el nombre exacto que pide el modelo, eliges su tipo (mapa de color, normal o especular) y la imagen, y descargas el .ytd. Vuelve comprimido y con mipmaps.

El modelo mira en el diccionario equivocado

Cambia el diccionario de texturas del archetype en el .ytyp con el YTYP Editor, para que nombre el .ytd que tiene las texturas. En un coche, corrige txdName en vehicles.meta.

La textura está en otro .ytd

Muévela al .ytd propio del modelo, o haz que ese otro .ytd sea padre en un gtxd.meta. Texture Dedupe lo escribe por ti cuando comparte texturas entre diccionarios. En cualquier caso, el fxmanifest tiene que cargarlo:

lua
files { 'gtxd.meta' }
data_file 'GTXD_PARENTING_DATA' 'gtxd.meta'

Rosa o borrosa solo de cerca

Mira Size and format (tamaño y formato) en el mismo informe. Las texturas listadas sin mipmaps se pueden reconstruir de una vez con el Asset Optimizer.

Luego reconecta, no solo reinicies

Los jugadores conservan el .ytd que ya descargaron hasta que se vuelven a conectar: reiniciar el recurso no basta para ver una textura arreglada. Tras una corrección, vuelve a arrastrar el recurso al check y luego vuelve a entrar en el servidor para verla en el juego.

Preguntas

¿Borrar la caché de FiveM arregla las texturas blancas o moradas?
No cuando falta una textura en el recurso: la caché no puede añadir una textura que nadie envía. Busca primero la que falta. Eso sí, después de cambiar un .ytd los jugadores sí tienen que reconectarse para recibir el nuevo.
¿Por qué solo una parte de mi modelo está en blanco?
Cada parte de un modelo tiene sus propias texturas. Solo se dibujan sin ellas las partes cuyas texturas no se encontraron en ningún sitio, así que un coche puede tener la pintura perfecta y los asientos en blanco.
¿Puede venir una textura del juego en vez de mi recurso?
Sí. Un modelo puede usar texturas de los diccionarios propios del juego, como vehshare para los cristales y las ruedas. Missing Textures Check las muestra como From the game o Game shared, no como faltantes.

La herramienta para esto

Missing Textures Check

Arrastra tu recurso y verás las texturas de cada modelo, dónde se encontró cada una y una solución para las que no aparecen en ningún sitio.

Abrir Missing Textures Check

También útil aquí: Texture Editor · Asset Optimizer

Todas las herramientas son gratis para probar, con 5 exportaciones al día. Inicia sesión con Discord para usarlas.