Игромания - Игрострой. Уровни для S.T.A.L.K.E.R., часть 1 — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
(→* * *) |
(Косметические правки. <<< aka_sektor) |
||
Строка 1: | Строка 1: | ||
На протяжении двух месяцев с момента выхода '''S.T.A.L.K.E.R.''' разработчики в поте лица трудились над '''SDK'''. Совсем недавно в Сети появилась бета-версия официального «чернобыльского» инструментария для создания мультиплеерных карт. Конечно, модмейкеры тут же принялись за сборку уровней и дополнений. По ходу дела выявились различные баги и недочеты, но на то она и бета. Главное, что принципы работы в ней точно такие же, как будут в релизе. | На протяжении двух месяцев с момента выхода '''S.T.A.L.K.E.R.''' разработчики в поте лица трудились над '''SDK'''. Совсем недавно в Сети появилась бета-версия официального «чернобыльского» инструментария для создания мультиплеерных карт. Конечно, модмейкеры тут же принялись за сборку уровней и дополнений. По ходу дела выявились различные баги и недочеты, но на то она и бета. Главное, что принципы работы в ней точно такие же, как будут в релизе. | ||
+ | |||
Мы одними из первых получили доступ к SDK, внимательно его изучили и прямо сейчас можем представить детальный рассказ о том, как делать мультиплеерные карты для игры. Редактор для сингловых уровней появится чуть позже. | Мы одними из первых получили доступ к SDK, внимательно его изучили и прямо сейчас можем представить детальный рассказ о том, как делать мультиплеерные карты для игры. Редактор для сингловых уровней появится чуть позже. | ||
Строка 6: | Строка 7: | ||
Установив бета-версию '''MP-SDK''', мы первым делом заглянули в главный каталог и обнаружили там редактор карт (главная программа из набора), компилятор уровней, редактор персонажей и частиц и небольшой официальный файл справки (HTML-документ). | Установив бета-версию '''MP-SDK''', мы первым делом заглянули в главный каталог и обнаружили там редактор карт (главная программа из набора), компилятор уровней, редактор персонажей и частиц и небольшой официальный файл справки (HTML-документ). | ||
+ | |||
Подробно описывать каждую утилиту набора мы не будем: многие из них очень сырые, часто глючат, интерфейсы далеко не всегда удобные — словом, есть еще над чем работать. Мы же заострим внимание лишь на редакторе карт, который позволяет создавать новые уровни для многопользовательского режима, — переделывать оригинальные локации, увы, не разрешается (возможно, это временное явление). | Подробно описывать каждую утилиту набора мы не будем: многие из них очень сырые, часто глючат, интерфейсы далеко не всегда удобные — словом, есть еще над чем работать. Мы же заострим внимание лишь на редакторе карт, который позволяет создавать новые уровни для многопользовательского режима, — переделывать оригинальные локации, увы, не разрешается (возможно, это временное явление). | ||
+ | |||
''Анатомия редактора:'' http://storage8.static.itmages.ru/i/13/0630/h_1372612054_2833096_5df1aa0f04.jpg | ''Анатомия редактора:'' http://storage8.static.itmages.ru/i/13/0630/h_1372612054_2833096_5df1aa0f04.jpg | ||
+ | |||
Запустите редактор карт ('''LevelEditor.exe'''). Перед вами появятся две инструментальные панели, на них вынесены компоненты для переключения между режимами отображения объектов. А также кнопки для работы с объектами, строка состояния (занимает нижнюю часть приложения) и окно 3D-вида, под которое отведена большая часть программы. | Запустите редактор карт ('''LevelEditor.exe'''). Перед вами появятся две инструментальные панели, на них вынесены компоненты для переключения между режимами отображения объектов. А также кнопки для работы с объектами, строка состояния (занимает нижнюю часть приложения) и окно 3D-вида, под которое отведена большая часть программы. | ||
+ | |||
Главное меню, содержащее основные команды для открытия, сохранения, импорта файлов, располагается не в самом верху (как во многих других редакторах), а на панели справа. Насколько мы поняли, сделано это было умышленно, чтобы увеличить главное окно. При необходимости вы можете свернуть панель справа, кликнув по кнопке с изображением черной стрелочки в самом верху панельки. При этом окно перспективы заметно растянется и займет всю рабочую область редактора. Еще одна особенность — наличие технической информации в левом верхнем углу окна перспективы (FPS, общее число источников освещения, игровое время). | Главное меню, содержащее основные команды для открытия, сохранения, импорта файлов, располагается не в самом верху (как во многих других редакторах), а на панели справа. Насколько мы поняли, сделано это было умышленно, чтобы увеличить главное окно. При необходимости вы можете свернуть панель справа, кликнув по кнопке с изображением черной стрелочки в самом верху панельки. При этом окно перспективы заметно растянется и займет всю рабочую область редактора. Еще одна особенность — наличие технической информации в левом верхнем углу окна перспективы (FPS, общее число источников освещения, игровое время). | ||
+ | |||
С устройством редактора разобрались. Давайте посмотрим, как обстоят дела с навигацией в окне 3D-вида. Для изменения положения камеры в горизонтальном/вертикальном направлении достаточно зажать клавишу '''Shift''' на клавиатуре и передвинуть мышь с зажатой левой/правой кнопкой. Чтобы изменить угол наклона камеры, зажмите клавишу '''Shift''' и переместите мышь на новое место с зажатыми левой и правой кнопкой. Управление очень напоминает навигацию в графическом пакете '''Maya''', так что если вы знакомы с этим моделлером, то без труда разберетесь и с редактором «Сталкера». | С устройством редактора разобрались. Давайте посмотрим, как обстоят дела с навигацией в окне 3D-вида. Для изменения положения камеры в горизонтальном/вертикальном направлении достаточно зажать клавишу '''Shift''' на клавиатуре и передвинуть мышь с зажатой левой/правой кнопкой. Чтобы изменить угол наклона камеры, зажмите клавишу '''Shift''' и переместите мышь на новое место с зажатыми левой и правой кнопкой. Управление очень напоминает навигацию в графическом пакете '''Maya''', так что если вы знакомы с этим моделлером, то без труда разберетесь и с редактором «Сталкера». | ||
+ | |||
Создавать карты не очень удобно. Сначала необходимо смоделировать игровой уровень в '''Maya 8.5''', затем — экспортировать текстуры и модели в формат, понятный движку «Сталкера» (специальные экспортеры для Maya включены в SDK), подгрузить все объекты (ландшафт и элементы окружения) в редактор, собрать на основе всего этого полноценную локацию, добавить на карту монстров, NPC и скомпилировать уровень. Схема, мягко говоря, непростая, особенно для тех, кто никогда в жизни не занимался 3D-моделированием. | Создавать карты не очень удобно. Сначала необходимо смоделировать игровой уровень в '''Maya 8.5''', затем — экспортировать текстуры и модели в формат, понятный движку «Сталкера» (специальные экспортеры для Maya включены в SDK), подгрузить все объекты (ландшафт и элементы окружения) в редактор, собрать на основе всего этого полноценную локацию, добавить на карту монстров, NPC и скомпилировать уровень. Схема, мягко говоря, непростая, особенно для тех, кто никогда в жизни не занимался 3D-моделированием. | ||
+ | |||
В настоящей статье мы не будем затрагивать этапы разработки карты, связанные с моделированием и текстурированием в Maya, а расскажем лишь о том, как можно собрать уровень на основе уже имеющихся в редакторе объектов, скомпилировать его и опробовать в игре. | В настоящей статье мы не будем затрагивать этапы разработки карты, связанные с моделированием и текстурированием в Maya, а расскажем лишь о том, как можно собрать уровень на основе уже имеющихся в редакторе объектов, скомпилировать его и опробовать в игре. | ||
+ | |||
= Работа с объектами = | = Работа с объектами = | ||
Научимся добавлять на карту различные элементы. Активируйте режим работы с объектами на панели в правой части редактора. Для этого в поле '''Edit Mode''' кликните по кнопке '''Object'''. Затем в поле '''Commands''' щелкните по кнопке '''Multiple Append''' для вызова библиотеки 3D-моделей. В появившемся окне '''Select Library Object''' раскройте каталог '''levels\mp_atp_test''' и поставьте флажки напротив элементов '''mp_atp_buildings''' (набор зданий в виде одной тестовой модели), '''mp_atp_terrain''' (тестовый ландшафт местности) и щелкните по кнопке '''Ok'''. Вы увидите, что выбранные из библиотеки объекты появятся на карте. | Научимся добавлять на карту различные элементы. Активируйте режим работы с объектами на панели в правой части редактора. Для этого в поле '''Edit Mode''' кликните по кнопке '''Object'''. Затем в поле '''Commands''' щелкните по кнопке '''Multiple Append''' для вызова библиотеки 3D-моделей. В появившемся окне '''Select Library Object''' раскройте каталог '''levels\mp_atp_test''' и поставьте флажки напротив элементов '''mp_atp_buildings''' (набор зданий в виде одной тестовой модели), '''mp_atp_terrain''' (тестовый ландшафт местности) и щелкните по кнопке '''Ok'''. Вы увидите, что выбранные из библиотеки объекты появятся на карте. | ||
+ | |||
Прежде чем двигаться дальше, выберите пункт меню '''File\Save''' на панели в правой части редактора и сохраните уровень: приложение имеет нехорошую привычку выпадать в '''Windows''', особенно если у вас установлена '''Vista''', с '''XP''' проблем меньше. | Прежде чем двигаться дальше, выберите пункт меню '''File\Save''' на панели в правой части редактора и сохраните уровень: приложение имеет нехорошую привычку выпадать в '''Windows''', особенно если у вас установлена '''Vista''', с '''XP''' проблем меньше. | ||
+ | |||
''Редактор позволяет собирать игровые сцены на основе готовых объектов, сами же 3D-модели изготавливаются в Maya:'' http://storage1.static.itmages.ru/i/13/0630/h_1372612352_3941438_10a004ae9f.jpg | ''Редактор позволяет собирать игровые сцены на основе готовых объектов, сами же 3D-модели изготавливаются в Maya:'' http://storage1.static.itmages.ru/i/13/0630/h_1372612352_3941438_10a004ae9f.jpg | ||
+ | |||
Описанный выше метод добавления объектов отлично работает, если речь идет об импорте на уровень большого числа элементов, и совершенно не годится для поштучного добавления элементов. Чтобы поместить на уровень одну модель, достаточно активировать режим работы с объектами ('''Edit Mode\Objects'''), щелкнуть по кнопке '''Add''' (добавить) на панели инструментов (четвертая от начала) в верхней части редактора, выбрать из списка '''Objects''' на панели в правой части приложения нужный элемент и щелкнуть левой кнопкой мышки по любому месту на карте. | Описанный выше метод добавления объектов отлично работает, если речь идет об импорте на уровень большого числа элементов, и совершенно не годится для поштучного добавления элементов. Чтобы поместить на уровень одну модель, достаточно активировать режим работы с объектами ('''Edit Mode\Objects'''), щелкнуть по кнопке '''Add''' (добавить) на панели инструментов (четвертая от начала) в верхней части редактора, выбрать из списка '''Objects''' на панели в правой части приложения нужный элемент и щелкнуть левой кнопкой мышки по любому месту на карте. | ||
+ | |||
Чтобы переместить объект, необходимо кликнуть по нему левой кнопкой мышки (для выделения) и задействовать режим перемещения элементов '''Move''' (5-й инструмент на панели в верхней части редактора). Далее для передвижения элемента в направлении одной из координатных осей — '''X''', '''Y''' или '''Z''' — нужно кликнуть по кнопке с изображением соответствующей оси на панели инструментов (располагаются сверху) и передвинуть мышь с зажатой левой кнопкой. Обратите внимание, система координат в редакторе отличается от стандартной. При перемещении объекта по оси Z вы будете передвигать элемент по X, двигая его по оси Y — смещать модель вверх (Z), наконец, передвигая конструкцию по X, вы на самом деле сдвинете модельку по оси Y. Поначалу это кажется жутко неудобным, но привыкаешь буквально за 10-15 минут. | Чтобы переместить объект, необходимо кликнуть по нему левой кнопкой мышки (для выделения) и задействовать режим перемещения элементов '''Move''' (5-й инструмент на панели в верхней части редактора). Далее для передвижения элемента в направлении одной из координатных осей — '''X''', '''Y''' или '''Z''' — нужно кликнуть по кнопке с изображением соответствующей оси на панели инструментов (располагаются сверху) и передвинуть мышь с зажатой левой кнопкой. Обратите внимание, система координат в редакторе отличается от стандартной. При перемещении объекта по оси Z вы будете передвигать элемент по X, двигая его по оси Y — смещать модель вверх (Z), наконец, передвигая конструкцию по X, вы на самом деле сдвинете модельку по оси Y. Поначалу это кажется жутко неудобным, но привыкаешь буквально за 10-15 минут. | ||
+ | |||
Поворот объектов осуществляется аналогичным образом, единственное отличие состоит в том, что вместо инструмента '''Move''' придется активировать модификатор '''Rotate''' (6-й от начала). Если вам нужно удалить какой-либо элемент со сцены, выделите его и нажмите клавишу '''Delete'''. | Поворот объектов осуществляется аналогичным образом, единственное отличие состоит в том, что вместо инструмента '''Move''' придется активировать модификатор '''Rotate''' (6-й от начала). Если вам нужно удалить какой-либо элемент со сцены, выделите его и нажмите клавишу '''Delete'''. | ||
+ | |||
Чтобы создать точную копию элемента, снова выделите объект, поместите его в буфер обмена с помощью комбинации клавиш '''Ctrl+C''', а затем подгрузите клон на карту ('''Crtl+V'''). | Чтобы создать точную копию элемента, снова выделите объект, поместите его в буфер обмена с помощью комбинации клавиш '''Ctrl+C''', а затем подгрузите клон на карту ('''Crtl+V'''). | ||
+ | |||
В редактор встроена возможность масштабировать любые объекты. Да здравствуют деревья 10-метровой высоты, гигантские кустики и крохотные постройки (надеемся, что в финальной версии SDK нам и монстров разрешат масштабировать, вот тогда по-настоящему повеселимся). Чтобы изменить габариты моделей, активируйте инструмент '''Uniform Scale''' на панели в верхней части редактора (7-й от начала), выберите ось, относительно которой собираетесь растянуть объект (кнопки X, Y и Z), и переместите мышь с зажатой левой кнопкой. | В редактор встроена возможность масштабировать любые объекты. Да здравствуют деревья 10-метровой высоты, гигантские кустики и крохотные постройки (надеемся, что в финальной версии SDK нам и монстров разрешат масштабировать, вот тогда по-настоящему повеселимся). Чтобы изменить габариты моделей, активируйте инструмент '''Uniform Scale''' на панели в верхней части редактора (7-й от начала), выберите ось, относительно которой собираетесь растянуть объект (кнопки X, Y и Z), и переместите мышь с зажатой левой кнопкой. | ||
+ | |||
Прежде чем приступать к следующему этапу работы, добавьте на уровень различные строения, растительность, при необходимости задайте им новое местоположение и угол поворота. | Прежде чем приступать к следующему этапу работы, добавьте на уровень различные строения, растительность, при необходимости задайте им новое местоположение и угол поворота. | ||
+ | |||
= Да будет свет = | = Да будет свет = | ||
+ | |||
Любая карта для «Сталкера» должна содержать источники света и специальные объекты свечения. Если их не будет, то карту не удастся скомпилировать и опробовать в игре — редактор просто выдаст ошибку при компиляции. Чтобы поместить на уровень объект свечения, щелкните по кнопке '''Glow''' в поле '''Edit Mode''' для активации соответствующего режима работы, кликните по кнопке '''Add''' на панели инструментов (четвертая по счету) в верхней части редактора и щелкните левой кнопкой мышки по карте. | Любая карта для «Сталкера» должна содержать источники света и специальные объекты свечения. Если их не будет, то карту не удастся скомпилировать и опробовать в игре — редактор просто выдаст ошибку при компиляции. Чтобы поместить на уровень объект свечения, щелкните по кнопке '''Glow''' в поле '''Edit Mode''' для активации соответствующего режима работы, кликните по кнопке '''Add''' на панели инструментов (четвертая по счету) в верхней части редактора и щелкните левой кнопкой мышки по карте. | ||
+ | |||
Вы увидите, что на карте появился какой-то непонятный плоский объект белого цвета. Это и есть элемент свечения. Чтобы компилятор уровней корректно его воспринял, необходимо покрыть его текстурой. Выделите созданный компонент на карте, щелкните по нему правой кнопкой мышки и в контекстном меню выберите пункт '''Properties'''. В появившемся окне свойств элемента отыщите параметр '''Texture''' и щелкните по кнопке с изображением многоточия. В окне браузера текстур выберите любое изображение, например '''glow\glow_anamorphic''', нажмите '''Ok''' и закройте окно инспектора свойств объекта. Активируйте режим работы с источниками освещения — '''Light''' в поле '''Edit Mode''' и поместите на карту два-три источника освещения (так же, как добавляли одиночные элементы). | Вы увидите, что на карте появился какой-то непонятный плоский объект белого цвета. Это и есть элемент свечения. Чтобы компилятор уровней корректно его воспринял, необходимо покрыть его текстурой. Выделите созданный компонент на карте, щелкните по нему правой кнопкой мышки и в контекстном меню выберите пункт '''Properties'''. В появившемся окне свойств элемента отыщите параметр '''Texture''' и щелкните по кнопке с изображением многоточия. В окне браузера текстур выберите любое изображение, например '''glow\glow_anamorphic''', нажмите '''Ok''' и закройте окно инспектора свойств объекта. Активируйте режим работы с источниками освещения — '''Light''' в поле '''Edit Mode''' и поместите на карту два-три источника освещения (так же, как добавляли одиночные элементы). | ||
+ | |||
= Компиляция и тестирование = | = Компиляция и тестирование = | ||
Чтобы завершить создание новой карты, нужно поместить на уровень стартовые позиции для игроков. Достаточно кликнуть по кнопке '''Spawn Elements''' в поле '''Edit Mode''' на панели в правой части редактора, выбрать из списка '''Spawns''' стартовую позицию нужного типа (в нашем случае это элемент типа '''$rpoint'''), нажать клавишу '''A''' на клавиатуре для активации режима размещения объектов и кликнуть по произвольному месту на карте. Перемещение и поворот стартовых позиций производится так же, как и с простыми статическими объектами. | Чтобы завершить создание новой карты, нужно поместить на уровень стартовые позиции для игроков. Достаточно кликнуть по кнопке '''Spawn Elements''' в поле '''Edit Mode''' на панели в правой части редактора, выбрать из списка '''Spawns''' стартовую позицию нужного типа (в нашем случае это элемент типа '''$rpoint'''), нажать клавишу '''A''' на клавиатуре для активации режима размещения объектов и кликнуть по произвольному месту на карте. Перемещение и поворот стартовых позиций производится так же, как и с простыми статическими объектами. | ||
+ | |||
''Большой мультиплеерный уровень, созданный нами на основе стандартных объектов примерно за полчаса:'' http://storage3.static.itmages.ru/i/13/0630/h_1372613023_6210741_b3d71c6282.jpg | ''Большой мультиплеерный уровень, созданный нами на основе стандартных объектов примерно за полчаса:'' http://storage3.static.itmages.ru/i/13/0630/h_1372613023_6210741_b3d71c6282.jpg | ||
+ | |||
Ландшафт местности сформирован, декорации установлены, источники освещения, а также стартовые позиции добавлены. Самое время скомпилировать уровень и опробовать его в игре. | Ландшафт местности сформирован, декорации установлены, источники освещения, а также стартовые позиции добавлены. Самое время скомпилировать уровень и опробовать его в игре. | ||
+ | |||
На панели справа в поле '''Scene''' выберите пункт меню '''Scene\Options'''. В появившемся окне свойств найдите атрибут '''Level Path''' и впишите в поле название уровня, которое вы задали карте при сохранении. После этого кликните по кнопке '''Draft''' напротив комментария '''Quality'''. Закройте окно свойств и на панели в правой части приложения кликните по кнопке '''Compile\Build'''. | На панели справа в поле '''Scene''' выберите пункт меню '''Scene\Options'''. В появившемся окне свойств найдите атрибут '''Level Path''' и впишите в поле название уровня, которое вы задали карте при сохранении. После этого кликните по кнопке '''Draft''' напротив комментария '''Quality'''. Закройте окно свойств и на панели в правой части приложения кликните по кнопке '''Compile\Build'''. | ||
+ | |||
Подготовительный этап закончен, осталось скомпилировать полученные файлы карты в формат, понятный игре. Выберите пункт меню '''Пуск\Выполнить''' и в окне пропишите команду '''[Path] [level_name]'''. Здесь '''[Path]''' — полный путь к компилятору '''xrLC.bat''', который находится в директории '''\level_editor''' установленного SDK, например: '''E:\X-Ray SDK\level_editor\xrLC.bat. [level_name]''' — название компилируемого уровня. | Подготовительный этап закончен, осталось скомпилировать полученные файлы карты в формат, понятный игре. Выберите пункт меню '''Пуск\Выполнить''' и в окне пропишите команду '''[Path] [level_name]'''. Здесь '''[Path]''' — полный путь к компилятору '''xrLC.bat''', который находится в директории '''\level_editor''' установленного SDK, например: '''E:\X-Ray SDK\level_editor\xrLC.bat. [level_name]''' — название компилируемого уровня. | ||
+ | |||
При работе с длинными путями используйте командную строку (активируется командой '''cmd''' в окне '''Выполнить'''). | При работе с длинными путями используйте командную строку (активируется командой '''cmd''' в окне '''Выполнить'''). | ||
+ | |||
Последний шаг — импорт скомпилированного уровня в игру. Зайдите в корневой каталог «Сталкера» и создайте в нем папку '''\Gamedata'''. После этого скопируйте файл '''level_editor\gamedata\config\mp\map_list.ltx''', располагающийся в директории с SDK, в каталог '''gamedata\config\mp''' установленной игры. Скопируйте папку с названием вашего уровня из директории '''level_editor\gamedata\levels''' SDK в папку '''gamedata\levels''' «Сталкера», файл '''user_floor_dirty_gr.dds''' из каталога '''level_editor\gamedata\textures\user''' — с SDK в папку '''gamedata\textures\user''' с установленной игрой, а '''textures.ltx''' из '''level_editor\gamedata\textures\textures.ltx''' — в игровую папку '''gamedata\config\mp'''. Наконец, проследуйте в каталог '''gamedata\config\mp''' установленной игры, откройте «Блокнотом» файл '''map_list.ltx''' и добавьте в конец блока '''[deathmatch]''' название вашей карты без расширения: | Последний шаг — импорт скомпилированного уровня в игру. Зайдите в корневой каталог «Сталкера» и создайте в нем папку '''\Gamedata'''. После этого скопируйте файл '''level_editor\gamedata\config\mp\map_list.ltx''', располагающийся в директории с SDK, в каталог '''gamedata\config\mp''' установленной игры. Скопируйте папку с названием вашего уровня из директории '''level_editor\gamedata\levels''' SDK в папку '''gamedata\levels''' «Сталкера», файл '''user_floor_dirty_gr.dds''' из каталога '''level_editor\gamedata\textures\user''' — с SDK в папку '''gamedata\textures\user''' с установленной игрой, а '''textures.ltx''' из '''level_editor\gamedata\textures\textures.ltx''' — в игровую папку '''gamedata\config\mp'''. Наконец, проследуйте в каталог '''gamedata\config\mp''' установленной игры, откройте «Блокнотом» файл '''map_list.ltx''' и добавьте в конец блока '''[deathmatch]''' название вашей карты без расширения: | ||
− | |||
− | + | <code>[deathmatch] | |
− | + | ;fog_net | |
+ | |||
+ | testers_mp_pool | ||
+ | |||
+ | mp_igroprom</code> | ||
− | |||
Где '''mp_igroprom''' — название мультиплеерной карты. | Где '''mp_igroprom''' — название мультиплеерной карты. | ||
+ | |||
= * * * = | = * * * = | ||
Мы разобрали основные принципы создания новых карт для «Сталкера». Но тема, конечно же, не закрыта. Продолжение рассказа о создании уровней для «Сталкера»: [http://stalkerin.gameru.net/wiki/index.php?title=Игромания_-_Игрострой._Уровни_для_S.T.A.L.K.E.R.,_часть_2 Игромания - Игрострой. Уровни для S.T.A.L.K.E.R., часть 2] | Мы разобрали основные принципы создания новых карт для «Сталкера». Но тема, конечно же, не закрыта. Продолжение рассказа о создании уровней для «Сталкера»: [http://stalkerin.gameru.net/wiki/index.php?title=Игромания_-_Игрострой._Уровни_для_S.T.A.L.K.E.R.,_часть_2 Игромания - Игрострой. Уровни для S.T.A.L.K.E.R., часть 2] | ||
+ | |||
= Авторы = | = Авторы = |
Текущая версия на 14:42, 5 июля 2013
На протяжении двух месяцев с момента выхода S.T.A.L.K.E.R. разработчики в поте лица трудились над SDK. Совсем недавно в Сети появилась бета-версия официального «чернобыльского» инструментария для создания мультиплеерных карт. Конечно, модмейкеры тут же принялись за сборку уровней и дополнений. По ходу дела выявились различные баги и недочеты, но на то она и бета. Главное, что принципы работы в ней точно такие же, как будут в релизе.
Мы одними из первых получили доступ к SDK, внимательно его изучили и прямо сейчас можем представить детальный рассказ о том, как делать мультиплеерные карты для игры. Редактор для сингловых уровней появится чуть позже.
Содержание
Подготовка к моделированию
Установив бета-версию MP-SDK, мы первым делом заглянули в главный каталог и обнаружили там редактор карт (главная программа из набора), компилятор уровней, редактор персонажей и частиц и небольшой официальный файл справки (HTML-документ).
Подробно описывать каждую утилиту набора мы не будем: многие из них очень сырые, часто глючат, интерфейсы далеко не всегда удобные — словом, есть еще над чем работать. Мы же заострим внимание лишь на редакторе карт, который позволяет создавать новые уровни для многопользовательского режима, — переделывать оригинальные локации, увы, не разрешается (возможно, это временное явление).
Анатомия редактора: http://storage8.static.itmages.ru/i/13/0630/h_1372612054_2833096_5df1aa0f04.jpg
Запустите редактор карт (LevelEditor.exe). Перед вами появятся две инструментальные панели, на них вынесены компоненты для переключения между режимами отображения объектов. А также кнопки для работы с объектами, строка состояния (занимает нижнюю часть приложения) и окно 3D-вида, под которое отведена большая часть программы.
Главное меню, содержащее основные команды для открытия, сохранения, импорта файлов, располагается не в самом верху (как во многих других редакторах), а на панели справа. Насколько мы поняли, сделано это было умышленно, чтобы увеличить главное окно. При необходимости вы можете свернуть панель справа, кликнув по кнопке с изображением черной стрелочки в самом верху панельки. При этом окно перспективы заметно растянется и займет всю рабочую область редактора. Еще одна особенность — наличие технической информации в левом верхнем углу окна перспективы (FPS, общее число источников освещения, игровое время).
С устройством редактора разобрались. Давайте посмотрим, как обстоят дела с навигацией в окне 3D-вида. Для изменения положения камеры в горизонтальном/вертикальном направлении достаточно зажать клавишу Shift на клавиатуре и передвинуть мышь с зажатой левой/правой кнопкой. Чтобы изменить угол наклона камеры, зажмите клавишу Shift и переместите мышь на новое место с зажатыми левой и правой кнопкой. Управление очень напоминает навигацию в графическом пакете Maya, так что если вы знакомы с этим моделлером, то без труда разберетесь и с редактором «Сталкера».
Создавать карты не очень удобно. Сначала необходимо смоделировать игровой уровень в Maya 8.5, затем — экспортировать текстуры и модели в формат, понятный движку «Сталкера» (специальные экспортеры для Maya включены в SDK), подгрузить все объекты (ландшафт и элементы окружения) в редактор, собрать на основе всего этого полноценную локацию, добавить на карту монстров, NPC и скомпилировать уровень. Схема, мягко говоря, непростая, особенно для тех, кто никогда в жизни не занимался 3D-моделированием.
В настоящей статье мы не будем затрагивать этапы разработки карты, связанные с моделированием и текстурированием в Maya, а расскажем лишь о том, как можно собрать уровень на основе уже имеющихся в редакторе объектов, скомпилировать его и опробовать в игре.
Работа с объектами
Научимся добавлять на карту различные элементы. Активируйте режим работы с объектами на панели в правой части редактора. Для этого в поле Edit Mode кликните по кнопке Object. Затем в поле Commands щелкните по кнопке Multiple Append для вызова библиотеки 3D-моделей. В появившемся окне Select Library Object раскройте каталог levels\mp_atp_test и поставьте флажки напротив элементов mp_atp_buildings (набор зданий в виде одной тестовой модели), mp_atp_terrain (тестовый ландшафт местности) и щелкните по кнопке Ok. Вы увидите, что выбранные из библиотеки объекты появятся на карте.
Прежде чем двигаться дальше, выберите пункт меню File\Save на панели в правой части редактора и сохраните уровень: приложение имеет нехорошую привычку выпадать в Windows, особенно если у вас установлена Vista, с XP проблем меньше.
Редактор позволяет собирать игровые сцены на основе готовых объектов, сами же 3D-модели изготавливаются в Maya: http://storage1.static.itmages.ru/i/13/0630/h_1372612352_3941438_10a004ae9f.jpg
Описанный выше метод добавления объектов отлично работает, если речь идет об импорте на уровень большого числа элементов, и совершенно не годится для поштучного добавления элементов. Чтобы поместить на уровень одну модель, достаточно активировать режим работы с объектами (Edit Mode\Objects), щелкнуть по кнопке Add (добавить) на панели инструментов (четвертая от начала) в верхней части редактора, выбрать из списка Objects на панели в правой части приложения нужный элемент и щелкнуть левой кнопкой мышки по любому месту на карте.
Чтобы переместить объект, необходимо кликнуть по нему левой кнопкой мышки (для выделения) и задействовать режим перемещения элементов Move (5-й инструмент на панели в верхней части редактора). Далее для передвижения элемента в направлении одной из координатных осей — X, Y или Z — нужно кликнуть по кнопке с изображением соответствующей оси на панели инструментов (располагаются сверху) и передвинуть мышь с зажатой левой кнопкой. Обратите внимание, система координат в редакторе отличается от стандартной. При перемещении объекта по оси Z вы будете передвигать элемент по X, двигая его по оси Y — смещать модель вверх (Z), наконец, передвигая конструкцию по X, вы на самом деле сдвинете модельку по оси Y. Поначалу это кажется жутко неудобным, но привыкаешь буквально за 10-15 минут.
Поворот объектов осуществляется аналогичным образом, единственное отличие состоит в том, что вместо инструмента Move придется активировать модификатор Rotate (6-й от начала). Если вам нужно удалить какой-либо элемент со сцены, выделите его и нажмите клавишу Delete.
Чтобы создать точную копию элемента, снова выделите объект, поместите его в буфер обмена с помощью комбинации клавиш Ctrl+C, а затем подгрузите клон на карту (Crtl+V).
В редактор встроена возможность масштабировать любые объекты. Да здравствуют деревья 10-метровой высоты, гигантские кустики и крохотные постройки (надеемся, что в финальной версии SDK нам и монстров разрешат масштабировать, вот тогда по-настоящему повеселимся). Чтобы изменить габариты моделей, активируйте инструмент Uniform Scale на панели в верхней части редактора (7-й от начала), выберите ось, относительно которой собираетесь растянуть объект (кнопки X, Y и Z), и переместите мышь с зажатой левой кнопкой.
Прежде чем приступать к следующему этапу работы, добавьте на уровень различные строения, растительность, при необходимости задайте им новое местоположение и угол поворота.
Да будет свет
Любая карта для «Сталкера» должна содержать источники света и специальные объекты свечения. Если их не будет, то карту не удастся скомпилировать и опробовать в игре — редактор просто выдаст ошибку при компиляции. Чтобы поместить на уровень объект свечения, щелкните по кнопке Glow в поле Edit Mode для активации соответствующего режима работы, кликните по кнопке Add на панели инструментов (четвертая по счету) в верхней части редактора и щелкните левой кнопкой мышки по карте.
Вы увидите, что на карте появился какой-то непонятный плоский объект белого цвета. Это и есть элемент свечения. Чтобы компилятор уровней корректно его воспринял, необходимо покрыть его текстурой. Выделите созданный компонент на карте, щелкните по нему правой кнопкой мышки и в контекстном меню выберите пункт Properties. В появившемся окне свойств элемента отыщите параметр Texture и щелкните по кнопке с изображением многоточия. В окне браузера текстур выберите любое изображение, например glow\glow_anamorphic, нажмите Ok и закройте окно инспектора свойств объекта. Активируйте режим работы с источниками освещения — Light в поле Edit Mode и поместите на карту два-три источника освещения (так же, как добавляли одиночные элементы).
Компиляция и тестирование
Чтобы завершить создание новой карты, нужно поместить на уровень стартовые позиции для игроков. Достаточно кликнуть по кнопке Spawn Elements в поле Edit Mode на панели в правой части редактора, выбрать из списка Spawns стартовую позицию нужного типа (в нашем случае это элемент типа $rpoint), нажать клавишу A на клавиатуре для активации режима размещения объектов и кликнуть по произвольному месту на карте. Перемещение и поворот стартовых позиций производится так же, как и с простыми статическими объектами.
Большой мультиплеерный уровень, созданный нами на основе стандартных объектов примерно за полчаса: http://storage3.static.itmages.ru/i/13/0630/h_1372613023_6210741_b3d71c6282.jpg
Ландшафт местности сформирован, декорации установлены, источники освещения, а также стартовые позиции добавлены. Самое время скомпилировать уровень и опробовать его в игре.
На панели справа в поле Scene выберите пункт меню Scene\Options. В появившемся окне свойств найдите атрибут Level Path и впишите в поле название уровня, которое вы задали карте при сохранении. После этого кликните по кнопке Draft напротив комментария Quality. Закройте окно свойств и на панели в правой части приложения кликните по кнопке Compile\Build.
Подготовительный этап закончен, осталось скомпилировать полученные файлы карты в формат, понятный игре. Выберите пункт меню Пуск\Выполнить и в окне пропишите команду [Path] [level_name]. Здесь [Path] — полный путь к компилятору xrLC.bat, который находится в директории \level_editor установленного SDK, например: E:\X-Ray SDK\level_editor\xrLC.bat. [level_name] — название компилируемого уровня.
При работе с длинными путями используйте командную строку (активируется командой cmd в окне Выполнить).
Последний шаг — импорт скомпилированного уровня в игру. Зайдите в корневой каталог «Сталкера» и создайте в нем папку \Gamedata. После этого скопируйте файл level_editor\gamedata\config\mp\map_list.ltx, располагающийся в директории с SDK, в каталог gamedata\config\mp установленной игры. Скопируйте папку с названием вашего уровня из директории level_editor\gamedata\levels SDK в папку gamedata\levels «Сталкера», файл user_floor_dirty_gr.dds из каталога level_editor\gamedata\textures\user — с SDK в папку gamedata\textures\user с установленной игрой, а textures.ltx из level_editor\gamedata\textures\textures.ltx — в игровую папку gamedata\config\mp. Наконец, проследуйте в каталог gamedata\config\mp установленной игры, откройте «Блокнотом» файл map_list.ltx и добавьте в конец блока [deathmatch] название вашей карты без расширения:
[deathmatch]
;fog_net
testers_mp_pool
mp_igroprom
Где mp_igroprom — название мультиплеерной карты.
* * *
Мы разобрали основные принципы создания новых карт для «Сталкера». Но тема, конечно же, не закрыта. Продолжение рассказа о создании уровней для «Сталкера»: Игромания - Игрострой. Уровни для S.T.A.L.K.E.R., часть 2
Авторы
Статью создал: Эдуард Клишин
Добавил на stalkerin: aka_sektor