Создаем свои объекты в игре. (Гайд по моддингу, Decorate)
Второй урок по моддингу, на этот раз решил начать с самого начала.
Всем привет! Сегодня мы разберем как делать моды для DooM. Это намного проще чем многие себе представляют :)
Для начала нам нужно установить редактор модов - Slade. Скачать его можно тут.
Выбираем нужную вам версию: 32-64bit (в зависимости от операционной системы) exe-7z (exe - установщик, 7z - архив с уже установленной версией)
Установив, должно появится 3 файла:
Нужно запустить Slade.exe. Тогда откроется такая программа:
У вас оно должно отличаться тем, что не будет внизу уведомления об обновлении (это мне лень обновлять) и не будет кучи строк с файлами - они появятся когда вы будете редактировать моды. Жмем create new archive
Дальше из списка выбираем Doom wad archive, и жмем Create. Теперь Slade будет выглядеть так:
А нажать нам нужно на эту кнопочку:
В открывшемся окне пишем DECORATE (можно не заглавными буквами, но оно автоматически исправится на заглавные), и выбираем тип файла Text.
А теперь подробнее о том что такое этот decorate:
Decorate, в русском часто называют декорейт, это текстовый файл который определяет акторов (объекты на уровне). Изначально его сделали чтобы создавать декорации (откуда и пошло название), но его функционал расширился до создания новых монстров, оружий, предметов, и вообще чего угодно (почти). Имеет собственное расширения файла .dec.
В этом уроке мы разберем базовый синтаксис на примере синего факела:
Код всех акторов из игры без модов можно взять на ZDoom вики
А наш факел называется BlueTorch
Вот его код:
ACTOR BlueTorch { Radius 16 Height 68 ProjectilePassHeight -16 +SOLID States { Spawn: TBLU ABCD 4 Bright Loop } }
Переведем из кода на русский:
ACTOR Bluetorch - Actor - создать актора, Bluetorch - имя актора
{ - скобка открывается, тут начинается определение параметров актора.
Radius: основной параметр, обозначает хитбокс актора в ширину
Height: основной параметр, хитбокс актора в высоту
ProjectilePassHeight: хитбокс актора в высоту для пролетающих прожектайлов (снарядов), тут оно в негативном значении, это разберем позже, когда будем разбирать параметры полностью.
+SOLID - флаг, + означает что включен, SOLID - флаг обозначающий то что предмет "материальный"
States { - тут начинается определение исполняемого кода.
Spawn: - имя стейта который начинается со спавна актора. Стейт - группа функций.
TBLU ABCD 4 Bright - TBLU - имя спрайта, про это будет урок позже. ABCD - кадры, 4 - количество тиков на кадр. Bright - значит спрайт будет всегда ярким. То есть мы говорим актору: выгляди как TBLU в состояниях A, B, C, D, в течении 4 тиков каждое.
Loop - ключевое слово, проигрывает стейт снова.
Чтож, разобрались с примером декорации, теперь создадим свою.
В качестве примера будет бочка с трещинами.
Скачиваем файл отсюда
Теперь, прежде чем залить файл с изображением в вад, нужно создать маркеры для обозначения спрайтов.
Жмем на ту же кнопку через которую создавали файл с кодом и пишем в окне SS_START
Потом делаем также, но пишем SS_END
Теперь перетаскиваем в список файлов картинку с бочкой, и с помощью клавиш CTRL+U / CTRL+D перемещаем его так, чтобы он находился между этих двух маркеров.
Должно получиться вот так:
ACTOR Barrel12 { Radius 10 Height 42 +SOLID States { Spawn: BLRF Y 1 Loop } }
Разберем данный код:
ACTOR Barrel12 - тут я определил имя спрайта, я выбрал Barrel12 так как оно не занято.
Radius 10 и Height 42 - хитбокс в ширину и в высоту соответственно, я выбрал те же значения что и у обычной бочки.
+SOLID - тот же флаг что и у факела, объект является твердым и сквозь него нельзя пройти.
Дальше поменялась только строка в которой описаны действия предмета - тут у него только 1 кадр и с другим названием. Длина кадра не имеет значения, ведь он только один и зацикливается.
Когда мы ввели код, можно сохранять файл и входить в игру.
В игре нужно открыть консоль и ввести
Summon Barrel12
И мы увидим такой результат:
Все готово! Декорация работает!