Ru/L4D Level Design/Your First L4D Level

__TOC__
 - простая 3D фигура созданная с помощь инструмента Block Hammer'а. Браши используются для создания больших поверхностей в вашем уровне, таких как потолки или полы. Мы создадим простую комнату используя браши.
== Создание брашевого пола ==
# На панели Tool слева выберите .
# Щелкните левой кнопкой мыши, и не отпуская, переместите курсор мыши в окно 2D проекции Top затем переместите курсор направо и вниз.
# При перемещении вы увидите пунктирную обводку квадрата или прямоугольника.
# Создайте квадрат 512x512 юнитов и отпустите левую клавишу мыши.
# Нажмите на вашей клавиатуре для создания нарисованного браша.
Вернитесь в режим выделения, нажатием на иконку на панели Tool или нажмите клавишу .
В режиме выделения, при выбранном браше, вы можете изменять размер браша нажатием на левую клавишу мыши по любому из квадратиков, расположенных по краям браша, и перемещением их.
Давайте уменьшим толщину браша (который мы используем в качестве пола) с 64 юнитов по умолчанию до 16. Для того чтобы сделать это, нам нужно сменить размер сетки.
=== Сетка ===
Сетка отображается во всех 2D окнах проекции. По умолчанию, все объекты привязываются к сетке. Несмотря на то что вы можете отключить это, лучше не делайте этого так как это предотвращает лики и другие ошибки на вашей карте.
По умолчанию, размер сетки равен 64 юнитам, которую показывают линии каждые 64 юнита. Размер сетки показывается в панели статуса внизу окна Hammer.
* Нажатие на Smaller Grid сделает сетку мельче, для более высокой точности. Вы также можете уменьшить размер сетки нажатием на клавишу 
* Нажатие на Latger Grid сделает сетку крупнее, для более легкого перемещения. Вы также можете увеличить размер сетки нажатием на клавишу 
Для того, чтобы уменьшить сетку до 16 юнитов, нажмите дважды на клавишу . Посмотрите на Status bar внизу справа окна Hammer и удостоверьтесь в наличии Grid: 16. Если это не так, нажмите на или .
=== Изменение размера пола ===
Сейчас сетка должна быть мелкой. 
Переключитесь на правое нижнее окно проекции. Оно должно называться Side при наведении на него мышью. Переместите верхний край браша вниз до толщины 16 юнитов.
=== Перемещение брашей ===
Вы можете перемещать браши после того как Вы их создали. Выберите и направьте мышь на браш одной из 2D окон проекций, держась на расстоянии от угловых маркеров. Указатель примет форму четырех стрелок, направленных во все четыре стороны , означающих включение опции перемещения объекта. 
Кликните и начните двигать браш в одном из 2D окон. Пока кнопка не отпущена, браш будет перемещаться в соответствующую позицию.
Кроме этого, вы можете двигать объекты с помощью стрелок на клавиатуре. Для этого нам нужно установить клавиши, которые планируем использовать в настройках:
# Нажмите меню Tools, выберите Options, далее Configure Hammer.
# Кликните на 2D Views.
# Там есть много других полезных настроек, но нам пока интересен только пункт Arrow keys nudge selected object/vertex.
# Нажмите OK чтобы подтвердить изменения и выходите из настроек.
Теперь передвинем браш пола на 16 юнитов ниже, установив курсор мыши на окно проекции Side и нажав один раз.
== Навигация в 2D вьюпорте ==
* Вы можете использовать полосы прокрутки для перемещения вида
* Для более быстрого перемещения, зажмите и кликните левой клавишей мыши для перемещения.
* Используйте колесико для изменения масштаба.
== Покрытие текстурами ==
Чтобы смотреть текстуры в 3D вьюпорте, кликните правой клавишей мыши на camera в 3D вьюпорте и выберите 3D Textured.
=== Навигация в 3D вьюпорте ===
Перемещения в 3D немного отличаются от перемещений в 2D проекции:
* Удерживая и левую кнопку мыши, подвигайте курсором чтобы осмотреться.
* Удерживая и правую кнопку мыши подвигайтесь вверх/вниз и вправо/влево.
* Удерживая и обе кнопки мыши двигайтесь вперед и назад.
* Кроме этого вы можете использовать , , , и чтобы двигаться вперед, назад, стрейф влево и стрейф вправо соответственно.
* Включает и выключает режим "mouse look". Передвиньте курсор в 3D Camera и нажмите клавишу . Теперь вы можете оглядеться вокруг как в игре.
Поместите курсор в окно 3D Camera и взгляните на пол, который только что создали снизу.
Вы заметите, что на вашем полу стандартная текстура. Возможно вам захочется сменить ее. Чтобы поменять текстуру выберите кнопку Browse на вкладке Texture.
Должно открыться окно Texture Browser.
В поле Filter внизу окна просмотра, вы можете фильтровать текстуры по их имени. В этом уроке введите слово "dev_measure" (со знаком подчеркивания) в поле. Откроется список текстур "разработчика", которые облегчат быстрое создание чего-нибудь.
Теперь, найдите текстуру с именем dev/dev_measuregeneric01b и дважды кликните на ней.
Мы должны вернуться в экран редактора с 4-мя видовыми окнами, при этом выбранная текстура будет отмечена как текущая в 
Texture секции.
Выберите браш пола (если он еще не выбран), кликнув по нему в видовом окошке Camera. Он должен покраснеть.
После того как вы выделили браш, кликните на Apply current texture иконку на Tool секции чтобы применить текущую текстуру на выделенном объекте. Выбранная серая текстура должна появится на выбранном объекте (как показано на рисунке). Не расстраивайтесь, если Вы видите розовую текстуру. Это потому что текущий объект выбран. Щелкните ЛКМ на пустом месте, тем самым убрав выделение и увидите текстуру в оригинальном цвете.
== Создание стен и потолка ==
Теперь давайте узнаем как создавать стены и потолок в комнате. Легчайший путь чтобы сделать это, это сделать копию браша пола. 
=== Копирование ===
Так же, вы можете скопировать текущий brush(созданный пол).
Чтобы клонировать браш:
# Выберите браш, кторый Вы уже создали.
# Передвиньте курсор в правое нижнее окошко просмотра Side.
# Удердживая нажмите чтобы создать копию и переместить её на одну позицию в сетке.
Это создаст браш, который является копией уже созданного браша пола.
С этого момента Вы можете изменять размер и габариты созданного браша, удерживая левой кнопкой мыши и перетаскивая бегунки по краям браша, таким образом меняя браш до нужного Вам размера. Создадим стену размером 128 юнитов в высоту и 16 в толщину.
Продублируйте стену 3 раза, чтобы очертить контур пола.
Продублируйте пол один раз и перетащите его вверх, чтобы сделать потолок.
== Удаление брашей ==
Для удаления браша, выберите его с помощью и нажмите клавишу .
== Групповое выделение ==
Такую картину Вы увидите в окне камеры, если перетащите её в комнату. Трудно сразу сказать что где, поскольку стены, пол и потолок имеют общую текстуру. Следующим шагом наложим на стену другую текстуру.
Вы можете выделять все стены, удерживая клавишу и выделяя желаемые, кликая левой кнопкой мыши в окне камеры. Используйте для управления камерой (или переключитесь в режим управления мышью нажатием ) для поворота камеры, чтобы выделить каждую стену.
После того как Вы выделите все стены, кликните на меню Browse в разделе Texture. На этот раз выберите оранжевую текстуру под названием dev/dev_measuregeneric01, которая находится рядом с текущей. Выберите её двойным кликом и закройте окно поиска.
Используйте в разделе Tool, чтобы наложить оранжевую текстуру на стены.
== Сохранение файла ==
Чтобы сохранить карту, используйте комбинацию клавиш + или опцию Save в меню File.
Необходимо наименовать файл и указать директорию сохранения.
Для этого урока назовите карту "tutorial01" и сохраните её в директорию mapsrc, находящуюся по умолчанию в:
 C:\Program Files\Steam\steamapps\common\left 4 dead\sdk_content\mapsrc\
На Вашем ПК директория может находиться в другом месте, в зависимости от местонахождения Steam'а.
== Инвентарные карты-образцы ==
При сохранении Вашей карты Вы могли заметить и другие папки в директории mapsrc. В Left 4 Dead Authoring Tools включены карты-образцы для освоения.
Directory 	Contents
mapsrc\No Mercy Apartments 	Содержит карту-образец из кампании "Нет Милосердию", которая входит в Left 4 Dead.
mapsrc\standards 	Демонстрирует карты, которые содержат множество деталей для игры в кооператив и сражение.
mapsrc\Your_First_L4D_Level_Tutorial	Содержит завершённые версии всех частей данного руководства.
mapsrc\zoo 	Карты "стилизованные" под просёлочные и городские типы карт из Left 4 Dead.
Время от времени, учебник будет отсылать Вас к различным картам из этих директорий.
== Размещение объектов ==
Далее, мы поселим живое существо в Наш уровень:
# Выберите на Tool панели.
# Как только станет доступно, список выбора Entity на панели Object станет активным.
# Оставьте Categories как Entities.
# Кликните стрелку на выпадающем списке Objects и выберите .
# Теперь перейдите в окошке просмотра Camera на центр внутри вашей комнаты.
# Клик левой кнопкой чтобы разместить нашего персонажа.
Объект будет размещён посреди комнаты.
Стандартная модель для - Фрэнсис. Он - самый высокий персонаж(из Выживших) в Left 4 Dead. Эта модель пригодится вам для проверки и подгонки размеров окружения.
=== Размещение источников света ===
Поместим источник света на Нашу карту:
# Снова выберите 
# Выберите light в выпадающем списке Objects на панели Object.
# в этот раз, поместите источник света на потолок (над головой Фрэнсиса).
# Вернитесь в режим выбора нажатием на на панели Tool или нажатием клавиши .
Следующим шагом изменим некоторые параметры этого источника. Откройте параметры источника двойным кликом ЛКМ в окне камеры или выберите его (кликом ЛКМ) и нажмите комбинацию +. Откроется окно Object Properties.
В окне Object Properties, Вы можете изменять различные параметры объекта.Например, Вы можете изменить Brightness(Яркость) источника. Кликните на строчку Brightness(Яркость) под Keyvalues и увидите набор чисел в выпадающем списке справа. По умолчанию яркость имеет такие настройки - 255 255 255 200. Первые три числа отвечают за значения(цвета) RGB, а четвёртое за интенсивность(яркость) источника света. 
Кликните на опцию Pick Color, чтобы выбрать цвет, избегая ввода значений вручную.
Кликните на желаемый цвет и нажмите на кнопку OK.
Вас вернёт к окну Object Properties для источника света. Вы увидите изменения яркости в строке Brightness и в выпадающем списке справа от строки, если она выделена.
Кликните на Apply(Применить), чтобы применить Ваши изменения к объекту. Закройте окно нажатием на "X" в правом верхнем углу.
=== Размещение статичных объектов - prop_static ===
Объекты также состоят из таких предметов как: элементы интерьера, составные части архитектуры зданий и т.д.. Существует множество различных категорий объектов. Объекты категории Prop_static - это статичные объекты, они не приводятся в движение, не имеют анимации, с ними нельзя взаимодействовать. Существует категория динамичных объектов prop_dynamic, которые приводятся в движение, имеют собственную анимацию и с ними можно взаимодействовать. Также существуют категория объектов с игровой физикой - prop_physics, которые подчиняются законам внутренней игровой физики схожей с физикой реального мира, и, с которыми персонаж может взаимодействовать.
Чтобы поместить предмет:
# Снова выберите .
# На панели Object выберите в поле Objects значение prop_static.
# Наведите курсор на пол перед моделью Фрэнсиса и поместите prop_static кликом ЛКМ. Появится красный куб - это стандартная "модель" prop_static, которая меняется при выборе новой модели.
# Вернитесь в режим выбора нажатием на на панели Tool или нажатием на клавишу .
# Двойным нажатием ЛКМ на красный куб откройте окно параметров предмета.
# Двойным нажатием ЛКМ на World Model(Модель) откройте окно Model Browser(Поиск модели).
=== Выбор модели ===
# В поле Filter внизу окна, введите "table". Будут показаны все модели со словом "table" в названии.
# Найдите модель под названием:
#: "props_furniture\it_mkt_table2.mdl".
#: Она должна выглядеть как на скриншоте.
# Кликните OK, чтобы выбрать её. Вернитесь в окно Object Properties. В строчке World Model должно быть название выбранной модели.
# Кликните по Apply, чтобы применить изменения.
# Закройте окно Properties.
В любом вьюпорте Вы увидите выбранный Вами стол.
== Перемещение объектов ==
Любые объекты можно перемещать таким же образом, как Мы перемещали ранее браши. Выделите мышкой область в которой находится объект. Выделенный объект можно передвигать при помощи зажатой ЛКМ или, наведя курсор на любой из вьюпортов, передвигать объект с помощью стрелок на клавиатуре. 
Переместите стол в угол Нашей комнаты. Убедитесь, в том, что стол касается пола.
== Вращение объектов ==
Следующим шагом Мы поместим на стол помповое ружьё и повернём его таким образом, чтобы это выглядело естественно.
Кликните по на панели Tool.
Выберите weapon_pumpshotgun_spawn в выпадающем списке под панелью Objects.
Кликните на пол под столом, чтобы поместить туда ружьё.
Чтобы вращать объект, выберите его при помощи и кликните на него. Бегунки по углам объекта сменятся на круги. Наведите курсор на круг в любом 2D вьюпорте и поверните объект, удерживая ЛКМ.
Дайте крупный план помпового ружья во вьюпорте Front, используя колесо мыши, и кликните на его модель, чтобы бегунки по краям сменились на круги.
Удерживая ЛКМ, поверните ружьё против часовой стрелки таким образом, чтобы оно лежало на боку.
Дайте ружьё крупным планом во вьюпорте Side и нажмите на 4 раза, чтобы уменьшить размер сетки. Переместите ружьё вплотную к столу, но не переусердствуйте, поскольку ружьё может застрять в модели стола.
Во вьюпорте Top перейдите в режим вращения модели ружья. Вращайте его против часовой. Ружьё выглядит на столе естественнее, когда оно почти параллельно длинному ребру стола.
Таким образом, ружьё теперь доступно в игровом режиме.
== Развитие карты ==
Используя дублирование, изменение(размеров) и перемещение брашей уже созданной комнаты, Вы можете соорудить коридор, ведущий в другую комнату, и саму вторую комнату.
Не забудьте прорубить проходы в обоих комнатах.
Также можно продублировать источник света из первой комнаты и поместить его в середину второй.
Когда создадите коридор и вторую комнату, сохраните карту, назвав её "tutorial01.vmf". Или просто кликните на Save в меню File, если ранее уже сохраняли карту.
== Добавление начальной позиции Игрока ==
Последним шагом добавим объект player start, чтобы протестировать карту. Это точка респауна Игрока в начале карты.
# Выберите на панели Tool.
# Выберите в выпадающем списке Objects.
# Переместите камеру к модели Френсиса в 3D вьюпорте.
# Кликните ЛКМ на пол, чтобы поместить player_start.
В общем-то конкретное положение начальной позиции не играет роли, важно само нахождение объекта в комнате. Вы также можете повернуть этот объект: Игрок будет спауниться в комнате лицом в указанное направление.
== Запуск карты в игре ==
Вы уже сохраняли карту ранее, но для игры на ней её нужно скомпилировать. Иначе движок игры не сможет её запустить.
После компиляции формат конструктора .VMF конвертируется в игровой формат .BSP. Компилятор прорисовывает всю геометрию и высчитывает тени и освещение.
* Откройте меню File и выберите Run Map... или нажмите .
* Откроется окно Run Map.
* В этом окне прописываются основные параметры компиляции.
*# Убедитесь, что Normal выбран для настроек Run BSP, Run VIS и Run RAD.
*# В поле Additional game parameters: должны быть прописаны следующие параметры(если их нет, то обязательно их пропишите):
*#: -toconsole -dev -console +sv_lan 1
*# Кликните по OK, чтобы начать процесс компиляции.
Окно Compile Process Window будет показывать процесс компиляции. По окончании компиляции игра запустится сама и движок загрузит Вашу карту.
Карта загрузится в игре после компиляции. Движку потребуется некоторое время для прогрузки (зависит от размеров карты и её насыщенности).
* После запуска карты появится предупреждение "Map is unplayable!". Это нормально: Мы ещё не создали навигационный файл карты для ИИ. Это будет дальше в пособии.
* Кликните по Continue. 
Скриншот запущенной карты. Обратите внимание на то, что Выжившие управляемые ИИ стоят на месте из-за отсутствия навигационного файла.
== Консоль Разработчика ==
Создание карт для Left 4 Dead иногда вынуждает использовать (консоль Разработчика). Она может пригодиться для пробного спауна Заражённых на вашей карте.
Если Вы её ещё не активировали, то сделайте это в настройках игры:
# Нажмите в игре.
# Далее Options и Keyboard/Mouse.
# Выберите Allow Developer Console и нажмите "Enabled".
# Нажмите на Done.
# Далее Return to Game.
Использование консоли:
# Вызовите окно консоли нажатием (тильда).
# Пропишите консольную команду и нажмите .
# Закрывается консоль нажатием .
== Режим призрака ==
Эта консольная команда пригодится вам всегда и везде (noclip). Режим призрака позволяет вам летать по уровню, в т.ч. сквозь браши, объекты и т.д. (термин "clipped" означает - быть зажатым/остановленным чем-либо). Команда полезна для быстрого передвижения по большим картам.
чтобы активировать режим noclip:
* Нажмите .
* Введите noclip в строчку ввода консоли и нажмите .
* Теперь можно полетать.
* Введите noclip в консоль снова, чтобы выйти из режима призрака.
== Некоторые полезные команды ==
Существует множество полезных консольных команд. Ниже приведены некоторые из них:
; sv_cheats 1
: Активирует режим читов. Необходим для множества других консольных команд.
; director_stop
: Останавливает ИИ Режиссёра (Заражённые и Особые Заражённые не спаунятся).
; director_start
: Запускает ИИ Режиссёра (Спаун З И ОЗ спаунятся).
; nb_delete_all
: Удаляет всех НПС (Заражённых и Выживших).
; map <name of map>
: Загружает указанную карту или перезагружает уже загруженную.
; changelevel <name of map>
: Загружает карту, не прерывая игровую сессию (других Игроков не выкидывает из вашего Лобби).
; god 1
: Все выжившие (люди) становятся бессмертными.
; noclip
: Команда позволяет летать сквозь стены.
; z_spawn
: Спаунит обычного Заражённого там, куда указывает курсор прописавшего команду.
; z_spawn smoker
: Команда возрождает Курильщика.
; z_spawn hunter
: Команда возрождает Охотника.
; z_spawn boomer
: Команда возрождает Толстяка.
; z_spawn tank
: Команда возрождает Танка.
; z_spawn witch
: Команда возрождает Ведьму.
; nb_blind 1
: Команда позволяет заражённым не видеть выживших.
; sb_stop 1
: Останавливает ИИ Выживших, они прекращают все действия.
; director_force_panic_event
: Запускает Панику.