Как сделать карту для сталкер
Создание текстуры локации для отображения на мини-карте и в PDA
Материал из S.T.A.L.K.E.R. Inside Wiki
Содержание
Этап 1: Настройка игры
Запустите игру, в её опциях выберите, тип рендера: Статическое освещение. Примените, а после перезапустите игру.
Теперь в опциях игры, перейдите в «Расширенные» настройки: там поставьте все ползунки на максимум. Снова примените, и выйдите из игры.
Этап 2: Установка специальной погоды
Выберите, как вам удобнее это сделать:
Для этого в файле game_maps_single.ltx, папки gamedata/config (в ЧН и ЗП, папка gamedata/configs), найдите нужную вам локацию, и укажите ей погоду: weathers = map
P.S. После создания текстуры, вы можете указать прежнюю погоду.
Этап 3: Процесс создания текстуры
Запустите игру. Перейдите на нужную вам локацию. Выполните пункт 2.2, если пожелали не выполнять пункт 2.1.
Введите в консоли команду: demo_record 1
Появятся мигающие красные надписи, нажмите на клавиатуре F11.
ВНИМАНИЕ: чтобы на текстуре не было посторонних надписей, не наводите на какого-либо npc перекрестие, перед нажатием F11.
Этап 4: Местонахождение текстуры и её конвертация
Готово! Вы сделали текстуру вашей локации.
Найти её вы можете, по умолчанию, в папке:
Путь для ТЧ: Мои документы/stalker-shoc/screenshots
Путь для ЧН: Мои документы/stalker-stcs/screenshots
Путь для ЗП: Мои документы/stalker-cop/screenshots
ВНИМАНИЕ: цифры в квадратных скобках, это координаты bound_rect. Они понадобятся для правильного отображения игрока на локации.
Чтобы текстура работала в игре, её нужно конвертировать из .tga в .dds. Для этого используйте любой графический редактор, поддерживающий формат .dds.
Например, Adobe Photoshop с NVIDIA Texture Tools for Adobe Photoshop. Если выбрали этот графический редактор, то прочтите эту статью: Изменение текстур
Этап 5: Интеграция текстуры в игру
После того, как вы сконвертировали текстуру вашей локации в .dds, переименуйте её в map_название_вашей_локации, и поместите в папку gamedata/textures/map
Теперь нужно указать вашей локации текстуру. Для этого откройте файл game_maps_single.ltx, найдите в нём свою локацию, и укажите: texture = map\map_название_вашей_локации
Также в данном файле нужно указать вашей локации её координаты bound_rect и global_rect.
Создание, описание особенностей и объяснение работы карт рельефа
Материал из S.T.A.L.K.E.R. Inside Wiki
В этой статье я постараюсь объяснить создание правильных карт bump и bump# с помощью Adobe Photoshop и X-ray SDK. Думаю, с этими дополнительными составляющими текстурами много кто сталкивался, много кто искал пути правильного их создания. На самом деле, чтобы правильно создать бамп-карты, необходимо освоить как техническую сторону вопроса (делать, так сказать, «по науке»), так и практическую (различные методики работы в фотошопе, обработка текстуры, исправление возможных косяков и т. д.). В данной статье больше всего внимания будет уделяться именно первому пункту, ведь в любом деле лучше сначала выучить основы, а потом, в том числе, самостоятельно обучаясь, получить опыт в практике, улучшить свое мастерство.
При их «смешивании», получаем нормальную окраску изображения. В общем, указания по каналам в данной статье будут даваться в виде, как блок выше. Иногда в RGB каналов больше (можете сами попробовать добавлять в фотошопе). В игре используется канал Альфа 1 (его еще просто «Альфой» кличут). У него есть, разумеется, свои особые функции. Итого, вот так будут выглядеть указания по каналам:
Содержание
Теория
Для начала попытаюсь объяснить структуру основных карт и разобрать основные понятия статьи. Всё ниже написанное не обязательно верно на все 100%.
Height Map (карта высот)
Normal Map (карта нормалей)
Карту нормалей можно получить следующими способами:
— сгенерировать с высокополигональной модели в 3д-редакторе, в роде 3ds Max, zBrush.
— сгенерировать с ранее созданной карты высот с помощью одного из плагинов для Photoshop (плагин NVIDIA, плагин PixPlant, плагин xNormal)
— сгенерировать с ранее созданной карты высот в спец-прогах (xNormal, PixPlant, CrazyBump)
Если разбирать по каналам схематически, то выглядит так:
При включенном RGB на каналах, смотрится как текстура в синих, фиолетовых, сиреневых, даже иногда розовых цветах. Нормал мапу очень и очень рекомендуется создавать для бампа (тем более, если она с хай-поли модели), а не использовать сокращенный вариант с картой высот (об этом узнаете в разделе СДК ниже). Нормал мапа, собственно, и предает текстуре различных объемных черт. В дальнейшем, после сборки в СДК, карта станет частью bump.
Создание сингл-уровня для ТЧ
Материал из S.T.A.L.K.E.R. Inside Wiki
Всем привет! Сейчас я расскажу, как мне удалось создать уровень для одиночной игры без подключения к существующим локациям.
Содержание
Инструментарий.
Первые шаги.
Давайте всё настроим по порядочку:
1. В game_graphs.ltx прописываем наш уровень: почти в самом конце дописываем:
2. В game_levels.ltx следующие работы: вписываем
В ЗП можно добавлять уровни с числом от 183 и выше.
3. В game_levels_music.ltx : добавляем
Если поняли указываются звуковые файлы из папки sounds
теперь пишем секцию ниже:
5. Теперь нужно подредактировать конфиг в СДК, чтобы в граф-поинт можно было указать наш уровень.
Открываем level_editor\gamedata\config\game_levels.ltx. Вписываем тоже что и в game_levels.ltx от ЗП (см. п. 1) (именно наш уровень со своим уникальным идентификатором) С конфигами всё. Теперь приступим к самому моделированию.
Моделирование геометрии уровня.
Работа в SDK
Сборка АИ-сетки.
Настройка сцены.
Сборка Локации
После проверки что всё настроено, ничего не забыли, и не влепили лишнего переходим к сборке.
Компиляция карты
Если вы добавляли детали (траву к примеру), то после компиляции xrLC следует выполнить компиляцию xrDO_light:
После нажатия ОК, через некоторое время появится окно компилятора. Компиляция на Draft’е не занимает много времени и ресурсов вашего компьютера. Но для компиляции уровней на высоком кач-ве лучше закрыть все ресурсопрожорливые приложения. Не даром у многих во время компиляции на таком качестве, компилятор вылетает с логом «Out Of Memory». По окончанию компиляции уровня будет написано: Congratulations!. Сейчас заходим в папку level_editor\gamedata\levels, берём папку pihan (это результат нашей компиляции)и кидаем её в ЗП\gamedata\levels. Едем дальше.
ВНИМАНИЕ!
Данная стать в значительной степени устарела.
КАТЕГОРИЧЕСКИ предупреждаем
Используйте только официальный софт от разработчиков игры, а именно: Официальный xrAI для SDK 0.4
За более подробной информацией обратитесь на AMK форум
Работа с aiwrapper’ом и грандиозное завершение.
т.е. к примеру написали в батник
сохранили батник, запустили, всё прошло, пишем далее:
опять сохранили, запустили, прошло и так все 6 шагов.
Сейчас весь результат работы с аивраппером помещается в level_editor\2215\gamedata. После последней команды будет создан уже и all.spawn и game.graph, но это всё не то.
После всего пишем в батник заветную команду:
Эта команда перешьёт и all.spawn, и части уровня.
Всё, отныне файл game.graph зашит в all.spawn, а то что нам надо лежит в папке level_editor\3502\gamedata
Из этой папки (из 3502) берём:
1. Из gamedata\levels\pihan берём всё содержимое и кидаем в папку ЗП\gamedata\levels\pihan с заменой существующих файлов.
2. Из gamedata\spawns берём all.spawn (он по идее как то по другому сейчас называется, переименуйте в all.spawn) кидаем в ЗП\gamedata\spawns.
3. Также скидываем в геймдату ЗП текстуры, звуки, модели (если надо).
4. Совет как запустить быстро карту: в корневой папке с ЗП создаём батник, в него вгоняем:
Собственно всё. Мучайтесь. Данный урок позволяет создать локацию, но не объединяет локации (как объединить аллспавны формата ЗП, я пока не знаю).
Тема: Создание МП карт
Социальные закладки
Опции темы
Поиск по теме
Отображение
Модмэйкер |
Регистрация 12.07.2009 Адрес ОДЕССА Сообщений 381
Для начала необходимо скачать такую программу как SDK, она предоставленна на официальном сайте.
Запустите редактор карт (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.
Описанный выше метод добавления объектов отлично работает, если речь идет об импорте на уровень большого числа элементов, и совершенно не годится для поштучного добавления элементов. Чтобы поместить на уровень одну модель, достаточно активировать режим работы с объектами (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 и поместите на карту два-три источника освещения (так же, как добавляли одиночные элементы).
Большой мультиплеерный уровень, созданный нами на основе стандартных объектов примерно за полчаса.
Ландшафт местности сформирован, декорации установлены, источники освещения, а также стартовые позиции добавлены. Самое время скомпилировать уровень и опробовать его в игре.
На панели справа в поле 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 из evel_editor\gamedata\textures\textures.ltx — в игровую папку gamedata\config\mp. Наконец, проследуйте в каталог gamedata\config\mp установленной игры, откройте «Блокнотом» файл map_list.ltx и добавьте в конец блока [deathmatch] название вашей карты без расширения:
Где mp_igroprom — название мультиплеерной карты.
Подключение локаций.
Устанавливаем active perl.
Заходим в папку с программой ggEditor_01.Создаем там папки Cs или Cop(Смотря на какую игру делаете) и папку Soc.В папке Soc создаем папку gamedata и кидаем в нее файл game.graph(Важно чтобы game.graph лежал там, иначе программа не прочитает.) из мода, или от ТЧ.В папке gamedata создаем папку levels и кидаем туда папку с уровнем, который мы хотим портировать. Далее возвращаемся в папку Soc и туда кидаем папку с ACDC для ТЧ, туда же кладём all.spawn.Запускаем соответствующий батник для распаковки all.spawn`а.
Далее в папку ggEditor_01Cs или Cop, кидаем папку с соответствующим ACDC, опять-же кладем туда all.spawn, распаковываем.
В итоге у нас должно получиться 2 распакованных all.spawn`а, game.graph от ТЧ и папка с переносимым уровнем.
С приготовлениями всё.
Запускаем программу ggEditor.Видим там два окошка. В левом открываем game.graph от ТЧ, а в правом от ЗП или ЧН(В ЗП и ЧН граф вшит в all.spawn, ищите его там.)(Нужно выбрать тип файлов для ЧН graph.bin, а для ЗП все файлы и открыть в папке с ACDC файл section4.bin). В окошках мы видим список уровней. В левом окошке находим нужный нам уровень и нажимаем на соответствующую стрелку для переноса уровня в нужный нам граф. Нажимаем в правом окошке «сохранить».После того, как граф сохранился, можно закрыть программу, она нам больше не понадобится. Потом этого шагаем в папку с ACDC для ЧНЗП и удаляем старые файлы section4.bin или graph.bin.Затем переименовываем файлы graph.bin.new или section4.bin.new в graph.bin и соответственно section4.bin.
Далее идем в папку с ACDC от ТЧ, находим там файл alife_наша_локация и копируем его. Затем шуруем в папку с ACDC от ЧНЗП, вставляем скопированный нами файл. Открываем этот файл, сносим все, оставляем только одну секцию спавна(Лучше всего если это будет какой-нибудь объект), присваиваем секции номер не меньше 20000, сворачиваем на время этот файл. Далее нужно подогнать вертексы. Для этого запускаем батник ggtool, ждем некоторое время, после чего появляются имена локаций, а рядом с ними числа. Смотрим это число рядом с нашей локацией(в ЧН это скорее всего будет 1620, а в ЗП 934).Далее разворачиваем alife_ файл с нашей локацией, ищем там строку «game_vertex_id» и пишем там число которое появилось рядом с нашей локацией при запуске батника ggtool.Затем обращаем свой взор на строку «level_vertex_id».К исходному значению строки прибавляем число, которое мы записали в строку «game_vertex_id», полученное число записываем. Далее, в добавляемых потом секциях спавна нужно писать эти числа. Мы подогнали вертексы.
Затем открываем файл all.ltx.Вписываем туда свой alife_ файл локации, way_ файлы не трогаем. Меняем на соответствующее число локации строку level_count.
После этого открываем файл alife_zaton(для ЗП) или alife_marsh(для ЧН)и ищем там гг по строке «section_name = actor».Нашли?Отлично. Теперь присваиваем этой секции спавна позицию(новую позицию прописываем также в строке «upd:position = «) и вертексы как у единственного предмета в файле alife_новая_локация. При следующей распаковке, если вы все сделали правильно, наш актор окажется в файле alife_новая_лока.
Мы почти закончили с пробной сборкой новой локации(пока без перехода).
Осталось только прописать наш новый уровень в файл ACDC Copacdccop.pl(для ЗП)либо в файле ACDC Csstkutilslevel.pm.
В этих файлах ищем такие строки(для ЗП):
use constant levels_info => (
< gvid0 =>883, name => ‘jupiter_underground’ >,
И если у вас число когда мы запускали батник ggtool тоже 934 то прописываем так:
use constant levels_info => (
< gvid0 =>934, name => ‘ваша_локация’ >,
< gvid0 =>883, name => ‘jupiter_underground’ >,
А в файле level.pm от ACDC ЧН вы увидите такой текст:
use constant levels_info => (
< gvid0 =>1573, name => ‘l12_hospital’ >,
< gvid0 =>1565, name => ‘l11_stancia2’ >,
< gvid0 =>1524, name => ‘l10_limansk’ >,
< gvid0 =>1511, name => ‘l09_agroprom_undeground’ >,
< gvid0 =>1313, name => ‘l08_military’ >,
< gvid0 =>1212, name => ‘l07_yantar’ >,
< gvid0 =>1057, name => ‘l06_agroprom’ >,
< gvid0 =>961, name => ‘l05_red_forest’ >,
< gvid0 =>743, name => ‘l04_darkvalley’ >,
< gvid0 =>472, name => ‘l03_escape’ >,
< gvid0 =>245, name => ‘l02_garbage’ >,
Прописать там свой уровень нужно точно так-же как в файле от ACDC ЗП:
use constant levels_info => (
< gvid0 =>1620, name => ‘ваша_локация’ >,
< gvid0 =>1573, name => ‘l12_hospital’ >,
< gvid0 =>1565, name => ‘l11_stancia2’ >,
< gvid0 =>1524, name => ‘l10_limansk’ >,
< gvid0 =>1511, name => ‘l09_agroprom_undeground’ >,
< gvid0 =>1313, name => ‘l08_military’ >,
< gvid0 =>1212, name => ‘l07_yantar’ >,
< gvid0 =>1057, name => ‘l06_agroprom’ >,
< gvid0 =>961, name => ‘l05_red_forest’ >,
< gvid0 =>743, name => ‘l04_darkvalley’ >,
< gvid0 =>472, name => ‘l03_escape’ >,
< gvid0 =>245, name => ‘l02_garbage’ >,
Осталось собрать gamedat`у для игры и смотреть что получилось. Итак, приступим: