Texturas, arquivos e packs · 4 min de leitura

Texturas do FiveM rosas, roxas ou brancas: causas e solução

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

Seu prop, carro ou MLO novo carrega, mas uma parte aparece totalmente branca, ou num rosa ou roxo forte. O modelo em si carregou bem: o que falta é uma das suas texturas. O jogo procurou, não achou em lugar nenhum e desenhou essa parte sem ela.

A solução quase nunca é limpar o cache ou reinstalar o recurso. É preciso descobrir qual textura falta e por que o modelo não consegue vê-la. Aqui estão onde o jogo procura, os erros que quebram a busca e como achar o culpado sem abrir cada arquivo no OpenIV.

Onde o jogo procura uma textura

Um modelo não carrega uma lista de arquivos. Cada parte dele (cada shader) informa quais texturas precisa, e o jogo procura cada nome nesta ordem:

  1. Dentro do próprio modelo. Um .ydr ou .yft pode trazer suas próprias texturas (embutidas).
  2. O dicionário de texturas que o archetype indica. Para um prop ou um modelo de mapa, é o textureDictionary da entrada dele no .ytyp, que nem sempre é um .ytd com o nome do modelo. Para um carro, é o txdName do vehicles.meta.
  3. Os pais desse dicionário, definidos num gtxd.meta (CMapParentTxds), um após o outro, subindo a cadeia.
  4. Os dicionários compartilhados do próprio jogo, sempre carregados, como vehshare (vidros, rodas e pintura de carros) e mapdetail.

Uma textura que não esteja em nenhum desses lugares vira a parte branca, rosa ou roxa. Então a pergunta nunca é só "a textura está no meu recurso?", e sim "ela está em algum lugar onde este modelo procura?".

As causas comuns

  • O .ytd não é o que o .ytyp indica. Renomear o .ytd para bater com o modelo é um palpite comum, mas o que vale é o dicionário de texturas do archetype.
  • O .ytd não está no recurso, ou não está na pasta stream, e o jogo também não tem um com esse nome.
  • A textura está em outro .ytd do mesmo recurso que este modelo nunca consulta: um dicionário compartilhado sem vínculo de pai com ele.
  • O gtxd.meta existe, mas o fxmanifest não o carrega. Sem a linha data_file dele, o jogo nunca vê esses pais.
  • O txdName de um carro no vehicles.meta não bate com o .ytd dele.

Há mais um caso que pode parecer igual sem ser textura faltando: uma textura salva sem mipmaps. O ped addon de um cliente ficava rosa de perto no jogo com todas as texturas no lugar, e as texturas dele não tinham mipmaps. Esse caso tem guia próprio: como adicionar mipmaps a um YTD.

Encontre a textura que falta em um minuto

Missing Textures Check segue a mesma busca para cada modelo de um recurso. É grátis (você entra com o Discord) e só lê: não altera nada.

  1. Arraste seu recurso do FiveM, a pasta ou o .zip dele, com o .ytyp, o vehicles.meta e o gtxd.meta se tiver.
  2. Leia Totals (totais): Missing (faltando) é o número de texturas que aparecem em branco ou roxo; From the game (do jogo) são as texturas que só os dicionários do jogo têm, o que é normal.
  3. Abra o cartão de um modelo. A tabela dele lista cada textura com seu slot e onde foi encontrada: no modelo, no .ytd dele, num .ytd pai, no jogo, ou Missing.
  4. Quando uma textura faltante está em outro lugar do seu envio, a tabela diz isso embaixo do nome dela ("Is in X, where this model doesn't look." — está em X, onde este modelo não procura), e a dica embaixo do modelo explica como corrigir.
  5. Deixe Only problems (só problemas) marcado para ver apenas os modelos com erro, e baixe o relatório em .csv se quiser resolvê-los um a um.
Relatório do Missing Textures Check de um carro de polícia de teste cujo .ytd foi removido: 15 texturas faltando, cada uma com o slot, o restante encontrado nos dicionários do jogo
Um carro de teste sem o .ytd: 15 texturas que não estão em lugar nenhum, e a dica que nomeia o dicionário pedido pelo vehicles.meta dele.

Corrija cada causa

A textura realmente falta

Coloque-a no dicionário que o modelo usa. O Texture Editor abre o .ytd e adiciona uma: Add a texture (adicionar uma textura), dê o nome exato que o modelo pede, escolha o tipo (mapa de cor, normal ou especular) e a imagem, e baixe o .ytd. Ele volta comprimido, com mipmaps.

O modelo procura no dicionário errado

Mude o dicionário de texturas do archetype no .ytyp com o YTYP Editor, para que ele aponte para o .ytd que tem as texturas. Num carro, corrija o txdName no vehicles.meta.

A textura está em outro .ytd

Mova-a para o .ytd do próprio modelo, ou faça esse outro .ytd ser pai dele num gtxd.meta. O Texture Dedupe faz isso para você quando compartilha texturas entre dicionários. De qualquer forma, o fxmanifest precisa carregá-lo:

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

Rosa ou borrada só de perto

Veja Size and format (tamanho e formato) no mesmo relatório. As texturas listadas sem mipmaps podem ser refeitas de uma vez com o Asset Optimizer.

Depois reconecte, não só reinicie

Os jogadores mantêm o .ytd que já baixaram até se reconectarem: reiniciar o recurso não basta para ver uma textura corrigida. Depois de uma correção, arraste o recurso de novo para o check e então entre no servidor para vê-la no jogo.

Perguntas

Limpar o cache do FiveM resolve texturas brancas ou roxas?
Não quando a textura falta no recurso: o cache não pode adicionar uma textura que ninguém envia. Ache primeiro a que falta. Depois de trocar um .ytd, porém, os jogadores precisam se reconectar para receber o novo.
Por que só uma parte do meu modelo está branca?
Cada parte de um modelo tem suas próprias texturas. Só ficam sem elas as partes cujas texturas não foram encontradas em lugar nenhum, então um carro pode ter pintura perfeita e bancos brancos.
Uma textura pode vir do jogo em vez do meu recurso?
Pode. Um modelo pode usar texturas dos dicionários do próprio jogo, como vehshare para vidros e rodas. O Missing Textures Check mostra essas como From the game ou Game shared, não como faltantes.

A ferramenta para isso

Missing Textures Check

Arraste seu recurso e veja as texturas de cada modelo, onde cada uma foi encontrada e uma correção para as que não estão em lugar nenhum.

Abrir Missing Textures Check

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

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