- Hammer как сделать лестницу
- Строительство
- Начинание
- Знакомство с инструментом
- Строительство
- Базовый туториал по лестницам
- Работающие лестницы
- Contents
- Введение
- Видимая часть лестницы
- Система подъёма
- Энтити лестницы для Half-Life 2 / Half-Life 2 Deathmatch
- Точки схода
- Полевые испытания
- Как лестница работает в игре
- Лестницы для Counter Strike: Source, Day of Defeat: Source и Garry’s Mod
- Лестницы для Counter Strike: Global Offensive
- Лестницы для Left 4 Dead & Left 4 Dead 2
- Оптимизация лестниц
Hammer как сделать лестницу
Уважаемый маппер, ты наверное знаешь, что карта которая сделана всего лишь в один уровень не очень смотрится, да и геймплей на ней становится слегка скучен… Именно чтобы этого избежать, ты строишь этаж за этажом, иногда наворачивая такую замысловатую архитектуру, что, как говорится, без поллитры не разберешься. НО! При таком строительстве возникает одна проблема — а как игроку перемещаться между этажами? Конечно всегда можно сделать хороший лифт, или пораскидывать по всей карте вертикальные лестницы (func_ladder`ы). Но и это не панацея. Ведь иногда игроку нужна просто хорошая лестница по типу такой, которую мы видим повседневно, заходя в наши подъезды. Нет, я не говорю что сборка такой лесенки из кучи брашей наитруднейшая работа и требует высокой мапперской подкованности, нет, я говорю о том, что это нудная работа, ведь каждый браш ступеньки нужно либо рисовать с нуля, либо нарисовать один эталон, а потом просто скопировать его и вставлять повсеместно (а это чревато своим мозгонасилием — браш надо потом выравнивать по уровню соседнего браша и т.д.).
Я предложу тебе более простой способ, с помощью которого лестницу можно построить буквально за пару минут, и безразлично, будет она из 2-х или из 512-и ступенек! Конечно без простейшей возни с брашами тут не получится — для начала надо нарисовать одну ступеньку — пример, а уж затем скопировать её, и на любом месте окна щёлкнуть правой кнопкой и выбрать команду меню… Paste special. или Специальная вставка.
Итак, разберемся, что же это у нас за штука такая…
- Number of copies to paste — это количество кусков, которые стоит вставить (в нашем случае — ступенек)
- Start at center of original — начинать вставку копий от центра блока-оригинала. Отключение чревато перекосом лесенки…
- Group copies — объединяет все вставленные объекты в одну vis-группу
- Offset — это, собственно говоря, самые главные настройки для вставки — сдвиг каждого последующего блока по координатам (x,y,z)
- Rotation — то же самое, только блок не сдвигает, а поворачивает на указанный угол (может быть полезно, если вы собираетесь делать какое-то подобие веера что ли…)
С теорией и инструментом разобрались, переходим к практике.
Строительство
Итак, наша цель — построить лесенку наподобие такой, которую мы можем видеть в наших многоэтажках. Для начала построим браш первой ступеньки (так сказать, оригинал, пусть он, допустим, будет 64х16х16). Затем скопируем его (либо по Ctrl+c, либо по Ctrl+Ins, либо изощренным, как у меня, способом — через пятую кнопку мыши 😉 ) Следующий этап — работа с окном Paste special инструмента. Все параметры можете ставить, как на прилагаемом кадре, не ошибётесь ;). Оговорю один небольшой нюанс: блок лучше всего рисовать длинной стороной повернутым к правой части окна редактора Хаммера. Короче, в виде сверху он должен быть вытянутым вверх. Тогда не придётся применять лишних настроек. Нажимайте кнопку ОК и смотрите на результат ваших стараний! Для большей похожести на городскую лестницу, срежьте клипом нижнюю часть ступенек и проведите 2 блока по краям — как это сделано на этой иллюстрации. Вуаля — пара минут работы, и ваша лесенка будет весьма функциональной и красивой 🙂
Иногда в Half-Life нам нужны лестницы. Чаще всего это бывают обычные func_ladder, или простые прямые лестницы из кучи блоков. Но иногда мапперу нужно для самовыражения что-то наподобие винтовой лестницы, например как на карте с2а1а. Сегодня мы попробуем научиться делать что-то наподобие лесенки с той карты.
Начинание
Для начала определитесь с шириной ступеньки (я буду делать 128, но каждый решает для себя). Рисуйте квадратный блок, ширина которого должна быть в 2 раза больше ширины задуманной ступеньки (уточню: не рисуйте, а просто наметьте «белыми линиями»). Далее в панельке нового объекта выбирайте primitives\arch и нажимайте Enter. Вот с этого момента у нас начинается…
Знакомство с инструментом
В панельке у нас есть 5 граф куда можно что-либо записать. Разберем их по-порядку:
- Wall width — ширина ступеньки (или просто сегмента арки), для нашей лестницы тут нужно поставить 112 (не забывайте, в центре должен идти столб-опора).
- Number of sides — количество ступенек (сегментов арки), тут ставьте на ваше усмотрение, или из расчета высоты (высота = толщина блока × количество ступенек)
- Arc — на сколько градусов будет развернута лестница — ставьте тут 360, иначе получится коряво.
- Start angle — угол с которого нужно начинать строительство (исходя из системы координат вида сверху — top) ставим столько, сколько вам нужно.
- Add Height — главная строка — прирост высоты сегментов. Скажу одно — для того чтобы можно было ходить не подпрыгивая ставьте тут не больше 18, остальное на усмотрение.
Так же тут есть несколько интересных элементов — кнопка Preview, выводящая на черный квадратик сверху пример вашей будущей лестницы (вид, увы только в виде сверху. Но это можно понять — ведь инструмент для создания арок а не лестниц ), и кнопка Circle — кнопка которая в поле Arc сразу подставляет 360 градусов, делая заготовку кругом. Итак, с инструментом разобрались, теперь мы можем начать…
Строительство
А теперь давайте построим простенькую лесенку без особых выкрутасов. Итак, как я уже говорил, начинаем мы с создания браша в 2 раза большего чем наша ступенька + место для столба-опоры. Возьмём блок 256×256×16. Теперь заходим в окно создания арки. В первом поле мы поставим 112, во втором… ну допустим 16, много не надо… Третье и четвертое поле пропускаем (разве что воткнув в третьем цифру 360), и переходим к 5 строке. Давайте сделаем лестницу без промежутков, и без «наползания» блоков друг на друга. Для этого ставим тут 16. Жмем ОК и смотрим что же у нас получилось: добавляем несколько штрихов в плане текстурирования, проводим центральный столб, и наша лестница готова радовать геймерский взгляд!
Источник
Базовый туториал по лестницам
Во-первых, это не окончательное руководство для каждой лестницы которая когда-нибудь понадобится, но это хороший способ сделать лестницу по типу твердого бетона или подобного материала — Но помните, правильно выбрать лестницу в соответствии с вашей картой.
Мои стены высотой 128 юнитов, что в принципе является стандартом, я поместил этажи таким способом:
Это значит, что лестница будет высотой 144 юнита, т.к. полы толщиной с 16 юнитов.
Если вы последуете этому методу, то в этом уроке мы будем использовать базовый браш высотой 144. 128 — степень для двойки, это размер клетки в хаммере, это число удобно и для моего урока по моему «лестничному» тоже.
Ширина моей лестницы будет 128.
Одна вещь, которую вы должны судить это какой тип лестницы подходит для окружающей среды.
Ширина 72 было бы хороша для помещения. 128 хороша для открытой площадки. 256 и 512 могут быть аналогичными размерами сити-17 с ж/д вокзалом. Вы также должны рассмотреть материал, который будет использоваться. //Единственное сложное предложение, которое гугл перевёл правильно!
далее следует небольшая арифметика, которая никогда не подводила для таких лестниц.
Несмотря на мою нелюбовь к этой текстуре, но она помогает мне доказать свою точку зрения. Лестницы желательно 8 в высоту и 12 длину.
Много людей используют 8х8, которая работает — но с ней сложно иметь дело. Некоторые люди используют 16х16, это иногда работает но выглядит отвратительно и неправильно. Конечно, если вы строите очень большой, очень коренастый, несколько монолитный тематический храм, то в этом случае это может выглядеть прекрасно. Но для дома или промышленного стиля, это непрактично.
Соберём все данные:
Наши лестницы должны быть высотой 144.
Каждая ступенька высотой в 8 юнитов, длиной в 12 юнитов.
Наша лестница имеет ширину 128 юнитов.
144 / 8 = 18. Это значит, нам нужно 18 ступенек, чтобы заполнить место между этажами.
18 * 12 = 216. Это значит, что мы должны сделать удобный подъем длиной 216.
Так что над надо всего лишь создать браш, размером с 144х216х128 (ВЫСхДЛхШИР), выбрать vertex tool и сделать из прямоугольника (вид сбоку) — прямоугольный треуголник, хотя это можно сделать с помощью clipping tool’а, просто проведя из одного угла в другой. Вот что должно получится:
Если вы применяли вертексы, то вам надо нажать «Да», если же вы использовали клиппинг тул, товам надо просто удалить вторую половинку браша, или же нечего не удалять.
После вам необходимо создать 18 брашей в 8 юнитов высотой и 12 в длину, вот как они должны распологаться:
Переместитесь в вид с боку, выделите все ступеньки, и повторите линию клиппинг тула, только чтобы остались маленькие треугольники. Снова выделяем все ступеньки и превращаем их в funk_detail (Ctrl+T и выбрать funk_detail). Теперь текстурим лестницу по желанию, и готово.
Источник
Работающие лестницы
Contents
Введение
Во всех играх Source имеются лестницы (кроме Team Fortress 2 и Portal 2, где их нет), состоящие из модели или браша, и системы невидимых энтить, расположенных рядом. Эти невидимые энтити и создают видимость того, что игрок взбирается по модели/брашу лестницы.
Видимая часть лестницы
Для её создания вы можете использовать
- энтитю prop_static с моделью лестницы (например, models\props_c17\metalladder001.mdl), или
- браш с текстурой лестницы (например, metal/metalladder001a).
Система подъёма
Принцип работы системы подъёма зависит от игры, для которой она предназначена. Лестницы в Half-Life 2 и Half-Life 2: Deathmatch создаются немного не так, как в ранних играх, они стали удобнее для дизайнеров карт и игроков, а лестницы в Counter-Strike: Source и Day of Defeat: Source реализованы также, как в старых играх. Материал по созданию лестниц для Counter-Strike: Source и Day of Defeat: Source, см. ниже.
Энтити лестницы для Half-Life 2 / Half-Life 2 Deathmatch
Вначале нужно определиться с размером лестницы. Это можно сделать двумя способами: с помощью энтити func_useableladder, или устаревшей func_ladderendpoint (которая кратко описана ниже для понимания работы старых карт).
Энтитя func_useableladder разделяется на две под-энтити: начальную и конечную точки (см. рис. 1a). Их позиции можно задавать как в поле значения, так и путём перетаскивания кружка при выделении энтити (см. рис. 1b). Это делается в окне 2D-вида. Начало и конец лестницы могут быть произвольной ориентации и длины (см. рис. 1c). Просто тяните эти точки туда, где должна располагаться лестница.
Убедитесь, что конечные точки лестницы не касаются её видимого браша, и находятся на расстоянии в паре единиц от него (а таже любого другого браша или модели), иначе часть лестницы может не работать.
Сегодня устаревшая сущность func_ladderendpoint состоит лишь из одной конечной точки. Размер лестницы создаётся путём связывания двух func_ladderendpoints, которые указываются в свойствах.
Точки схода
Также, вы можете задать точки схода с лестницы (см. Рис. 2). Они создаются с помощью энтити info_ladder_dismount. Во время лазания игрок может сойти, нажав клавишу использования (обычно так делается, когда лестница выше двух этажей). В данном же случае игрок сходит сам, просто достигнув одной из точек. Вы можете использовать несколько маркеров info_ladder_dismount, чтобы задавать больше направлений схода с лестницы.
Чтобы избежать возможной путаницы между соседними лестницами, каждая info_ladder_dismount имеет параметр, называемый LadderName, который связывает точку с конкретной лестницей.
Как и в случае с лестницей, точки схода не должны пересекаться с геометрией карты.
Полевые испытания
После того, как вы создали лестницу, то можете скомпилировать карту и протестировать её. Если хотите, то в игре можно увидеть энтити лестниц вместе с отладочной информацией, введя в консоли sv_showladders 1 , а затем загрузив или перезагрузив нужную карту (введя restart ). Будут показаны все начальные и конечные точки лестниц (энтити func_useableladder и func_ladderendpoint), а также точки схода (энтити info_ladder_dismount) (См. Рис. 3a), что поможет вам определить, правильно ли настроены эти энтити, пересекаются ли они с твёрдой геометрией или моделями лестниц (см. Рис. 3b), а также соединяются ли энтити func_ladderendpoint друг с другом.
Как лестница работает в игре
Самый безопасный способ взобраться по лестнице в Half-life 2 – это подойти к её невидимой зоне, и в пределах досягаемости нажать клавишу использования. Это автоматически поставит игрока на лестницу. (Если же просто ходить возле лестницы, то есть большой риск упасть.)
Чтобы сойти с лестницы, вы всегда можете спрыгнуть или нажать клавишу использования. Если у лестницы имеются info_ladder_dismounts, вы легко спешитесь на её концах.
Лестницы для Counter Strike: Source, Day of Defeat: Source и Garry’s Mod
Перед объектом/брашем, который должен быть лестницей, как можно ближе нарисуйте ещё один браш, но так, чтобы они не касались. Убедитесь, что ширина/высота поверхности соответствует объекту-лестнице. Покройте этот браш материалом tools/toolsinvisibleladder и преобразуйте в энтитю (CTRL+T). В диалоге Object Properties выберите func_ladder. Теперь у вас есть поверхность-лестница в передней части объекта/браша.
Когда вы стоите на лестнице в CS:S, точность вашей стрельбы значительно снижается.
Подобные лестницы используются в Half-Life 1, но они покрыты текстурой AAATRIGGER вместо tools/toolsinvisibleladder.
Лестницы для Counter Strike: Global Offensive
Лестницы для Left 4 Dead & Left 4 Dead 2
Читайте следующие руководства по созданию лестниц для Left 4 Dead & Left 4 Dead 2:
Оптимизация лестниц
По-умолчанию, модели лестниц используют VPhysics, чтобы обеспечить точность соприкосновения, но иногда этого не требуется. В многопользовательских и тяжёлых картах использование моделей с VPhysics отнимает драгоценные ресурсы, и чтобы избежать лагов, хорошей физикой можно пожертвовать. Вот несколько отличных способов, чтобы разгрузить ресурсы:
- Если это прямая лестница для HL2 или HL2:DM, то лучший способ зависит от того, нужно ли стрелять сквозь неё. Если нет (например, лестница на стене), то просто измените значение Collisions (столкновения) на Use Bounding Box (использовать рамку-ограничитель). Если да, то выберите значение Not Solid (не твёрдый) и поместите брашевый невидимый Clip (toolsclip), который будет отвечать за столкновения.
- Если это наклонная лестница для HL2 или HL2:DM, рамка-ограничитель не будет поворачиваться вместе с моделью и станет мешать системе подъёма, в этом случае вам нужно сделать модель лестницы Not Solid, и рядом с ней поместить невидимый повёрнутый браш, покрытый текстурой Clip (toolsclip) или Player Clip (toolsplayerclip) (в зависимости от того, требуется ли стрелять сквозь лестницу).
- Если это лестница для карт CS:S или DoD:S, вам нужно изменить значение Collisions на Not Solid и создать браш func_ladder поверх модели лестницы, вращая его по необходимости.
На многопользовательских картах лестницы нужно рисовать так, чтобы можно было свободно лазить параллельно поверхности, вдоль которой они проходят. Брашевые лестницы надо преобразовывать в нетвёрдый func_brush, чтобы избежать временного «застревания» игроков; модели лестниц зачастую торчат из стены, и когда игрок стоит на такой, это выглядит неправдоподобно. В этом случае лучше использовать два браша с текстурой Player Clip по краям пропа, которые будут выравнивать игрока на модели.
Если ничего другого, то преобразуйте браш лестницы в func_detail, чтобы он не разрезал листья.
Источник