В данной статье описывается работа с редактором Worldcraft. Редактор поставляется
вместе с лицензионной версией Half-Life и доступен для скачивания на сайте
http://halflife.gamedesign.net (полный линк к файлу дать не могу, так как его
местонахождение на ftp периодически меняется).
Кроме Worldcraft для HL существует еще некоторое количество редакторов
(QERadiant, Qoole, Quark, Therd и прочие.) Их рассматривать мы не будем. Хотите -
скачивайте, пробуйте... Все ссылки можно найти на www.gamedesign.net.
Принципы и понятия
Интерфейс Worldcraft напоминает 3dMax, разве что расположение окон по умолчанию
немного другое
1 - Вид сверху (XY);
2 - Вид спереди (XZ);
3 - Вид сбоку (YZ);
4 - 3D Preview - примерно так будет выглядеть ваше творение в самой игре.
Итак, делаем первый шаг. Выбираем подходящую текстуру (в окне справа). Включаем
Block tool (Shift+B) и рисуем параллелепипед. Удовлетворившись его размерами,
нажимаем Enter. Вот и наш первый объект (браш). Пусть это будет пол. Выбираем
другую текстуру, делаем таким же образом стены и потолок. Вот и готова наша первая
комната!
Сделать комнату можно и более простым образом: создаем довольно большой браш,
выделяем его и делаем 'hollow' (все команды доступны с правой кнопки). Чтобы
вырезать с помощью одного браша дырки в другом, выделите его и сделайте 'carve'.
Entities
Действующие объекты. Делятся на Point entities - объекты, заранее созданные
разработчиками (монстры, аптечки, источники света, оружие), и Solid entities -
созданный вами браш с назначенными свойствами (дверь, лифт, стекло). Начнем с
самого основного - с точки старта, без нее уровень просто не запустится. Врубаем entity
tool (Shift+E), в менюшке справа выбираем 'info_player_start', выбираем место, где хотим
его поставить, и давим Enter.
Точно таким же образом создаем источники света (а то в темноте бегать, согласитесь,
немного стремно). Выбираем в меню 'light' и размещаем его там, где, по вашему мнению,
должно быть светло. Выделив созданный объект и нажав Alt+Enter, можно настроить
его свойства (для каждой entity они свои, например, для источника света это яркость и
цвет).
Для полного счастья сделаем еще и дверь. Выбираем подходящую текстуру, создаем
браш, выделяем его, кликаем 'to entity' и в появившемся меню выбираем 'func_door',
назначаем свойства (скорость, направление, в какую сторону дверь будет открываться,
звук, с которым она будет двигаться, и прочие ее характеристики).
Теперь разложим оружие и расставим заложников. Все делается точно так же, как и в
случае с источниками света.
Связи между объектами
Для этого служат пункты name и target в свойствах объектов. Объясню на простом
примере.
Допустим, вам надо, чтобы при нажатии кнопки открывалась дверь. Создаем дверь, в
пункте name у нее пишем, допустим, door1. Далее создаем кнопку (func_button), в
пункте name у нее не пишем ничего, но в пункте target пишем имя двери (в данном
случае door1).
Объекты типа 'env'
Как правило, это мелкие события, осуществляемые посредством спрайтовых объектов
и звуков. Используются исключительно для красоты. Например, при включении
'env_spark' появляются трещащие искры, а 'env_explosion' создает взрыв, а 'env_sound'
управляет акустикой помещения. Чаще всего для активизации таких объектов
используются триггеры...
Триггеры
Невидимые объекты, которые управляют другими, видимыми объектами. Триггеры
делятся на solid и point. Чаще всего используются 'trigger_once' и 'trigger_relay'
Пример первый: вам хочется, чтобы при прохождении через определенное место
неожиданно раздавался взрыв. Создаем env_explosion, называем его некоторым именем
(как в случае с кнопкой и дверью). На том месте, при проходе через которое должно
рвануть, создаем браш и превращаем его в 'trigger_once', лезем к нему в самые properties
и в поле target пишем имя, которым мы наградили env_explosion.
А теперь о применении trigger_relay (прошу заметить, это point entity, грузится оттуда же,
откуда оружие и монстры). Например, нужно, чтобы через некоторое время после
взрыва прозвучал еще один. Создаем второй взрыв, называем его другим именем,
создаем trigger_relay, называем его тем же именем, что и первый взрыв, а в target пишем
имя второго взрыва. В поле delay пишем время в секундах (промежуток между в
зрывами). Все!
Декали
Это такие специальные текстуры, которые хранятся в файле decals.wav. Использовать
их можно только накладывая поверх других текстур. Включаем decal tool, выбираем
текстуру из decals.wad и в окне с 3d preview наклеиваем туда, куда хотим. Набор декалей
довольно ограничен. В основном это следы от взрывов, трещины, брызги крови и
различные надписи. Раз уж речь зашла о текстурах, то позвольте также рассказать про
фичу texture application. Врубается соответствующей кнопкой и действует следующим
образом. Допустим, у вас есть куб. Вам надо, чтобы на одной плоскости была одна
текстура, а на другой - другая... Пользуясь вышеназванной фичой, выбираем в
появившемся окне нужную текстуру и кликаем правой кнопкой на плоскость, куда
хотим ее прилепить. Так вот...
Компиляция
А теперь посмотрим, как выглядит то, что вы натворили!
Жмем F9 или кнопку с геймпадом на верхнем тулбаре, появится окно с опциями
компиляции.
Для предварительного просмотра выбираем: qbsp - normal, qrad - normal, qvis - no.
После нажатия OK появится окно с процессом компиляции... Чем уровень больше,
тем дольше он компилируется (полная компиляция большого уровня может занять
несколько часов). Если все нормально, то через некоторое время должна запуститься
сама игра с вашим уровнем.
Уровень может не откомпилироваться (или откомпилироваться, но не полностью) по
нескольким причинам:
- если в уровне есть дырки в окружающее пространство (так что старательно следите за
герметичностью уровня);
- если какой-то из объектов (entity) полностью или частично находится внутри браша
(особенно в этом плане привередливы источники света);
- если на уровне отсутствует info_player_start;
- если на уровне слишком много мелких или плоских брашей (при компиляции обычно
проскакивает сообщение о количестве таких деталей и о их возможном максимальном
количестве). Кстати, если у вас что-то вызывает сомнение, то бывает полезно нажать
Alt+P - тогда редактор проверит уровень и укажет места с возможными ошибками
(самая распространенная - invalid brush).
Несколько полезных советов
Следите, чтобы уровень был выдержан в одном стиле. Погуляйте по стандартным
уровням с включенными god и notarget и внимательно рассмотрите архитектуру.
Обращайте внимание, где и как используются текстуры.
Определитесь с тематикой уровня. Что это будет - завод по переработке радиоактивных
отходов или военная база? Не перестарайтесь с использованием prefabs (готовых
объектов)... Поверьте, очень убого смотрятся поделки горе-дизайнеров (в основном
американских), сплошь заставленные диванами, унитазами и газонокосилками...
Следите за реалистичностью. Стены из воды - вечная проблема начинающих
левелмейкеров (они думают, что это круто). Оружие также должно быть разложено
с умом. Не будет же egon просто так валяться на улице.