В этой статье мы научимся создавать самые простые объекты на карте, вставлять энтити-объекты,
создавать префабы. Статья довольно большая, с большим количеством рисунков, поэтому наберитесь
терпения и прочитайте ее внимательно. Как показывает практика, очень много вопросов у начинающих
мапперов возникает при создании простых объектов и в самых простых операциях над ними. Данная
статья
отвечает на многие эти вопросы.
Содержание:
Выберем вид сверху и, зажав левую кнопку мыши, зададим размер прямоугольника, скажем 256х256
юнитов
и отпустим кнопку. Объект пока не готов.
Переключимся на вид сбоку или вид спереди (значения не имеет) и увеличим высоту нашего объекта
до
256 юнитов.
Теперь когда положение объекта и его размеры заданы, остается навести курсор на объект, нажать
правую кнопку мыши и выбрать единственный вариант "Create object".
Посмотрим как это будет выглядеть в игре, для этого выберем вид 3d textured.

Браш в виде куба с размерами 256х256х256 юнитов готов. Теперь мы можем заменить и выравнить на нем текстуры, а также переместить в любое место нашей карты, изменить размеры, форму и т.д.
Примечание: размер создаваемого или выбранного объекта отображаются в строке помощи, внизу экрана (см. рис. ниже).
Точечные энтити вставляются на карту инструментом Entity Tool [Shift-E]. Для создания брашевого энтити сначала необходимо изготовить браш, а затем превратить его в энтити. Пример, дверь. Создаем браш по форме напоминающий дверь и превращаем его в объект func_door. Превращение осуществляется сочетанием клавиш [Ctrl-T].
Более подробно об энтити-объектах и их свойствах Вы можете прочитать в разделе "Энтити".
Рассморим создание этих двух типов подробнее.
Теперь обратим внимание на правую часть рабочего поля редактора. Там находится панель New Object
(выделена синей рамкой).
Вы можете вытащить эту и любую другую панель как показано на рисунке справа.
В строке Objects мы выбираем тип точечного энтити-объекта, которую хотим вставить на карту. По умолчанию в списке стоит info_player_start (т.е. место рождения контра). Вы можете изменить тип энтити по умолчанию в меню Tools > Options... > Game Configurations (см. рис. ниже)
В строке Default PointEntity class устанавливается point-based энтити по умолчанию, а в
строке справа, Default SolidEntity class
устанавливается brush-based энтити по
умолчанию.
Далее в списке Objects выбираем необходимый тип энтити, например light (источник света).
И вставляем его на карту.
В итоге наш источник света будет изображен в виде небольшого фиолетового прямоугольничка.
Теперь, если понадобится, мы можем переместить нашу энтити в другое место, а также изменить ее
свойства. Для этого выделим энтити и нажмем правую кнопку мыши. Появится меню с различными
пунктами
(рисунок справа): копировать, удалить, группировать и т.д. Нас интересует последняя строчка
Properties. Советуем запомнить быстрые клавиши для свойств объектов [Alt-Enter].
Можно превращать браши в брашевые энтити и обратно энтити в браши кнопками на панели "New Object". Кнопка toEntity превращает браш в брашевый энтити-объект, кнопка toWorld превращает брашевый энтити-объект в браш (т.е. обратная операция).
В появившемся оконее мы должны указать тип энтити-объекта (выбираем его в списке), затем мы можем изменить его свойства, то, что идет под словом Attributes.
Выбор типа энтити.
Кроме свойств энтити Вы можете выставлять различные флаги (закладка Flags). Для разных энтитей существуют разные флаги. Флагов может и не быть вовсе.
Вместе с Hammer'ом идут 5 библиотек с префабами: computers (компьютеры), crates (ящики), old stuff (диван, несколько кресел), random objects (мусорка, диваны, сейфы и т.п.), usable objects (прожектор, аптечка и т.д.)
Для того чтобы вставить префаб на карту выберем Block Tool [Shift-B], затем в панели New Objects в строке Categories выберем одну из библиотек префабов, например, computers.
В строке ниже ("Objects") мы выбираем уже конкретный экземпляр компьютера, например, Green
Computer.
Теперь нажимаем на кнопку Insert original prefab.

Префаб помещается в начало координат при просмотре в 3d-виде или же в центр экрана при выбранном 2d-виде.
Также Вы можете создавать свои собственные префабы. Для этого выделите все объекты, которые составят будущую заготовку и в панели New Objects нажмите кнопку Create Prefab
В поле Name укажите имя префаба, в поле Description Вы можете написать
дополнительную
информацию о префабе (например, его размеры), а в поле Create in
Вы выбираете библиотеку, в
которой следует сохранить заготовку.
Если Вы не хотите сохранять свой префаб в стандартных библиотеках, то можете создать свою. Для этого в меню Tools выберите пункт Prefab Factory...
Затем нажмите кнопку Add Library, укажите имя библиотеки, также Вы можете ввести описание
для
своей библиотеки.
Теперь при создании своих заготовок Вы можете выбрать для сохранения свою библиотеку. Например,
мы
сделали заготовку кухонного стола и теперь сохраняем ее в библиотеке My_Prefabs.
На этом статья, посвященная созданию объектов на карте закончена.
Содержание:
- Создание браша
- Создание точечного энтити-объекта (point-based)
- Создание брашевого энтити-объекта (brush-based)
- Вставка и создание префабов
1. Создание браша
Чтобы создать обыкновенный браш, нужно выбрать инструмен Block [Shift-B] при этом курсор сменится на рамку (см. рис. ниже)
Выберем вид сверху и, зажав левую кнопку мыши, зададим размер прямоугольника, скажем 256х256
юнитов
и отпустим кнопку. Объект пока не готов.
Переключимся на вид сбоку или вид спереди (значения не имеет) и увеличим высоту нашего объекта
до
256 юнитов.
Теперь когда положение объекта и его размеры заданы, остается навести курсор на объект, нажать
правую кнопку мыши и выбрать единственный вариант "Create object".
Посмотрим как это будет выглядеть в игре, для этого выберем вид 3d textured.

Браш в виде куба с размерами 256х256х256 юнитов готов. Теперь мы можем заменить и выравнить на нем текстуры, а также переместить в любое место нашей карты, изменить размеры, форму и т.д.
Примечание: размер создаваемого или выбранного объекта отображаются в строке помощи, внизу экрана (см. рис. ниже).
2. Создаем энтити
Все энтити делятся на точечные энтити (point-based), например, источники света и звука, некоторые типы триггеров, места рождения игроков и пр. и брашевые энтити (brush-based), например, триггеры, кнопки, двери, лифты и пр..Точечные энтити вставляются на карту инструментом Entity Tool [Shift-E]. Для создания брашевого энтити сначала необходимо изготовить браш, а затем превратить его в энтити. Пример, дверь. Создаем браш по форме напоминающий дверь и превращаем его в объект func_door. Превращение осуществляется сочетанием клавиш [Ctrl-T].
Более подробно об энтити-объектах и их свойствах Вы можете прочитать в разделе "Энтити".
Рассморим создание этих двух типов подробнее.
2.1. Создание точеного энтити-объекта (point-based)
Выберем инструмен Entity Tool [Shift-E] при этом курсор сменится на топорик (см. рис. ниже)
Теперь обратим внимание на правую часть рабочего поля редактора. Там находится панель New Object
(выделена синей рамкой).
Вы можете вытащить эту и любую другую панель как показано на рисунке справа.В строке Objects мы выбираем тип точечного энтити-объекта, которую хотим вставить на карту. По умолчанию в списке стоит info_player_start (т.е. место рождения контра). Вы можете изменить тип энтити по умолчанию в меню Tools > Options... > Game Configurations (см. рис. ниже)
В строке Default PointEntity class устанавливается point-based энтити по умолчанию, а в
строке справа, Default SolidEntity class
устанавливается brush-based энтити по
умолчанию.Далее в списке Objects выбираем необходимый тип энтити, например light (источник света).
И вставляем его на карту.
В итоге наш источник света будет изображен в виде небольшого фиолетового прямоугольничка.
Теперь, если понадобится, мы можем переместить нашу энтити в другое место, а также изменить ее
свойства. Для этого выделим энтити и нажмем правую кнопку мыши. Появится меню с различными
пунктами
(рисунок справа): копировать, удалить, группировать и т.д. Нас интересует последняя строчка
Properties. Советуем запомнить быстрые клавиши для свойств объектов [Alt-Enter].2.2. Создание брашевого энтити-объекта
Для создания этого типа энтити сначала нам необходимо изготовить браш, а затем, выделив его, в контекстном меню выбрать Tie to Entity или же нажать сочетание клавиш [Ctrl-T].Можно превращать браши в брашевые энтити и обратно энтити в браши кнопками на панели "New Object". Кнопка toEntity превращает браш в брашевый энтити-объект, кнопка toWorld превращает брашевый энтити-объект в браш (т.е. обратная операция).
В появившемся оконее мы должны указать тип энтити-объекта (выбираем его в списке), затем мы можем изменить его свойства, то, что идет под словом Attributes.
Выбор типа энтити.
Дополнительные сведения
Необходимо отметить, что в любой момент Вы можете изменить тип той или иной энтити. Для этого выделите ее и нажмите [Alt-Enter] или выбирете в контекстном меню Properties.Кроме свойств энтити Вы можете выставлять различные флаги (закладка Flags). Для разных энтитей существуют разные флаги. Флагов может и не быть вовсе.
3. Создание и вставка префабов
Как Вы уже знаете, префаб — это заготовка, состоящая из одного или нескольких объектов для быстрой вставки на карту (например, стул, книжная полка, лампа, ящик и т.д.). Хранятся библиотеки префабов в файлах с расширением *.ol в директории "Hammer\prefabs".Вместе с Hammer'ом идут 5 библиотек с префабами: computers (компьютеры), crates (ящики), old stuff (диван, несколько кресел), random objects (мусорка, диваны, сейфы и т.п.), usable objects (прожектор, аптечка и т.д.)
Для того чтобы вставить префаб на карту выберем Block Tool [Shift-B], затем в панели New Objects в строке Categories выберем одну из библиотек префабов, например, computers.
В строке ниже ("Objects") мы выбираем уже конкретный экземпляр компьютера, например, Green
Computer.
Теперь нажимаем на кнопку Insert original prefab.
Префаб помещается в начало координат при просмотре в 3d-виде или же в центр экрана при выбранном 2d-виде.
Также Вы можете создавать свои собственные префабы. Для этого выделите все объекты, которые составят будущую заготовку и в панели New Objects нажмите кнопку Create Prefab
В поле Name укажите имя префаба, в поле Description Вы можете написать
дополнительную
информацию о префабе (например, его размеры), а в поле Create in
Вы выбираете библиотеку, в
которой следует сохранить заготовку.Если Вы не хотите сохранять свой префаб в стандартных библиотеках, то можете создать свою. Для этого в меню Tools выберите пункт Prefab Factory...
Затем нажмите кнопку Add Library, укажите имя библиотеки, также Вы можете ввести описание
для
своей библиотеки.
Теперь при создании своих заготовок Вы можете выбрать для сохранения свою библиотеку. Например,
мы
сделали заготовку кухонного стола и теперь сохраняем ее в библиотеке My_Prefabs.
На этом статья, посвященная созданию объектов на карте закончена.
В поле Faces мы можем указать количество боковых граней цилиндра в пределах от 3 до 32.
Чем
их больше, тем круглее будет наш цилиндр.
На виде сверху, в меню правой кнопки мыши, выберем Create object. Цилиндр готов.
А теперь поясним о том, зачем в опциях нужно поставить флажок около
Reorient Primitives on
creation... Проще объяснить при помощи рисунка.
Если бы мы применили команду
Create object
в виде front, то наш цилиндр был бы вписан в
прямоугольник со сторонами 64х80. Если же этого флажка не поставить, то положение цилиндра не
будет
зависеть от выбранного вида и цилиндр всегда будет вписываться в прямоугольник на виде
сверху.



Wall width


Далее не отпуская левой кнопки мыши проводим линию, по которой наш браш будет рассечен. Для
завершения операции нажимаем Enter.
Таким образом, мы разделили стену на 2 части.
Таким образом, при нажатии на [Shift-X] чередуются 3 режима разрезания объекта: обе части
сохраняются или остается одна из частей.
Также Вы можете разрезать несколько объектов одновременно. Для этого необходимо выделить их все
и
дальше применить Clip как обычно.
Потренируйтесь в разрезании различных объектов самостоятельно.
Теперь вырежем в этом браше сквозное отверстие для окна. Для этого необходимо создать еще один
браш,
который по размерам будет соответствовать будущему окну, т.е. длина и ширина этого браша должны
равнятся длине и ширине будущего окна. Размещать этот браш следует именно в то место, где будет
окно. Обратите внимание, что на виде сверху (2D top) новый браш по толщине больше первого
большого
браша. Это делается, чтобы в трехмерном виде было удобно выбрать этот браш (а это
потребуется).
Переключитесь в трехмерный вид (3D textured) у Вас должно получиться что-то вроде этого (см.
рис.
ниже).




В этом окне спрашивается какую толщину стенки Вы хотите задать кубу. Толщина измеряется в
юнитах.
Оставьте значение по умолчанию 32. Нажмите "OK". Что произошло? Куб из одного браша превратился
в 6
отдельных, которые создают внутреннее пространство (полость). Таким образом, у нас получилось
что-то
вроде комнаты. Толщина стенок комнаты равна 32 юнитам, как мы и указали. На рисунке ниже
показано
как будет выглядеть наш объект на виде сверху после Hollow.
Разбиение куба хорошо видно на виде 3D wireframe (справа).
Вертексы (вершины) объектов в 3-d виде редактора изображаются белыми точками, а ребра — желтыми.
Жетые точки размещаются посередине ребра.
Такой браш при компиляции вызовет ошибку! Для движка Half-Life обязательным условием
является
нахождение в одной плоскости ВСЕХ точек, ее образующих.
Теперь вместо одной плоскости мы имеем 2.


В 3-d виде это выглядит так:
При компиляции данная ошибка проявляется не всегда (карта может успешно докомпилироваться до
конца),
но в игре браш будет иметь неправильную форму, некоторые из граней могут пропасть (как это
бывает
при ошибке №1).
В первом режиме можно перемещать и вершины, и ребра объекта;
В 3-х мерном виде Шаг 3 (создание нового ребра между двумя точками) выглядит
так:

На этот вопрос всегда отвечайте "ДА". Трудно представить случай, когда необходимо ответить
"НЕТ"...
Более того, если Вы ответите нет, то получите при компиляции ошибку
"Plane with no normal".
Выше мы кратко описали в чем ее суть, еще немного дополнительной информации об этой ошибке Вы
можете
прочитать

...лучше создать один большой с усеченным углом (см. рис. ниже).
На любой достаточно крупной карте можно найти десятки мест, где возможно использование одного
крупного браша вместо 2-3 мелких — эта техника позволяет сокращать общее время компиляции карты
(т.к. меньше брашей) и иногда уменьшает r_speeds, что соответственно приводит к увеличению
fps.
Закройте окно с выбором текстур. Установите вид сверху (2D top), выберите инструмен Блок
[Shift-B]
и постройте квадрат с размерами 384х384 юнита (размер контролируйте в строке
состояния, внизу). Переключитесь на вид спереди (2D front) и удлинните прямоугольник также до
384
юнитов. Завершите создание браша нажатием на Enter.
Выделите только что созданный браш и нажмите [Ctrl-H]
. Сейчас мы применим функцию Hollow,
рассмотренную в прошлой статье. В появившемся окошке оставьте значение 32 и нажмите "OK".
Теперь можно посмотреть на карту в виде 3D textured, залететь внутрь комнаты. Для перемещения в
3D-виде один раз нажмите Z и пользуйтесь кнопками W, A, S, D и мышью. В результате всех операций
Ваша комната в трехмерном виде должна выглядеть приблизительно так (см. рис. ниже):
Переключитесь на вид спереди (2D front) и поместите объект light под потолок (см. рис. ниже).
Затем
нажмите Enter, чтобы закончить создание источника света.
Итак, лампочку мы сделали. Теперь у нас на карте будет светло. Теперь остается создать точки
появления контров и террористов. Как Вы уже знаете этими точками являются объекты
info_player_deathmatch (террорист) и info_player_start (контр). Один объект — одна точка
рождения.
Чтобы на карте могли играть несколько игроков, необходимо ставить несколько точек для контров и
для
террористов.
Обратите внимание, что объекты info_player_deathmatch и info_player_start не должны касаться
стен
(см. рис. ниже, вид top), друг друга и быть приподняты на некоторое расстояние над землей (см.
рис.
ниже, вид front). Это необходимо делать, чтобы игроки не умирали в начале раунда сами по себе и
могли свободно двигаться. Вы замечали на некоторых картах при большом пинге и лагах, как игроки
в
начале раунда как бы падают на землю? Это происходит как раз потому, что между игроком и землей
имеется некоторое расстояние. При качественном соединении такие "приземления" практически
незаметны.
Итак, одну точку рождения террориста мы уже разместили. Теперь точно также создайте одну точку
появления контра. Выберите в списке объект info_player_start и вставьте его подобным образом,
только
в противоположный угол комнаты (на виде сверху это будет правый нижний угол).



Как видно из рисунка выше, по умолчанию при рождении игрок всегда смотрит направо на виде сверху
(0°). Представьте, если основной проход находится слева, то игрок вынужден будет разворачиваться
на
180° в начале каждого раунда, что довольно сильно утомляет и не дает сосредоточится на покупке
оружия. В таких случаях совсем не лишним будет указать угол направления взгляда (как показано на
рис. выше).
В первом параметре "Weapon_Buying" указывается какая из команд может покупать оружие, по
умолчанию
обе команды могут покупать оружие (оставляем без изменений).
Здесь есть только один параметр "Team", его значения могут быть All teams (любая из команд),
Terrorist (только террористы), Counter-Terrorist (только контры). Естественно у объекта
func_buyzone на базе контров необходимо выбрать Counter-Terrorist, а у террористов —
Terrorist.
Первое "Pitch Yaw Roll" — это не что иное как направление "взгляда" заложника. Его проще
выставить в
черном кружке, ориентируясь на виде сверху (2D top).



Теперь где-нибудь поближе к террористам нужно разложить оружие, гранаты и бронежилеты. Делается
это
точечным объектом armoury_entity
. Один такой объект вставляет на карту одну единицу оружия,
одну гранату или один бронежилет. Но в свойствах этого объекта можно указать их количество,
например, пять AK-47 или 4 HE-гранаты.
В параметре "Item" указывается вид оружия, тип гранаты или бронежилет. В параметре "Count" —
количество выбранного снаряжения.