Textures, fichiers et packs · 5 min de lecture

Textures FiveM roses, violettes ou blanches : causes et solution

Lire en: English · Español · Deutsch · Português · Italiano · Polski · Türkçe · Русский

Votre nouveau prop, véhicule ou MLO se charge, mais une partie apparaît entièrement blanche, ou d'un rose ou violet criard. Le modèle lui-même a bien chargé : ce qui manque, c'est l'une de ses textures. Le jeu l'a cherchée, ne l'a trouvée nulle part, et a dessiné cette partie sans elle.

La solution n'est presque jamais de vider le cache ou de réinstaller la ressource. Il faut trouver quelle texture manque et pourquoi le modèle ne peut pas la voir. Voici où le jeu cherche, les erreurs qui le font échouer, et comment trouver le coupable sans ouvrir chaque fichier dans OpenIV.

Où le jeu cherche une texture

Un modèle ne porte pas de liste de fichiers. Chacune de ses parties (chaque shader) nomme les textures dont elle a besoin, et le jeu cherche chaque nom dans cet ordre :

  1. Dans le modèle lui-même. Un .ydr ou .yft peut contenir ses propres textures (intégrées).
  2. Le dictionnaire de textures que nomme son archetype. Pour un prop ou un modèle de carte, c'est le textureDictionary de son entrée dans le .ytyp, qui n'est pas toujours un .ytd portant le nom du modèle. Pour un véhicule, c'est le txdName de vehicles.meta.
  3. Les parents de ce dictionnaire, définis dans un gtxd.meta (CMapParentTxds), les uns après les autres jusqu'au sommet de la chaîne.
  4. Les dictionnaires partagés du jeu lui-même, toujours chargés, comme vehshare (vitres, roues et peinture des véhicules) et mapdetail.

Une texture absente de tous ces emplacements apparaît en blanc, rose ou violet. La question n'est donc jamais seulement « la texture est-elle dans ma ressource ? », mais « est-elle à un endroit où ce modèle regarde ? ».

Les causes habituelles

  • Le .ytd n'est pas celui que nomme le .ytyp. Renommer le .ytd pour qu'il porte le nom du modèle est une supposition courante, mais c'est le dictionnaire de textures de l'archetype qui compte.
  • Le .ytd n'est pas du tout dans la ressource, ou pas dans son dossier stream, et le jeu n'en possède pas non plus un de ce nom.
  • La texture est dans un autre .ytd de la même ressource que ce modèle ne consulte jamais : un dictionnaire partagé sans lien de parenté avec lui.
  • Le gtxd.meta est là, mais le fxmanifest ne le charge pas. Sans sa ligne data_file, le jeu ne voit jamais ces parents.
  • Le txdName d'un véhicule dans vehicles.meta ne correspond pas à son .ytd.

Il existe un autre cas qui peut ressembler à cela sans être une texture manquante : une texture enregistrée sans mipmaps. Le ped addon d'un client apparaissait rose de près en jeu, toutes ses textures étant en place, et ses textures n'avaient pas de mipmaps. Ce cas a son propre guide : comment ajouter des mipmaps à un YTD.

Trouver la texture manquante en une minute

Missing Textures Check suit la même recherche pour chaque modèle d'une ressource. Il est gratuit (vous vous connectez avec Discord) et ne fait que lire : il ne modifie rien.

  1. Déposez votre ressource FiveM, son dossier ou son .zip, avec son .ytyp, son vehicles.meta et son gtxd.meta s'il en a.
  2. Lisez Totals : Missing est le nombre de textures qui s'affichent en blanc ou en violet ; From the game désigne les textures que seuls les dictionnaires du jeu possèdent, ce qui est normal.
  3. Ouvrez la fiche d'un modèle. Son tableau liste chaque texture avec son emplacement et l'endroit où elle a été trouvée : dans le modèle, dans son .ytd, dans un .ytd parent, dans le jeu, ou Missing.
  4. Quand une texture manquante se trouve ailleurs dans votre envoi, le tableau le signale sous son nom (« Is in X, where this model doesn't look. » : elle est dans X, là où ce modèle ne regarde pas), et l'indication sous le modèle explique comment corriger.
  5. Laissez Only problems coché pour ne voir que les modèles en erreur, et téléchargez le rapport en .csv si vous voulez les traiter un à un.
Rapport de Missing Textures Check pour une voiture de police de test dont le .ytd a été retiré : 15 textures manquantes, chacune avec son emplacement, le reste trouvé dans les dictionnaires du jeu
Une voiture de test sans son .ytd : 15 textures introuvables, et l'indication qui nomme le dictionnaire demandé par son vehicles.meta.

Corriger chaque cause

La texture manque vraiment

Placez-la dans le dictionnaire qu'utilise le modèle. Texture Editor ouvre le .ytd et en ajoute une : Add a texture (ajouter une texture), donnez-lui le nom exact que demande le modèle, choisissez son type (carte de couleur, normale ou spéculaire) et l'image, puis téléchargez le .ytd. Il revient compressé, avec des mipmaps.

Le modèle regarde dans le mauvais dictionnaire

Modifiez le dictionnaire de textures de l'archetype dans le .ytyp avec le YTYP Editor, pour qu'il nomme le .ytd qui contient les textures. Pour un véhicule, corrigez le txdName dans vehicles.meta.

La texture est dans un autre .ytd

Déplacez-la dans le .ytd propre au modèle, ou faites de cet autre .ytd un parent dans un gtxd.meta. Texture Dedupe l'écrit pour vous lorsqu'il partage des textures entre dictionnaires. Dans tous les cas, le fxmanifest doit le charger :

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

Rose ou flou seulement de près

Regardez Size and format (taille et format) dans le même rapport. Les textures listées sans mipmaps peuvent être reconstruites d'un coup avec l'Asset Optimizer.

Puis reconnectez-vous, ne vous contentez pas de redémarrer

Les joueurs gardent le .ytd déjà téléchargé jusqu'à leur reconnexion : redémarrer la ressource ne suffit pas à voir une texture corrigée. Après une correction, redéposez la ressource dans le contrôle, puis rejoignez le serveur pour la voir en jeu.

Questions

Vider le cache de FiveM corrige-t-il les textures blanches ou violettes ?
Pas quand une texture manque dans la ressource : le cache ne peut pas ajouter une texture que personne n'envoie. Trouvez d'abord celle qui manque. En revanche, après avoir modifié un .ytd, les joueurs doivent se reconnecter pour recevoir le nouveau.
Pourquoi seule une partie de mon modèle est-elle blanche ?
Chaque partie d'un modèle a ses propres textures. Seules sont dessinées sans elles les parties dont les textures ne sont trouvées nulle part : une voiture peut donc avoir une peinture parfaite et des sièges blancs.
Une texture peut-elle venir du jeu plutôt que de ma ressource ?
Oui. Un modèle peut utiliser des textures des dictionnaires du jeu, comme vehshare pour les vitres et les roues. Missing Textures Check les affiche comme From the game ou Game shared, et non comme manquantes.

L'outil pour cela

Missing Textures Check

Déposez votre ressource pour voir les textures de chaque modèle, l'endroit où chacune a été trouvée, et une solution pour celles introuvables.

Ouvrir Missing Textures Check

Aussi utile ici: Texture Editor · Asset Optimizer

Plus de guides

Tous les guides →

Tous les outils sont gratuits à essayer, avec 5 exports par jour. Connectez-vous avec Discord pour les utiliser.