Автор: Uksus
Опубликовано: 30.12.2009
Комментарии [0]
Введение
Этап 1. Подготовка карты
Этап 2. Подготовка ландшафта
Этап 3. Редактирование ландшафта
Этап 4. Небо и туман
Этап 5. Контрольные точки (флаги), места респаунов и техника
Этап 6. Добавляем воду
Этап 7. Размещение объектов
Этап 8. Лайтмаппинг
Этап 9. Запаковка карты и её запуск
Данный туториал рассчитан на мапперов-новичков. В течение урока мы создадим несложную карту, и попутно ознакомимся с работой в инструментах и различными методами применяемыми сейчас в маппинге под "Battlefield 2".
Инструментарий, который мы будем использовать:
- Battlefield 2
- BF2 Editor
- BF2 Lightmap Samples
- L3DT Heightmap Generator
- BF2 Terrain Painter (Tpaint)
- BF2 Pack
Все эти инструменты можно найти здесь.
Загружаем BF2 Editor. После загрузки появиться окно для выбора мода, выбираем BF2.

В верхнем левом углу, в выпадающем списке выбираем "Terrain Editor".

Жмем File -> New
Появиться окно настроек новой карты. Установим параметры, как показано на скрине (имя карты можно указать любое), далее жмем "Ок".

Здесь "Tutorial_Map" - название нашей тестовой карты.
Подождите, пока редактор создаст новую карту.

Закройте BF2 Editor, поскольку ландшафт мы будем делать с помощью сторонних программ.
Ландшафт можно конечно сделать и в редакторе BF2 Editor, но этот процесс там довольно сложный. Куда быстрее, проще и надежнее использовать программы для терраморфинга.
Воспользуемся программой L3DT.
Откроем её и создадим новую карту нажатием кнопки "New Map".
В появившемся окне со списком выбираем пункт "Design Inflate".

Размер указываем 512, такой же какой был в редакторе BF2 Editor.

Далее появиться окно, с параметрами терраформинга:


Ставим нужные значения и жмем "ОК". Далее увидим заготовку, что-то вроде этого:

Жмем "Next" и ждем пока сгенерируется ландшафт.
Теперь экспортируем ландшафт, чтобы его можно было использовать в движке BF2:

Укажем параметры экспорта как на скриншоте ниже (путь для экспорта можно указать любой).
Запомните!
Размер при экспорте обязательно нужно указывать на 1 пиксель больше,
чем размер самой карты (если карта 512x512, то следует указать 513х513).

После экспорта программа L3DT больше не понадобится, закрываем её.
Копируем экспортированный ландшафт в каталог с ранее созданной картой в редакторе BF2 Editor:
..путь_к_БФ2..\mods\bf2\levels\Tutorial_Map.
На вопрос "Заменить файл?" отвечаем "Да".
Для редактирования ландшафта воспользуемся маленькой да удаленькой программкой BF2 Tpaint:
* Копируем папку с ней в каталог карты
* Заходим в эту папку и запускаем bf2_tPaint.exe
* Выбираем всё кроме "paint surrounding terrain" и жмём "go"
* Появятся две новые папки - "Colourmaps" и "Detailmaps"
Копируем обе в папку Editor в каталог карты (\mods\bf2\Levels\Tutorial_Map\Editor)
Доводку выполним в редакторе BF2 Editor. Загружаем его и нашу карту.
Переключаемся в режим "Terrain Editor", жмем кнопку "Texture":

Слои:
Layer 1 = Возвышенности/горки. (сюда вставляем текстуры скал)
Layer 2 = Верхушки гор
Layer 3 = Низины, подножья гор
Выделяем Layer 1.

Ниже, в окне TweakBar выбираем какую-нибудь скалистую текстуру и ставим желаемые настройки.
Внимание!
Обязательно поменяйте "LowDetailType" на "2" для этого слоя.
Также поменяйте параметр "PlaneMap" на "1".

Для слоя "Layer 2" выбираем текстуру для верхушек гор (например - траву).
Параметр "LowDetailType" на этот раз ставим в "1".

В слое "Layer 3" выбираем текстуру, которая будет для подножья гор и равнин (например песок).
Параметр "LowDetailType" также ставим в "1".
Остальные слои (Layers 4,5,6) можно использовать для любых других текстур, которые вы можете нанести вручную. Если при рисовании вы столкнетесь с "блочностью" текстур, попробуйте сменить "Colour tiling" на 0/0. Если хотите сделать лужу, выбирайте текстуру с "Env_map" (в названии таких текстур присутсвует "env" или "__env") . Затем включите параметр EnvMap на панели TweakBar.
Учтите, что лужи будут отражать окружение только в игре, но не в редакторе.
Идём дальше:
* Выбираем слой "Layer 1"
* Справа жмем "Set Low Detail Texture"
* Выбираем "defaultlowdetail", жмем "Ок"
* Жмем "Generate Low Detailmap"
* Проделываем тоже самое со слоями 2 и 3 (а также со слоями 4,5,6 при необходимости)

Затем, в верхнем меню: Render -> Detail Texture Mode

Смотрится шикарно! :-)
Раньше на подобный результат ручной работы уходили дни, а то и недели.
Самое время сохранить карту!
Жмём меню File -> Save.
Убедитесь, что в появившемся окне галочки стоят напротив:
* Color Texture
* Compiled Detail and Color Textures
* Compiled Terrain
* Detail Terrain
* Ground Properties
* Terrain
Если всё правильно, то жмём "Ок".
Делаем следующее:
* На панели TweakBar выбираем закладку с названием вашей карты
* Ниже ищем свиток Lightsettings и открываем его
* Ищем поле "Sky Texture", кликаем, выбираем небо
* В списке выше, в поле "Fog Color" установим желаемый RGB цвет тумана
Способ подстроить цвет тумана под цвет горизонта неба - делаем скриншот в редакторе "BF2 Editor",
затем в программе Photoshop пипеткой берем цвет горизонта и смотрим его RGB составляющие.
Далее:
* В редакторе, повернем камеру к небу, по направлению к солнцу
* Наверху жмем Light -> Set sun (flare) direction -> Set sun direction to camera
* Сохраняем карту
Создаем контрольные точки:
Level Editor" (вверху слева).Create ControlPoint" - который например назовём USMAIN. Жмем "Ок".TweakBar" слева меняем параметр "Team" на 2, затем поставим галочку напротив "UnableToChangeTeam" – точка станет не захватываемой.MECMAIN. Здесь устанавливаем параметр "Team" в 1.Editor Bar" жмем "Level Settings".Team 1" указываем MEC. Под "Flag" сменим имя на flag_MEC.Создаем респауны пехоты и техники:
Create Spawnpoint[USMAIN]".Create Objectspawner[USMAIN]".Теперь у нас есть два флага с респом пехоты и техники.
Примечание!
Если машины в редакторе отображаться не будут – не беда, в игре всё будет работать. Но если все же очень нужно, то в окне "Resources" справа нажмите "+" и далее "Load Resource". Появится окно со списком ресурсов мода. В папке "Vehicles" загрузите необходимую технику, или просто папку Vehicles полностью.


На панели "TweakBar" выбираем закладку с названием нашей карты, и открываем свиток "Water Settings". По умолчанию уровень воды установлен на -10000. Поменяйте его например на 50.
В редакторе станет явно виден уровень воды:

В том же свитке поиграйте с параметрами воды. Если не можете подобрать желаемый результат, то можете взять уже готовые решения из карт Battlefield2, например вот здесь:
\mods\bf2\Levels\Dalian_plant\server.zip
Найдите в архиве файл water.con, извлеките его и скопируйте в каталог с вашей картой.
Уберите с файла атрибут "только для чтения" чтобы его можно было изменять.
Чтобы вода отражала окружение, добавим envmap:
Resource" открываем Editor/content/objects/common.DefaultEnvMap, хватаем его и перетаскиваем на карту (убедитесь что редактор находится в режиме "Level Editor", а то неперетащится).TweakBar") чтобы он был примерно на высоте 200.Для размещения объектов на карте, их сначала необходимо подгрузить в редактор уже знакомым нам способом - нажать "+" в окне "Resource". Там выбираем папку "StaticObjects".
В окне ресурсов найдем вот этот обьект:
BF2/objects/staticobjects/middle-east/city/village_buildings/fishing_hut_pole
Это рыбацкая будка. Перетащим ее на карту.
Расположена она, скорее всего, будет выше, чем нам нужно. Выделяем ее и двигаем в нужном направлении при помощи стрелок вокруг объекта.
Сохраняем карту.
Лайтмаппинг - это процесс просчета освещения для вашей карты. При этом очень ресурсоемкий. При установках "final" может занять дни, всё зависит от размера карты и количества объектов.
Нам лишь нужно посмотреть как карта будет выглядеть с тенями и отражениями, поэтому мы сделаем более упрощенный лайтмаппинг, просчет которого займет минут этак 7-15, в зависимости от мощности компьютера.
Впрочем карта будет рабочей и без лайтмаппинга, но освещение будет однородным и на карте не будет теней.
Для просчета понадобятся сэмплы для лайтмаппинга (700мб). Руководство по их установке можно найти в Readme файле.
TweakBar" выбираем закладку с названием нашей карты.Lightmap settings" и открываем. Убедитесь, что параметр "Number GILights" стоит от 4-8, иначе тени будут слишком темные.Compile/Lightmaps/Generate Lightmaps
Generate"... и идем пить чай :)envmap: Compile -> Envmaps -> Generate envmaps\mods\bf2\Levels\Tutorial_Map\EnvmapsEnvMap0.dds, нажимаем Ctrl + C (скопировать в буфер).\mods\bf2\Levels\Tutorial_MapWater, заходим в неё и нажимаем Ctrl + V (вставить из буфера).EnvMap.dds).Compile -> compile/make ground hemi, а во всплывающем окне жмем "Ок".Вверху редактора нажимаем: Mod -> Package Mod
Убедитесь, что выбран только пункт "Package this level: Tutorial Map" и жмите "Ok".
А теперь, запускайте "Battlefield 2", жмите "Create Local", выбирайте вашу карту и наслаждайтесь плодами своего творчества!

Опубликовано с разрешения автора перевода.
Оригинал русской адаптированной статьи находится на сайте http://bf2-dev.ucoz.ru.
Оригинальная англо-язычная статья расположена здесь.