Как сделать лестницу в cs go sdk

Обновлено: 05.07.2024

Учимся создавать вертикальные лестницы Лестница состоит из двух частей: визуальной части, которую будет видеть игрок, и функциональной, которая позволит игроку взбираться вверх. Визуальная составляющая делается с помощью брашей или моделей. Брашами делать долго, поэтому воспользуемся моделью. Вставляем в нужном месте точечную энтити prop_static и в его параметре World Model жмём Browse. Перед вами появится браузер моделей. Разобраться в нём несложно.


В поле Filter вбиваем ladder и подбираем подходящую модель лестницы. Жмём ОК. Если лестница немного не так стоит, перемещаем её в нужное место. Если лестница слишком короткая, можно сделать двойной, т.е. из двух prop_static'ов. Например, так:


Теперь функциональность. Поверх prop_static'а размещаем браш, окрашенный в текстуру TOOLS/TOOLSINVISIBLELADDER. В игре она не будет видна. Отправляем наш браш в энтити и выбираем func_ladder. Готово.


Текстуру можно выбрать другую, просто из-за некоторых текстуры (например, TOOLS/TOOLSCLIP) лестница может работать некорректно. Можно вообще покрасить какой-нибудь текстурой лестницы, в таком случае prop_static'и будут не нужны. Я так сделал на своей карте de_oldbunker. Но смотрится это некрасиво и непрофессионально

Лестницы для Counter Strike: Global Offensive

Оптимизация лестниц

По-умолчанию, модели лестниц используют 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, чтобы он не разрезал листья.

Энтити лестницы для Half-Life 2 / Half-Life 2 Deathmatch

Вначале нужно определиться с размером лестницы. Это можно сделать двумя способами: с помощью энтити func_useableladder, или устаревшей func_ladderendpoint (которая кратко описана ниже для понимания работы старых карт).

Энтитя func_useableladder разделяется на две под-энтити: начальную и конечную точки (см. рис. 1a). Их позиции можно задавать как в поле значения, так и путём перетаскивания кружка при выделении энтити (см. рис. 1b). Это делается в окне 2D-вида. Начало и конец лестницы могут быть произвольной ориентации и длины (см. рис. 1c). Просто тяните эти точки туда, где должна располагаться лестница.


Рис. 1a – Точки лестницы (используются две func_ladderendpoint s)



Убедитесь, что конечные точки лестницы не касаются её видимого браша, и находятся на расстоянии в паре единиц от него (а таже любого другого браша или модели), иначе часть лестницы может не работать.

Сегодня устаревшая сущность 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. Теперь у вас есть поверхность-лестница в передней части объекта/браша.


Рис. 4 - func_ladder с текстурой tools/toolsinvisibleladder перед лестницей prop_static.

Когда вы стоите на лестнице в CS:S, точность вашей стрельбы значительно снижается.

Подобные лестницы используются в Half-Life 1, но они покрыты текстурой AAATRIGGER вместо tools/toolsinvisibleladder.

Работающие лестницы

Во всех играх 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, см. ниже.

Создание наклонных лестниц

Создаём наклонные лестницы Создавать наклонные лестницы ещё проще, чем вертикальные. Такая лестница состоит из одинаковых ступенек. Можно просто создать кучу одинаковых брашей и поставить их таким образом, чтобы получилась лестница. А если ступенек нужно 100 или 1000? На самом деле всё делается намного проще


Сначала создадим одну ступеньку, которую мы будем потом копировать. Сделайте точно также, как на скрине ниже. Ширину ступеньки я взял 16, высоту - 8, это типа такой стандарт


Теперь жмём Ctrl + C, а теперь. Нет, не Ctrl + V, а жмём правую кнопку мыши и в меню выбираем Paste Special. Очень удобный инструмент, в чём вы сейчас убедитесь. Появляется такое окошко


20 - количество ступенек, 16 - ширина ступеньки, 8 - высота. Если у вас другие размеры ступенек или вам надо больше ступенек, то измените необходимые поля. Теперь жмём ОК и получаем результат:

Лестницы для Left 4 Dead & Left 4 Dead 2

Читайте следующие руководства по созданию лестниц для Left 4 Dead & Left 4 Dead 2:

Как сделать лестницу в cs go sdk

Source 2 - CS:GO SDK - Source SDK - Level Design

Серёжа Журавлев

Серёжа Журавлев запись закреплена

не работает лестница делаю func_ladder с текстурой ладдер но не работает.

Дима Чернопятов

Вроде не нужно в func_ladder превращать браш, если он покрыт текстурой ladder.

Серёжа Журавлев


Серёжа Журавлев

Дима Чернопятов

Серёжа Журавлев


Серёжа Журавлев ответил Диме

Серёжа Журавлев


Серёжа Журавлев ответил Диме

Дима, на одной карте все работало я оттуда и скопировал но на новой не работает

Дима Чернопятов

Попробуй превратить в обычную геометрию, и покрыть в текстуру ladder, больше ничего не нужно

Читайте также: