В этой статье я расскажу начинающим мапперам как создать простую карту
и поясню, как справиться с таким зверем как
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.
После запуска Radiant выглядит так:
Для начала разберемся с управлением и горячими клавишами. Посмотреть
список доступных горячих клавиш можно в меню 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…) по вкусу и получаем в итоге
(в моем итоге, я много чего изменил для того чтоб сделать карту более-менее
приличной, например, изменил анимацию импа, теперь он кушает тётю, а при
активации триггера невозмутимо встает, подходит и разбивает нам лицо, добавил
кучу моделей для красоты, сделал за стеной боксы (иначе можно было пролететь
через стену из-за пересечений)):
Скриншот из игры:
Все, карта готова, надеюсь мой краткий туториал поможет начинающим мапперам.
Если что-то не получается то скачайте мою карту и проверьте что у вас не
так: test_map.rar, или мыльте на iMiceman@mail.ru
(по дельным вопросам, вопросы типа: "У меня нет третьего батона на мышке,
что делать?" не воспринимаются :D).