Создание объектов в Doom: базовый гайд по Decorate
Второй урок по моддингу, на этот начнем с самого начала!
Всем привет! Сегодня мы разберем, как делать моды для DooM. Это намного проще, чем многие себе представляют 😎
Для начала нам нужно установить редактор модов Slade. Скачать его можно тут.
Выбираем нужную вам версию: 32 или 64bit (в зависимости от операционной системы), формат установки .exe или .7z (.exe – установщик, .7z – архив с уже установленной софтиной).
Установив программу, должно появиться 3 файла:
Нужно запустить Slade.exe, тогда откроется такая программа:
У вас вид проги должен отличаться тем, что не будет внизу уведомления об обновлении (это мне лень обновлять), и не будет кучи строк с файлами – они появятся, когда вы будете редактировать моды. Жмем Create New Archive.
Дальше из списка выбираем Doom Wad Archive, и жмем Create. Теперь Slade будет выглядеть так:
Следующим шагом нам нужно нажать на эту кнопочку:
В открывшемся окне пишем DECORATE (можно не заглавными буквами, но оно автоматически исправится на заглавные), и выбираем тип файла Text.
А теперь подробнее о том, что такое Decorate (по-русски декорейт) – это текстовый файл, который определяет акторов (объекты на уровне). Изначально его сделали, чтобы создавать декорации (откуда и пошло название), но его функционал расширился до создания новых монстров, вооружений, предметов, и вообще почти всего чего угодно; декорейт имеет собственное расширения файла .dec.
В этом уроке мы разберем базовый синтаксис на примере синего факела:
Код всех акторов из игры без модов можно взять на ZDoom Wiki. А конкретно наш факел называется 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 – ключевое слово, проигрывает стейт снова.
Что ж, разобрались с примером декорации, теперь создадим свою.
В качестве примера будет бочка с трещинами. Скачиваем файл отсюда.
Теперь, прежде чем залить файл с изображением в WAD, нужно создать маркеры для обозначения спрайтов.
Жмем на ту же кнопку, через которую создавали файл с кодом, и пишем в окне SS_START.
Потом делаем аналогично, но пишем SS_END.
Теперь перетаскиваем в список файлов картинку с бочкой, и с помощью клавиш CTRL+U / CTRL+D перемещаем его так, чтобы он находился между этих двух маркеров.
Должно получиться вот так:
В файле Decorate пишем:
Разберем данный код:
- ACTOR Barrel12 – тут я определил имя спрайта, я выбрал Barrel12, так как оно не занято.
- Radius 10 и Height 42 – хитбокс в ширину и в высоту соответственно, я выбрал те же значения, что и у обычной бочки.
- +SOLID – тот же флаг, что и у факела, объект является твердым, и сквозь него нельзя пройти.
Дальше поменялась только строка, в которой описаны действия предмета: тут у него 1 кадр и с другим названием. Длина кадра не имеет значения, ведь он только один и зацикливается.
Когда мы ввели код, можно сохранять файл и входить в игру.
Зайдя в игру, нужно открыть консоль и ввести команду Summon Barrel12.
И мы увидим такой результат:
Все готово! Декорация работает! До скорых встреч, скоро будет продолжение!
Ответ на пост: Modeldef – модели в GZDoomПосты по теме