Carro pesado no FiveM: como otimizar o .yft e o .ytd do veículo sem quebrar a física
Pack de carros é o tipo de conteúdo que mais pesa numa cidade e o que dá mais medo de mexer, porque errar no arquivo de veículo não gera textura feia: gera carro que não anda ou que derruba quem está perto. Este guia explica por que carro pesa diferente, o que dá para reduzir com segurança e onde o limite está.
Por que veículo pesa diferente
Enquanto uma roupa é um arquivo, um carro é um conjunto. O padrão do GTA V usa um par de modelos:
- .yft, o modelo principal, com a geometria vista de longe e, mais importante, a física: colisão e deformação.
- _hi.yft, a versão de detalhe, carregada quando o player está perto.
- .ytd, o dicionário com as texturas do carro: lataria, interior, rodas, vidros, livery.
Isso tem duas consequências práticas. A primeira é que o custo do carro é a soma do par, não de um arquivo. A segunda é que qualquer operação precisa tratar os dois de forma coerente: mexer só no _hi.yft gera carro que muda de aparência quando você se aproxima.
Memória física e memória virtual num carro
Os arquivos do RAGE declaram duas contas de tamanho. A memória física vai para a placa de vídeo e é basicamente textura. A memória virtual vai para a RAM e guarda geometria, ossos e colisão.
Num carro, as duas aparecem. O .ytd é quase toda memória física. O .yft tem memória física das texturas embutidas e memória virtual da malha e da física. Por isso o console pode reclamar de um .yft sem que o problema seja textura. Como ler esse aviso está no guia do aviso de physical memory.
Livery, interior e rodas: onde as texturas de carro estouram
Em carro add-on, o desperdício se repete nos mesmos lugares:
- Livery. Arte pensada para ser vista de perto, exportada em resolução de pôster. É a maior textura de muitos carros.
- Interior. Painel, bancos e acabamento em alta resolução, num lugar que o player vê por poucos segundos em primeira pessoa.
- Rodas e pneus. Texturas repetidas em resolução alta para uma peça pequena na tela.
- Detalhe duplicado. Pack que trouxe a mesma textura genérica em três versões diferentes.
A conta de quanto cada resolução custa de memória, por formato, está no guia do formato .ytd. Ela vale igual para carro.
O que dá para reduzir com segurança e o que não se mexe
A linha é clara, e ela é o motivo de o Texturize ser conservador em veículo:
- Dá para reduzir: texturas embutidas no
.yfte no_hi.yft, e as texturas do.ytd. É textura, e a técnica é a mesma dos outros formatos: aproveitar a escada de mipmaps que já existe no arquivo. - Não se mexe: malha, colisão e dados de deformação. Alterar isso muda como o carro bate, deforma e se comporta com as peças em movimento.
Por que essa fronteira existe. Física de fragment é a parte mais sensível de um arquivo de veículo: reconstruir esses dados na hora de salvar, mesmo sem intenção, pode fazer o carro derrubar quem está em volta na hora que deforma. Por isso a física é comparada com a original antes de qualquer entrega, e arquivo com física diferente não sai.
High poly: quando o problema é polígono
Existe o carro que continua pesado depois de tudo. Modelo importado de simulador, com malha densa e interior completo modelado peça por peça: o custo está na geometria.
Reduzir polígono é decisão de quem criou o mod, porque muda o visual e exige retrabalho de mapeamento. Um otimizador automático não deve tomar essa decisão no lugar do criador, e o Texturize não toma. O que ele faz é apontar: o relatório mostra quando o peso restante é geometria, e aí a escolha é sua, entre negociar com o criador, trocar o carro ou aceitar o custo.
Modo veículo do otimizador
Para o par de arquivos ser tratado de forma coerente existe um modo específico. Ele reconhece o par .yft e _hi.yft, aplica o mesmo critério nos dois e passa a mesma validação de saída.
Na prática você envia a pasta do carro, ou o pack inteiro, e recebe o zip com a estrutura original. Cada arquivo devolvido é reaberto e conferido, e a física é comparada com a original. Arquivo que não passa volta intacto, com o motivo no relatório, e não consome crédito.
Editar o carro antes de subir
Otimizar resolve peso. Só que boa parte dos problemas de carro em cidade não é peso, é conteúdo: a peça que ninguém quer, a textura que não combina, a falta de livery.
Isso é trabalho de edição, e dá para fazer no navegador. No Studio você solta a pasta do carro e vê o veículo em 3D: clique seleciona a peça, Delete remove na hora, Ctrl+Z desfaz, H esconde, e a troca de textura aparece no modelo ao vivo. Dá também para deixar a lataria pronta para livery e gerar o resource add-on na mesma sessão. O limite da remoção é como o criador dividiu a malha: peça que faz parte do mesmo bloco da lataria não sai sozinha.
A ficha de handling de cada .yft aparece ao lado do modelo, o que ajuda a conferir massa e força de motor antes de publicar. O significado de cada campo está no guia de handling.meta.
Checklist de pack de carros
- Diagnóstico primeiro. Envie o pack inteiro e veja a memória de cada arquivo. Nada é modificado nessa etapa.
- Ataque os maiores. Em pack de carros, dois ou três veículos costumam responder pela maior parte do peso.
- Otimize com o teto padrão. 10 MiB e 1024 px resolve a maioria das cidades.
- Confira o relatório antes de substituir. Ele diz o que mudou em cada textura, o que voltou intacto e por quê.
- Substitua e teste em jogo. Spawne, ande, bata e deforme. Comportamento tem que ser igual ao de antes.
- Repita o console. Os avisos dos carros otimizados devem sair da lista.
Se durante o teste algum carro fechar o jogo, isso não é peso e sim arquivo inválido: o caminho está no guia de carro crashando.
Perguntas frequentes
Otimizar o .yft muda o handling ou a colisão?
Dá para reduzir os polígonos de um carro high poly?
Como tiro uma peça do carro sem ZModeler?
Pese seu pack de carros antes de mexer
O diagnóstico mostra a memória de cada .yft e .ytd e a projeção de economia. Quer editar o veículo peça por peça? Dá para abrir o carro no Studio.