Level.ai — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
Строка 1: | Строка 1: | ||
− | Сетка АИ, | + | Сетка АИ, сетка уровня(Compile->Make AI), ноды по которым |
− | АИ может ориентироваться и перемещаться по левелу. | + | перемещается ИИ, с помощью нее АИ может ориентироваться и |
+ | перемещаться по левелу. | ||
+ | |||
+ | Сам процесс использования компилятора xrai.exe. | ||
+ | Ключи в порядке использования. | ||
+ | |||
+ | xrai.exe -draft -f <level> - черновое компилирование сетки ai | ||
+ | ******** -verify <level> - проверим на правильность | ||
+ | ******** -f <level> - финальное компилирование | ||
+ | xrai.exe -g <level> - компилируем off-line ai, graph и cross table | ||
+ | xrai.exe -m - получаем game.graph (микс из level.graph и level.gct) | ||
+ | xrai.exe -s - объединение level.spawn, level.ai, level.game в all.spawn | ||
+ | |||
+ | Верификация проходит успешно, причем проверяя уровни из финальной версии. | ||
+ | Тоже все читает и выдает положительный результат , но при окончательном компилировании (-f) ошибка не выдается - просто висит на загрузке уровня. | ||
+ | |||
+ | Для успешной компиляции, сам компилятор должен быть интегрирован с игрой (или должны быть папки с конфигами и скриптами - gamedata\config и gamedata\script). | ||
+ | |||
+ | При компиляции загружаются следующие скрипты: | ||
+ | gamedata\scripts... | ||
+ | class_registrator.script | ||
+ | script _G.script | ||
+ | smart_terrain.script | ||
+ | se_respawn.script | ||
+ | se_switcher.script | ||
+ | se_stalker.script | ||
+ | se_car.script | ||
+ | se_zones.script | ||
+ | se_item.script- с оригинальным почему то работать не хочет. Но начинает, если удалить несколько значений из него - надо разбираться. | ||
+ | se_artefact.script | ||
+ | se_monster.script | ||
+ | game_registrator.script | ||
+ | |||
+ | Новый уровень обязательно надо добавить в следующие файлы, чтобы компилятор (и игра потом) их видели: | ||
+ | gamedata\config... | ||
+ | game_levels.ltx - секция [levels] и [levelXX], по образу и подобию существующих. | ||
+ | game_graphs.ltx | ||
+ | game_maps_single.ltx | ||
+ | |||
+ | Теперь, вкратце, о самом использовании xrAI.exe | ||
+ | Создадим, для примера, два уровня, чтобы точки перехода были друг на друга. | ||
+ | Возьмем, например, уровени из sdk (или создадим свои, кому как проще ). | ||
+ | Добавим их в выше указанные файлы (game_levels.ltx, game_graphs.ltx, game_maps_single.ltx) | ||
+ | Удалим все объекты секции spawn. | ||
+ | |||
+ | Добавим graph_point - точку, где будет появляться актер, при переходе на этот уровень с другого, где указываем текущий уровень и название точки, на которую будет ссылаться level_changer с другого уровня. | ||
+ | Добавим level_changer - где указываем, на какой уровень должен осуществляться переход и название точки, где он появляется. | ||
+ | Сгенерируем сетку проходимости AI. | ||
+ | Скомпилируем уровни из редактора. | ||
+ | Скомпилируем уровень, используя xrLC и xrDO_light. | ||
+ | |||
+ | Теперь очередь xrAI: | ||
+ | По идее, мы должны были добавить еще и актера на первый уровень. Но тут, при компиляции с ключом -g, выдается ошибка. Видно чего то не хватает в конфигах - надо разбираться. | ||
+ | xrai.exe -draft -f <level> | ||
+ | xrai.exe -g <level> | ||
+ | |||
+ | тоже самое и для второго уровня. | ||
+ | |||
+ | После чего: | ||
+ | xrai.exe -m - получаем game.graph | ||
+ | |||
+ | с ключом -s выдается ошибка - тоже надо разбираться. | ||
+ | |||
+ | Теперь о том, что получаем в итоге: | ||
+ | level.ai - формат не изменился, по сравнению с 2215. | ||
+ | level.graph - изменился заголовок, сам формат, на первый взгляд, не поменялся. | ||
+ | level.gct.raw - 100% дубликат level.gct | ||
+ | level.gct - надо разбираться, формат вроде тот же, но при компиляции выдает, что версии не совместимы. | ||
+ | game.graph - на первый взгляд поменялся только тип данных (с integer на int16), но тут надо смотреть подробнее. | ||
+ | |||
+ | Есть еще кое что: | ||
+ | не хватает многих классов в xrai от 2215, поэтому при компиляции с ключом -s, он ругается на их отсутствие. | ||
+ | Компилятор с ключом -m использует level.gct.raw, переименовывая его потом в level.gct | ||
+ | |||
+ | |||
+ | Ну а дальше - дополняем, поправляем, разбираемся... . | ||
+ | |||
+ | P.S. Думаю, проще будет сделать конвертер, но надо подробно разбирать game.graph. | ||
[[Категория:Форматы файлов]] | [[Категория:Форматы файлов]] |
Версия 13:43, 4 сентября 2007
Сетка АИ, сетка уровня(Compile->Make AI), ноды по которым перемещается ИИ, с помощью нее АИ может ориентироваться и перемещаться по левелу.
Сам процесс использования компилятора xrai.exe. Ключи в порядке использования.
xrai.exe -draft -f <level> - черновое компилирование сетки ai
- -verify <level> - проверим на правильность
- -f <level> - финальное компилирование
xrai.exe -g <level> - компилируем off-line ai, graph и cross table xrai.exe -m - получаем game.graph (микс из level.graph и level.gct) xrai.exe -s - объединение level.spawn, level.ai, level.game в all.spawn
Верификация проходит успешно, причем проверяя уровни из финальной версии. Тоже все читает и выдает положительный результат , но при окончательном компилировании (-f) ошибка не выдается - просто висит на загрузке уровня.
Для успешной компиляции, сам компилятор должен быть интегрирован с игрой (или должны быть папки с конфигами и скриптами - gamedata\config и gamedata\script).
При компиляции загружаются следующие скрипты: gamedata\scripts... class_registrator.script script _G.script smart_terrain.script se_respawn.script se_switcher.script se_stalker.script se_car.script se_zones.script se_item.script- с оригинальным почему то работать не хочет. Но начинает, если удалить несколько значений из него - надо разбираться. se_artefact.script se_monster.script game_registrator.script
Новый уровень обязательно надо добавить в следующие файлы, чтобы компилятор (и игра потом) их видели: gamedata\config... game_levels.ltx - секция [levels] и [levelXX], по образу и подобию существующих. game_graphs.ltx game_maps_single.ltx
Теперь, вкратце, о самом использовании xrAI.exe Создадим, для примера, два уровня, чтобы точки перехода были друг на друга. Возьмем, например, уровени из sdk (или создадим свои, кому как проще ). Добавим их в выше указанные файлы (game_levels.ltx, game_graphs.ltx, game_maps_single.ltx) Удалим все объекты секции spawn.
Добавим graph_point - точку, где будет появляться актер, при переходе на этот уровень с другого, где указываем текущий уровень и название точки, на которую будет ссылаться level_changer с другого уровня. Добавим level_changer - где указываем, на какой уровень должен осуществляться переход и название точки, где он появляется. Сгенерируем сетку проходимости AI. Скомпилируем уровни из редактора. Скомпилируем уровень, используя xrLC и xrDO_light.
Теперь очередь xrAI: По идее, мы должны были добавить еще и актера на первый уровень. Но тут, при компиляции с ключом -g, выдается ошибка. Видно чего то не хватает в конфигах - надо разбираться. xrai.exe -draft -f <level> xrai.exe -g <level>
тоже самое и для второго уровня.
После чего: xrai.exe -m - получаем game.graph
с ключом -s выдается ошибка - тоже надо разбираться.
Теперь о том, что получаем в итоге: level.ai - формат не изменился, по сравнению с 2215. level.graph - изменился заголовок, сам формат, на первый взгляд, не поменялся. level.gct.raw - 100% дубликат level.gct level.gct - надо разбираться, формат вроде тот же, но при компиляции выдает, что версии не совместимы. game.graph - на первый взгляд поменялся только тип данных (с integer на int16), но тут надо смотреть подробнее.
Есть еще кое что: не хватает многих классов в xrai от 2215, поэтому при компиляции с ключом -s, он ругается на их отсутствие. Компилятор с ключом -m использует level.gct.raw, переименовывая его потом в level.gct
Ну а дальше - дополняем, поправляем, разбираемся... .
P.S. Думаю, проще будет сделать конвертер, но надо подробно разбирать game.graph.