Ru/Level Design Introduction (Portal 2)/Your First Level

__TOC__
Браш () - это простая трехмерная фигура, созданная с помощью инструмента Block Tool в Hammer. Браши используются для создания большинства крупных поверхностей в вашем уровне, например, потолков и полов. Сейчас мы создадим простую комнату, используя браши.
== Создание пола с помощью брашей ==
# В меню "Tool" ("Инструменты") слева выберите Block Tool.
# Щёлкните левой кнопкой мыши Вид сверху (Top) (правый верхний прямоугольник) и двиньте мышку вправо и вниз, как показано на рисунке.
# При перетаскивании вы увидите пунктирный контур прямоугольника или квадрата.
# Создайте квадрат 512x512 единиц и отпустите левую кнопку мыши.
# Нажмите клавишу , чтобы создать браш, только что нарисованный вами.
Чтобы вернуться в режим выделения, нажмите кнопку Selection tool на панели Tool или нажмите клавишу .
В режиме выделения, когда браш выделен, вы можете изменять его размер, щелкнув левой кнопкой мышки на один из квадратиков, появляющихся на контуре браша, и перетаскивая его внутрь или наружу браша.
Уменьшим толщину браша (который мы будем использовать в качестве пола) с заданных по умолчанию 64 единиц до 16. Для этого нам нужно изменить размер сетки.
=== Сетка ===
Сетка отображается во всех двухмерных видах. По умолчанию к ней привязаны все объекты. Вы можете отключить привязку, но считается хорошим тоном оставлять её, поскольку она позволяет избежать утечек и предотвратить другие ошибки в вашей карте.
По умолчанию размер сетки равен 64, то есть её линии находятся на расстоянии 64 единиц друг от друга. Текущий размер сетки отображается в строке состояния в нижней части окна Hammer.
* Нажатие кнопки Smaller Grid сделает сетку в 2 раза гуще (увеличит частоту линий). Это может пригодиться для более точной подгонки. Размер сетки можно уменьшить также с помощью клавиши .
* Нажатие кнопки Larger Grid сделает сетку вдвое реже (уменьшит частоту линий). Увеличить размер сетки можно также с помощью клавиши .
Чтобы уменьшить размер сетки до 16 единиц, нажмем клавишу дважды. Посмотрите на строку состояния в правой нижней части окна Hammer и убедитесь, что там указано Grid: 16. Если это не так, нажимайте или до получения нужного результата. :)
=== Изменение размера пола ===
Теперь сетка должна быть достаточно мелкой. 
Переключитесь на нижнюю правую зону редактирования (вид сбоку). При наведении курсора на неё должна всплывать подсказка Side. Перетащите верхнюю границу браша вниз так, чтобы он стал толщиной в 16 единиц.
=== Перемещение брашей ===
Браши можно перемещать. Выберите Selection Tool и наведите курсор мыши на браш (но не на его угол) в одном из двухмерных видов. Курсор поменяется на 4 стрелочки, указывающие в 4 направлениях , - это означает возможность перемещения объекта.
Чтобы переместить браш, нажмите на него и потащите в одном из двухмерных видов. После отпускания кнопки мыши браш будет перемещён на указанную позицию.
Объекты можно перемещать клавишами со стрелками. Для этого, правда, потребуется изменить настройки Hammer:
# В меню Tools выберите Options, чтобы открыть диалоговое окно Configure Hammer.
# Выберите вкладку 2D Views.
# Установите флажок Arrow keys nudge selected object/vertex (Перемещать выбранные объекты/вершины клавишами со стрелками).
# Нажмите OK, чтобы подтвердить изменения и закрыть окно настроек.
Теперь переместим браш-пол на 16 единиц вниз, просто поместив курсор мыши над брашем в Виде сбоку (Side) и 1 раз нажав клавишу .
== Навигация в двухмерных видах ==
* Для перемещения по 2D-видам вы можете использовать полосы прокрутки.
* Более быстрый способ: нажав клавишу перетаскивайте область вида левой кнопкой мышки.
* Для масштабирования используйте колёсико мыши.
== Текстурирование ==
Чтобы увидеть текстуры в окне просмотра 3D Camera, щелкните правой кнопкой мыши надпись camera и выберите 3D Textured.
=== Навигация в области просмотра 3D Camera ===
Навигация в 3D слегка отличается от перемещения в двухмерных видах:
* Нажмите и левую кнопку мыши и перемещайте курсор, чтобы вращать камеру.
* Нажмите и правую кнопку мыши и перемещайте курсор, чтобы перемещаться вверх/вниз и влево/вправо.
* Нажмите и обе кнопки мыши и перемещайте курсор, чтобы перемещаться вперёд и назад.
* Используйте клавиши , , и , чтобы перемещаться вперёд, назад, влево и вправо соответственно.
* Клавиша включает и выключает режим "mouse look". Переместите указатель на область 3D Camera и нажмите клавишу . Двигая мышь, вы можете осматриваться так же, как делаете это в игре.
Переместитесь в область просмотра 3D Camera и посмотрите сверху на пол, который мы только что создали.
На полу сейчас находится текстура по умолчанию, и наверняка вам захочется поменять её. Чтобы сменить текущую текстуру, нажмите кнопку Browse на панели Texture справа.
Откроется окно Texture Browser.
В поле Filter в нижней части окна можно отфильтровать текстуры по имени. В качестве нашего примера введите в это поле слово "dev_measure" (со знаком подчёркивания). Появится список "developer" текстур, с помощью которых можно набросать что-нибудь по-быстрому.
Теперь найдите текстуру dev/dev_measuregeneric01b и дважды щёлкните по ней.
Это вернёт вас обратно в редактор и поместит выбранную текстуру в качестве текущей на панели Texture.
Выберите браш пола, если он ещё не выбран, щелкнув него в окне просмотра Camera. Он должен стать красным.
После выбора браша нажмите кнопку Apply current texture на панели Tool, чтобы применить текущую текстуру к выбранному. Пол должен покрыться серой текстурой.
== Создание стен и потолка ==
Теперь создадим стены и потолок комнаты. Выберем самый простой способ - продублируем браш пола. 
=== Дублирование ===
Для создания потолка и стен можно выбрать имеющийся пол и продублировать его.
Для дублирования:
# Выберите созданный вами браш пола.
# Наведите курсор на область просмотра Вид сбоку (Side).
# Удерживая нажмите клавишу , чтобы создать дубликат и переместить его на 1 единицу сетки вверх.
Это действие создаст ещё один браш, такой же, как пол, и поместит его над имеющимся полом.
Далее, для создания стены вы можете изменить размеры нового браша, перемещая маркеры ("квадратики") на его углах. Давайте сделаем стену в 128 единиц высотой и 16 единиц толщиной.
Чтобы создать остальные стены, продублируем созданную стену 3 раза.
Продублируем браш пола ещё раз и поднимем его, чтобы он стал потолком.
== Удаление брашей ==
Чтобы удалить браш, выберите его с помощью Selection Tool и нажмите клавишу .
== Множественное выделение ==
В области просмотра Camera трудновато ориентироваться, находясь внутри комнаты, так как её стены, пол и потолок покрыты одной и той же текстурой. Поменяем текстуру стен на другую.
Чтобы выбрать все стены, удерживая клавишу и щелкните по каждой стене в области просмотра Camera. Для вращения камеры придется воспользоваться клавишей .
После того, как вы выберете все стены, нажмите кнопку Browse на панели Texture. На этот раз выберем оранжевую текстуру с названием dev/dev_measuregeneric01. Двойным щелчком выберем её и закроем окно обзора текстур.
Используйте с панели Tool, чтобы применить оранжевую текстуру к стенам.
== Сохранение файла ==
Чтобы сохранить файл, нажмите сочетание клавиш + или выберите пункт Save в меню File.
В окне сохранения введите название карты и укажите папку, где она будет сохранена.
К примеру, назовём файл "tutorial01" и сохраним его в папке mapsrc, по умолчанию расположенной в
 C:\Program Files\Steam\steamapps\common\portal 2\sdk_content\maps\
Расположение папки может отличаться в зависимости от того, куда вы установили Steam.
== Поставляемые карты-примеры ==
В ходе сохранения своей карты вы заметите другие папки в расположении mapsrc. В Portal 2 Authoring Tools входят несколько карт-примеров для вашего ознакомления.
Папка 	Содержит
maps\mp_coop_doors 	Кооперативная карта.
maps\mp_coop_paint_red_racer	Кооперативная карта с Ускоряющим гелем.
maps\sp_a2_column_blocker 	Карта одиночного режима со Световыми мостами.
maps\sp_a2_trust_fling 	Карта одиночного режима с Воздушными панелями веры.
maps\sp_a3_speed_ramp 	Карта одиночного режима с Ускоряющим гелем.
maps\sp_a4_laser_catapult 	Карта одиночного режима с Экскурсионными воронками, Лазерами и Воздушной панелью веры.
maps\zoo_mechanics 	Содержит большинство элементов игровой механики Portal 2.
== Размещение энтитей ==
Далее разместим в нашей карте энтити для игрока:
# Выберите Entity Tool на панели Tool.
# После выбора Entity Tool станет активным список выбора Entity на панели Object.
# Среди Categories выберите пункт Entities.
# Щёлкните стрелочку в раскрывающемся списке Objects и выберите info_player_start.
# Теперь в области просмотра Camera переместитесь к центру внутри комнаты.
# Щелкните пол левой кнопкой мыши, чтобы разместить на нем энтити.
Теперь энтити info_player_start находится в центре комнаты.
=== Установка света ===
Создадим в карте источник света:
# Снова выберите Entity Tool
# Выберите пункт light в списке Objects на панели Object.
# На этот раз разместите свет на потолке (над головой энтити игрока).
# Вернитесь в режим выбора, нажав на панели Tool или нажав клавишу .
Далее изменим некоторые настройки света. Откроем свойства света, дважды щелкнув его в области просмотра Camera или выбрав его (левой кнопкой мыши) и затем нажав клавиши +. Откроется окно Object Properties.
В Object Properties можно изменять различные свойства энтити. Например, вы можете поменять яркость света - Brightness. Щелкните строку Brightness в списке Keyvalues, и вы увидите несколько чисел в поле с правой стороны. По умолчанию значения яркости света равны 255 255 255 200. Первые три числа представляют значения RGB (цвет), а последнее - интенсивность света. 
Чтобы выбрать цвет из палитры, а не вводить значения вручную, нажмите кнопку Pick Color.
Просто выберите цвет для света и нажмите OK.
Вы вновь вернетесь в окно Object Properties для света. Внесенные вами изменения яркости должны отразиться в строке Brightness и в поле справа, если строка Brightness выделена.
Нажмите кнопку Применить, чтобы просмотреть изменения энтити и закройте окно крестиком в верхней правой части окна.
=== Размещение энтити prop_static ===
Энтити также могут представлять собой различные предметы (props) типа мебели, декоративных украшений и элементов сложной архитектуры. Существуют различные виды предметов. Энтити Prop_static - это статичные предметы – они не двигаются, не отображают анимацию и никак не изменяются. Существуют также энтити prop_dynamic, которые могут двигаться, быть анимированными, а также могут активироваться и деактивироваться. Существуют также энтити prop_physics, с которыми игрок может взаимодействовать как с физическими предметами реального мира.
Чтобы разместить предмет:
# Снова выберите Entity Tool.
# В панели Object в списке Objects выберите prop_static.
# Щелкните пол левой кнопкой перед энтити игрока, чтобы разместить prop_static. Вы увидите красный куб, представляющий энтити prop_static до того, как ей будет назначена модель.
# Вернитесь в режим выбора, нажав кнопку на панели Tool или нажав клавишу .
# Щёлкните красный кубик дважды для открытия его свойств.
# Два раза щёлкните поле World Model, чтобы открыть Model Browser.
=== Выбор модели ===
# В поле Filter в нижней части окна введите "paint". Отобразятся модели, содержащие "paint" в своем названии.
# Прокрутите до модели под названием:
#: "props_underground\underground_paintdropper.mdl".
#: Как она выглядит, см. на иллюстрации.
# Нажмите OK, чтобы выбрать модель, закрыть браузер и вернуться в окно Object Properties. Теперь в строке World Model должно отображаться название выбранной модели.
# Нажмите кнопку Применить, чтобы сохранить изменения энтити.
# Закройте окно Properties крестиком.
Теперь во всех областях редактора видна добавленная модель.
== Перемещение энтитей ==
Энтити можно перемещать так же, как и браши. Щелкните и перетащите контур выбранной энтити для ее перемещения, или перемещайте их клавишами со стрелками в любой области просмотра. 
== Поворот энтитей ==
Чтобы повернуть любой объект, выберите его с помощью Selection Tool , а затем щелкните его. Вокруг него появится 4 маркера поворота. Чтобы повернуть объект, в любом двухмерном виде щелкните и перетащите маркер мышью.
В виде спереди (Front) увеличьте масштаб колесиком мыши и щелкните внутри рамки модели раздатчика, чтобы отобразить 4 маркера поворота.
Щелкните и поворачивайте против часовой стрелки так, чтобы капли геля могли падать из раздатчика сверху. 
== Запуск карты в игре ==
Даже если вы сохранили карту, для её запуска на игровом движке потребуется компиляция.
После компиляции карта преобразуется из необработанного файла .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 отображается ход выполнения компиляции. По её окончании автоматически запустится игра, и начнется загрузка вашей карты.
По окончании компиляции ваша карта должна загрузиться в игре. Это займет одну-две минуты.
== Консоль отладки ==
При создании уровней для Portal 2 иногда требуется вводить команды в окне . В ней, например, можно создать кубы и турели для проверки.
Если вы не подготовились, то, чтобы включить консоль:
# Нажмите в игре клавишу .
# Щёлкните Параметры, затем Клавиатура/Мышь.
# Щёлкните Разрешить консоль отладки и выберите "Включено".
# Щёлкните кнопку Готово.
# Щёлкните Вернуться в игру.
Использование консоли отладки:
# Вызовите консоль нажатием клавиши (тильда ~, ё).
# Введите команду и нажмите .
# Закройте консоль клавишей .
== Режим Noclip ==
Наиболее востребованная консольная команда - это режим noclip. В нем можно свободно перемещаться, свободно проходя сквозь любые препятствия. Это удобно для быстрого обзора больших карт.
Чтобы войти в режим noclip:
* Нажмите для входа в консоль.
* Введите noclip и нажмите .
* Осмотрите карту в свободном полете.
* Чтобы покинуть режим и перемещаться обычным способом, введите команду noclip снова.
* Вы можете переключать noclip нажатием клавиши, назначенной с помощью команды bind. Например, bind mouse3 noclip позволит переключать этот режим средней кнопкой мыши.
== Прочие полезные консольные команды ==
Доступно множество консольных команд, здесь для примера приведены лишь некоторые из них.
; sv_cheats 1
: Разрешает ввод читов. Необходима для множества консольных команд.
; map <название карты>
: Загрузка карты.
; changelevel <название карты>
: Загрузка другой карты с сохранением игрового сеанса.
; god 1
: Режим неуязвимости для всех игроков.
; noclip
: Позволяет свободно проходить сквозь стены и любые препятствия.