Показать сообщение отдельно
Старый 10.11.2012, 03:23   #176
SmaiL
Матёрый пользователь
 
Аватар для SmaiL
 
Регистрация: 12.05.2009
Адрес: Кременчуг-пасс. Маневровая ветка, район элеватора
Сообщений: 5,802
Вы сказали Спасибо: 1,665
Поблагодарили 2,495 раз(а) в 1,080 сообщениях
SmaiL хороший собеседникSmaiL хороший собеседник
Отправить сообщение для SmaiL с помощью ICQ Отправить сообщение для SmaiL с помощью Skype™
По умолчанию

Поисправлял ошибки, скоро пак выложат на tsm-team и trainz.ru. С администрацией trainzup связаться не смог, так что я не смогу там никому рассказать о моде.
Все куиды заменены на новые.



Ну и тут решил я написать урок как создавался мод. Когда я пробовал создавать первые текстуры, делалось методом проб и ошибок, так что урок написал довольно подробный.
Под спойлером очень много писанины!!
Скрытый текст:

Для создания текстуры на примере моей нам понадобится
Adobe Photoshop – 5.0, 5.1, 6.0, 7.0, CS, CS2, CS3, CS4, CS5 или CS6..
ShaderMapPro – можно скачать здесь.
Плагин для Adobe Photoshop от NVIDIA качаем здесь. Тут внимательнее, если у вас 64-тный фотошоп качаем плагин для 64-й версии, если 32-й то плагин соответственно так же.

Начнем. Для начала нам понадобится текстура. Можно использовать фотографию, можно готовую текстуру. Если использовать не тайлированную фотографию, будут видны стыки, неправильное освещение. Сайт cgtextures.com предоставляет бесплатные тайлированные текстуры. Чтобы скачивать с сайта, необходимо зарегистрироваться. После регистрации вам выдается квота на 15мб на 24 часа.
Скачали мы значит такую текстуру.

Но мы видим что у неё размер 640х640 (на самом деле уже 512х512, но обычно совпадений таких нету) . В таком случае нам нужно его уменьшить до 512х512 (для того чтобы все версии Trainz адекватно восприняли текстуру).
Мы открываем эту текстуру в Фотошопе. Изображение-Размер изображения (Alt+Ctrl+I). И задаём параметры 512х512. Если же текстура у нас 640х643, то мы снимаем галочку «сохранить пропорции» и опять же ставим параметры 512х512. После этого сохраняем текстуру под именем “t” (текстура) в формате *.tga, 24-бита, без уплотнения RLE (иначе Траинз может просто не воспринять текстуру).
И еще. Рекомендую эту текстуру сохранить в отдельную папку, и все последующие файлы сохранять в эту папку, дабы не растерять всё во время процесса.

Теперь приступим к созданию normal-map карты. Это делается для того, чтобы придать текстуре объем (имитация рельефа или же микрорельеф, а вместе с ним и правильные тени от солнца и прожектора). После того как мы установили фильтр от nvidia, мы открываем нашу текстуру в фотошопе, жмём фильтр-nvidiatools, normalmapfilter. Я задавал такие параметры:

В принципе с этим можно поэкспериментировать, получите разный результат. Height Generation влияет на четкость рельефа, а Scale на интенсивность. Рекомендую не увлекаться большими значениями в поле Scale, т.к. в игре это будет выглядеть «вырвиглазно». Жмём ОК, и получаем что-то типа такого.

Сохраняем в tga, 24-бита, без уплотнения RLE, под именем “n” (normal_texture).


Теперь нам нужна карта освещения. Как известно любой объект отражает свет. Будь то асфальт или снег, но они все равно отражают лучи света. Тут нам приходит на помощь программа ShaderMapPro.
Открываем её. Сразу снимаем галочки «Enable» со всех карт, кроме Specular Map. И жмём Load Diffuse.

И выбираем нашу текстуру «t.tga» (будьте внимательны, не n.tga, a t.tga!). После этого программа сгенерирует карту, и выдаст 3D-превью. Мы это окошко закрываем, оно нам не нужно. После этого мы жмём на иконку карты, потом FileType, и вписываем в поле «суфикс» «_s» (specular), и смотрим чтобы выходной формат был BMP24.

После этого можно нажимать Generate, и у нас в папке с текстурами появится файл t_s.bmp
Но на выходе картинка будет очень яркой. Если вы делаете пак текстур, то лучше затемнять в фотошопе, а не в shadermap’е (быстрее будет).
Для этого мы открываем в фотошопе t_s.bmp, жмём Ctrl+U и ставим яркость -60…-70. Жмём ОК, и сохраняем (Ctrl+S). Если при сохранении выскочит табло с выбором параметров, ничего не трогаем, а жмём ОК. Правильное значение находиться «методом тыка», через просмотр результата в игре…

Так же чтобы не ругался Контент Менеджер, нужно создать превью текстуры. Открываем в Фотошопе t.tga, Изображение-размер холста (Alt+Ctrl+C), выбираем «пикселы», ширина – 240, длина – 180. Жмём ок. И сохраняем эту превьюшку под именем thumbnail в формате *.jpg
Должно получится что-то типа этого:




Теперь нам нужно сделать так, чтобы игра поняла эти текстуры. Для этого нам нужен config.txt. В общем он должен выглядеть так:

Код:
kuid                                    <kuid:*****:******>
username                                "*****"
trainz-build                            3.1
category-class                          "GA"
category-region                         "RU"
category-era                            "1960s;1970s;1980s;1990s;2000s;2010s"
kind                                    "groundtexture"
texture                                 "t.texture"
normal-texture                          "n.texture"

thumbnails
{
  0
  {
    image                               "thumbnail.jpg"
    width                               240
    height                              180
  }
}

author                                  "*nickname*"

kuid-table
{
}
Думаю про то что kuid нужно писать не «от винта» все знают. author – ваш никнейм, «username» - это название текстуры, которое будет отображаться в Контект Менеджере и в игровом редакторе.
Обратите внимание на эти поля
Код:
texture                                 "t.texture"
normal-texture                          "n.texture"
texture – наша текстура. Normal-texture – наша нормал-мап карта. Пишем название и приписываем «.texture», никаких tga, bmp не нужно. Почему, расскажу дальше.
То что под «thumbnails» - это превью. Проверяем чтобы было thumbnail.jpg.



Теперь нам нужно создать .texture для наших текстур. Для начнем с нормал_мапа (далее поймете почему). Создаем в блокноте (как и конфиг) файлик n.texture.txt. Что должно быть в нём.
Primary=n.tga
Alpha=t_s.bmp
Tile=st
NormalMapHint=normalmap

Primary – нормал карта.
Alpha – для текстур земли это карта освещения (она же specular_map).




Далее создаем файл t.texture.txt.
Здесь мы должны определится что мы хотим. Если у вас текстура льда, то понятно что лёд будет отражать небо, и мы пойдем по пути №1.
№1
Содержание текстового документа должно быть таким:
Primary=t.tga
Alpha=t.tga
Tile=st

И эффект будет такой:

Отражается небо, солнце, а так же присутствует солнечная «дорожка».

№2
Содержание такое
Primary=t.tga
Tile=st
Но теперь нам нужно открыть t.tga в фотошопе и создать белую для неё белую альфу. Для этого смотрим картинку. Т.е. открываете текстуру, жмём каналы, создаём новый. Он как правило будет черный. По этому мы выбираем белый цвет, и используем инструмент «заливка» (рекомендую использовать заливку, а не кисть, ибо кистью можно что-то пропустить). И прямо так сохраняем (Ctrl+S).

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

(тут не все текстуры без отражения солнца. Но "правильные" можно найти).
После того как мы всё сделали, перетягиваем эту папку со всем «гамузом» в Контент менеджер, и он должен определить это как текстуру. Типа «Установлено дополнение: <kuid:******:****>;»
Если нету никаких ошибок, можно заходить в игру и наслаждаться результатом проделанной работы. Если ошибки есть, то перечитываем урок и смотрим что сделали не так.

Для основной части текстур (кроме льда, воды и т.п.) нужно использовать путь №2, но делать specular_map рекомендуется для всех. Но для бетона/травы и всего прочего он будет очень тёмным. Что-бы белые точки были едва видны, тогда это будет смотреться натурально.

Последний раз редактировалось SmaiL; 10.11.2012 в 03:27.
SmaiL вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо SmaiL за это полезное сообщение:
Старый 01.01.2007, 12:00  
Яndex
Спонсор
 
 
Регистрация: 01.01.2007
Сообщения: 500


Реклама показывается изредка по случайному принципу
По умолчанию РЕКЛАМА