Импорт текстур в CRYENGINE V без плагина Crytif и Photoshop.

31. декабря 2016 CRYENGINE 5 0

В этой статье рассмотрим простой вариант того, как добавить свои текстуры в CRYENGINE 5, пользуясь желаемыми инструментами, к примеру, Krita, Paint.NET и другими, а не навязанным Photoshop и плагином Crytif. Сделаем импорт текстур напрямую через .\Crytek\CRYENGINE\Tools\rc\rc.exe, осуществляя компрессию в формат dds с помощью универсального компилятора ресурсов RC (Resource Compiler) без использования плагина Crytif, что позволит избежать различных странных проблем, когда Crytif по непонятным причинам переставал корректно работать.

В CRYENGINE 5 используется универсальный компилятор ресурсов RC (Resource Compiler), который преобразует ресурсы в виде промежуточных форматов (FBX, tif и прочих) в специальные форматы движка, что позволяет использовать их в проектах на движке. В данном случае рассмотрим на примере растровых изображений.

Зачем вообще был нужен экспорт с использованием Crytif? С помощью него выставляются параметры, по которым RC производит компрессию текстуры под движок. Если просто использовать текстуру в формате .tif или .dds, то она будет отображаться некорректно.

tif (TIFF) — промежуточный формат растровых изображений, позволяющий хранить изображения без сжатия (без искажений). В качестве примера антипода можно противопоставить JPEG со своими характерными артефактами сжатия.

dds — основной формат хранения сжатых текстур, который имеет сравнительно малый вес при удовлетворительном уровне искажений. Текстуры в формате dds отправляются на отрисовку видеокартой.

В случае CRYENGINE 5 текстура в tif представляет собой текстуру без сжатия, которую компилятор в зависимости от параметров преобразует в dds, которая в свою очередь будет отображаться в движке.

В данной статье в качестве альтернативы Photoshop будет использоваться Krita, представляющая собой свободный мультиплатформенный графический редактор с функционалом на уровне Photoshop. В сравнении с Gimp имеет ряд преимуществ, таких как поддержка режима 16 бит.

 

Примечание: Есть альтернативный способ добавить свои 3D модели в движок с помощью FBX Import, при этом используя Blender или любой другой 3D графический редактор, который способен экспортировать в формат FBX.

 


 

Чтобы использовать RC (Resource Compiler) напрямую без Crytif создадим ярлык с командой вывода диалогового окна, в котором нужно будет выставить желаемые параметры сжатия текстуры. После этого потребуется лишь поместить ярлык в папку с текстурой и перетащить текстуру на ярлык, что активирует диалоговое окно, как при использовании Crytif. Выберем желаемые параметры, осуществим вывод dds-текстуры и закроем диалоговое окно. На этом импорт текстуры завершится. Приступим.

 

Примечание: изображения кликабельны.

 

Подготовка RC.

  1. Необходимо перейти в папку .\Crytek\CRYENGINE_5\Tools\rc\ и найти rc.exe.
  2. Создаём самый обыкновенный ярлык — ПКМ/Создать ярлык. Для красоты его можно переименовать.noostyche_blog_import_textures_crytif_krita_1
  3. Пропишем команду вывода диалогового окна. Для этого жмём ПКМ на ярлыке и выбираем «Свойства«. В строке «Объект» в самом конце прописываем команду -userdialog=1 и подтверждаем.noostyche_blog_import_textures_crytif_krita_2
  4. Готово. Далее подготовим текстуру, экспортировав из исходника в tif.

Подготовка текстуры.

В данном примере я проведу экспорт диффузной текстуры в tif. Текстура будет иметь название gramophone_diff, где _diff это суффикс, указывающий, что это диффузная текстура.

Примечание: Crytek рекомендуют при добавлении своих текстур в CRYENIGNE 5 использовать цветовой профиль sRGB IEC61966-2.1, чтобы избежать различных цветовых искажений при преобразовании из одного цветового профиля в другой. В Krita по умолчанию используется свой sRGB цветовой профиль, но он почти на 100% совпадает с sRGB IEC61966-2.1, поэтому он вполне подойдёт.

  1. Открываем исходник:
  2. File/Export…noostyche_blog_import_textures_crytif_krita_4
  3. Выбираем «изображение TIFF»:noostyche_blog_import_textures_crytif_krita_4-1
  4. В настройках экспорта в TIFF отметить следующее:noostyche_blog_import_textures_crytif_krita_5
  5. Должен получится файл с расширением tif:
    noostyche_blog_import_textures_crytif_krita_6ВАЖНО: Расширение должно быть именно .tif, иначе диалоговое окно rc.exe не появится.
  6. Готово.

 

Компрессия текстуры из tif в dds посредством RC.

  1. Ранее созданный ярлык для удобства помещаем в папку с текстурой:noostyche_blog_import_textures_crytif_krita_7
  2. Перетаскиваем текстуру в формате tif на ярлык rc.exe: noostyche_blog_import_textures_crytif_krita_8
  3. Выбираем нужный Preset и прочие настройки:noostyche_blog_import_textures_crytif_krita_9
  4. Жмём Generate output, чтобы осуществить компрессию tif в dds, и подтверждаем: noostyche_blog_import_textures_crytif_krita_10
  5. Проверяем успешность компрессии: noostyche_blog_import_textures_crytif_krita_11Примечание: Вывод этой командной строки можно найти в текстовом файле.\Crytek\CRYENGINE_5\Tools\rc\rc_log.log.
  6. Готово, rc.exe произвёл компрессию текстуры в формате tif в dds, что позволит использовать текстуру в движке. noostyche_blog_import_textures_crytif_krita_12Таким нехитрым образом мы избавили себя от необходимости использовать Photoshop и плагин Crytif. Возможности RC (Resource Compiler) по упрощению преобразования контента из промежуточных форматов в форматы движка не ограничивается на таком простом трюке, изучение официальных статей Using the Resource Compile и Batch Processing with Resource Compiler and Job XML откроет много интересностей по пакетной компрессии текстур и даже автоматической сборке игры.

 

 

P.S. Чтобы добавить свои модели в движок, например из Blender, необходимо воспользоваться встроенным в движок инструментом, который называется FBX Import. Пошаговый урок находится в соседней статье этого блога.