В этой статье я расскажу начинающим мапперам как создать простую карту и поясню, как справиться с таким зверем как Doom Edit 1.0 (Radiant for Doom).
Собственно карта для Doom 3 создаётся очень просто, в сравнении с Q3Radiant редактор потерпел некоторые изменения, в основном в лучшую сторону, что облегчает работу по созданию карт.
Сегодня мы сделаем простую карту типа BOX с триггером (кстати, это и отличает Doom Radiant от Q3Radiant – постоянное использование триггеров). В данной статье я буду подразумевать, что вы имели дело с некоторыми редакторами (возможно, не такими серьезными (это не в Unreal Editor копошиться)), но пока только ели-ели разобрались, как запускать Radiant, и в общем ничего не знаете о работе с ним. Начнем с настроек. Для удобной работы в Radiant необходимо создать в папке Doom3/base файл “autoexec.cfg” с таким содержанием (или добавить в него эти строки, если файл уже есть):
seta r_mode "-1" //Выборочное разрешение
seta r_shadows "1" //Показывать тени
seta com_allowConsole "1" //Позволить вызов консоли через тыльду
seta com_showFPS "1" //Показывать частоту кадров
seta r_customHeight "576" //Выборочная высота
seta r_customWidth "720" //Выборочная ширина
seta r_fullscreen "0" //Оконный режим
seta win_timerUpdate "1" //Позволить обновлять окно при перемещении
seta win_viewlog "1" //Показать консоль в отдельном окне
seta win_ypos "100" //Позиция окна игры по Y
seta win_xpos "100" //Позиция окна игры по X
developer "1" //Режим девелопера
disconnect //Пропустить заставку ID
Затем делаем ярлык и в него дописываем “+Editor”, все редактор к работе готов, теперь у нас все под рукой. Для большего удобства можно сделать меню с ярлыками ко всем доступным редакторам в Doom3.
Для начала разберемся с управлением и горячими клавишами (просмотреть список которых можно в меню Help/Command list). Главное это камера, она перемешается клавишами Ctrl + MOUSE3, а указать её направление можно просто нажав в нужной точке MOUSE3 (это в подокне XY Top).
Для перемещения по оси Z нужно в окне Z, нажать Ctrl + MOUSE3. В подокне CAM управление происходит хоткеем(горячей клавишей) Ctrl + MOUSE2 (если просто зажать MOUSE2 то можно скролить вид сверху, ролик служит увеличением). Можно менять вид в окне посредством нажатия Change views на главном тулбаре. Вроде с камерой разобрались. По ходу создания карты будем знакомиться с новыми хоткеями, пока остальное не важно.
Итак, сначала мы сделаем пол. Для этого нажимаем клавишу 4 (выставляется размер сетки на 8) и MOUSE1 (создание и изменение размеров объектов происходит именно с её помощью). Рисуем в окне XY Top нечто похожее на квадрат, в подокне Z меняем его высоту в одну секцию и перемещаем до уровня розового куба, теперь кликаем по закладке Media в подокне Inspectors и подбираем подходящую текстуру в папке Textures.
Все текстуры более-менее удобно рассортированы по категориям, но всё же можно потратить достаточно много времени на поиск, поэтому сразу открываем Textures/textures/base_floor/a_bluetex1a_02 и не надрываемся, все текстуры, что мы выбрали или посмотрели автоматом добавляются в закладку Textures подокна Inspectors.
Теперь у некоторых чешутся руки запустить этот примитив, но нет, нужно на карту поставить хотя бы один источник света и место, откуда будет появляться игрок.
Нажатием клавиши Esc снимаем выделение с предмета (выделить обратно Shift + MOUSE1, причём можно также создать бокс, который будет касаться/быть внутри/обхватывать нужный для выделения объект и просто нажать на панели инструментов одну из кнопок, предназначенных для выделения), а удалить - Backspace).
Кликаем MOUSE2 по свободному пространству подокна XY Top и видим меню, в котором перечислены Entities (объекты) имеющиеся в игре (пояснять значения всех объектов я не буду, поскольку это очень долго, но выставить необходимые и узнать доступные параметры и описания данного объекта мы можем в закладке Entity подокна Inspectors).
Нам необходимы info/info_player_start (место откуда появится игрок в сингле) и light (свет). Создаем info_player_start и ставим его над нашим боксом, который служит полом. Переходим в закладку Entity и кликаем по кнопке 90, тем самым, выставляя угол появления. Можно также изменить параметр Name на более пристойное, но это так, для тех кто любит порядок, к объектам используемым на карте только один раз можно не выставлять нормальное имя.
Теперь делаем свет, опять MOUSE2/light и располагаем его по центру нашего бокса, слегка выше уровня info_player_start. Сохраняем карту в папке Doom3/base/maps c именем “test_map” и компилируем её. Делается это просто – BSP/bsp noflood. Можно и просто bsp, но если карта вышла глюкавая и имеет “лэки” (leaks), то она не скомпилируется.
Затем bsp/bspext (сейвимся еще раз – на всякий случай). Теперь нажимаем F2 и появляется жутко тормозящее окошко Doom3, в консоли печатаем “map test_map” и ENTER. Ждем загрузки, и “О чудо, оно работает!” (или не работает, в зависимости от кривости ваших рук):
Теперь, возвращаемся в Radiant (жмем тильду и кликаем по окну Радианта, если просто закрыть окно дума мы убьем его навсегда, и через F2 оно больше не появится) и доделываем карту – добавляем света, создаем стены, потолок, вставляем модель лампочки. Делаем небольшой коридор со ждущим нас Импом (причем затриггеренным на появление из-за угла). Приукрашиваем карту кровищей и трупами, а также добавляем фоновую музыку.
Возникает вопрос: “Как это все сделать? Старик ты что шутишь, сказал пару слов и лезешь на сосну без объяснений!”, “НЕТ!” – сказал нервный iMiceman, сейчас все по порядку (кстати, текстуры лучше будет изменить при клонинге, потому что та, которую выбрал я, не очень вписывается, можно к примеру поставить плитку из папки washroom):
1. Делаем пол для нашего коридора – выделяем его, и клонируем клавишей SPACE, изменяем размер, и ставим на право от игрока;
2. Создаем стены – 8 раз клонируем наш пол, изменяем размеры, расставляем стены (да, и лучше, чтоб они не пересекались друг с другом и полом), далее клонируем наш источник света и добавляем его в коридор, потолок создадим в последнюю очередь, чтобы не мешал выделять объекты;
3. Звук, монстр, триггер – Нажимаем MOUSE2/speaker, переходим в закладку Entity, в поле Key вписываем s_shader (звук который будет играть из этого источника). Для выбора звука кликаем по кнопке Sound… и выбираем нужный звук, например Sound Shaders/sound/music.sndshd/admin_haunted_office – вот вам и нервная фоновая музыка. В поле Val можно просто прописать admin_haunted_office. Затем выставляем параметр s_looping на 1, и s_volume на 1. Если вы не хотите пускать музыку через speaker, то можно создать MOUSE2/worldspawn и в нем выставить параметр music.
Звук есть, теперь, делаем триггер и монстра. Триггер – MOUSE2/trigger/trigger_once, делаем его размером со стену, что перед игроком, и ставим перед ним. У триггера выставляем параметр target, а значение – imp1.
Теперь делаем монстра. MOUSE2/monster/monster_demon_imp, ставим его на пол и перемещаем в коридор. Теперь выставляем параметры (параметр - значение):
name – imp1 (имя к которому обращается триггер при активации),
angle – 315 (угол, направим его к стене, чтоб он выпрыгнул боком),
trigger – 1 (появляется и делает on_activate по триггеру),
on_activate – evade_right (список доступных анимаций рядом в листбоксе, можно заодно посмотреть превью нажав Play)
Удаляем параметр anim (можно оставить, но он не востребован), и слегка расширяем коридор – Имп немного толстоват – может врезаться в стену.
4. Прибамбасы, изменяем текстуры на приличные, добавляем потолок – создаем бокс, в списке текстур находим кровь (*splat* и т.д.), натягиваем, подгоняем размер, кликаем в меню по Patch/Simple Patch Mesh, жмем SHIFT + 2 (уменьшаем сетку), слегка повышаем уровень нашей крови над полом, чтоб не было пересечения, жмем 4 (нормальная сетка).
Ресайзим кровищу на вкус, клонируем, меняем текстуры, короче закровавливаем карту. Добавляем для разнообразия какие-нибудь модели (MOUSE2/New Model), …добавляем шотган (MOUSE2/weapons/weapon_shotgun), …добавляем рагдолл толстого зомби MOUSE2/env/env_ragdoll_fatty (я добавил еще один - poppy). Меняем текстуры на пригодные из папки washroom.
Добавляем потолок, клонируя пол и поднимая его до нужного уровня, и ставим приличную текстуру. Добавляем через MOUSE2/New model… модель лампы и цепляем над потолком.
Выставляем небольшой light_radius у света (примерно, 200 200 200), делаем различные примочки (MOUSE2/New model…) по вкусу
Вот и все