Создание лестницы
В данном уроке будет описано создание простой лестницы (не вертикальной), которая послужит отличным переходом между уровнями вашей карты.
Для начала необходимо определиться нужна ли вам на карте именно лестница со ступенями, а не простой плавный подъем. Вы должны понимать как будущая конструкция может ухудшить оптимизацию карты и даже геймплей, по этому не надо забывать про то, что за место лестниц можно использовать и простые плавные подъемы.
de_aztec — отличный пример с псевдо-лестницами.
И так, нам нужна именно лестница со ступенями, тогда определимся с размерами, вы должны тщательно подсчитать все размеры ступенек и их количество, особенно если ваша лестница должна ровно упираться в один из уровней карты.
Как это не странно, создание любой лестницы правильнее начать со ступеньки. Я возьму обычные размеры небольшой ступеньки для небольших лестниц: 96x16x8 (ширина, длина, высота, если смотреть прямо на ступеньки). Не забывайте, что игрок может забраться простым передвижением на 16 юнитов, по этому максимальная высота ступеньки не должна превышать это значение. Такие размеры охотно используются на стандартных картах в Counter-Strike 1.6.
Небольшая лестница на de_dust2 (высота ступени: 16 юнитов).
Лестницами так же можно назвать такие конструкции
из 2-3 ступеней (высота ступени: 16 юнитов).
Мы определились с размерами и готовы к строительству. Начинаем со ступеньки, берем NULL текстуру, создаем из нее браш нужных нам размеров, после чего закрашиваем двумя текстурами.
Текстуры для ступеньки вы можете подобрать/сделать по вкусу, но все же они должны быть схожи. Так же рекомендуется подчеркнуть горизонтальность текстуры, которая используется на боку ступени. Я использовал текстуры из карты de_tuscan09 от Badger'а, надеюсь он не будет против
.
Далее необходимо соединить два вертекса у нашей ступени так, что бы сбоку она была треугольником. Это вы можете сделать через Vertex tool или же Clipping tool.
На этом создание ступени завершено. Теперь осталось скопировать и вставить их так, что бы вместе они представляли из себя лестницу.
Для этого удобно использовать функцию "Специальная вставка". Копируем нашу ступеньку, жмем Edit / Paste special... и вводим нужные нам настройки. Подробнее про настройки, которые нас интересуют:
И привели они вот к такому результату:
Не огорчайтесь если с первого раза у вас не получилось ровно вставить ступеньки. Обратите внимание на оси и размеры ступеньки, которые надо вводить в настройки "специальной вставки".
Часть лестницы готова, теперь необходимо сделать не мало важную вещь, а именно: разнообразить текстуры лестницы, для того, что бы текстура часто не повторялась и наша лестница не выглядела однообразно. Просто выделяйте текстуру бока каждой ступени и смещайте ее по X оси, задавая случайные координаты.
Для усиления эффекта этот же метод можно применить и к верхним частям ступеней.
Теперь создадим основу для нашей лестницы. Она будет зависеть от того, какая лестница вам нужна, а точнее с пустотой под ней или без. Я выбрал вариант с пустотой, к тому же место под лестницей является классическим секретом с каким-нибудь предметом в одиночных (да и не только) играх.
Лестница почти готова. Для оптимизации необходимо все ее ступени обратить в func_wall. Что не позволит им разрезать другие браши, которые плотно прилегают к ним. Но здесь есть и минус, а именно: модели (в том числе и игроки), находящиеся на лестнице будут не правильно освещаться. Для того, что бы исправить это, необходимо верхнюю часть основы лестницы (ту, что находится под ступеньками) покрасить в обычную текстуру, а не в NULL.
Отказ от NULL текстуры для правильного освещения объектов.
Сравнение освещённости моделей мешков с NULL и обычной текстурой.
На этом этапе наша лестница готова, она красиво выглядит и не столь требовательна к ресурсам. Конечно же можно ее значительно улучшить, добавив перила, отколов углы некоторых ступеней, искривив их, добавив горстки песка в углы и т.д. Все ограничивается лишь вашей фантазией и возможностями игры.
На последок думаю не будет лишним упомянуть еще одно "дополнение" для лестниц. Его история судя по всему начинается с того, что игроки, поднимающиеся по лестнице резко смещаются вверх из-за простых переходов на ступеньки. Для сглаживания этого эффекта мапперы добавляют кривой CLIP браш (или func_wall в NULL текстуре) так, что бы лестница превратилась в самый обычный плавный подъем со ступеньками.
CLIP браш, сглаживающий подъем игроков по лестнице.
Делать так или нет решать вам, но игроки могут чувствовать себя не столь комфортно на таком ноу-хау, по этому не стоит пренебрегать самыми обычными лестницами. Да и желаемого эффекта вы можете не достигнуть с первого раза, возможно, что вам даже понадобиться редактировать настройки компиляторов.
* Скачать исходник карты вместе с текстурами, получившийся при создании туториала вы можете во вложении.
* В туториале использовались текстуры из карты de_tuscan09 от Badger'а.
В данном уроке будет описано создание простой лестницы (не вертикальной), которая послужит отличным переходом между уровнями вашей карты.
Для начала необходимо определиться нужна ли вам на карте именно лестница со ступенями, а не простой плавный подъем. Вы должны понимать как будущая конструкция может ухудшить оптимизацию карты и даже геймплей, по этому не надо забывать про то, что за место лестниц можно использовать и простые плавные подъемы.
de_aztec — отличный пример с псевдо-лестницами.
И так, нам нужна именно лестница со ступенями, тогда определимся с размерами, вы должны тщательно подсчитать все размеры ступенек и их количество, особенно если ваша лестница должна ровно упираться в один из уровней карты.
Как это не странно, создание любой лестницы правильнее начать со ступеньки. Я возьму обычные размеры небольшой ступеньки для небольших лестниц: 96x16x8 (ширина, длина, высота, если смотреть прямо на ступеньки). Не забывайте, что игрок может забраться простым передвижением на 16 юнитов, по этому максимальная высота ступеньки не должна превышать это значение. Такие размеры охотно используются на стандартных картах в Counter-Strike 1.6.
Небольшая лестница на de_dust2 (высота ступени: 16 юнитов).
Лестницами так же можно назвать такие конструкции
из 2-3 ступеней (высота ступени: 16 юнитов).
Мы определились с размерами и готовы к строительству. Начинаем со ступеньки, берем NULL текстуру, создаем из нее браш нужных нам размеров, после чего закрашиваем двумя текстурами.
Текстуры для ступеньки вы можете подобрать/сделать по вкусу, но все же они должны быть схожи. Так же рекомендуется подчеркнуть горизонтальность текстуры, которая используется на боку ступени. Я использовал текстуры из карты de_tuscan09 от Badger'а, надеюсь он не будет против
Далее необходимо соединить два вертекса у нашей ступени так, что бы сбоку она была треугольником. Это вы можете сделать через Vertex tool или же Clipping tool.
На этом создание ступени завершено. Теперь осталось скопировать и вставить их так, что бы вместе они представляли из себя лестницу.
Для этого удобно использовать функцию "Специальная вставка". Копируем нашу ступеньку, жмем Edit / Paste special... и вводим нужные нам настройки. Подробнее про настройки, которые нас интересуют:
- Number of copies to paste / Количество копий для вставки / Т.е. количество ступеней для нашей лестницы - (минус) одна ступенька.
- Offset (accumulative) / Смещение на одну вставку / Это координаты, на сколько будет смещен "курсор вставки" для каждой копии.
И привели они вот к такому результату:
Не огорчайтесь если с первого раза у вас не получилось ровно вставить ступеньки. Обратите внимание на оси и размеры ступеньки, которые надо вводить в настройки "специальной вставки".
Часть лестницы готова, теперь необходимо сделать не мало важную вещь, а именно: разнообразить текстуры лестницы, для того, что бы текстура часто не повторялась и наша лестница не выглядела однообразно. Просто выделяйте текстуру бока каждой ступени и смещайте ее по X оси, задавая случайные координаты.
Для усиления эффекта этот же метод можно применить и к верхним частям ступеней.
Теперь создадим основу для нашей лестницы. Она будет зависеть от того, какая лестница вам нужна, а точнее с пустотой под ней или без. Я выбрал вариант с пустотой, к тому же место под лестницей является классическим секретом с каким-нибудь предметом в одиночных (да и не только) играх.
Лестница почти готова. Для оптимизации необходимо все ее ступени обратить в func_wall. Что не позволит им разрезать другие браши, которые плотно прилегают к ним. Но здесь есть и минус, а именно: модели (в том числе и игроки), находящиеся на лестнице будут не правильно освещаться. Для того, что бы исправить это, необходимо верхнюю часть основы лестницы (ту, что находится под ступеньками) покрасить в обычную текстуру, а не в NULL.
Отказ от NULL текстуры для правильного освещения объектов.
Сравнение освещённости моделей мешков с NULL и обычной текстурой.
На этом этапе наша лестница готова, она красиво выглядит и не столь требовательна к ресурсам. Конечно же можно ее значительно улучшить, добавив перила, отколов углы некоторых ступеней, искривив их, добавив горстки песка в углы и т.д. Все ограничивается лишь вашей фантазией и возможностями игры.
На последок думаю не будет лишним упомянуть еще одно "дополнение" для лестниц. Его история судя по всему начинается с того, что игроки, поднимающиеся по лестнице резко смещаются вверх из-за простых переходов на ступеньки. Для сглаживания этого эффекта мапперы добавляют кривой CLIP браш (или func_wall в NULL текстуре) так, что бы лестница превратилась в самый обычный плавный подъем со ступеньками.
CLIP браш, сглаживающий подъем игроков по лестнице.
Делать так или нет решать вам, но игроки могут чувствовать себя не столь комфортно на таком ноу-хау, по этому не стоит пренебрегать самыми обычными лестницами. Да и желаемого эффекта вы можете не достигнуть с первого раза, возможно, что вам даже понадобиться редактировать настройки компиляторов.
* Скачать исходник карты вместе с текстурами, получившийся при создании туториала вы можете во вложении.
* В туториале использовались текстуры из карты de_tuscan09 от Badger'а.
Attachments
-
247.8 KB Views: 316
Last edited:
, молодец. Но я думаю что он для новичков
.



раньше вроде резал, хотя может просто совпавли полигоны когда смотрел через gl_wireframe