Portal 2

Portal 2

27 ratings
Создание текстуры для игр на Source.
By Alivebyte!
Создание текстуры(точнее её портирование на форматы Source).
   
Award
Favorite
Favorited
Unfavorite
Приветствие
Привет всем с вами Alivebyte! Этот гайд по текстурингу для игр на движке Source.
Подготовка
Итак что нам нужно для создания текстуры?
  1. Любой графический редактор(Paint,GIMP,Photoshop,...)
  2. Игра для которой вы хотите сделать текстуру.
  3. Желательно скачать NotePad++[notepad-plus-plus.org] и плагин VDF к нему для последующей удобной работы с редактированием .vmt файлов.
  4. VTFEdit[nemesis.thewavelength.net] для импортирования текстуры в Source.
  5. Навыки для рисования(Ну или навыки по слизыванию текстур из игр.
    GCFScape[nemesis.thewavelength.net] вам в помощь)
Теория
Текстуры в Source устроены следующим образом. Текстуры в Source находятся в папке materials и представляют собой 2 файла. Первый файл представляет и себя саму текстуру(то есть сам рисунок того что вы нарисовали) с расширением .vtf.Второй файл из себя представляет собой файл материала. Данный файл отвечает вообще за различные параметры текстуры(Отражения,карты нормалей и т.д). Расширение такого файла - .vmt. Поэтому желательно скачать NotePad++ и плагин к нему. Текстуры могут быть только таких разрешений кратных двум(Прим: 512x512). Всегда сохраняйте свои исходники текстур с расширением .tga!Это обязательно, ибо в других форматах таких как(JPG,PNG) текстура будет выглядеть значительно хуже, а если на текстуре имеется текст, то вместо него будет полоса.
Практика
Моя задача сделать текстуру 512x512 и портировать её в Portal 2 и использовать её на карте. Пользоваться буду Photoshop. Сама текстура:
Текстуру я сохраняю как testtexture.tga. В папку materialsrc.
Дальше, заходим в VTFEdit и видим интерфейс

На самом деле тут ничего сложного нет, нам нужно просто нажать File > Import и "проложить" путь к текстуре. Дальше нас встречает следующее меню.
На самом деле тут ничего сложного. В этом меню можно поставить свойства и тип текстуры, автоматически подогнать.

Так будет выглядеть наша текстура в игре, то есть ничего не изменится. Можем сохранять. Заранее заходим в Options и убираем галочку напротив Auto Generate VMT File, поскольку мы создадим свой. И так теперь нам нужно просто нажать File > Save и назвать текстуру я назову также testtexture. И так теперь текстура у нас сохранена.
Теперь нам нужно решить по какому пути она будет находится относительно папки materials. Пусть она будет в materials/sp_testmap/textures/. Думаю,для неё это будет идеальное месторасположение. Перекидываем текстуру туда. По сути дела,мы уже портировали текстуру в игру, но проблема в том, что Source не будет видеть эту текстуру вообще. Дело в том,что Source никогда не обращается к текстуре напрямую а обращается именно к .vmt файлу, так как это файл материала, а именно к ним Source и обращается. В .vmt хранятся все параметры текстуры, какими они должны быть в игре. Но, думаю определять значение файла .vmt нет смысла, поэтому сразу перейдём к созданию. Мы не будем делать что-то запредельное простого чтения текстуры. Поэтому просто создадим файл который нужно назвать testtexture.vmt. Итак, открываем его или блокнотом или Notepad++. Я буду использовать NotePad++. И сейчас мы добавим базовое прокси, которое используются для чтения текстур.
Это $basetexture. Но прежде чем добавить прокси, мы должны "сказать" Source какой шейдер мы будем использовать для текстуры. Стандартный шейдер для карт с наложением освещения - LightmappedGeneric. Его и пишем в первой строчке файла(обязательно в кавычках!).Дальше добавляем скруглённые скобки {} и в них пишем "$basetexture" а дальше пишем путь к текстуре относительно папки materials.Писать нужно в кавычках.Должно выйти "sp_testmap/textures/testtexture"(без .vmt!). Должно получиться что-то типа этого:.Теперь можно сохранить файл. Текстура готова и читаема Source'ом. Моя задача выполнена. Теперь нам осталось только вшить эту текстуру в карту
Заключение.
На этом всё. Мы смогли создать текстуру и успешно портировать её в Source. Если же вы хотите сделать не просто текстуру которая ни на что не способна кроме, как отображаться в игре, вы можете изучить другие прокси. Список всех прокси можно найти здесь.
С вами был Alivebyte!

Ещё гайды:
http://gtm.steamproxy.vip/sharedfiles/filedetails/?id=720824512
http://gtm.steamproxy.vip/sharedfiles/filedetails/?id=667628354
http://gtm.steamproxy.vip/sharedfiles/filedetails/?id=679431690
20 Comments
реднигхт 19 Jun @ 3:56am 
Alivebyte!, спасибо большое!
Alivebyte!  [author] 19 Jun @ 3:17am 
Для этого нужно вшить текстуру или любой другой ассет в файл карты. Подробно как это делать я расписал в другом гайде
https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=720824512
реднигхт 18 Jun @ 7:45pm 
а как эту кастомную текстуру вместе с картой выложить в мастерскую, чтобы все кто ее скачивал не получать вместо этих текстур эмо текстуры:lunar2025snakeinablanket:
Mizery 22 Oct, 2024 @ 12:53pm 
оуей, спасибо, я попробую
Alivebyte!  [author] 20 Oct, 2024 @ 5:53am 
Тогда в хаммере по этому пути найдите текстуру, она должна там появится
Mizery 20 Oct, 2024 @ 5:35am 
да, всё верно, он там
Alivebyte!  [author] 19 Oct, 2024 @ 3:26pm 
Проверьте путь к vmt файлу, он должен быть в папке materials вместе с vtf файлом текстуры
Mizery 19 Oct, 2024 @ 10:25am 
я делаю всё точно по гайду, но заходят в хаммер, там просто нет моей текстуры. Я не понимаю, что я делаю не так :(
veletizor 25 Jun, 2022 @ 7:49am 
что нужно написать в верхней строке, чтобы была неоновая текстура как глаза у модулей?
Alivebyte!  [author] 31 May, 2020 @ 11:56pm 
На самом деле, освоиться в движке не сложно, проблемы в том, что как движок Source довольно костыльный и многие вещи в нём не так просто становится реализовать. Особенно, если хочешь впихнуть например, оружия в игру, в которой их нет, например Portal 2. Данная проблема могла бы быть решаема, будь бы у портала открытые исходные коды, которые есть например для Source 24 протокола, но у портала исходные коды закрыты, поэтому и приходится прибегать к костылям. Ну и движок сам по себе для линейных шутеров, а посему, какой-нибудь опенворлд на нём не сделаешь.