Textures, fichiers et packs · 4 min de lecture
Avertissement « oversized asset » de FiveM : sens et solution
Lire en: English · Español · Deutsch · Português · Italiano · Polski · Türkçe · Русский
Vous démarrez votre serveur et la console se remplit de lignes comme celle-ci :
Asset <resource>/<file>.ytd uses <size> MiB of physical memory.C'est l'avertissement d'asset trop volumineux de FiveM. Ce n'est pas une erreur et le fichier continue de se charger, mais il vous indique les fichiers assez lourds pour poser problème. Voici ce qu'il mesure, pourquoi la taille du fichier sur disque en dit peu, et comment les alléger.
Ce que mesure FiveM
Au démarrage, FiveM lit l'en-tête de chaque fichier du dossier stream d'une ressource. Cet en-tête indique la mémoire qu'occupe le fichier une fois chargé, en deux parts : la mémoire physique (mémoire graphique : textures et tampons de sommets) et la mémoire virtuelle (mémoire système : le reste de l'asset). Les seuils, lus dans le code même de FiveM, sont les mêmes pour les deux :
| Mémoire d'un fichier | Ce que fait FiveM |
|---|---|
| plus de 16 MiB | affiche l'avertissement |
| plus de 32 MiB | l'affiche en jaune |
| 48 MiB et plus | ajoute : "Oversized assets can and WILL lead to streaming issues (such as models not loading/rendering)." |
| plus de 64 MiB | l'affiche en rouge |
L'avertissement porte sur chaque fichier. Un .ytd de 20 MiB est signalé même si le reste de votre serveur est léger.
Pourquoi la taille sur disque trompe
Les fichiers en streaming sont compressés sur le disque, et l'avertissement compte ce qu'ils occupent chargés. Pour une texture, c'est sa taille au format du GPU, avec tous ses niveaux de mipmap, arrondie à des pages mémoire entières. Un ordre de grandeur, avant cet arrondi :
| Texture (avec mipmaps) | DXT1 (sans transparence) | DXT5 (avec transparence) |
|---|---|---|
| 1024 × 1024 | 0,67 MiB | 1,33 MiB |
| 2048 × 2048 | 2,67 MiB | 5,33 MiB |
| 4096 × 4096 | 10,67 MiB | 21,33 MiB |
Ainsi, une seule texture DXT5 de 4096 × 4096 dépasse déjà le seuil à elle seule, et un .ytd de quelques textures 2048 peut le dépasser tout en paraissant petit dans l'explorateur de fichiers. L'arrondi aux pages peut rendre le total nettement supérieur à la somme des textures.
Si un fichier est signalé pour la mémoire virtuelle (système), ce ne sont pas les textures : ce sont les autres données de l'asset, comme sa collision. Réduire les textures ne changera rien à cela.
Trouver d'un coup tous les fichiers trop volumineux
Plutôt que de lire la console, déposez tout votre dossier resources dans Server Budget. Il lit les mêmes en-têtes dans votre navigateur (rien n'est envoyé) et liste :
- Oversized (trop volumineux) : les fichiers de plus de 16 MiB de mémoire graphique, les pires en premier.
- By resource (par ressource) : ce que chaque ressource diffuse, trié par mémoire.
- Streamed twice (diffusé deux fois) : les noms de fichiers diffusés par plus d'une ressource. Le jeu n'en reçoit qu'un, gardez donc une seule copie.
La liste Oversized de Server Budget compte la mémoire graphique. Un fichier que la console signale seulement pour la mémoire virtuelle n'y figurera pas.
Réduire les textures
Prenez les fichiers signalés par Server Budget (.ytd, .ydr, .yft, .ydd) et déposez-les dans l'Asset Optimizer :
- Réglez Largest texture size (taille maximale de texture). 1024 est la valeur par défaut ; 2048 est un choix courant pour les véhicules et les livery regardés de près.
- Laissez Add missing mipmaps (ajouter les mipmaps manquants) coché : les textures enregistrées sans mipmaps les retrouvent.
- Vérifiez l'estimation ("At 1024 px: about … less texture memory") et le tableau des fichiers.
- Cliquez sur Download the lighter files (.zip) (télécharger les fichiers allégés). Vous récupérez chaque fichier sous son propre nom : remettez-les à la place des anciens.

Une texture qui a des mipmaps est réduite en supprimant ses niveaux les plus grands, sans recompression : elle ressemble donc exactement à ce qu'elle était vue d'un peu plus loin. Une texture sans mipmaps est reconstruite avec tous ses niveaux, à la taille choisie, ou à sa propre taille si elle est plus petite.
Les packs qui répètent la même texture dans de nombreux dictionnaires peuvent aussi la partager : Texture Dedupe déplace les textures répétées dans un .ytd commun. Déposez ensuite à nouveau le dossier dans Server Budget pour voir le résultat.
Questions
- Les 16 MiB sont-ils une limite stricte ?
- Non. FiveM diffuse toujours le fichier et se contente d'avertir. À partir de 48 MiB, son propre message indique que ces assets provoqueront des problèmes de streaming : considérez donc tout ce qui dépasse 16 MiB comme un fichier à réduire.
- L'avertissement compte-t-il la taille du fichier sur disque ?
- Non. Il compte la mémoire qu'occupe le fichier une fois chargé, lue dans son en-tête. Un fichier peut peser bien moins de 16 Mo sur disque tout en dépassant 16 MiB chargé.
- Les textures plus petites seront-elles moins belles ?
- De près, une texture 1024 est plus douce qu'une 2048. De loin, le jeu dessine déjà les niveaux de mipmap plus petits, justement ceux que l'Asset Optimizer conserve.

L'outil pour cela
Server Budget
Déposez votre dossier de ressources : mémoire graphique et système par ressource, chaque fichier de plus de 16 MiB et chaque fichier diffusé deux fois. Dans votre navigateur, rien n'est envoyé.
Ouvrir Server BudgetAussi utile ici: Asset Optimizer · Texture Dedupe

