WorldCraft

Руководство по Worldcraft

В данной статье описывается работа с редактором 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 просто так валяться на улице.

Сайт управляется системой uCoz