Пятница, 21.07.2017, 05:38
logo

Пользовательский поиск

Меню сайта
Категории раздела
Разное [15]
Tutorials
Создание карт [13]
Создание моделей [2]
Кодинг [14]
Создание карт CS [197]
Учебник cs-mapper
Свойства entity HL-CS [117]
Форма входа
Логин:
Пароль:
Наш сервер CS 1.6
Поиск
Наш опрос
Ваш телефон
Всего ответов: 101
Атмосфера
Друзья сайта


Главная » Статьи » HL Development » Создание карт CS

Учебник по созданию карт CS HL. Простое небо (метод коробки)



CS-MAPPER — Создание карт для
 CS. 
 
 
Ссылки 
Статьи

Учебник по созданию карт
Глава IX. Небо.

§ 9.1 Простое небо (метод коробки)

Из данного материала вы узнаете о простом способе создания неба. Данный метод не требует много времени и больших усилий, но имеет некоторые недостатки. Мы рассчитываем, что вы уже умеете делать «закрытые» уровни (без неба), представляющие собой 1 или несколько соединенных между собой комнат.


Что такое небо?

Небо в HL (Counter-Strike) — это имитация открытого пространства, которая реализуется следующим:
  • SKY-брашами, построенными вокруг уровня
  • Картинкой неба, записанной в свойства уровня
SKY-браши — это простые браши (правда, часто значительных размеров), окрашенные СО ВСЕХ СТОРОН спец. текстурой по имени SKY. SKY-браши строятся вокруг уровня, образуя эдакий колпак, отделяющий уровень от внешнего «вакуума».

Наглядно небо в HL и CS можно представить в виде сковородки с прозрачной крышкой, где сковородка — ваша карта, а прозрачная крышка — небо. Крышка обязательно должна плотно прилегать к сковородке, не должно быть щелей и дырок, ведущих во «внешний мир». Это непременное и очень важное условие при создании неба. Небо должно абсолютно отделять уровень от внешнего мира, иначе возникнет ошибка при компиляции — та самая, страшная, пугающая новичков, ошибка LEAK :-)

Почему крышка прозрачная? А прозрачна она потому, что само по себе небо, то есть SKY-браши прозрачны в игре. В действительности игрок видит КАРТИНКУ, а если точнее шесть картинок неба, спроецированных на грани большого воображаемого куба. Этот куб расположен за пределами уровня (за сковородкой с прозрачной крышкой :-) Представьте себе большой куб, расположенный за уровнем, с наложенными на его грани изображениями неба. Игрок глядит через прозрачную крышку сковродки (SKY-браши) и видит эти картинки. Рисунки неба создаются в спец. программе и подогоняются друг к другу таким образом, что у игрока создается ощущение, что он видит простое «круглое» небо, а не 6 картинок, наложенных на грани куб.

Для изготовления неба используется только специальная текстура SKY. На объектах (брашах) неба не должно быть других текстур, кроме SKY. Только SKY-текстуры! Это ещё 1-но обязательное условие!

В данном материале мы построим простое небо — одной большой коробкой вокруг карты. Мы просто-напросто поместим весь наш уровень в больщую комнату, все грани которой будут окрашены спец. текстурой SKY.

Итак. Допустим у нас имеется вот такой маленький открытый уровень, совсем простой по конструкции (смотрите картинку ниже).

Открытая карта

Данный уровень состоит всего из пяти брашей (один браш — земля и четыре браша — бортики). На всякий случай сообщим размеры уровня: пол имеет размеры 512 х 384 х 64 юнита, а четыре бортика высоту 48 юнитов.

Выберем текстуру SKY (она расположена в стандартном и самом большом текстурном файле halflife.wad) и построим вокруг уровня большой браш так, чтобы он полностью оказался в нём, и ещё оставалось чуть-чуть места по краям (желательно 16-32 юнита с каждой стороны).

На картинках ниже показаны виды сверху и спереди и очертания создаваемого SKY-браша. В принципе нет надобности оставлять так много пустого места до краев уровня. Это даже не полезно и несколько замедлит компиляцию. Конечно, лучше строить небо впритирку к стенкам уровня, но пока что пусть будет так — с запасом.

Строим браш из текстуры SKY на виде сверху

Браш из текстуры SKY на виде спереди

После завершения создания SKY-браша, нажатием кнопки «Enter», нужно превратить его в КОМНАТУ. Подробнее об этой операции мы писали в материале: «Создание пустотелых объектов при помощи Hollow».
Таким образом, был у нас 1 SKY-браш, а после применения функции Hollow, появилась комната, состаящая из шести SKY-брашей (пол, потолок, стены). Создание именно комнаты из шести SKY-брашей нужно, чтобы небо заработало. Теперь наш уровень расположен внутри комнаты, состоящей из шести стен, полностью окрашенных текстурой SKY.

Как применить Hollow? Выбираем созданный SKY-браш и нажимаем [Ctrl-H], то есть применяем функцию Hollow — придаем толщину стенкам браша. В появившемся окне нужно указать толщину стен комнаты. Можно оставить значение по умолчанию: 32.

Простое небо готово! После данной операции уровень должен выглядеть примерно так:

Так выглядят карта с небом вокруг


Уменьшения вреда от неба-коробки (метод 1)

Наверное, у вас останется кое-какое пространство между стенами комнаты и уровнем (как у нас на картинке). Рекомендуется делать комнату ровно по размерам уровня, чтобы ни около дна, ни около стен уровня не оставалось открытых областей. То есть необходимо, чтобы стенки комнаты соприкасались со стенами и дном карты. А вот сверху уровня наоборот место оставить необходимо, чтобы игроки не бились головами о небо и могли свободно прыгать. Данная рекомендация поможет уменьшить работу программам-компиляторам, которые будут избавлены от необходимости просчитывать пустое пространство вокруг уровня.


Уменьшения вреда от неба-коробки (метод 2)

Когда мы создали вокруг уровня плотно прилегающую комнату из SKY-брашей, нужно сократить работу программе-компилятору HLRAD.EXE, который просчитывает освещённость уровня. Как вы возможно знаете, освещение в уровне проецируется именно со SKY-текстур. Компилятор HLRAD.EXE находит, где расположены SKY-браши и проецирует с них освещение на все остальные объекты, имеющие какую-либо другую текстуру. Таким образом, он просчитает на освещение и дно, и внешние стороны карты, так как они имеют свои текстуры и соприкасаются со SKY-брашами.

Следует отметить, что операция по просчету освещённости самая продолжительная из всех и к тому же самая требовательная к системным ресурсам компьютера. А, посему, обязательно нужно ЗАКРАШИВАТЬ ВСЕ ВНЕШНИЕ СТОРОНЫ карты текстурой SKY. SKY-текстуры не создают полигонов. Они просто игнорируются при просчёте освещения. Грех не воспользоваться данным её отличным свойством и значительно не ускорить процесс компиляции уровня.

На картинках ниже показаны незакрашенные и закрашенные внешние стороны уровня (также у данного уровня закрашено дно), которые игрок никогда в игре не увидит. Эти поверхности не будут просчитаны на освещённость, тем самым время компиляции существенно сократится (чем больше уровень, тем больше экономия; иногда экономится до 50 процентов времени!). Также можно закрашивать крыши домов и любые другие поверхности, которые игрок НИКОГДА НЕ УВИДИТ в игре. Кстати, благодаря этому, уменьшается и размер уровня (в Мб).

При создании неба-коробки все внешние стены и дно карты необходимо закрасить SKY-текстурой

При создании неба-коробки все внешние стены и дно карты необходимо закрасить SKY-текстурой

Закрашиваем невидимые игроку поверхности текстурой SKY

Вот и всё, что касается оптимизации уровня под простое небо коробкой. Если не выполнить данные две простые меры, то при большом по размеру уровне, время компиляции может стать значительным. Согласитесь, есть разница сколько ждать: 2 часа или 35 минут.


Выбираем картинку неба

Как уже говорилось выше, само небо — прозрачное, а игрок видит спроецированные на воображаемый куб шесть рисунков неба.

Рисунки с изображениями неба лежат в папке «cstrike\gfx\env..» и имеют формат TGA 24-bit и размеры 256х256 пикселей. Также возможно использование картинок в форматах PCX и BMP 8-bit, но они необходимы только для игры на старых-престарых видеокартах без 3D-ускорителя. Все нынешние видеокарты имеют ускоритель, поэтому форматы PCX и BMP использовать нет необходимости.

Так как рисунки накладываются на грани куба, то всего рисунков неба — шесть. Названия рисунков имеют следующий формат:

skynameRT.tga — правая картинка (от англ. right)
skynameFT.tga — передняя картинка (от англ. front)
skynameLF.tga — левая картинка (от англ. left)
skynameBK.tga — задняя картинка (от англ. back)
skynameUP.tga — верхняя картинка (от англ. up)
skynameDN.tga — нижняя картинка (от англ. down)

где skyname — это любая комбинация букв и цифр, обозначающая имя картинок неба.

Любой из данных рисунков «нарисован» в спец. программе (их несколько) достаточно хитрым образом :-) — если приставить их друг к другу, то они образуют замкнутую область (единый пейзаж). Надо отметить, что вид данных рисунков в игре никак не зависит от формы SKY-брашей (формы созданного неба). Просто там, где игрок видит SKY-браши — он видит небо (спроецированные на дальний воображаемый куб картинки).


Указываем название неба

Что же, выберем понравившийся рисунок неба и запомните её имя. Отбросьте 2 ПОСЛЕДНИЕ БУКВЫ (RT, FT, LF, BK, UP, DN).

В Хаммере вызовите окошко с главными параметрами уровня «Map\Map properties...». И впишите имя неба в параметр environment map (смотрите картинку ниже). БЕЗ ПОСЛЕДНИХ ДВУХ БУКВ!

Ниже мы записали имя des — это небо от De_Dust.

Вписываем название картинки неба в строку environment map

А вот так наш уровень будет выглядеть в игре:

Так карта с небом от de_dust выглядит в игре


Советы по выбору рисунка неба

Старайтесь подбирать картинки неба под архитектуру и цвет главных текстур уровня. К примеру, если уровень светлый и на нём находятся горы, то и рисунок неба нужно подобрать с горами и светлым небом. Если действия на карте разворачиваются вечером, в городе, то и небо на рисунке следует подобрать ночное и пр.


Теперь остается разместить «солнышко» — источник света light_environment внутри уровня (+ разместите хотя бы одну точку рождения игрока), то есть под колпаком из SKY-брашей и запустить компиляцию.


Недостатки неба-коробки:

[–] если не ограничить передвижение игроков CLIP-брашами, то можно упасть за пределы уровня (если небо идет не вплотную к уровню);
[–] программа-компилятор HLVIS.EXE оптимизирует визуальную часть уровня значительно дольше из-за просчёта лишних clipnode-плоскостей снаружи карты;
[–] время компиляции возрастает из-за просчета освещения внешних (невидимых в игре) поверхностей брашей;
[–] больший размер готовой карты;

Достоинства неба-коробки:

[+] быстрое изготовление;
[+] Вы никогда не столкнетесь со страшной ошибкой LEAK :-)
[+] При условии выполнения 2-ух пунктов по оптимизации уровня, рассмотренных выше, с небом-коробкой большинство недостатков исчезают;

Как видно, достоинств несколько и довольно весомых (быстрота изготовления и гарантия, что не будет ошибки LEAK), однако, если вы не оптимизируете уровень, то четыре недостатка окажутся значительно весомее. Вообще можно утвержадать, что небо коробкой — это не очень хорошо, но для простых и маленьких карт оно вполне подходит! На крупных же уровнях мы советуем делать более сложное, но и более грамотное небо. О создании грамотного неба речь пойдет в следующем материале Учебника.


Ссылки

sky_simple_32.zip [9Кб] — в архиве карта-пример в форматах BSP и RMF.

Глава IX. Небо.

§ 9.1   Простое небо (метод коробки)
§ 9.2   Правильное небо
§ 9.3   Названия стандартных картинок неба
§ 9.4   Создание картинок неба в программе Terragen

К оглавлению Учебника

Категория: Создание карт CS | Добавил: SuperStart (03.03.2012)
Просмотров: 1165 | Теги: Counter-Strike, Entity, Half-Life, энтити | Рейтинг: 0.0/0 |


Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Copyright www.akksimo.net © 2017