100 Ренген  
Пятница, 17.05.2024, 14:39

Приветствую Вас Гость | RSS
Главная | Каталог статей | Регистрация | Вход
Меню сайта

Наш опрос
Оцените мой сайт
Всего ответов: 23

Категории раздела
Мои статьи [36]

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная » Статьи » Мои статьи

Создание сингл-уровня для ЗП

Всем привет! Сейчас я расскажу, как мне удалось добавить сингл уровень без подключения к существующим локациям.
То, что получилось














Содержание
[убрать]
1 Инструментарий. 2 Цели. 3 Первые шаги. 4 Моделирование. 5 Работа в SDK 6 Сборка АИ-сетки. 7 Настройка сцены 8 Сборка Локации 9 Компиляция карты 10 Работа с aiwrapper'ом и грандиозное завершение. 11 Примеры (examples):
[править]
Инструментарий.
3D Studio MAX 8 Plugin for 3D Studio Max версии 2.0. Последний нам нужен для экспорта геометрии созданного нами уровня в формат SDK. Также плагин входит в X-ray Game asset tools pack FINAL (см. ниже) X-Ray SDK 0.4 (ТЧ) Глобальный патч v. 0.3 X-ray Game asset tools pack FINAL X-ray Game asset tools pack update 2.0 Следующие конфиги из распакованной геймдаты «Зова Припяти» (далее как «ЗП»): gamedata\configs\game_graphs.ltx . gamedata\configs\game_levels.ltx . gamedata\configs\game_levels_music.ltx . gamedata\configs\game_maps_single.ltx . Ещё понадобится моделька ЛЮБОГО персонажа из ТЧ. Собственно понадобятся следующие файлы из геймдаты ТЧ (из ЗП не пойдёт — будет вылет). Я взял: gamedata\meshes\actors\novice\green_stalker_1.ogf gamedata\meshes\actors\*.omf (все OMF-ки) gamedata\textures\act\act_head1.dds gamedata\textures\act\act_green_stalker1.dds
Анимации положить в: level_editor\gamedata\meshes\actors
Текстуры положить в: level_editor\gamedata\textures
А модельку переименуйте в stalker_hero_1.ogf и положите в level_editor\gamedata\meshes\actors\stalker_hero
Это необходимо для указания правильного пути к визуалу актора в all.spawn'е [править]
Цели.

Наша цель - создать маленький уровень с несколькими постройками, деревцами. Этот уровень будет один в игре. Подключению уровней друг к другу эта статья не посвящена. [править]
Первые шаги.

Давайте всё настроим по порядку: Настройте SDK, converter и aiwrapper как написано в этом посте Теперь сразу подредактируем конфиги. Создаём в папке с ЗП папку gamedata а в ней - папку configs. В последнюю кидаем файлы из распакованой геймдаты оригинальной игры: game_graphs.ltx game_levels.ltx game_levels_music.ltx game_maps_single.ltx
1. В game_graphs.ltx вписываем новые граф-поинты: почти в самом конце дописываем: 142 = "pihan_graph_point_01" 143 = "pihan_graph_point_02"
2. В game_levels.ltx следующие работы: вписываем level183 и в конец: [level183] name = pihan caption = "pihan" offset = 12000.0, 1000.0, 10000.0 weathers = [default] id = 183 В ЗП можно добавлять уровни с числом от 183 и выше.
3. В game_levels_music.ltx : добавляем [pihan_musics] music\zaton_day = 5, 22, 0.2, 2, 4 ;;; первые 2 цифры в строчках это с какого по какой час играет эмбиент. music\zaton_night = 22, 5, 0.3, 1, 2
Если поняли указываются звуковые файлы из папки sounds
4. В game_maps_single.ltx :
ВНИМАНИЕ!!!
Находим строку [level_maps_single]
Несколько строк под ней - это уровни из оригинала ЗП. Нам они не нужны. Ставим перед строками знак ; - это мы их так сказать "закоментили", также вписываем наш уровень. Выглядеть это должно так: [level_maps_single] ; stohe_selo = ; zaton = pihan = ; jupiter = ; jupiter_underground = ; pripyat = ; labx8 = ; plecha_selo = ; weapons_test = ; peacemaker_selo =
теперь пишем секцию ниже: [pihan] global_rect = 307.0, 90.0, 717.0, 500.000000 ;; положение на глобальной карте (здесь не рассматривается) music_tracks = pihan_musics ;; название звуковой ambient-темы. см. выше. weathers = dynamic_default
5. Теперь нужно подредактировать конфиг в СДК, чтобы в граф-поинт можно было указать наш уровень.
Открываем level_editor\gamedata\config\game_levels.ltx. Вписываем тоже что и в game_levels.ltx от ЗП (см. п. 1) (именно наш уровень со своим уникальным идентификатором) С конфигами всё. Теперь приступим к самому моделированию. [править]
Моделирование.

Открываем 3D Studio MAX 8. Создаём уровень как показано в этой статье: Создание уровня, пошаговое руководство
Всё как надо - настраиваем текстуру, материал, шейдер.
Дойдя до момента экспорта в SDK. Экспортируем террейн и постройки, если таковые имеются [править]
Работа в SDK

Открываем Level Editor (далее как LE). Сейчас нам нужно добавить созданный нами террейн в библиотеку объектов. Заходим в меню Objects --> Library Editor. Там жмём на кнопку Import Object и импортируем наш террейн (земля). Затем нажмите Save. Теперь наш террейн добавился в библиотеку объектов СДК. Далее мы должны разместить этот террейн в окне редактора. Сначала выбираем в меню Edit Mode режим работы с объектами (1-я кнопка). Затем жмём Multiple Append (находится в меню Commands) и выбираем наш террейн.
У меня теперь всё выглядит так!
Озеленение уровня, если вам оно нужно, описано тут: Глобальное озеленение, добавляем траву на уровень
Можно расположить на уровне несколько статичных объектов из библиотеки СДК (деревья, пропсы, камни и прочее)
Теперь обязательно надо расположить на уровне: actor - точка старта игрока. в настройках его укажите путь к визуалу, который мы положили в геймдату СДК выше.
Object Propetries - ACTOR



В меню Edit Mode кликаем по кнопочке Spawn Element. Внизу появится список, чего бы заспавнить. Идём в низ списка, находим секцию actor (у меня в списке она предпоследняя). Жмём на actor и нажимаем кнопку Create (горячая кл. A) Тыкаем курсором в место на карте куда бы заспавнить. Появляется Флажок. Жмём по нему ПКМ --> Propetries. Выполняем как на картинке: light - свет. располагаем его так: В меню Edit Mode кликаем по кнопочке Light. Нажимаем кнопку Create (горячая кл. A), тыкаем курсором в место на карте куда ставить. glow - В меню Edit Mode кликаем по кнопочке Glow. Нажимаем кнопку Create (горячая кл. A), тыкаем курсором в место на карте куда ставить. Даём текстуру для Glow: ПКМ по созданной Glow, далее Propetries --> напротив texture указываем текстуру. Graph-point'ы: нам нужны 2 граф поинта:
Настройки графпоинта pihan_graph_point_01


pihan_graph_point_01 pihan_graph_point_02
Сначала их создаём: в меню Edit Mode выбираем Spawn Element. В дереве всего что можно спавнить, в списке заходим в директорию (для тех кто в танке - папке) ai и выбираем graph_point. Создаём это аналогично Light и glow. Размещаем 2 графпоинта на разных концах карты. Затем у первого в настройках (ПКМ--> Propetries)делаем так как на картинке: У второго графпоинта в опциях пишем только имя - pihan_graph_point_02

Это то, что должно обязательно находится на сингловом уровне. Можете также добавить деревьев (нужны соотв. LODы), пропсов, домов (естественно создайте для них HOM'ы). Таким же образом как мы заспавнили actor'а, добавляются и другие НПС, аномалии, монстры и прочее. Короче все вкусности сингла :).
Насчёт левел-чейнжеров (переходов) - всё подробно описано тут: Компиляция -=inGame АИ=-. Единственное НО - нужно в настройках левелчейнжера поставить галку напротив silence mode. [править]
Сборка АИ-сетки.

Сама сборка сетки - дело не трудное. Оно очень подробно описано в этой статье Сборка АИ-Сетки
Напомню, что продолжительность сборки зависит от размера уровня. [править]
Настройка сцены

Настроим сцену: Идите в меню Scene --> Options там указываете как на картинке:
Идём в следующему шагу. [править]
Сборка Локации

После проверки что всё настроено, ничего не забыли, и не влепили лишнего переходим к сборке. Сохраняем наш уровень командой File --> Save Теперь в меню Compile кликаем по очереди на: Make Game Make Details Make HOM Make AI-map
Кстати на Make details у меня вышла ошибка, т.к. у меня на уровне не было травы. Я продолжил делать всё остальное - уровень все равно работает.
И теперь, с криком "банзай!", жмём Compile --> Build. Это соберёт наш уровень перед компиляцией. [править]
Компиляция карты
Пуск --> Выполнить --> D:\modding\X-Ray_SDK\level_editor\xrLC.bat pihan Как догадались нужно написать в строку где находится bat-файл компилятора и через пробел имя карты.

Если вы добавляли детали (траву к примеру), то после компиляции xrLC следует выполнить компиляцию xrDO_light: Пуск --> Выполнить --> D:\modding\X-Ray_SDK\level_editor\xrDO_light.bat pihan Примечание: многие создаю для этого диск X:\, но если в пути до файла xrLC.bat нему пробелов (_ допускаются) и русских букв, то всё работает как по маслу.

После нажатия ОК, через некоторое время появится окно компилятора. Компиляция на Draft'е не занимает много времени и ресурсов вашего компьютера. Но для компиляции уровней на высоком кач-ве лучше закрыть все ресурсопрожорливые приложения. Не даром у многих во время компиляции на таком качестве, компилятор вылетает с логом "Out Of Memory". По окончанию компиляции уровня будет написано: Congratulations!... Сейчас заходим в папку level_editor\gamedata\levels, берём папку pihan (это результат нашей компиляции)и кидаем её в ЗП\gamedata\levels. Едем дальше. [править]
Работа с aiwrapper'ом и грандиозное завершение.

Почти всё. Теперь нас ждёт работа с утилитой аивраппер (aiwrapper) автор утилиты - bardak, пламенное ему спасибо за неё.
Сама инструкция описана тут Цитата Kostya V
В папке X-Ray_SDK\aiwrapper, где лежит сам aiwrapper.exe (если вы настраивали по инструкции, то он у вас как раз тут и лежит) создаём файл с расширением *.bat. Открываем его блокнотом и пишем по очереди: 1.Сборка черновой сетки ИИ: > aiwrapper -draft -f <имя_уровня> На выходе: gamedata\levels\<имя_уровня>\level.ai. 2.Проверка связности сетки ИИ: > aiwrapper -verify <имя_уровня> В случае ошибки поправить ячейки в LE и повторить с п.2. 3.Просчёт укрытий для сетки ИИ. Предварительно необходимо произвести сборку геометрии для получения build.cform (xrLC, здесь это не рассматривается). Команда: > aiwrapper -f <имя_уровня> Вообще, этот шаг необязателен на ранних этапах тестирования карты. 4.Сборка ИИ-графа: > aiwrapper -g <имя_уровня> На выходе: gamedata\levels\<имя_уровня>\level.{graph|gct.raw} 5.Склейка ИИ-графов карт в глобальный игровой граф: > aiwrapper -m На выходе: gamedata\game.graph и gamedata\levels\*\level.gct (см. ниже для случая с картами без исходников) 6.Сборка all.spawn > aiwrapper -s На выходе: gamedata\spawns\all.spawn
т.е. к примеру написали в батник aiwrapper -draft -f pihan pause
сохранили батник, запустили, всё прошло, пишем далее: aiwrapper -verify pihan pause
опять сохранили, запустили, прошло и так все 6 шагов.
Сейчас весь результат работы с аивраппером помещается в level_editor\2215\gamedata. После последней команды будет создан уже и all.spawn и game.graph, но это всё не то.
После всего пишем в батник заветную команду: aiwrapper -upgrade 3502 Эта команда перешьёт и 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. Совет как запустить быстро карту: в корневой папке с ЗП создаём батник, в него вгоняем: @start bin\xrEngine.exe -nointro -external -start server(all/single/alife/pihan) client(localhost) Запускаем батник - игра грузится и вуаля - жните плоды работы.
Собственно всё. Мучайтесь. Данный урок позволяет создать локацию, но не объединяет локации (как объединить аллспавны формата ЗП, я пока не знаю).

Категория: Мои статьи | Добавил: Ликвидатор (28.01.2010)
Просмотров: 4073 | Комментарии: 2 | Рейтинг: 0.0/0 |
Всего комментариев: 1
1 Lezvie  
0
РЕбят я начал изучать сдк недавно помогите с компиляцией уровня я запускаю а он мне выдаёт :"
'xrCore' build 2215, Apr 25 2005

! Cannot find library xrEPropsB.dll
* loading script class_registrator.script
* loading script smart_terrain.script
* loading script se_switcher.script
* loading script se_stalker.script
* loading script se_artefact.script
* loading script se_car.script
* loading script se_monster.script
* loading script game_registrator.script
"LevelBuilder v4.1" beta build
Compilation date: Apr 25 2005

Startup time: 11:24:54

* New phase started: Loading level...
***STOP*** file 'P:\xrAI\compiler_load.cpp', line 243.
***Reason***: *** Assertion failed ***
Expression: F
There is no file 'build.prj'!
***STOP*** file '(null)', line 0.
***Reason***: *** Internal Error ***
Saved dump file to 'logs\xrSE_Factory_Administrator_07-30-11_11-24-58.mdmp'

Чё посоветуюте?

Имя *:
Email *:
Код *:
Форма входа

Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz


  • Copyright MyCorp © 2024
    Бесплатный хостинг uCoz