Как сделать файл в формате vtf

Обновлено: 05.07.2024

Тарга в фотошопе делаю, затем в едиторе делаю файл, а после сделаю ВТФ, но на серве почему то еррор текстура.

Тарга в фотошопе делаю, затем в едиторе делаю файл, а после сделаю ВТФ, но на серве почему то еррор текстура.

Порядок действий для создания декали таков: ( С использованием Photoshop)

1) Делаем изображение задуманное нами, задаем ему размер для того чтоб игра смогла его отобразить ВАЖНО!
Игра воспринимает такие размеры как : 256, 512, 1024, 2048 НЕ БОЛЬШЕ НЕ МЕНЬШЕ ТОЛЬКО ТАКИЕ.

2) Как сделали картинку размером ну например 1024 на 512 то смело можем переводить в tga формат (так же доступным в Photoshop)

3) Сохранили в tga?! Идем далее : начинаем переводить в vtf формат данное изображение с помощью одноименного плагина для Photoshop. И да, этот плагин работает только на 32 битной версии, не знаю почему, но на 64 битной проблемы с установкой VTF плагина.

И так, у нас готова картинка в уже считываемом для игры формате vtf, даем ей название например reklama.vtf но так как это декаль, ей нужно сделать VMT файл там ну скажем кратко. пишется путь докачки для вашей картинки.

ВАЖНО! название vtf и vmt файла должно совпадать, то есть должны будут существовать 2 файла : reklama.vtf и reklama.vmt

Ниже прикреплю архив, в нем пример файла, в файле, напротив кода будет в виде комментария написано что нужно менять.
reklama.vmt да и в целом такого рода форматы, можно и нужно открывать с помощью Notepad ++, там вы увидите и на интуитивном уровне поймете, что нужно сделать.

Ну и все, у вас готова одна реклама состоящая из reklama.vtf (самого изображения) reklama.vmt (путь докачки)
Теперь вам остается прописать путь подобный как допустим для модели, но с небольшим отличием. не VMT не VTF не указывается! Пример пути: materials/decals/custom/reklama

Пользуйтесь если что-то не понятно или вы увидели недостатки в моем гайде то пишите свои версии и задавайте вопросы!

Прикрепленные файлы

Порядок действий для создания декали таков: ( С использованием Photoshop)

1) Делаем изображение задуманное нами, задаем ему размер для того чтоб игра смогла его отобразить ВАЖНО!
Игра воспринимает такие размеры как : 256, 512, 1024, 2048 НЕ БОЛЬШЕ НЕ МЕНЬШЕ ТОЛЬКО ТАКИЕ.

2) Как сделали картинку размером ну например 1024 на 512 то смело можем переводить в tga формат (так же доступным в Photoshop)

3) Сохранили в tga?! Идем далее : начинаем переводить в vtf формат данное изображение с помощью одноименного плагина для Photoshop. И да, этот плагин работает только на 32 битной версии, не знаю почему, но на 64 битной проблемы с установкой VTF плагина.

И так, у нас готова картинка в уже считываемом для игры формате vtf, даем ей название например reklama.vtf но так как это декаль, ей нужно сделать VMT файл там ну скажем кратко. пишется путь докачки для вашей картинки.

ВАЖНО! название vtf и vmt файла должно совпадать, то есть должны будут существовать 2 файла : reklama.vtf и reklama.vmt

Ниже прикреплю архив, в нем пример файла, в файле, напротив кода будет в виде комментария написано что нужно менять.
reklama.vmt да и в целом такого рода форматы, можно и нужно открывать с помощью Notepad ++, там вы увидите и на интуитивном уровне поймете, что нужно сделать.

Ну и все, у вас готова одна реклама состоящая из reklama.vtf (самого изображения) reklama.vmt (путь докачки)
Теперь вам остается прописать путь подобный как допустим для модели, но с небольшим отличием. не VMT не VTF не указывается! Пример пути: materials/decals/custom/reklama

Пользуйтесь если что-то не понятно или вы увидели недостатки в моем гайде то пишите свои версии и задавайте вопросы!

Это то понятно, я не один гайд прочел и пробовал много что. Я не могу понять как сделать адекватно файл подкачки. Непонятный куб вместо картинки.

Это то понятно, я не один гайд прочел и пробовал много что. Я не могу понять как сделать адекватно файл подкачки. Непонятный куб вместо картинки.

Тарга в фотошопе делаю, затем в едиторе делаю файл, а после сделаю ВТФ, но на серве почему то еррор текстура.

Тарга в фотошопе делаю, затем в едиторе делаю файл, а после сделаю ВТФ, но на серве почему то еррор текстура.

Порядок действий для создания декали таков: ( С использованием Photoshop)

1) Делаем изображение задуманное нами, задаем ему размер для того чтоб игра смогла его отобразить ВАЖНО!
Игра воспринимает такие размеры как : 256, 512, 1024, 2048 НЕ БОЛЬШЕ НЕ МЕНЬШЕ ТОЛЬКО ТАКИЕ.

2) Как сделали картинку размером ну например 1024 на 512 то смело можем переводить в tga формат (так же доступным в Photoshop)

3) Сохранили в tga?! Идем далее : начинаем переводить в vtf формат данное изображение с помощью одноименного плагина для Photoshop. И да, этот плагин работает только на 32 битной версии, не знаю почему, но на 64 битной проблемы с установкой VTF плагина.

И так, у нас готова картинка в уже считываемом для игры формате vtf, даем ей название например reklama.vtf но так как это декаль, ей нужно сделать VMT файл там ну скажем кратко. пишется путь докачки для вашей картинки.

ВАЖНО! название vtf и vmt файла должно совпадать, то есть должны будут существовать 2 файла : reklama.vtf и reklama.vmt

Ниже прикреплю архив, в нем пример файла, в файле, напротив кода будет в виде комментария написано что нужно менять.
reklama.vmt да и в целом такого рода форматы, можно и нужно открывать с помощью Notepad ++, там вы увидите и на интуитивном уровне поймете, что нужно сделать.

Ну и все, у вас готова одна реклама состоящая из reklama.vtf (самого изображения) reklama.vmt (путь докачки)
Теперь вам остается прописать путь подобный как допустим для модели, но с небольшим отличием. не VMT не VTF не указывается! Пример пути: materials/decals/custom/reklama

Пользуйтесь если что-то не понятно или вы увидели недостатки в моем гайде то пишите свои версии и задавайте вопросы!

Прикрепленные файлы

Порядок действий для создания декали таков: ( С использованием Photoshop)

1) Делаем изображение задуманное нами, задаем ему размер для того чтоб игра смогла его отобразить ВАЖНО!
Игра воспринимает такие размеры как : 256, 512, 1024, 2048 НЕ БОЛЬШЕ НЕ МЕНЬШЕ ТОЛЬКО ТАКИЕ.

2) Как сделали картинку размером ну например 1024 на 512 то смело можем переводить в tga формат (так же доступным в Photoshop)

3) Сохранили в tga?! Идем далее : начинаем переводить в vtf формат данное изображение с помощью одноименного плагина для Photoshop. И да, этот плагин работает только на 32 битной версии, не знаю почему, но на 64 битной проблемы с установкой VTF плагина.

И так, у нас готова картинка в уже считываемом для игры формате vtf, даем ей название например reklama.vtf но так как это декаль, ей нужно сделать VMT файл там ну скажем кратко. пишется путь докачки для вашей картинки.

ВАЖНО! название vtf и vmt файла должно совпадать, то есть должны будут существовать 2 файла : reklama.vtf и reklama.vmt

Ниже прикреплю архив, в нем пример файла, в файле, напротив кода будет в виде комментария написано что нужно менять.
reklama.vmt да и в целом такого рода форматы, можно и нужно открывать с помощью Notepad ++, там вы увидите и на интуитивном уровне поймете, что нужно сделать.

Ну и все, у вас готова одна реклама состоящая из reklama.vtf (самого изображения) reklama.vmt (путь докачки)
Теперь вам остается прописать путь подобный как допустим для модели, но с небольшим отличием. не VMT не VTF не указывается! Пример пути: materials/decals/custom/reklama

Пользуйтесь если что-то не понятно или вы увидели недостатки в моем гайде то пишите свои версии и задавайте вопросы!

Это то понятно, я не один гайд прочел и пробовал много что. Я не могу понять как сделать адекватно файл подкачки. Непонятный куб вместо картинки.

Это то понятно, я не один гайд прочел и пробовал много что. Я не могу понять как сделать адекватно файл подкачки. Непонятный куб вместо картинки.

Также, убедитесь в том что статья пытается соответствовать статье об альтернативных языках.

Contents

Valve Texture Format (VTF) - это проприетарный формат текстур использующийся движком Source. VTF файлы обычно задействуются через VMT файлы вместо использования напрямую, что предоставляет возможность их повторного использования.

VTF файлы могут быть созданы из изображений в формате TGA с помощью Source SDK Tool VTEX или из большинства основных форматов изображений с помощью сторонних инструментов. И текстуры и материалы хранятся в подпапках game_dir/materials/ .

Возможности

Формат VTF может хранить двумерную текстуру, либо карту окружения, либо объемную текстуру. Каждая из этих текстур может иметь несколько кадров.

  • Карта окружения (environment map) - это шестигранная кубическая карта.
  • Объемная текстура (volumetric texture) - это текстура с глубиной, у которой каждый кадр это слой в третьем измерении. То есть объемная текстура 16x16x16 имеет 16 текстур размером 16x16 сложенных друг на друге (как стопка блинчиков). Этот формат используется внутренне движком Source и у вас не должно быть никакой потребности в создании такой текстуры самому.
  • Для каждого кадра и грани, файл VTF содержит и оригинальное изображение и серию mipmap'ов, использующихся для рендера текстуры на различных расстояниях. Так как каждый последующий mipmap имеет 1/2 размера (ширины и высоты) предыдущего, оригинальное изображение должно быть в размерности степени двойки. Не смотря на то, что оригинальное изображение может быть прямоугольным, квадратные mipmap'ы хранятся более эффективно в VTF.
  • Начальный кадр (для анимаций)
  • Размер бамп мапы
  • Значение коэффициента отражения для VRAD
  • Копия VTF небольшого разрешения для сэмплирования цвета движком.

Ресурсы

В VTF версии 7.3 появилась расширяемая система ресурсов. Вы можете хранить что угодно, но движок Source распознает только следующие данные:

  • Значение CRC для обнаружения "битых" данных.
  • An U/V LOD control. This is the highest mipmap which should be loaded when game's Texture Detail setting is "High" ( mat_picmip 0 ). An U LOD Control value of 11 selects the mipmap which is 2048 pixels (2 11 ) across.

Форматы данных изображения

VTF может хранить в себе данные в различных форматах. Некоторые форматы предназначены для движка, некоторые только как промежуточные форматы для преобразований. Несжатые форматы не теряют данных, а сжатые (DXT) - теряют.

Таблица форматов данных изображений

Формат Red Bits Green Bits Blue Bits Alpha Bits Total Bits Сжатие Поддерживается Комментарий
A8 0 0 0 8 8 False True
ABGR8888 8 8 8 8 32 False True Несжатая текстура с альфа-каналом
ARGB8888 8 8 8 8 32 False True
BGR565 5 6 5 0 16 False True Несжатая текстура, ограниченная глубина цвета
BGR888 8 8 8 0 24 False True Несжатая текстура
BGR888_BLUESCREEN 8 8 8 0 24 False True
BGRA4444 4 4 4 4 16 False True Несжатая текстура с альфа-каналом, половина глубины цвета
BGRA5551 5 5 5 1 16 False True
BGRA8888 8 8 8 8 32 Either True Также используется для сжатых HDR
BGRX5551 5 5 5 1 16 False True
BGRX8888 8 8 8 8 32 False True
DXT1 N/A N/A N/A 0 4 True True Стандартное сжатие, без альфа-канала
DXT1_ONEBITALPHA N/A N/A N/A 1 4 True True Стандартное сжатие, однобитный альфа-канал
DXT3 N/A N/A N/A 4 8 True True Uninterpolated Alpha
DXT5 N/A N/A N/A 4 8 True True Interpolated Alpha (recommended)
I8 N/A N/A N/A N/A 8 False True Luminance (Grayscale)
IA88 N/A N/A N/A 8 16 False True Luminance (Grayscale)
P8 N/A N/A N/A N/A 8 False False Paletted
RGB565 5 6 5 0 16 False True
RGB888 8 8 8 0 24 False True
RGB888_BLUESCREEN 8 8 8 0 24 False True
RGBA16161616 16 16 16 16 64 False True Integer HDR Format
RGBA16161616F 16 16 16 16 64 False True Floating Point HDR Format
RGBA8888 8 8 8 8 32 False True
UV88 N/A N/A N/A N/A 16 False True Несжатый формат du/dv
UVLX8888 N/A N/A N/A N/A 32 False True
UVWQ8888 N/A N/A N/A N/A 32 False True


Сравнение влияния DXT сжатия на различные типы изображений

Сжатие HDR

HDR текстуры могут храниться в сжатой форме используя формат BGRA8888.

Эта формула показывает как преобразовать эти цвета в целочисленный HDR (integer): RGB = RGB * (A * 16)

и в HDR с плавающей запятой (floating point):

RGB = (RGB * (A * 16)) / 262144

Выбор формата изображений

Не смотря на то, что VTF предоставляет поддержку широкого ряда форматов изображений, есть только несколько форматов, которые вы, скорее всего, будете использовать. Эти форматы и критерии выбора описаны ниже.

  • BGR888: используйте для текстур без альфа-канала и с качественным градиентом (например, карт нормалей и световых ореолов (light halo)).
  • BGRA8888: используйте для текстур с альфа-каналом и с качественным градиентом (например, карт нормалей и световых ореолов). Он также может быть использован, чтобы получать высококачественные текстуры.
  • DXT1: используйте этот формат для обычных текстур без альфа-канала.
  • DXT3: используйте этот формат для обычных текстур с альфа-каналом и резкими градиентами.
  • DXT5: используйте этот формат для обычных текстур с альфа-каналом и плавными градиентами.
  • I8: используйте этот формат для черно-белых текстур без альфа-канала и с качественным градиентом (например, световые ореолы).
  • IA88: используйте этот формат для черно-белых текстур с альфа каналом и качественным градиентом (например, дым или световые ореолы).
  • RGBA16161616F: используйте этот формат для HDR текстур.
  • UV88: используйте этот формат для DuDv карт.

Флаги изображений

VTF может содержать следующие флаги (версия 7.5):

Флаг Значение Комментарий
Point Sampling 0x0001 Низкое качество, фильтрация текстур "пиксельная графика".
Trilinear Sampling 0x0002 Фильтрация текстур среднего качества.
Clamp S 0x0004 Координаты зажима S.
Clamp T 0x0008 Координаты зажима T.
Anisotropic Sampling 0x0010 Качественная фильтрация текстур.
Hint DXT5 0x0020 Используется в skyboxes. Убедитесь, что края бесшовные.
PWL Corrected 0x0040 Цель неизвестна.
SRGB n/a Использует пространство RGB. Полезно для высоких гамм. Не рекомендуется в версии 7.5.
No Compress 0x0040 Сжатие DXT не используется. Устаревшее
Normal Map 0x0080 Текстура - это карта нормалей.
No Mipmaps 0x0100 Отрисовывать только самые большие MIP-карты. (Не удаляет существующие MIP-карты, а просто отключает их.)
No Level Of Detail 0x0200 Не зависит от настроек разрешения текстуры.
No Minimum Mipmap 0x0400 Если установлено, загружайте MIP-карты размером менее 32x32 пикселей.
Procedural 0x0800 Текстура - это процедурная текстура (код может ее изменять).
One Bit Alpha 0x1000 Используется однобитовый альфа-канал.
Eight Bit Alpha 0x2000 Используется восьмибитный альфа-канал.
Environment Map 0x4000 Текстура - это карта окружения.
Render Target 0x8000 Текстура - это цель рендеринга.
Depth Render Target 0x10000 Текстура - это цель рендеринга глубины.
No Debug Override 0x20000
Single Copy 0x40000
Pre SRGB 0x80000 Исправление SRGB уже применено
One Over Mipmap Level In Alpha 0x80000 Заполните альфа-канал значением 1 / Mipmap Level. Устарело (для внутреннего использования VTEX?)
Premultiply Color By One Over Mipmap Level 0x100000 (Для внутреннего использования VTEX?)
Normal To DuDv 0x200000 Текстура - это карта DuDv. (Для внутреннего использования VTEX?)
Alpha Test Mipmap Generation 0x400000 (Для внутреннего использования VTEX?)
No Depth Buffer 0x800000 Не Z-буферизация для обработки видео обычно расстояние визуализации.
Nice Filtered 0x1000000 использование NICE фильтрация для создания MIP-карт. (Для внутреннего использования VTEX?)
Clamp U 0x2000000 Координаты зажима U (для объемных текстур).
Vertex Texture 0x4000000 Может использоваться как вершинная текстура
SSBump 0x8000000 Текстура - это SSBump. (SSB)
Border 0x20000000 Привязка к цвету границы по всем координатам текстуры

Формат файла

Описание формата VTF.

Структура формата

  1. VTF заголовок
  2. VTF Данные изображения с низким разрешением
  3. Для каждого Mipmap (от наименьшего к наибольшему)
    • Для каждого кадра (от первого до последнего)
      • Для каждого лица (от первого до последнего)
        • Для каждого Z-среза (от минимального до максимального; зависит от Mipmap)
          • VTF Данные изображения высокого разрешения
  1. VTF заголовок
  2. Записи ресурсов
    • VTF Данные изображения с низким разрешением
    • Для каждого Mipmap (от наименьшего к наибольшему)
      • Для каждого кадра (от первого до последнего)
        • Для каждого лица (от первого до последнего)
          • Для каждого Z-среза (от минимального до максимального; зависит от Mipmap)
            • VTF Данные изображения высокого разрешения

Перечисления

Заголовок формата

VTF данные изображения в низком разрешении

Плотно упакованные данные изображения с низким разрешением в формате, описанном в заголовке. Данные изображения с низким разрешением всегда хранятся в формате сжатого изображения DXT1. Его размеры соответствуют размерам самого большого MIP-карты с шириной или высотой, не превышающей 16 пикселей. то есть для VTF 256x256 пикселей: 16x16, для VTF 256x64 пикселей: 16x4, для VTF 1x32 пикселей: 1x16, для VTF 4x4 пикселей: 4x4.

VTF данные изображения в высоком разрешении

Tхорошо упакованные перемежающиеся данные изображения высокого разрешения в формате, описанном в заголовке. Распространенные форматы изображений включают DXT1, DXT5, BGR888, BGRA8888 и UV88. Все размеры должны быть power of two.

История версий

  • Выпущено 19 июля 2010 г. как часть Alien Swarm
  • Побитовый эквивалент v7.4.
  • Переопределяет и изменяет два флага текстуры.
  • Сферы теперь официально избыточны.
  • Большинство изменений внутри процесса создания VTF с помощью VTEX, например Форматы MipMap fading, Alpha decay и XBox360.
  • Выпущена 10 октября 2007 г. как часть The Orange Box.
  • Побитовый эквивалент версии 7.3.
  • Решает проблемы, связанные с тем, как выполняется гамма-коррекция текстур для ТВ-вывода на XBOX 360 в сочетании с поиском памяти выгружаемого пула ОС.
  • Добавлена ​​расширяемая структура, ориентированная на ресурсы.
  • Добавлены ресурсы CRC, управления уровнем детализации текстуры и листа, а также ресурсы изображений с обратной совместимостью и изображений с низким разрешением.
  • Добавлено несколько форматов трафаретов глубины, зависящих от поставщика (для внутреннего использования в движке), а также форматы карт нормалей и линейные несжатые форматы.
  • Выпущена 18 сентября 2007 г. как часть Team Fortress 2 бета.
  • Добавлена ​​поддержка объемных текстур.
  • Выпущен 23 сентября 2005 г. как Steam обновление двигателя.
  • Добавлена ​​поддержка карты сфер для карт среды. (Это было предназначено для поддержки DirectX 6, которая позже была сокращена.)
  • Изначальный выпуск. (Только для внутреннего выпуска, однако некоторые текстуры v7.0 попали в опубликованный заголовок.)

Реализация

Пример независимой от Steam реализации формата файла изображения VTF можно найти в библиотеке LGPL C / C ++. VTFLib.

sdk custom textures

Следуя предшествующим статьям цикла, вы наверняка освоили процесс создания незаурядной карты с уникальными триггерами и различными видами освещения. Но для воплощения самых смелых идей в жизнь чего-то не хватает, верно? Стандартный контент полету фантазии не помощник, поэтому в данном уроке вы научитесь создавать собственные текстуры для своих карт на движке Source. Подобным образом вы сможете создавать текстуры и для моделей, спреев и вообще всего, что работает с изображениями в играх на Source.

Создание текстур не интуитивный процесс, но и не чрезмерно сложная задача. В отличие от большинства современных движков здесь нет «просто перетаскиваешь и всё работает»: большую часть работы придётся делать самостоятельно.

VTF и VMT

Текстуры делятся на два файла: VTF (Valve Texture Format), файл, в котором хранится изображение, сами пиксели вашей текстуры, и VMT (Valve Material Type), файл, содержащий метаданные и информацию о шейдерах. Для отображения текстуры в игре используются оба файла.

Файлы VTF (.vtf) хранят всю информацию о пикселях, альфа-картах и MIP-картах, которую может использовать текстура.

Они создаются конвертированием исходного изображения в специальной программе. Данные располагаются таким образом, чтобы рендеринг был наиболее эффективным, поэтому обычные .jpg/.jpg-файлы без конвертации не используются. Самое главное – размеры изображения должны представлять из себя двойку в степени (то есть 64×64, 128×128, 256×256, 1024×1024 и т.д.).

Подробный технический анализ файлов VTF можно найти на Valve Developer Wiki.

Файлы VMT (.vmf) – это простые текстовые файлы с метаданными текстуры.

Среди них есть такая информация, как:

  • Является ли текстура полупрозрачной?
  • Анимирована ли она?
  • Использует ли она рельефное текстурирование?
  • Какой звук она воспроизводит при столкновениях?

Для одного VTF-изображения можно сделать несколько VMT-файлов с разными свойствами, и Hammer будет принимать их за разные текстуры. В следующих уроках мы рассмотрим продвинутые особенности VMT, добавляющие текстуре реалистичности.

Подробный технический анализ файлов VMT можно найти на Valve Developer Wiki.

Создание текстур

Что ж, приступим. Я буду использовать для создания текстуры логотип ProGamer.

Логотип окружён прозрачным фоном, но с этим мы разберёмся потом. Размер 1418×1418 я поменял на 1024×1024. На практике вы будете использовать наименьший возможный размер, а такие большие текстуры будут применяться только для самых важных вещей. Хорошим базисом для большинства текстур будет 512×512.

Нам нужно сконвертировать исходный файл в формат VTF. Valve прилагает к своим играм программу VTEX, это простой инструмент командной строки, способный создавать VTF-файлы только из TARGA (.tga). Есть альтернатива получше – VTFEdit, которая работает с большинством форматов, имеет собственный интерфейс и обилие функций.

Типы файлов

VTFEdit открывает файлы .bmp, .jpg, .jpg, .jpg и .tga.

Если вы не знакомы с их особенностями, то вот всё, что вам действительно нужно знать:

  • PNG, GIF и TGA поддерживают прозрачность.
  • GIF поддерживает анимацию (но перед импортированием нужно разбивать на кадры).
  • Для всего остального рекомендуется JPG.
  • С BMP не связывайтесь.

PNG-8 против PNG-24

24-битные PNG-файлы поддерживают переменную прозрачность, но плохо импортируются в VTFEdit, так что для переменной прозрачности нужно использовать .tga.

TARGA (.tga)

TARGA – это старый причудливый формат изображений со своими приятными особенностями, но во многих областях он вытесняется форматами PSD или PNG. Главная проблема состоит в поиске программ, способных создавать/редактировать такие файлы. Как вы могли догадаться, лучшим инструментом для этого является Photoshop. VTFEdit/VTEX хорошо дружат с TARGA, так что если возникают проблемы с импортированием, конвертируйте изображение в этот формат.

Импортирование в VTFEdit

Полагаю, к этому моменту вы уже приготовили желаемое изображение. Выбираем пункт меню File>Import. Для начала познакомьтесь с этим окном:

vtf options

Здесь много всего, но я разобью по пунктам:

  • Normal Format: Какая компрессия используется для стандартных (непрозрачных) изображений.
  • Alpha Format: Компрессия, используемая в изображениях с прозрачностью.
  • Texture Type: Применяется, только когда вы импортируете больше одного изображения, и определяет, что они должны из себя представлять. В 99% случаев здесь выбирается Animated Texture.
  • Resize/Clamp: Тут можно изменить размер в последний момент, но я советую делать это заранее.
  • Generate Mipmaps: MIP-карты – это уменьшенные версии текстуры, которые игра будет накладывать при отдалении. Здесь лучше всё оставить по умолчанию.
  • Normal Map: Карты нормалей используются для придания текстуре мнимой глубины. Опять же, этим лучше заниматься самостоятельно, но вы можете дать VTFEdit шанс и проверить результат её работы.

Хорошее руководство по выбору компрессии есть на Valve Developer Wiki. Если возникают сомнения, оставляйте всё по умолчанию.

Вкладку Advanced мы пока не трогаем (здесь настраивается VTF-файл – оставляйте 7.2, если только не знаете точно, что делаете).

После нажатия ОК вы должны увидеть вот это:

vtf import

Теперь, если не хотите поиграть с продвинутыми настройками, можете нажимать File>Save и получите готовый VTF-файл.

Создание VMT

Мы создадим голый скелет файла VMT для работы вместе с VTF. В той же папке, где вы сохранили свою progamer.vtf, создаём новый текстовый файл и называем его progamer.vmt, затем открываем в блокноте или другом текстовом редакторе и вводим эти строки:

  • LightmappedGeneric – это тип шейдеров, который будет использовать текстура, это важно, когда вам нужны необычные эффекты или вы делаете текстуру для файла модели.
  • Basetexture – это созданный вами файл VMT: заметьте, что у него нет расширения и он находится в папке progamer, которую мы пока не создали (но вскоре создадим).
  • Surfaceprop определяет некоторые физические свойства текстуры.

В VMT-файл можно много чего добавить, расширенный список можно найти на Valve Developer Wiki.

Просмотр и применение текстур

Теперь у нас есть оба необходимых файла, давайте пустим их в дело.

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

  • Half-Life 2: Episode 2: Steam\steamapps\common\Half-Life 2\ep2\materials
  • Team Fortress 2: Steam\steamapps\common\common\Team Fortress 2\tf\materials
  • CS:GO: Steam\steamapps\common\Counter-Strike Global Offensive\csgo\materials

Обычно все файлы материалов помещаются в отдельную подпапку, чтобы в базовой папке не скапливались потенциально конфликтующие материалы. Не забывайте прописывать название папки в VMT-файлах.

Предполагается, что текстуру вы делали для своей карты, так что открывайте Hammer и ищите новую текстуру в списке материалов. Если всё прошло нормально, она там будет. Если ничего нет, возможно, вы не туда поместили файлы. Если текстура есть, но она пустая/фиолетовая/неправильная, то проблема может быть в кодировке текстуры или настройках VMT.

И вот, ваша текстура в игре.

Создание текстур с прозрачностью

Создание анимированных текстур

При создании анимированных текстур большая часть работы производится перед импортированием, так как кадры анимации должны храниться в отдельных файлах. С этим могут возникнуть сложности, но гугл вас выручит.

Названия готовых файлов должны нумероваться по типу: imagename_0000.tga, imagename_0001.tga, imagename_0002.tga.

При импортировании выделяйте сразу все файлы, остальное сделает VTFEdit.

frames

Если всё сработало, в информации об изображении должно быть указано более одного кадра.

VMT-файл для анимированной текстуры содержит чуть побольше данных:

Результат:

Центральная текстура анимирована, правая текстура статичная, но использует кое-какую магию в файле VMT для движения. Это мы рассмотрим в следующих уроках.

Запаковка текстур в карту

Здесь немного проявляются особенности разных игр. Если вы хотите распространять свою карту с пользовательскими текстурами через интернет, то наилучшим решением будет запаковать текстуры в файл BSP.

Для аддонов Garry’s Mod этого делать необязательно, так как структура .gma сохраняет файловую иерархию. Однако, если вы хотите, чтобы люди запускали карту на своих серверах и не доставали вас отзывами «карта отстой, текстурок нету», то лучше их всё же запаковать. Такое случается, потому что люди декомпилируют ваш файл GMA для хранения серверных файлов в FastDL, а не в Workshop.

И как же паковать текстуры в карту? С помощью Pakrat.

Pakrat позволяет открывать файлы BSP и изменять их содержимое. BSP-файлы представляют из себя контейнеры (как .zip, к примеру), где хранятся различные данные – обычно это файлы самой карты, файлы освещения, кубические текстуры и любой дополнительный контент, который вы решили поместить в свою карту.

pakrat

Дальше всё довольно просто: открываем скомпилированную карту, нажимаем Add и добавляем свои текстуры.

Обращайте внимание на столбец Path: там должно быть что-то вроде “materials/ваша-подпапка/“.

Сохраняем карту и всё готово. Для тестирования удалите свои текстуры из папки игры, чтобы убедиться, что они работают из .bsp, а лучше вообще проверяйте карту на другом компьютере.

Читайте также: