Иииии всем привеДОС досвиДОС 🙂
и сегодняшний туториал будет тяжелым, мы будем добавлять свои текстуры, и давайте начнём с самых обычных и лёгких.
обычная текстура
Для этого берите любое изображение текстуры (размер может быть любой, даже 2048х2048).
ну и я возьму 4 текстурки из брутал дума версии 21 и одну текстуру из дума. Но чтобы они были качественными я воспользуюсь программой topaz gigapixel которая делает картинки больше и с хорошим качеством.
Теперь нам нужна программа vtf editor что бы компилировать текстурки, когда у нас открылась программа нажимаем на file/ далее import что бы открыть картинку с текстурой. Теперь в открывшемся окне ничё не изменяем можем изменить только максимальный размер текстуры, жмём ок, после того как текстуры открылась сохраняем текстуру в vtf формате (save as). И сохраняем мы не в папку с картой а в «папка с игрой\garrysmod\materials» а это для того что бы хаммер видел текстуру, но когда вы хотите уже собрать аддон или прост добавить в аддон текстуру то перемещайте текстуру в папку «папка с игрой\garrysmod\addons\папка с вашим аддоном\materials».
material текстура
Вот уже material текстура имеет отражения, 3д иллюзию, и ambient occlusion. Но нам хватает и отражения для material текстуры, итак нам нужна прога vmt editor и pixplant сначала заходим в pixplant по ней будет отдельный тутор, теперь закрываем окно с тем какой мы хотим проект и нажимаем на file/new texture и опять закрываем только уже окно с размером и кликаем на file/open texture либо на иконку с открытой папкой и там выбираем нашу текстуру. Затем кликаем на extract 3d maps и выбираем diffuse, normal+displacement, specular а дальше настраиваем как хотим, когда предпросмотр всей в итоге текстуры появился снимаем галочку с просмотра displacement т.к он нам не понадобится, дальше настраиваем все изображения как мы хотим а пока вы настраиваете я расскажу какое изображение за что отвечает, normal это бамп то есть искажает отражение и делает иллюзию 3д для света, specular это на сколько сильно будет отражаться отражение либо отражаться свет (рекомендую при начальной настройке спекуляра для текстур без зеркального отражения выбирать medium а если для зеркальных отражений то выбирать matte либо medium но потом его затемнять, и чем темнее будет участок тем меньше будет отражаться), ambient occlusion это добавочное затемнение diffus’ора и бампа, diffuse это сама текстура. После того как мы всё настроили сохраняем normal diffuse и specular.
material текстуры с бампом без отражений
Сейчас черёд vmt editor’а, открываем программу(vmt editor) и заходим в tools/convert to vtf там в строке output или же там где кнопка browse указываем папку в которой сохранятся конвертированные изображения specul’яра, diffus’ора и бампа, и теперь что бы конвертировать изображения нажимаем кнопку add что бы их добавить в лист а потом нажимаем на convert. Затем закрываем окно с конвертацией и в строке shader меняем тип материала, и вводим туда VertexLitGeneric, и в строке bump вводим имя изображения с бампом в vtf формате(без путя файла и его расширения только имя) а в diffuse тож самое только уже указываем имя diffus’ора, теперь в проект добавляем brush specular.

Теперь в строках glossiness и warp указываем имя спекуляр текстуры так же без путя и расширения. теперь можем сохранять текстуру(save as) в «папка с игрой\garrysmod\materials» опять же как и было, для того что бы хаммер её видел, и в отличии от обычных текстур у этой расширение .vmt, но нет, эт ещё не всё, теперь надо те самые скомпилированные изображения которые мы использовали в .vmt переместить туда же где и vmt файл.
material текстуры с бампом с отражениями
И если что, отражения имеется ввиду не просто отражение света, а отражение как у зеркала, которое отражает ВСЁ. Теперь делаем всё тоже самое что и с материал текстурой без отражений, но не меняем тип текстуры в строке shader и вместо добавления brush specular добавляем reflection

И в настройках reflection мы ставим галочку на use cubemap(наверно щас вы поняли что такое env_cubemap, если нет я всё равно потом объясню) это нужно что бы отражения отражали всё вокруг, но если вы хотите что бы текстура отражала какую то картинку а не всё вокруг то снимайте галочку и в текстовое поле reflection укажите имя картинки. Теперь в текстовое поле mask укажите картинку с specular в vtf формате так же как и было с bump и diffuse и опять же не указывая расширение и путь. Теперь можем сохранять текстуру.
добавление текстуры в вкладку инструмента материал
Если вы уже играли в гаррис мод что бы убить время да и от скуки тож, то вы знаете инструмент материал, с помощью которого можно поменять текстуру любого пропа в игре. Но есть одна проблема, тут не все текстуры из игры, и как бы вы ни пытались их добавить vpk контентом то перенося их вместо игровых файлов, никак, а это потому что они готовятся по другому.
vmt — material текстуры
Если у вас текстура-материал то можно просто открыть текстовой редактор и в нём открыть ваш vmt файл, и после последнего параметра делайте enter и вводите этот параметр
%keywords "имя текстуры так же без путя и расширения"
у меня получилось вот так
VertexLitGeneric
{
$basetexture "ptest\target_texture"
$bumpmap "ptest\target_texture_bump"
$surfaceprop concrete
$phong 1
$phongfresnelranges "[0.5 0.75 1]"
$phongexponenttexture "ptest\target_texture"
(из-за того что спекуляр текстура и диффузор текстура у меня почти одинаково выглядят я поставил одну и туже)
$phongwarptexture "ptest\target_texture"
%keywords "target_texture"
}
ещё в vmt это можно изменить добавив в него флаги(в программе vmt_editor) и там будет строка keywords.
теперь в папке нашего аддона создаём папку lua в ней папку autorun а в ней создаём файл materials.lua этот lua файл будет листом текстур которые будут в инструменте материалы, и в этот файл пишем строку
list.add( "overridematerials", "имя текстуры из параметра keywords")
и т.к у меня четыре текстуры которые я хочу добавить в вкладку я впишу четыре таких строки
list.add( "overridematerials", "rock01_texture")
list.add( "overridematerials", "rock02_texture")
list.add( "overridematerials", "plants_texture")
list.add( "overridematerials", "target_texture")
ну вот и всё.
vtf — обычные текстуры
Тут нам тоже пригодится vmt файл, но сделаю я его вручную через текстовой редактор т.к он ну оч простой. Открываем созданный файл vmt в текстовом редакторе и пишем в него этот код
LightmappedGeneric
{
$basetexture "название vtf текстуры без путя и расширения"
%keywords "имя текстуры так же без путя и расширения"
}
всё, дальше делаем тоже самое что и с материал текстурой, делаем папку lua в ней autorun и т.д
о путях и категориях
Теперь давайте поговорим о категориях, данная штука делается оч просто, что бы добавить текстуру в какую-то категорию мы должны сделать папку с названием категории в папке с текстурой, и текстуры переместить в папку-категорию и таких категорий можно сделать очень много и категории можно делать в других категориях типо сделать папку-категорию concrete и в ней сделать ещё категорию и так до бесконечности, но только добавляя материал текстуру в категорию надо во всех названиях текстур в vmt файле добавить путь от папки с текстурой, типо так,
$basetexture "ptest\target_texture"
и слово ptest\ это путь к текстуре от папки с текстурой. И ещё, если игра не видит текстуру попробуйте её добавить в категорию, мне так на практике это помогло.
entity env_cubemap
Теперь о кубмапах, вообще эту вещь лучше всегда ставить на карты, т.к она оч важна для текстур с отражениями, а всё потому что кубмап это типо видео камера которая передаёт отображение отражениям от текстур, и главное чтобы кубмапы стояли на высоте 64 юнита или же пикселя от поверхности т.к голова игрока на высоте 64 юнита. Ну а теперь подробности о параметрах. У ентити название env_cubemap, параметр cubemap size это не размер отражения как вы подумали, это яркость отражения лучше её ставить на 32 или 64, яркость до 16 будет слишком тёмной а после 64 слишком яркой. Brush faces этот параметр отвечает за то, у каких граней фигурок будет в текстуре отражение, если ничё в этом параметре на ставить то отражения кубмапа будут на всех текстурах до которых он может дотянутся.
создаём отражения от куб мапов
К сожалению куб мапы делают не реал-тайм отражение(типа которое всё время изменяется и обновляется) а всего лишь одну картинку.И вот из-за этого кубмапы надо билдить, для начала зайдите на карту. Потом в консоль впишите эти команды
garrys mod
sv_cheats 1(позволяет вписывать читы и команды)
building_cubemaps 1(удаляет все кубмап-изображения и делает режим билдинга)
buildcubemaps(создаёт кубмап-изображение т.е отражения)
mat_reloadallmaterials(перезапускает все материал текстуры)
но данный способ работает только с гаррис модом, в hl 2 команд куча а в кс-го ещё в компиляции надо добавить дополнительный параметр и потом так же компилить как и в garrys mod.
hl2
sv_cheats 1(включает читы и команды)
mat_specular 0(отключает все спекуляр отражения)
buildcubemaps(билдит кубмапы)
mat_hdr_level 2(<<ПИСАТЬ ЭТУ КОМАНДУ ТОЛЬКО ЕСЛИ СЕЙЧАС СТОИТ 0>> включает hdr в игре)
buildcubemaps(билдит кубмапы)
mat_specular 1
mat_reloadallmaterials(перезапускает все материал текстуры)
cs:go
а вот для кс го в панели компиляции в поле дополнительных параметров мы должны указать этот параметр
-insecure
А если появляется эта ошибка Can’t load vtex_dll.dll, тогда в параметрах запуска кс го нужно прописать -tools -nop4 -insecure (цитата Black Studio, (это youtube имя)).
Ну а дальше билдим кубмапы как и в гаррис моде.
ну вот и конец, сказке этой звиздец
Ну вот мы и сделали свои текстуры и материал-текстуры
по этой ссылке вы можете скачать карту(но по сути это аддон с картой) с новыми текстурами.
скрины с карты





(скриншоты графически обработаны только для красоты, никаких добавлений к карте в скринах нет а последний скрин был сделан гораздо раньше чем другие поэтому там нет небоскрёба)
