Текстуры, файлы и паки · 4 мин чтения

Почему текстуры в FiveM розовые, фиолетовые или белые, и как это исправить

Читать на:: English · Español · Français · Deutsch · Português · Italiano · Polski · Türkçe

Ваш новый проп, машина или MLO стримится, но часть его белая или ярко-розовая или фиолетовая. Сама модель загрузилась нормально: не хватает одной из её текстур. Игра искала её, нигде не нашла и нарисовала эту часть без неё.

Решение почти никогда не в очистке кэша и не в переустановке ресурса. Нужно найти, какой текстуры не хватает, и понять, почему модель её не видит. Ниже — где игра ищет, какие ошибки приводят к поломке и как найти виновника, не открывая каждый файл в OpenIV.

Где игра ищет текстуру

Модель не хранит список файлов. Каждая её часть (каждый шейдер) указывает нужные ей текстуры, и игра ищет каждое имя в таком порядке:

  1. В самой модели. .ydr или .yft может содержать свои текстуры (встроенные).
  2. В словаре текстур, который указывает её архетип. Для пропа или модели карты это textureDictionary его записи в .ytyp, и это не всегда .ytd с именем модели. Для машины — txdName в vehicles.meta.
  3. В родительских словарях этого словаря, заданных в gtxd.meta (CMapParentTxds), по цепочке вверх, один за другим.
  4. В общих словарях игры, которые всегда загружены, например vehshare (стёкла, колёса и краска машин) и mapdetail.

Текстура, которой нет ни в одном из этих мест, и есть белая, розовая или фиолетовая часть. Поэтому вопрос не просто «есть ли текстура в моём ресурсе?», а «лежит ли она там, где ищет именно эта модель?».

Частые причины

  • .ytd — не тот, на который указывает .ytyp. Переименовать .ytd под имя модели — частое предположение, но важен словарь текстур архетипа.
  • .ytd вообще нет в ресурсе или нет в папке stream, и в игре тоже нет файла с таким именем.
  • Текстура лежит в другом .ytd того же ресурса, в который эта модель не заглядывает: общий словарь без связи с родителем.
  • gtxd.meta есть, но fxmanifest его не загружает. Без строки data_file игра никогда не увидит этих родительских словарей.
  • txdName машины в vehicles.meta не совпадает с её .ytd.

Есть ещё случай, который может выглядеть похоже, но не является отсутствующей текстурой: текстура, сохранённая без мипмап. Аддон-пед одного клиента вблизи выглядел розовым, хотя все текстуры были на месте, а в самих текстурах не было мипмап. Для этого случая есть отдельное руководство: как добавить мипмапы в YTD.

Найдите пропавшую текстуру за минуту

Missing Textures Check выполняет тот же поиск для каждой модели в ресурсе. Он бесплатный (вы входите через Discord) и только читает: ничего не меняет.

  1. Перетащите ваш ресурс FiveM, его папку или .zip, вместе с .ytyp, vehicles.meta и gtxd.meta, если они есть.
  2. Прочитайте Totals (итоги): Missing — число текстур, которые рисуются белыми или фиолетовыми; From the game — текстуры, которые есть только в словарях игры, это нормально.
  3. Откройте карточку модели. Её таблица перечисляет каждую текстуру с её слотом и местом, где её нашли: в модели, в её .ytd, в родительском .ytd, в игре или Missing.
  4. Если недостающая текстура лежит в другом месте среди перетащенных вами файлов, таблица сообщает об этом рядом с её именем («Is in X, where this model doesn't look.» — находится в X, где эта модель не ищет), а подсказка под моделью объясняет, как это исправить.
  5. Оставьте включённым Only problems (только проблемы), чтобы видеть лишь сломанные модели, а отчёт скачайте как .csv, если хотите разобрать список.
Отчёт Missing Textures Check для тестовой полицейской машины, у которой удалили .ytd: 15 отсутствующих текстур, у каждой свой слот, остальные найдены в словарях игры
Тестовая машина с удалённым .ytd: 15 текстур нигде не найдены, а подсказка указывает словарь, который требует её vehicles.meta.

Исправьте каждую причину

Текстура действительно отсутствует

Положите текстуру в словарь, который использует модель. Texture Editor открывает .ytd и добавляет текстуру: Add a texture (добавить текстуру). Дайте ей точное имя, которое требует модель, выберите тип (цветовая карта, карта нормалей или specular) и изображение, затем скачайте .ytd. Она вернётся сжатой, с мипмапами.

Модель ищет в неверном словаре

Измените словарь текстур архетипа в .ytyp с помощью YTYP Editor, чтобы он указывал на .ytd с текстурами. Для машины исправьте txdName в vehicles.meta.

Текстура лежит в другом .ytd

Перенесите её в собственный .ytd модели или сделайте тот другой .ytd родителем для него в gtxd.meta. Texture Dedupe сделает это за вас, когда текстуры общие для словарей. В любом случае fxmanifest должен загружать gtxd.meta:

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

Размытые или розовые только вблизи

Посмотрите Size and format (размер и формат) в том же отчёте. Текстуры, перечисленные там как без мипмап, можно перестроить за один раз в Asset Optimizer.

Затем переподключитесь, а не просто перезапустите

Игроки сохраняют скачанный .ytd, пока не переподключатся: одного перезапуска ресурса недостаточно, чтобы увидеть исправленную текстуру. После исправления перетащите ресурс в проверку ещё раз, затем заново зайдите на сервер, чтобы увидеть результат в игре.

Вопросы

Очистка кэша FiveM исправляет белые или фиолетовые текстуры?
Нет, если текстуры нет в ресурсе: кэш не добавит текстуру, которую никто не отправляет. Сначала найдите отсутствующую. А если вы изменили .ytd, игрокам нужно переподключиться, чтобы получить новый.
Почему белой стала только часть модели?
У каждой части модели свои текстуры. Без текстур рисуются только части, чьи текстуры нигде не найдены, поэтому у машины может быть идеальная краска и белые сиденья.
Текстура может прийти из игры, а не из моего ресурса?
Да. Модель может использовать текстуры из собственных словарей игры, например vehshare для стёкол и колёс машины. Missing Textures Check показывает их как From the game или Game shared, а не как отсутствующие.

Инструмент для этого

Missing Textures Check

Перетащите ресурс и посмотрите текстуры каждой модели, где найдена каждая из них и как исправить те, которых нигде нет.

Открыть Missing Textures Check

Пригодится также: Texture Editor · Asset Optimizer

Другие руководства

Все руководства →

Каждый инструмент можно попробовать бесплатно: 5 экспортов в день. Войдите через Discord, чтобы пользоваться ими.