Необходимые программы:

1. Графический редактор с поддержкой файлов BMP 8bit.  
    Photoshop вполне подойдет. В нем мы будем создавать "карту высот",
    по которой и будет делаться наш уровень.
2. Генератор ландшафта, в котором бы будем делать уровень. В данном случае расматривается EasyGen. Скачать его можно тут. (GenSurf из комплекта GTKRadiant здесь не расматривается)
Создаем карту высот:
Карта высот представляет из себя растровый файл, в котором различные 
цвета определяют высоту ландшафта. 
Черый - это самый низ; белый, соответственно, верх.
Промежуточные градации цвета (градации серого) - это средние высоты.
Открываем Photoshop, создаем новый файл. Он должен быть кратным, (к примеру - 18 на 18 сантиметров), иметь разрешение 300 точек на дюйм (300 dpi) и иметь цветовую модель RGB. Затем выбираем инструмент brush и рисуем то, что нам хочется:
height_map Теперь изменяем цветовую модель и размер файла. Выбираем цветовую модель Image=>Mode=>Indexed Color. Затем изменяем размер файла в соответствии с размером будущей карты. К примеру, если мы хотим создать карту размером 3200х3200 единиц, то нам нужен размер карты высот 33х33 пикселя. Идем в Image =>Image size и указывем новый размер - 33х33 пикселя.
Сохраняем файл как BMP. На этом c Photoshop закончили.
Создание сетки уровня в EasyGen:
Запускаем программу и выбираем импорт карты высот:
File=>Import=>heightmap (*.bmp)
После чего мы видим нашу базовую сетку:

eg_import
Здесь можно задать максимальную высоту сетки, ее частоту и размер 
(последнее не рекомендуется)
После того как мы задали нужную высоту, к примеру - 512, можно приступать к редактированию.
Редактирование: Переключаемся в меню Modifier, где мы можем вручную по полигонам изменять сетку или воспользоваться одним из базовых модификаторов (подробнее смотрите мануал по EasyGen): Чтобы вручную передвигать вертексы сетки, мы должны нажать ctrl+shift и удерживая их, передвигать вверх-вниз нужные нам полигоны. Получаем примерно такую сетку (красным цветом отмечены плоские участки сетки): edited_mesh Теперь нам нужно создать alphamap, по которой terrain шейдер будет располагать текстуры. Переключаемся в закладку Alphamap, затем в меню Textures указывем директорию, где у нас лежат текстуры, которые будут использоваться (к примеру - baseq3\textures\stone). Здесь нам надо выбрать количество цветов (оно должно соответствовать количеству текстур в шейдере). Выбираем количество уровней, равное трем, и назначаем для каждого цвета свою текстуру. Программа автоматически создаст alphamap: При желании можно ее отредактировать. Принцип такой же, как и при редактировании вертексов сетки. В итоге получаем примерно такую картинку: alphamap_final Теперь мы можем экспортировать наш ландшафт в радиант. Выбираем в меню 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 - задает уровень освещения по умолчанию.
Теперь можно добавить строения, оружие и предметы на уровне. После чего можно компилировать карту и создавать пути для ботов.
screenshot Cкачать заготовку можно тут
Added: December 17, 2003
Сайт создан в системе uCoz