Уровни для S.T.A.L.K.E.R., часть 2
Уровни для S.T.A.L.K.E.R., часть 2 | |
Дата публикации |
31 июля 2007 (17 лет) [1] |
Автор | Эдуард Клишин |
Связанная статья | |
Уровни для S.T.A.L.K.E.R., часть 1 |
В предыдущей статье по модифицированию S.T.A.L.K.E.R. мы изучили интерфейс и познакомились с основными принципами работы в редакторе уровней, а также сделали несложную карту на основе стандартных объектов и протестировали ее в игре. Сегодня мы двинемся дальше — научимся изготавливать новые локации для «Сталкера» с нуля, используя 3DS Max[2][3].
Видео
На старте
Чтобы сделать новый уровень для «Сталкера» при помощи 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).
Перед тем как экспортировать модель из «Макса» в формат .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 после выключения/перезагрузки вам придется снова запустить приложения для создания виртуальников.
Требования к моделям
Подготовительный этап завершен. Можно приступать к моделированию уровня в 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).
А знаете ли вы, что... |
---|
|
Экспорт и импорт
И вот вы сделали в 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 к изготавливаемым в «Максе» моделькам, а также рассмотрели механизм экспорта уровней из «Макса» и их последующего импорта в официальный редактор уровней.
Но цикл статей по модифицированию «Сталкера» на этом не заканчивается — в одном из ближайших номеров «Игромании» мы поговорим о написании новых квестов для игры и некоторых тонкостях изготовления уровней.