В данном материале мы рассказываем о том, как с помощью программы Terragen можно создавать рисунки неба для использования на своём уровне.
ЧАСТЬ ПЕРВАЯ. О небе в Counter-Strike
1.1 Environment Map (небо)
Environment Map — это графическая иллюстрация природного ландшафта.
Что касается Counter-Strike, то это ШЕСТЬ рисунков неба, которые
сформированны таким образом, что отображают всё пространство вокруг
игрока.
Создавая SKY-брашами небо вокруг уровня, мы указываем движку
Half-Life, где игрок будет видеть рисунки неба. Затем шесть рисунков
накладываются на стороны воображаемого далёкого куба, находящегося как
бы за уровнем. Из чего следует, рисунки можно назвать по сторонам куба: верхняя, нижняя, левая, правая, передняя и задняя.
1.2 Где хранятся рисунки неба?
Рисунки неба для Counter-Strike уровней хранятся в директории «cstrike\gfx\env..».
1.3 Размер и формат картинок неба
Размер рисунков строго ограничен и составляет 256 х 256 пикселей. Основным форматом является TGA (24-бит). Раньше, когда еще не было 3D-ускорителей, использовался формат PCX и BMP (8-бит), однако сейчас, когда у всех видеокарт есть ускорители, необходимость в этих форматах отпала.
1.4 Названия картинок неба
Чтобы небо правильно отображалось в уровне, нужно правильно называть
каждый рисунок неба. Имена рисунков составляются по формату: skynameXX, где skyname — любо название картинки неба, а ХХ — одно из шести окончаний (смотрите ниже).
skynameUP — up (верхняя картинка) skynameDN — down (нижняя картинка) skynameLF — left (левая картинка) skynameRT — right (правая картинка) skynameFT — front (передняя картинка) skynameBK — back (задняя картинка)
То, что идет до выделенных жирным букв, не имеет значения, сюда вы
можете вписать что захотите. А вот последние 2 буквы всякого рисунка
должны быть именно такими. Сделано это для того, чтобы движок Half-Life
знал какой рисунок проецировать на какую сторону воображаемого куба.
А вот как «стыкуются» рисунки неба (мысленно сложите эту развёртку в куб и получите небо в Counter-Strike):
Когда вы делаете уровень и определяете какое небо будет на нем, то в меню Хаммера «Map\Map properties...» в параметр environment map
следует указывать имя картинки неба, но БЕЗ последних двух букв!
Например, для карты De_Dust мы вписали бы имя des, а для De_Aztec —
doom1.
ЧАСТЬ ВТОРАЯ. Изготовление рисунков неба с помощью программы Terragen
Теперь перейдем к программе Terragen для генерации рисунков.
Мы использовали версию 0.8.11 (в момент написания данного материала
уже существовала версия 0.8.44). Программа платная, но её можно
использовать бесплатно с некоторыми ограничениями. Или же вы можете
воспользоваться кряком, которых в сети навалом. Но мы вам этого не
говорили :-)
Главными достоинтсвами Terragen перед другими подобными программами
являются: ее небольшой размер, а также быстрая генерация картинок (даже
на маломощных компьютерах).
В Terragen можно создавать различные природные явления такие, как туман, молнии и др. Для
данной программы есть немалое число плагинов, которые расширяют её
возможности, к примеру, при помощи плагинов можно создавать лес,
водопады, дома и т.п.
Итак, установите и загрузите Terragen. Изначально вы увидите два окна: Landscape и Rendering Control. Начнем с первого.
1. Окно Landscape
В окне Landscape рендерится внешний вид и рельеф пространства.
В начале откроем 1 из стандартных внешних видов (кнопка Open на
картинке выше). Выбор здесь небольшой, всего пять различных
поверхностей, среди которых есть: «Пустыня с травой», «Трава и песок»,
«Трава и снег», «Безжизненная пустыня» и «Красная пустыня».
Мы остановили свой выбор на «DesertAndGrass», то есть «Пустыне с травой».
В данном окне Landscape можно несколько подредактировать рельеф
местности — сделать повыше горы или наоборот глубже впадины
(инструменты, выполняющие эти операции, выделены синим прямоугольником
на изображении выше). Также можно выставить черно-белое или цветное
отображение рельефной карты (флажки Greys и Cols соответственно), но об
этом чуть позже, так как мы еще не сгенерировали местность.
Генерировать местность мы сможем после нажатия на кнопку Generate Terrain... (выделено красным овалом)
После нажатия на Generate Terrain..., появится такое окно, в котором можно выставить параметры будущей поверхности (выделено синим).
Method Выбор способа, используемого для генерации ландшафта. К примеру,
способы Ridged Perlin и Perlin Noise делают местность более скалистой.
Просто поэкспериментируйте с этими параметрами.
Action Если вы хотите создать новую поверхность «с нуля», то выбирайте 1-ый пункт (Erase first and generate...). В противном случае будет сгенерирована новая местность и совмещена с уже существующей.
Realism Чем больше значение, тем реалистичнее будет ландшафт, более плавными
будут переходы от холмов к впадинам и пр. Меньшее значение рендерит
более скалистый (отвесный) рельеф.
Smoothing Сглаженность пейзажа. Выставление слишком большого значения данного
параметра может привести к генерации не очень реалистичных ландшафтов.
Glaciation Данный параметр отвечает за выравнивание, сглаживание ложбин.
Canyonism Противоположность Glaciation, то есть генерирует более угловатый рельеф.
Size of Features Данный параметр определяет размеры возвышенностей, как по площади, так и по высоте.
А теперь, когда все параметры указаны, нажимаем Generate Terrain. Создается поверхность. И вот теперь можно подредактировать ландшафт вручную инструментами, описанными выше.
2. Окно Rendering Control
В окне «Rendering Control» мы устанавливаем местоположение и
направление взгляда камеры, а также указываем качество, детализацию и
размер будущих изображений.
1-ым синим прямоугольником выделены координаты камеры. Удобно
установить флажок на «Terrain units», тогда центральное положение камеры
будет при X=128 и Y=128 (Z — определяет высоту камеры над поверхностью
земли). Выставьте Х=128, Y=128, а Z=любым.
То, что не выделено синим прямоугольником («Target Position»)
устанавливает координаты мишени для камеры, то есть точки, куда
направлен её взгляд. Вобщем-то, можно эти координаты не указывать.
А вот на следующем синем прямоугольнике остановимся подробнее, но чуть
ниже :-) Сначала нужно указать Zoom, который определяет угол обзора
камеры. Нам требуется выставить угол 90 градусов, чтобы получить шесть картинок неба.
Для этого нажимаем в окне Rendering Control кнопку Camera Settings... (обведена красным овалом). Появится следующее окно:
Photographic Medium Здесь лучше установить последний пункт для получения наиболее реалистичных изображений.
Exposure/Light Sensitivity Оставим без перемен.
Zoom/Magnification Данный параметр ОБЯЗАТЕЛЬНО должен быть равен 1, иначе небо для Counter-Strike нам не создать.
Вернувшись в основное окно Rendering Control, нажимаем кнопку Settings... В появившемся окне устанавливаем максимально возможное качество
генерации, а также Ultra-режим сглаживания (доступен только в
зарегестрированной версии).
Вернемся к картинке с окном Rendering Control (смотрите картинку ниже).
Теперь нужно выставить размеры будущих рисунков. В HL (и CS), как мы
уже говорили, используются рисунки неба 256 х 256 пикселей. Однако можно
отрендерить рисунки большего размера, к примеру, 512 х 512 пикселей, чтобы на них отобразилось большее число деталей.
Затем эти рисунки нужно будет уменьшить до 256х256 пикселей в
каком-нибудь графическом редакторе (к примеру, Photoshop или в ACDSee).
Переходим к заключительной стадии в создании рисунков. Теперь все
параметры уже указаны, остается только отрендерить шесть рисунков,
вращая камеру по сторонам на 90 градусов.
Управление ориентацией камеры производится параметрами, обозначенными вторым синим прямоугольником: Head, Pitch, Bank.
Bank — должен всегда быть равен 0. Head — определяет сторону, в которую направлен взгляд камеры (0 градусов, 90 градусов, 180 градусов, 270 градусов). Pitch — направление взгляда по вертикали (90 градусов — строго вверх, -90 градусов — строго вниз).
Ориентация камеры при генерации картинок
RT (правый рисунок): Head=0 Pitch=0 Bank=0
FT (передний рисунок): Head=90 Pitch=0 Bank=0
LF (левый рисунок): Head=180 Pitch=0 Bank=0
BK (задний рисунок): Head=270 Pitch=0 Bank=0
UP (верхний рисунок): Head=0 Pitch=90 Bank=0
DN (нижний рисунок): Head=0 Pitch=-90 Bank=0
Для запуска процесса генерации 1-ого рисунка нажмите кнопку Render Image.
Процесс может затянуться, в зависимости от числа Мб оперативной памяти,
герцовки процессора, а также от размера, детализации и качества
будущего рисунка.
После создания первого рисунка, сохраните его в формате BMP (24-бита).
Измените параметры Head и Pitch на следующие и приступайте к генерации
второго рисунка.
В результате у вас должно получиться шесть картинок неба, которые
необходимо уменьшить до 256х256 пикселей и перевести в формат TGA
(24-бита).
3. Тестирование неба
Дайте имена рисункам по формату, разобранному выше в данном материале. К примеру, так:
Создайте простенькую тестовую карту. Для того, чтобы на карте было
видно сразу шесть картинок неба, сделайте пол из CLIP-браша, который в
игре будет прозрачным, и вы сможете увидеть все области неба.
Впишите имя clearday_ (с подчёркиванием) в параметр environment map, что находится в меню Хаммера: «Map\Map properties...».
Рисунки скопируйте в директорию «cstrike\gfx\env..» и запускайте уровень.