Необходимые программы:
1. Графический редактор с поддержкой файлов BMP 8bit.
Photoshop вполне подойдет. В нем мы будем создавать "карту высот",
по которой и будет делаться наш уровень.
2. Генератор ландшафта, в котором бы будем делать уровень.
В данном случае расматривается EasyGen. Скачать его можно тут.
(GenSurf из комплекта GTKRadiant здесь не расматривается)
Создаем карту высот:
Карта высот представляет из себя растровый файл, в котором различные
цвета определяют высоту ландшафта.
Черый - это самый низ; белый, соответственно, верх.
Промежуточные градации цвета (градации серого) - это средние высоты.
Открываем Photoshop, создаем новый файл. Он должен быть кратным,
(к примеру - 18 на 18 сантиметров), иметь разрешение 300 точек на дюйм
(300 dpi) и иметь цветовую модель RGB.
Затем выбираем инструмент brush и рисуем то, что нам хочется:
Теперь изменяем цветовую модель и размер файла.
Выбираем цветовую модель Image=>Mode=>Indexed Color.
Затем изменяем размер файла в соответствии с размером будущей карты.
К примеру, если мы хотим создать карту размером 3200х3200 единиц,
то нам нужен размер карты высот 33х33 пикселя.
Идем в Image =>Image size и указывем новый размер - 33х33 пикселя.
Сохраняем файл как BMP. На этом c Photoshop закончили.
Создание сетки уровня в EasyGen:
Запускаем программу и выбираем импорт карты высот:
File=>Import=>heightmap (*.bmp)
После чего мы видим нашу базовую сетку:
Здесь можно задать максимальную высоту сетки, ее частоту и размер
(последнее не рекомендуется)
После того как мы задали нужную высоту, к примеру - 512,
можно приступать к редактированию.
Редактирование:
Переключаемся в меню Modifier, где мы можем вручную по полигонам
изменять сетку или воспользоваться одним из базовых модификаторов
(подробнее смотрите мануал по EasyGen):
Чтобы вручную передвигать вертексы сетки,
мы должны нажать ctrl+shift и удерживая их,
передвигать вверх-вниз нужные нам полигоны.
Получаем примерно такую сетку
(красным цветом отмечены плоские участки сетки):
Теперь нам нужно создать alphamap, по которой
terrain шейдер будет располагать текстуры.
Переключаемся в закладку Alphamap, затем в меню
Textures указывем директорию, где у нас лежат текстуры,
которые будут использоваться (к примеру - baseq3\textures\stone).
Здесь нам надо выбрать количество цветов
(оно должно соответствовать количеству текстур в шейдере).
Выбираем количество уровней, равное трем, и назначаем
для каждого цвета свою текстуру.
Программа автоматически создаст alphamap:
При желании можно ее отредактировать.
Принцип такой же, как и при редактировании вертексов сетки.
В итоге получаем примерно такую картинку:
Теперь мы можем экспортировать наш ландшафт в радиант.
Выбираем в меню File=>Export=>Terrain Entity (.map).
Задаем имя файла карты (*.map), название alphamap, имя шейдера и т.д.
Шейдер может быть двух типов:
1. стандартный (вертексное освещение)
2. q3map2 (lightmapped terrain)
Первый является стандартным для Quake 3 и игр на его движке.
Второй создает ландшафт с картами освещенности (lightmap)
и доступен только при компиляции с помощью Q3map2.
Чтобы ландшафт корректно просчитывался Q3map2, необходимо
в шейдере common\terrain и terrain2 вписать строку:
q3map_terrain
Карту можно сразу поместить в скайбокс, добавить точку старта игрока
и экспортировать карту в радиант:
Работа в Radiant-е:
Сетка ландшафта в радианте уже переведена в группу брашей,
видимая часть которых окрашена шейдером terrain или terrain2,
а невидимые грани закрыты текстурой caulk для ускорения просчета карты.
В свойствах группы указаны следующие ключи:
alphamap - имя карты высот, по которой работает terrain шейдер; shader - имя сгенерированного в EasyGen шейдера ландшафта; layers - количество уровней в шейдере; terrain - указывает на то, что данная группа является ландшафтом;
Данная группа является detail брашем. Это сделано для того,
чтобы не перегружать компилятор при расчете vis таблиц.
Внешную блокировку осуществляет скайбокс,
а для более основательной портализации уровня следует
вручную выставить hint порталы на уровне.
В свойствах worldspawn мы увидем прописанные имена
вертексных шейдеров, а также ключи:
gridsize - размер световой сетки; enableDust - при виде от третьего лица под моделью игрока,
когда он прыгает / приземляется, появляется пыль (только в Team Arena); enableBreath - при виде от третьего лица у лица игрока появляется
пар от дыхания (только в Team Arena);
ambient - задает уровень освещения по умолчанию.
Теперь можно добавить строения, оружие и предметы на уровне.
После чего можно компилировать карту и создавать пути для ботов.
Cкачать заготовку можно тут
Added: December 17, 2003
|