01 сентября 2007
Обновлено 17.05.2023

Уровни для S.T.A.L.K.E.R. Часть вторая

Уровни для S.T.A.L.K.E.R. Часть вторая - изображение обложка

В предыдущей статье по модифицированию S.T.A.L.K.E.R. (опубликована в прошлом номере «Игромании» ) мы изучили интерфейс и познакомились с основными принципами работы в редакторе уровней, а также сделали несложную карту на основе стандартных объектов и протестировали ее в игре. Сегодня мы двинемся дальше — научимся изготавливать новые локации для «Сталкера» с нуля, используя 3DS Max.

На старте

Чтобы сделать новый уровень для «Сталкера» при помощи 3DS Max, нам понадобится специальный плагин S.T.A.L.K.E.R. 3DS Max Exporter (Plugin for 3D Studio Max 1.1) , он служит для экспорта геометрии в формат игры. Чтобы установить его, скопируйте все содержимое папки \plugin из директории с распакованным экспортером в корневой каталог установленного 3DS Max (плагин работает с 3DS Max 6, 7 и 8).

Конвертер установлен и, казалось бы, готов к работе. Однако если вы попытаетесь запустить «Макс», то при загрузке увидите два сообщения об ошибках: невозможно загрузить плагин и специальный X-Ray шейдер. Чтобы заставить работать установленные инструменты, необходимо проделать следующие действия.

Скопируйте файл xray_path.ltx из директории \scripts_plugins с инструментарием X-Ray SDK в корневой каталог установленного 3DS Max. Затем снова загляните в папку \scripts_plugins официального SDK и запустите исполняемый файл createDiskX.bat для создания виртуального диска X: (это ссылка на локальную директорию \level_editor установленного инструментария). Он необходим для корректной работы плагина 3DS Max Exporter , а также ряда утилит, входящих в состав SDK, — например, компилятора уровней.

Теперь нам необходимо создать виртуальный диск T , ссылающийся на директорию \level_editor\gamedata\textures установленного SDK (для работы с игровыми текстурами). Но вот незадача — разработчики не вложили в комплект с инструментарием bat-файл для автоматического создания виртуального диска. Как найти выход из такой ситуации? Написать письмо в службу технической поддержки GSC? Попросить помощи у матерых модмейкеров? Не стоит, написать сценарий для автоматической генерации диска T не так уж сложно.

Зайдите в директорию \scripts_plugins , кликните правой кнопкой мышки по файлу createDiskX.bat и в контекстном меню выберите пункт Изменить. Перед вами появится окно «Блокнота», в которое будет подгружено тело файла createDiskX.bat — это сценарий для создания виртуального диска. Отыщите по тексту литеру X и замените ее заглавной буквой T (в первой и второй строках). Во второй строке после словосочетания level_editor добавьте текст \gamedata\textures , например:

C:\WINDOWS\system32\subst.exe» X: «E:\Games\GSC World Publishing\X-Ray SDK\level_editor

После этого сохраните файл на жестком диске под любым названием — скажем, generate_virt_cd_T с расширением .bat. Запустите его, зайдите в папку Мой компьютер и убедитесь, что в поле Жесткие диски появилось два новых элемента — HDD (X): и HDD (T):.

Сформированные нами виртуальные диски X: и T: будут автоматически уничтожены по факту выключения/перезагрузки компьютера. А это означает, что для работы с плагинами и некоторыми инструментами SDK после выключения/перезагрузки вам придется снова запустить приложения для создания виртуальников.

Шейдеры на DVD

На нашем DVD, в разделе «Игрострой», вы можете ознакомиться с небольшой справкой по шейдерам и материалам, используемым движком X-Ray. Данный текст представляет собой список шейдеров и материалов, используемых непосредственно игровым движком и компилятором карт, с краткими комментариями разработчиков.

Требования к моделям

Подготовительный этап завершен. Можно приступать к моделированию уровня в 3DS Max. В настоящей статье мы не будем затрагивать тему создания трехмерных объектов в «Максе» (об этом в «Игрострое» уже было множество статей), а поговорим лишь об основных требованиях, предъявляемых 3D-объектам движком X-Ray.

1. Размеры моделей, созданных в «Максе», должны соответствовать реальным размерам объекта. Скажем, если здание в реальной жизни имеет габариты 60x12x8 метров (измерения по длине, ширине и высоте соответственно), то и в 3DS Max нужно создавать его по этим же самым размерам (именно в метрах, а не сантиметрах, миллиметрах или дюймах). Многие моделлеры при создании объектов для игр предпочитают ориентироваться исключительно на размеры каких-либо персонажей, техники, декораций. На этот случай девелоперы из GSC Game World привели габариты так называемой «ограничивающей коробки» или bounding box , в которую можно вписать главного героя «Сталкера». Bounding Box для персонажа в полный рост имеет следующие габариты — 1.8х0.7х0.7 метров; для присевшего героя — 1.5х0.7х0.7 метров; и для сидячего — 1.2х0.7х0.7 метров.

2. При создании объектов окружения необходимо использовать как можно меньше полигонов. Движок X-Ray не способен переварить уровни, составленные из более чем 150 тыс. треугольников. Это значит, что если вы, например, сформировали ландшафт из 140 полигонов, то на всяческие элементы декора у вас останется всего 10 тыс., а этого недостаточно. Превысите лимит — уровень вылетит с ошибкой.

3. Любая сцена должна состоять из так называемых геометрических групп, название каждой из которых формируется по принципу: mp_LevelName_geometry , где mp — префикс, указывающий на то, что мы разрабатываем мультиплеерную карту, LevelName — название уровня (пишется слитно, например IgromaniaLevelBig ), geometry — наименование геометрии (ландшафт, здания, растительность). Пример — mp_igromania_terrain. Обратите внимание, названия элементов группы ни в коем случае не должны совпадать с именем самой группы.

4. Для каждого объекта должен быть создан шейп ( shape — форма) по принципу: объект — имя_объекта, шейп — имя_объектаShape. То есть если объект у вас называется Igromania_Magazine , то шейп для него будет называться Igromania_MagazineShape.

5. В качестве заготовок для объектов нужно использовать только материалы типа XRayMtl. Напомним, что для смены типа материала необходимо вызвать окно Material Editor (клавиша M на клавиатуре), кликнуть по кнопке Standard и в окне Material/Map Browse r выбрать нужный материал, в нашем случае — XRayMtl. При необходимости вы можете заглянуть в свиток X-Ray Params окна редактора материалов и установить для данного X-Ray-материала шейдеры для движка ( Engine ) и компилятора ( Compiler ), а также задать определенный тип поверхности (поле Material ).

А знаете ли вы, что…

  • При создании новых моделей для S.T.A.L.K.E.R. разрешается использовать только текстуры, представленные TGA -файлами: движок X-Ray не понимает другие форматы графики. Разработчики отдали предпочтение данному формату неспроста — он позволяет хранить информацию не только о самой текстуре, но и маске (альфа-канале), позволяющей оставлять одни участки изображения и скрывать другие.
  • Скомпилировать уровень в формат игры можно не прибегая к командной строке. Для этого достаточно создать виртуальный диск X, ссылающийся на директорию \level_editor установленного SDK, выбрать пункт меню Пуск\Выполнить и в появившемся окне напечатать следующую команду: X:\xrLC.bat [level_name] , где xrLC.bat — файл, отвечающий за запуск утилиты-компилятора, [level_name] — название компилируемого уровня.
  • При добавлении в игру уровня с новыми текстурами необходимо, помимо файла textures.ltx, скопировать все используемые изображения собственного производства в директорию **\gamedata\textures**.

Экспорт и импорт

И вот вы сделали в 3DS Max карту, удовлетворяющую всем требованиям движка X-Ray, и хотите добавить ее в игру. Давайте подробно рассмотрим процесс экспорта моделей в формат «Сталкера» и научимся подгружать переформатированные модели в официальный редактор уровней.

Первым делом выделите в «Максе» все объекты сцены, которые хотите экспортировать в виде единой модели. Далее в поле инструментов (оно располагается в правой части окна 3DS Max) перейдите во вкладку Utilities (пиктограмма с изображением молотка) и щелкните по кнопке More. В появившемся окне выберите инструмент XRay Export и нажмите Ok. Перейдите в свиток XRay Export поля объектов, кликните по кнопке Export Editor Object и сохраните модель на диск под любым названием.

Переходим к импорту геометрии и текстур в редактор уровней. Запустите LevelEditor , входящий в комплект с SDK. Первым делом подгрузим модель, экспортированную нами из 3DS Max, в редактор уровней. На панели в правой части программы (в поле Scene ) выберите пункт Objects\Library Editor.

В открывшемся окне кликните по полю Objects правой кнопкой мышки и в выпадающем меню выберите пункт Create Folder. Таким образом, вы создадите новый каталог 3D-моделей (при необходимости вы можете добавить новую модель и в один из существующих каталогов). Перейдите в созданную директорию, щелкните по кнопке Import Object в правой части окна Objects Library и укажите полный путь к модели, экспортированной вами из «Макса». Закройте окно библиотеки объектов.

Чтобы подгрузить в редактор текстуры, использованные при создании модели, скопируйте нужные арты в каталог level_editor\import и выполните в редакторе уровней команду Images\Check New Textures. Начнется поиск новых текстур и, если они будут обнаружены, появится сообщение Found X new texture(s) , где X — количество найденных текстур.

После того как вы импортируете в редактор новые модели и текстуры, можете приступать к сборке новой мультиплеерной карты: добавлять на уровень стартовые отметки, объекты, освещение — все то, о чем мы вам рассказывали в прошлом номере «Игромании».

* * *

Мы разобрали основные принципы создания уровней для «Сталкера» с нуля, научились работать со специальными экспортерами для 3DS Max, ознакомились с основными требованиями движка X-Ray к изготавливаемым в «Максе» моделькам, а также рассмотрели механизм экспорта уровней из «Макса» и их последующего импорта в официальный редактор уровней.

Но цикл статей по модифицированию «Сталкера» на этом не заканчивается — в одном из ближайших номеров «Игромании» мы поговорим о написании новых квестов для игры и некоторых тонкостях изготовления уровней.

Если у вас возникнут какие-либо вопросы, незамедлительно отправляйте их на наш игростроевский ящик gamedev@igromania.ru — мы обязательно ответим на самые актуальные из них в рамках игростроевской « Горячей линии ».

Комментарии
Чтобы оставить комментарий,Войдите или Зарегистрируйтесь