Чтобы сделать новый уровень для «Сталкера» при помощи
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 и
.
Перед тем как экспортировать модель из «Макса» в формат .object, необходимо убедиться, что она удовлетворяет всем требованиям движка X-Ray.
Конвертер установлен и, казалось бы, готов к работе. Однако если вы попытаетесь запустить «Макс», то при загрузке увидите два сообщения об ошибках: невозможно загрузить плагин и специальный 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 Browser выбрать нужный материал, в нашем случае — 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 8.
Первым делом выделите в «Максе» все объекты сцены, которые хотите экспортировать в виде единой модели. Далее в поле инструментов (оно располагается в правой части окна 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 к изготавливаемым в «Максе» моделькам, а также рассмотрели механизм экспорта уровней из «Макса» и их последующего импорта в официальный редактор уровней.