Глава XII. Лестницы.

Лестницы: вертикальные лестницы, ступеньки и спиральные лестницы.

12.1

Вертикальные лестницы

В данной статье речь пойдет о создании вертикальных лестниц (как на карте cs_assault и многих других). Для их создания мы будем использовать два новых энтити-объекта: Лестницы в CS состоят из двух выше перечисленных объектов: func_illusionary — изображает лестницу, func_ladder — собственно лестница (невидимая часть, по которой игрок поднимается).
Нелишним будет сказать, что стандартным размером лестниц является 32 юнита по ширине и 3-4 юнита по толщине, а по высоте как получится. Сначала изготовим визуальную часть лестницы, которую игрок видит в игре. Для этого будем использовать текстуру с маской (с синими частями), например, {LADDER1 (также есть и другие стандартные текстуры лестниц: {ladder2, {ladder2b и т.д.).
Создадим около стены браш шириной 32 и толщиной 4 юнита. И превратим его в func_illusionary (см. рис. ниже). Чтобы синие части на текстурах были прозрачными в игре, необходимо выставить следующие параметры отображения:
Render Mode — Solid;
FX Amount — 255.
t12ladder1 Теперь создадим невидимое в игре поле, по которому игрок поднимается на самом деле, т.к. он не может подниматься просто по func_illusionary . Для этого построим точно такой же браш с размерами 32х4 юнита, только закрасим его со всех сторон специальной текстурой AAATrigger (см. рис. ниже). Затем нажимаем [Ctrl-T] и выбираем в списке func_ladder.
Создаем невидимую часть (func_ladder)
Как видите, мы разместили func_ladder вплотную к func_illusionary, это не принципиально, но, как говорится, для "чистоты" работы не помешает.
Это все! Объект func_ladder в игре будет невидим, и игрок будет в полной уверенности, что поднимается по видимой лестнице (func_illusionary), но теперь-то Вы знаете, что это не так :)
12.2

Наклонные лестницы

В этой статье мы расскажем как создаются обычные (наклонные) лестницы со ступеньками.
Обычные лесницы делают из брашей, иногда в целях экономии полигонов из энтити-объектов типа func_wall. Вариантов исполнения довольно много, взгляните на картинку ниже. На ней представлено 4 возможных варианта изготовления лестницы.
t12ladder3 Помните, что высота ступеньки лестницы не должна превышать 16 юнитов. Это необходимо, чтобы игрок мог подняться на ступеньку без прыжка . Длина ступеньки выбирается произвольно. Однако удобнее забираться по пологим лестницам с длиной ступеньки в 32 юнита. Также часто применяют ступеньки высотой 16 юнитов.
На нашей тестовой карте мы создали четыре разных типа лестниц: простую бетонную, деревянную с просветами, деревянную без просветов и металлическую с прозрачными решетками (см. рис. ниже).
Изображения лестниц с тестовой карты
Вы можете скачать архив и посмотреть как сделана та или иная лестница. Как всегда, в архиве исходник карты в формате RMF и уже откомпилированный вариант в BSP.
ladders.zip [54Кб] — в архиве карта-пример в форматах BSP и RMF.
12.3

Винтовые лестницы

В этой статье мы познакомим Вас с техникой создания винтовых лестниц при помощи инструмента Block и его функции Arch. Например, Вы сможете создать лестницу, как на рисунке ниже. Также функцию Arch можно использовать для создания арок или каких-то других "округлых" объектов.
Винтовая лестница
Функция Arch доступна на панели "New Objects" при выбранном инструменте Блок.
t12vladder0 Нелишним будет заглянуть в "Tools\Options\General" и узнать отмечен ли флажок "Stretch arches to fit original bounding rectangle" — от этого зависит, как поведет себя создаваемый объект.
Если флажок отмечен — создаваемый объект будет растянут до размеров исходного прямоугольника, не отмечен — не будет растянут (см. рис. ниже).
t12vladder1 Наверно, удобнее отметить флажок, т.к. в этом случае мы точно знаем, какого размера будет создаваемый объект.
Чтобы создать винтовую лестницу необходимо определить ее размеры прямоугольником (как при создании обычного браша). Высоту прямоугольника рекомендуем сделать 16 юнитов (стандартная высота ступеньки).
Когда Вы нажмете "Enter" или выберете пункт "Create object", появится следующее окно:
t12vladder2 При изменении любого параметра Вы можете посмотреть результат, нажав кнопку "Preview".
Wall width
Ширина ступеньки. Можно задавать отрицательные значения.
Number of Sides
Количество ступенек. Значение от 3 до 100.
Arc
Угол поворота лестницы. Значение от 8 до 360 градусов.
Start Angle
Начальный угол, на который повернута лестница.
Add Height
Если Вы создаете винтовую лестницу, этот параметр определяет высоту ступеньки. Чтобы игрок мог забраться, рекомендуем значения 8 или 16.
После того, как лестница будет создана, мы рекомендуем "подогнать" вершины ступенек под сетку.
На картинке ниже, на виде сверху видно, что вершины ступеней лестницы могут не совпадать с пересечениями линий сетки — что не очень хорошо.
t12vladder3 На следующих двух картинках показано, как лучше "поправить" вершины.
t12vladder4 t12vladder5 Таким же образом необходимо "подогнать" под сетку все вершины лестницы.