Doom3.ru





















    •  Главная

  •  Doom3-форум   •  Прислать новости




  •  Doom3-info



  



  •  Doom3: RoE



  



  •  Статьи



  



  •  Quake4



  



  •  Quake Wars



  




Реклама
Медицинские фармацевтические холодильники www.amedisin.ru.




Модострой

 09.12.2003  22:56  Автор: [ss]3L33T@

"Не страшно умереть, страшно - бояться смерти"
[ss]3L33T@.


Итак Господа, на этот раз мы не будем страдать всякой ерундой, а займёмся по настоящему реальной задачей - созданием своего мода для Дум 3.
Вы скажите - не реально, есть только альфа. Ошибаетесь - отвечу я вам.
Если кто не знал - движок дума был закончен уже через год после начала разработки оного. Под словом движок я подразумеваю не геометрическую и рендер обработку, а именно то, что именуется принципом открытой архитектуры. Для непосвящённых: принцип открытой архитектуры - такая сложная вещь...
Ладно, ладно шучу. Короче принцип открытой архитектуры (далее ПОА) позволяет компилировать игру (основные её составляющие: модели, звуки, текстуры, уровни) при каждом запуске оной. Соответственно вы не сможете поменять физику игры или алгоритм осуществления динамических теней, но зато сможете добавить текстуры, модели, карты, звуки и т.п. Понятно? Если нет - перечитайте всё заново и если всё равно не поймёте намыльте мне. Ну для тех кто понял - …А где все???; ).

Всё надо делать с юмором. Поверьте мне юмор - самое страшное оружие. Вот есть тут у нас в лицее бригада пацанов. Так вот у нас типа конкурс был - КВН, мы этих пацанов (предварительно смочив пивом) выдвинули от нашей группы выступать (!!!БЕЗ ПОДГТОВКИ!!!) - так они устроили игру с залом. Вы бы видели - все ржали до колик в заднем проходе, даже директор, а уж что говорить о нас….
Так, что-то я совсем не о деле.

Будем говорить обо всё по порядку. Ниже несколько пунктов, которые должен знать любой "модостроитель":

1. Движок дума - отличный комилятор и, в принципе, обладая альфа версией, можно создать свою игру. Абсолютно новую и не похожую на дум!

2. При каждом запуске игры, последняя собирает себя из файлов описаний, в которых, в свою очередь, хранится информация о предметах, звуках, текстурах, моделях и т.п.

3. Имея альфу можно сделать свой мод!

Ниже разберёмся с основными аспектами создания мода. ЭТО ЗАБЕРЁТ У ВАС ОООООЧЕНЬ МНОГО ВРЕМЕНИ. У меня заняло всё лето и то я до конца не знаю всего.
Ну да ладно, от лирики перейдём к делу…

Текстуры.

Итак начинаем разговор. Кто ни будь из вас пытался, поддаваясь соблазну, редактировать текстуры NO SMOKING, меняя её на НЕ КУРИТЬ, или мечтал над бочком унитаза, на e3_2, подвесить какую ни будь пошлую надпись? Пробовали, знаю. Со скоростью ветра печатали незабвенную месагу, сохраняли текстуру, заходили в игры и видели - ОБЛОМ - ничего не изменилось. Струна нервов натянулась, но вы приглушив её шли и смотрели на текстуру - отредактирована, матерились, шли в игру, смотрели - ни хрена, надкусывая стол и уничтожая клаву шли и таращились на отредактированную текстуру, матерились, пили пиво, час успокаивались и, в конце концов - бросали эту затею. Так вот - зря. Вся беда - то была в файлах папки "d3t". Хочу сразу оговориться, если я говорю папка "d3t", то я имею виду папку дума\base\d3t - это так, на будущее. Вообще всё что надо знать, для создания текстур:

1. Папку d3t, точнее на кой хрен она нужна.
2. Папку materials, скрипты текстур, организацию текстур. Обо всём этом я скажу ниже.
3. Уметь делать текстуры. Это уже должно быть, как говорится, от бога. Этот пункт для дизайнеров.

Для наглядности мы создадим текстуру, поэтапно:

1)Берём картинку с текстурой.
2)Переводим её в формат TARGA(*.tga). Это можно сделать, например, с помощью IrfanView или PhotoShop.
3)Запихиваем её в "\textures\my\1.tga", где my - папка, которую я создал(имеет произвольное имя), 1.tga - текстура, которую хотим вставить в игру.
4)Идём в папку "materials" и создаём файл с именем - my.mtr (как вы уже поняли my - папка где находится ваша текстура).
5)Открываем my.mtr, для редактирования.
6)Тут начинается кодинг. Ниже я приведу пример описания лавы в моём моде:

table sinTable {
0.000000, 0.024541, 0.049068, 0.073565, 0.098017, 0.122411, 0.146730, 0.170962,
0.195090, 0.219101, 0.242980, 0.266713, 0.290285, 0.313682, 0.336890, 0.359895,
0.382683, 0.405241, 0.427555, 0.449611, 0.471397, 0.492898, 0.514103, 0.534998,
0.555570, 0.575808, 0.595699, 0.615232, 0.634393, 0.653173, 0.671559, 0.689541,
0.707107, 0.724247, 0.740951, 0.757209, 0.773010, 0.788346, 0.803208, 0.817585,
0.831470, 0.844854, 0.857729, 0.870087, 0.881921, 0.893224, 0.903989, 0.914210,
0.923880, 0.932993, 0.941544, 0.949528, 0.956940, 0.963776, 0.970031, 0.975702,
0.980785, 0.985278, 0.989177, 0.992480, 0.995185, 0.997290, 0.998795, 0.999699,
1.000000, 0.999699, 0.998795, 0.997290, 0.995185, 0.992480, 0.989177, 0.985278,
0.980785, 0.975702, 0.970031, 0.963776, 0.956940, 0.949528, 0.941544, 0.932993,
0.923880, 0.914210, 0.903989, 0.893224, 0.881921, 0.870087, 0.857729, 0.844854,
0.831470, 0.817585, 0.803208, 0.788346, 0.773010, 0.757209, 0.740951, 0.724247,
0.707107, 0.689541, 0.671559, 0.653173, 0.634393, 0.615232, 0.595699, 0.575808,
0.555570, 0.534998, 0.514103, 0.492898, 0.471397, 0.449611, 0.427555, 0.405241,
0.382683, 0.359895, 0.336890, 0.313682, 0.290285, 0.266713, 0.242980, 0.219101,
0.195090, 0.170962, 0.146730, 0.122411, 0.098017, 0.073565, 0.049068, 0.024541,
0.000000, -0.024541, -0.049068, -0.073565, -0.098017, -0.122411, -0.146730, -0.170962,
-0.195090, -0.219101, -0.242980, -0.266713, -0.290285, -0.313682, -0.336890, -0.359895,
-0.382683, -0.405241, -0.427555, -0.449611, -0.471397, -0.492898, -0.514103, -0.534998,
-0.555570, -0.575808, -0.595699, -0.615232, -0.634393, -0.653173, -0.671559, -0.689541,
-0.707107, -0.724247, -0.740951, -0.757209, -0.773010, -0.788346, -0.803208, -0.817585,
-0.831470, -0.844854, -0.857729, -0.870087, -0.881921, -0.893224, -0.903989, -0.914210,
-0.923880, -0.932993, -0.941544, -0.949528, -0.956940, -0.963776, -0.970031, -0.975702,
-0.980785, -0.985278, -0.989177, -0.992480, -0.995185, -0.997290, -0.998795, -0.999699,
-1.000000, -0.999699, -0.998795, -0.997290, -0.995185, -0.992480, -0.989177, -0.985278,
-0.980785, -0.975702, -0.970031, -0.963776, -0.956940, -0.949528, -0.941544, -0.932993,
-0.923880, -0.914210, -0.903989, -0.893224, -0.881921, -0.870087, -0.857729, -0.844854,
-0.831470, -0.817585, -0.803208, -0.788346, -0.773010, -0.757209, -0.740951, -0.724247,
-0.707107, -0.689541, -0.671559, -0.653173, -0.634393, -0.615232, -0.595699, -0.575808,
-0.555570, -0.534998, -0.514103, -0.492898, -0.471397, -0.449611, -0.427555, -0.405241,
-0.382683, -0.359895, -0.336890, -0.313682, -0.290285, -0.266713, -0.242980, -0.219101,
-0.195090, -0.170962, -0.146730, -0.122411, -0.098017, -0.073565, -0.049068, -0.024541 }
textures/my/1
{
noshadows
noselfShadow
qer_editorimage textures/my/1.tga
surfaceparm lava
lightFalloffImage texture/my/1.tga
surfaceparm discrete
surfaceparm nonsolid
deform expand 4*sintable[time*0.5]
{
blend add
maskDepth
colored
nopicmip
map textures/my/1.tga
rgb (0.3 * sintable [0.2 + time ]) + 0.2
rotate time * -0.01
scroll time * -0.01 , time * -0.01
highquality
}

{
blend add
maskDepth
colored
nopicmip
map textures/my/1.tga
rotate time * 0.01
scroll time * 0.01 , time * -0.01
highquality
}
}


Первый блок - описание движения по синусоиде.
Второй - textures/my/1 - это файл моей текстуры и путь к нему, заметь, читатель, имя файла БЕЗ .tga! Дальше идёт строка noshadows - это значит, что на текстуру не проецируются тени,
noselfShadow - означает, что предмет с данной текстурой не отбрасывает тени,
qer_editorimage textures/my/1.tga - говорит, что картинка для Radiant'а,
surfaceparm lava - указывает параметр текстуры - лава - теперь модели попадающие на поверхность, затекстуриную этой текстурой, будут проходить сквозь неё, но это в альфе, скорее всего в полной версии ещё и будут отниматься жизни и свечение добавиться и ещё что нибудь, в общем на всё воля Адриана и Тима.
lightFalloffImage texture/my/1.tga - вроде, свет при падении на поверхность, затестуриную этой тестурой, на её внешний вид никак не влияет,
surfaceparm discrete - добавляет дискретность поверхности,
surfaceparm nonsolid - вторым образом указывает, что текстура не должна уметь взаимодействовать с предметами пересекающими её,
deform expand 4*sintable[time*0.5] - перемещение текстуры вверх, вниз, по синусоиде, далее идут операторные скобки "{" - начало создания нового слоя, я тут описания всех параметров не помню, сами покимарьте - поймёте,
map textures/my/1.tga - слой использует картинку из файла texture/my/1.tga, rgb (0.3 * sintable [0.2 + time ]) + 0.2 - балансировка цветов по синусоиде, короче - это не объяснишь, уберите её и увидите результат (экспериментировать будете, когда закончим),
rotate time * -0.01 вращаем картинку, с опред, скоростью,
scroll time * -0.01 , time * -0.01 - параметры вращения и временные параметры,
highquality - высокое качество текстуры, "}" - конец описания слоя,
"//" - комментарий, используется для того чтобы не удалять строку, а сказать компилятору, чтобы он её пропустил, например - если вместо highquality написать //highquality, то компилятор пропустит этот параметр и не установит качество текстуры на максимум, далее идёт описание второго слоя, аналогичного первому.


7)Идём в радиант(по нему я ещё буду отдельно вести разговор) делаем какую ни будь простую сцену с нашей текстурой.
8)Запускаем игру.
9)Игра сама создаст файл "d3t\textures\my\1_tga.d3t". этот файл и использует игра для отображения текстур. Помните, я начинал такую долгую прелюдию про NO SMOKING и всё такое? Так вот текстура у вас не менялась именно из - за этих *.d3t файлов.
10)Если вы подкорректировали вашу текстуру, то сначала сотрите "d3t\texture\1_tga.d3t", потом запускайте игру.

Точно такая же беда и со скинами (только не говорите, что не пытались подрисовать HellKnight'у улыбку), отличие в том, что после редактирования "шкурки", надо стирать файл в папке "d3t\models\monsters". К примеру вы отредактировали скин HellKnight'а (models\monsters\hellknight\hellknight.tga), тогда, чтобы изменения вступили в силу, надо стереть файл "d3t\models\monsters\hellknight\hellknight_tga.d3t".
Фуууу, отдышитесь, перечитайте, поэкспериментируйте.
Ну это пожалуй всё, что касается текстур. Я понимаю многое не понятно. МЫЛЬТЕ МНЕ!!!!!!!!! И я вам всё поясню.

Папочки или что где лежит.

Ну всем интересно ведь, что где лежит? Так вот, давайте посмотрим (все эти папки находятся в \base):

1) bumpmaps. Походу это bump - карты, которые используются для bumpmapping'а.
2) colors. Тут видать лежанка дефолтовых цветов, короче будет - чёрный, белый, красный, синий, зелёный, а может ещё что нибудь, или вообще удалят за ненадобностью.
3) d3t. Ненавижу эту папку, если хотите узнать, что это за папка читайте про текстуры и всё поймёте.
4) def. Люблю эту папку. Святая - святых дума. Тут находится всё, что оперирует с моделями, настройками монстров, орудий, игрока, NPC и даже Radiant'а. Со всеми файлами из этой папки мы будет общаться и говорить, причём на одном языке, но это будет в другой статье.
5) env. Пока что, здесь находятся файлы, которые имитируют отражение.
6) fonts. Шрифты и всё для них.
7) fx. Тоже крутая папочка, содержит описания того, где какие частицы находятся, как их отображать и т.п.
8) guis. Папка, файлы которой отвечают за интерфейс, глав. меню, вещи из игры (например дверь с кодовым замком).
9) lights. Папка содержит различные текстуры, используя которые можно создавать разные эффекты с источниками света в редакторе карт. Об этом будет подробнее сказано в статье, про редактор карт.
10) materials. Тут идёт описания всех текстур используемых игрой, читайте статью ТЕКСТУРЫ.
11) menu. А это не понятно что такое. Скорее всего будет содержать ролики и анимацию для главного меню.
12) models. Все модели всей игры.
13) particles. Описание всех частиц: кровь, дым после выстрелов, по какой траектории идёт полёт частиц, всё здесь описывается.
14) progs. Скрипты для карт.
15) scripts. Разные скрипты для запуска вспомогательных программ, типа Radiant'а, хотя кроме него больше никаких вспомогательных программ и нет, пока.
16) skins. Весьма смутная папочка. Как ясно из её названия - описание скинов. Мы ещё к ней вернёмся попозже.
17) ui. Что то вроде временной папки. Здесь хранятся прицелы, последние настройки редактора карт и всё такое.

Некоторых папок у вас может и не быть. Не пугайтесь, в этом нет ничего страшного.

Вот и всё на сегодня. Я конечно мог включить в эту часть и программирование своих монстров и то как кодить на QuakeC, и как работать с редактором карт, и то как импортировать свои модели из Maya, и ещё много всего, но просто думаю на первый раз достаточно. Ждите следующих материалов.



Другие материалы рубрики:




Комментарии

#1  Leon (-----.SPb.RU)   00:16  10.12.2003
Респект, супер, только я вот что-то не помню в твоем моде лавы, это где?

#2  Ctrelok (-----.sinor.ru)   11:42  10.12.2003
Полностью согласен с Leon по поводу статьи

#3  Beavis (-----.87.6)   14:10  10.12.2003
к чёрту статью.. дум3 давайте !!!

#4  yUAC (-----.57.58)   22:19  10.12.2003
Интересно...
Очень даже интересно... Особенно мне понравилось движение по синусоиде :)

#5  killer (-----.96.10)   00:06  11.12.2003
про мод и лаву
текстура там присутствовала, просто так называемые карты pump И lab, а также незаконченная карта UAC(FX меня убьет) должны были быть первыми тремя левелами, обьединенными в единый сюжет...

#6  [ss]3L33T@ (-----.csk.ru)   15:05  11.12.2003
Лава есть. А то что карт для неё нет, дык это уже ваши проблемы!

#7  [ss]3L33T@ (-----.csk.ru)   15:16  11.12.2003
2 WhiteFox
Ну зачем столько рассуждений убирать?

#8  Don (-----.50.164)   19:08  14.12.2003
Очень круто! Хотелось бы поскорее узнать
об экспорте моделей из Maya в Doom! :)
Вообще большой РЕСПЕКТ тебе за то что ты
делаешь!!! С нетерпением жду твоих следующих статей о Модинге!!!!!!!

#9  [ss]3L33T@ (-----.csk.ru)   05:38  15.12.2003
2 Don
Сегодня вечрком зашлю статью. Там будет про экпорт...

#10  Don (-----.50.164)   22:22  15.12.2003
[ss]3L33T@
Good! Жду с нетерпением

#11  Don (-----.50.164)   20:34  16.12.2003
[ss]3L33T@
Ну чаво там с статьёй то ? ;)

#12  Don (-----.50.164)   20:36  16.12.2003
[ss]3L33T@
Ну чаво там с статьёй то ? ;)
DarkSide2004@rambler.ru

#13  Процион (-----.diaspro.com)   20:51  16.12.2003
Кста, эта статья у меня за 1 день до релиза появилась:)

#14  Don (-----.50.164)   21:32  16.12.2003
Ребята вы чё издеваетесь!!! :)))

#15  [ss]3L33T@ (-----.DSI.ru)   04:27  17.12.2003
Процион тебе Бука послал? Ну хрен я кому ещё до релиза пошлю.
2 Don: статью уже выслал. Жди...

#16  FX (-----.sovam.com)   14:12  24.12.2003
Вот бы еще воду наклипать с шейдерком, но этого в альфе я не нашел. Кстати, как сделать чтобы лава не просто поднималась вверх вниз, а у нее были волны, анмация вертексов не работает, как это было в ку3, наверно, потому что будет все шейдерами заменено.

#17  [ss]3L33T@ (-----.sibron.ru)   07:03  25.12.2003
2 FX
Анимация наверняка уже есть, просто мы не знаем ключевого слова-комманды.

#18  SANYA (-----.kiev.ua)   18:33  10.07.2005
Нифига не пойму
В ваших статьях написано шо в папке base есть папки def и тому подобное но у меня есть только две папки savegames и maps а всё остальное - это файлики pak001.pk4 pak002.pk4 pak003.pk4 и так дальше.Объясните в чём тут дело?

#19  hll (-----.stv.ee)   15:22  29.09.2005
не катит
У меня такаеже лажа нет def и другой файлы . есть pak 001,pk4,pak 003,save games .а где другие файлы!если не влом поисни на мыло Zona14@mail.ru

#20  hll (-----.stv.ee)   15:26  29.09.2005
[ss]3L33T@ -респект за темы

#21  Stranger (-----.mtu-net.ru)   22:33  13.10.2005
Для тех, у кого pak4 файлы..
Вообще то в статье речь шла об альфе, а у вас релиз!!!
pk4 файлы - zip архивы. Просто рапаковываете, правите файлы по статье, запаковываете обратно.



Добавить комментарий
Имя - заполнять обязательно

Е-майл

Заголовок

Текст комментария - заполнять обязательно

Введите эти цифры в это поле.






Розовый





















Valuehost.Ru


Яндекс цитированияRambler's Top100Rambler's Top100
DOOM3 is a registered trademark of id'Software
Copyright 2002-2018 © Doom3.ru