Texturas, arquivos e packs · 3 min de leitura

Perda de texturas no FiveM (cidade borrada): como corrigir

Ler em: English · Español · Français · Deutsch · Italiano · Polski · Türkçe · Русский

Os jogadores entram na cidade e as estradas ficam borradas, os prédios continuam cinzas por segundos, às vezes as texturas nunca carregam. No FiveM isso se chama perda de texturas, ou "city bug". Quando acontece só no seu servidor, a causa costuma ser o que o servidor transmite.

O que é a perda de texturas

Tudo o que o seu servidor transmite (carros, roupas, props, mapas) divide a memória de texturas que o jogo reserva para a própria cidade. Quando o que o jogador precisa carregar ao redor não cabe, as texturas chegam atrasadas, borradas ou não chegam.

O próprio FiveM aponta os piores casos. Qualquer arquivo em streaming com mais de 16 MiB de memória recebe um aviso no console do servidor, e a partir de 48 MiB o aviso diz claramente: "Oversized assets can and WILL lead to streaming issues (such as models not loading/rendering)." (O que esse aviso mede.)

As causas comuns num servidor:

  • Arquivos grandes demais: texturas 4K de carros e roupas, um pacote inteiro enfiado num só .ytd.
  • O mesmo arquivo transmitido por dois recursos: o jogo recebe só um, e você paga o streaming do outro.
  • As mesmas texturas repetidas nos dicionários de um pacote: cada cópia é transmitida.
  • Texturas sem mipmaps: o jogo não tem um nível menor para recorrer, então elas custam o tamanho inteiro a qualquer distância.

Se um jogador tem perda de texturas em todos os servidores que entra, o problema está do lado dele (configurações ou PC), não nos seus recursos.

Passo 1: veja o que o seu servidor transmite

Arraste sua pasta resources inteira para o Server Budget. Ele lê o cabeçalho de cada arquivo transmitido no seu navegador, então nada é enviado, e é grátis sem login. Você obtém:

  • Graphics memory (memória gráfica) e System memory (memória do sistema) de tudo o que você transmite.
  • By resource (por recurso), ordenado por memória: os recursos para olhar primeiro.
  • Oversized (grandes demais): cada arquivo com mais de 16 MiB de memória gráfica.
  • Streamed by more than one resource (transmitido por mais de um recurso): mantenha uma cópia de cada.
Relatório do Server Budget para quatro recursos de teste: memória gráfica e do sistema, arquivos grandes demais, arquivos transmitidos duas vezes e a memória de cada recurso
Quatro dos nossos recursos de teste, um deles copiado de propósito: seus 8 arquivos aparecem como transmitidos duas vezes.

Esses totais são o que o servidor poderia transmitir, não o que um jogador carrega de uma vez: um jogador só carrega o que está ao redor dele. Mesmo assim, são a lista certa para revisar tudo.

Passo 2: reduza os arquivos grandes demais

Arraste os arquivos de stream sinalizados para o Asset Optimizer, defina Largest texture size (1024, ou 2048 para o que se vê de perto), deixe Add missing mipmaps marcado e baixe os arquivos mais leves. Eles mantêm os nomes, então voltam direto para stream/.

Passo 3: compartilhe as texturas repetidas

Num pacote que repete as mesmas texturas em vários dicionários (pacotes de roupas e de carros costumam fazer isso), o Texture Dedupe encontra as cópias, move-as para um único .ytd compartilhado e escreve o gtxd.meta e as linhas do fxmanifest que fazem os modelos encontrá-las ali. Só são movidas texturas com o mesmo nome e os mesmos pixels.

Os pais das texturas são lidos quando um jogador entra. Depois de mudá-los, os jogadores precisam se reconectar, ou os carros podem aparecer sem textura até lá.

Passo 4: confira que nada sumiu

Arraste o recurso alterado para o Missing Textures Check: cada modelo deve continuar achando todas as suas texturas. Depois arraste a pasta de novo para o Server Budget e compare.

A mesma correção, com o Server Budget e o Asset Optimizer, também está num vídeo tutorial.

Perguntas

Um único recurso pode causar perda de texturas?
Sim, se for pesado o bastante: um pacote de carros ou roupas com texturas 4K pode transmitir uma grande parte de tudo o que o servidor envia. Por isso o Server Budget ordena os recursos por memória.
Preciso remover recursos?
Normalmente não. Reduzir as texturas grandes demais, tirar os arquivos transmitidos duas vezes e compartilhar as texturas repetidas diminui bastante a carga da maioria dos servidores, sem perder nada.

A ferramenta para isso

Server Budget

Arraste sua pasta de recursos: a memória que cada recurso transmite, os arquivos grandes demais que o FiveM avisa e os arquivos transmitidos duas vezes.

Abrir Server Budget

Também útil aqui: Asset Optimizer · Texture Dedupe

Todas as ferramentas são grátis para testar, com 5 exportações por dia. Entre com o Discord para usá-las.