YTD pesado: entenda o formato e reduza sem perder qualidade
O .ytd é o formato onde mora a maior parte do peso de uma cidade FiveM: roupas, skins, liveries e texturas de mapa. Este guia abre o formato por dentro, mostra a conta real de memória por resolução e explica por que a técnica certa reduz até 84% sem mudança visível.
O que é um arquivo .ytd
YTD significa dicionário de texturas: um contêiner do motor RAGE (o motor do GTA V) que empacota várias texturas juntas, cada uma com nome, formato de compressão de GPU (como DXT1 e DXT5) e a sua cadeia de mipmaps. Roupas usam .ytd para as peças, veículos usam para liveries, mapas usam para paredes, chão e props.
No FiveM, esses arquivos chegam ao jogo pela pasta stream dos resources, embrulhados num contêiner que guarda duas informações de tamanho: o que o arquivo ocupa no disco e o que vai ocupar na memória depois de carregado. São números muito diferentes, e é aí que a maioria se perde.
Por que 7 MiB no disco viram 64 MiB na memória
No disco, o conteúdo do .ytd viaja comprimido, como um zip. Na memória, o jogo precisa das texturas no formato que a GPU lê diretamente, byte a byte, sem compressão adicional. Num caso real que atendemos, um arquivo de 7 MiB no disco ocupava 64 MiB dentro do jogo. O aviso do console do servidor fala sempre da segunda conta:
[citizen-server-impl] Asset roupas/adultocoringa.ytd uses 224.0 MiB of physical memory!A memória de uma textura depende só da resolução e do formato de GPU. A tabela abaixo é a conta exata para DXT5, o formato mais comum em roupas e liveries (DXT1, usado quando não há transparência, custa a metade):
| Resolução | Nível principal | Com mipmaps | Uso típico |
|---|---|---|---|
| 512 x 512 | 0,25 MiB | 0,33 MiB | Detalhes, acessórios |
| 1024 x 1024 | 1 MiB | 1,33 MiB | O que o jogo mostra de uma roupa ou prop |
| 2048 x 2048 | 4 MiB | 5,33 MiB | Raramente aproveitado dentro do jogo |
| 4096 x 4096 | 16 MiB | 21,33 MiB | Resolução de export, desperdício em jogo |
Uma única peça em 4096 custa 16 vezes a memória da mesma peça em 1024. Um dicionário com 10 texturas 4K passa de 200 MiB sozinho, exatamente como o aviso lá de cima.
Mipmaps: a redução que já está dentro do arquivo
Toda textura de jogo bem exportada carrega a própria escada de versões reduzidas: 4096, 2048, 1024, 512 e assim por diante, até 1 pixel. São os mipmaps. O motor usa essa escada o tempo todo: quando o objeto está a alguns metros, o que aparece na tela é um mip menor, não o nível principal.
A técnica do mip-drop aproveita isso: em vez de redimensionar a imagem (o que recalcula pixels, pode borrar e criar artefato em normal map), ela descarta os níveis grandes demais e promove um nível que o criador do mod já gerou na exportação. O resultado de perto é o que você já via a poucos metros de distância, e nenhum pixel novo é inventado.
Por isso a qualidade não muda na prática: o comparador na nossa página inicial usa uma textura real de arma dos testes, que caiu de 21,3 MB para 0,7 MB. Arraste o divisor e procure a diferença.
Como reduzir um .ytd na prática
Na mão: OpenIV exporta as texturas para DDS, você redimensiona uma a uma regenerando mipmaps e reimporta. Funciona para um arquivo pontual, mas um pack de roupas tem centenas de texturas, cada reimportação é uma chance de erro e normal maps exigem cuidado especial.
Automático: o Texturize processa a pasta inteira de uma vez. Ele abre cada .ytd (e também .ydr, .ydd e .yft, que carregam dicionários embutidos), aplica mip-drop textura por textura respeitando um teto de memória e uma resolução máxima (o padrão de 10 MiB e 1024 px resolve a maioria das cidades), protege normal maps automaticamente e valida cada arquivo reabrindo antes de entrar no zip. O que não passa na validação volta intacto com a explicação no relatório.
Nos nossos números: redução real medida de até 84%, um pack de roupas de 240 MiB entregue com 38 MiB, e 1.360 arquivos somando 1,2 GB enviados em menos de 10 segundos no maior teste. O passo a passo completo, do diagnóstico à substituição, está no guia de otimização de mods.
Reduzir e editar são coisas diferentes. Reduzir mantém a arte e corta a memória; trocar a arte da textura (um logo, uma farda, uma skin) é trabalho do Editor, e o processo está em como editar textura .ytd online.
Quando o .ytd não é o problema
- Peso em geometria: se o arquivo pesado é um .ydr com malha densa demais, textura não é a causa. O relatório identifica e explica, e o arquivo volta sem alteração (e sem custo). Em veículo vale o mesmo: o .yft tem geometria e física próprias, e só as texturas embutidas entram na redução, como mostra o guia de carro pesado no FiveM.
- Arquivo protegido por escrow: conteúdo criptografado pelo Cfx/Tebex só o FiveM abre. É detectado e devolvido intacto, sem cobrar. Numa base real com 2.112 arquivos de stream, encontramos só 1 nessa situação. O guia sobre escrow do Tebex e do Cfx explica por que ninguém abre e como otimizar o resto da base mesmo assim.
- Sintoma na cidade inteira: se o problema é textura sumindo em todo lugar, comece pelo guia de texture loss para atacar na ordem certa.
Perguntas frequentes
Qual resolução deixar nas texturas de roupa?
O que é mipmap?
Dá para editar a textura no mesmo processo?
Pese seus .ytd agora, de graça
O diagnóstico mostra a memória de jogo de cada arquivo e a projeção de economia antes de você gastar 1 crédito.