Portal 2

Portal 2

26 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://steamcommunity.com/sharedfiles/filedetails/?id=720824512
http://steamcommunity.com/sharedfiles/filedetails/?id=667628354
http://steamcommunity.com/sharedfiles/filedetails/?id=679431690
14 Comments
veletizor Jun 25, 2022 @ 7:49am 
что нужно написать в верхней строке, чтобы была неоновая текстура как глаза у модулей?
mge louis Jun 16, 2020 @ 3:28am 
или нет? а выглядит как опен соурс
mge louis Jun 16, 2020 @ 3:27am 
source же open source?
Alivebyte!  [author] May 31, 2020 @ 11:56pm 
На самом деле, освоиться в движке не сложно, проблемы в том, что как движок Source довольно костыльный и многие вещи в нём не так просто становится реализовать. Особенно, если хочешь впихнуть например, оружия в игру, в которой их нет, например Portal 2. Данная проблема могла бы быть решаема, будь бы у портала открытые исходные коды, которые есть например для Source 24 протокола, но у портала исходные коды закрыты, поэтому и приходится прибегать к костылям. Ну и движок сам по себе для линейных шутеров, а посему, какой-нибудь опенворлд на нём не сделаешь.
Haru Moritaka May 31, 2020 @ 3:20am 
В любом случае - гайды были мне полезны.
Haru Moritaka May 31, 2020 @ 3:19am 
Я по вашим гайдам делал карты для Portal 2. :plastismile:
Но потом забросил это дело, так как движок не так прост в освоении, а планы были довольно масштабными.
Alivebyte!  [author] May 30, 2020 @ 5:52pm 
Да и смысл писать гайды на тулзу, которую давно уже никто не юзает из-за стимпайпа. Было бы более рационально данные гайды написать для CS:GO, но на момент когда я писал гайд, игра была платная и у меня её не было. Да в принципе из сорс игр у меня игр особо не было.
Alivebyte!  [author] May 30, 2020 @ 5:50pm 
Гайды я давно писал и то от нечего делать
gml132 May 30, 2020 @ 5:06am 
сук вот таких нам надо в соурс сдк какого хуя на портал 2 пишешь?
:steamfacepalm:
Viflame Feb 23, 2019 @ 2:22am 
Я портировали текстуру, однако мне пишут что не прогрузилась