Всем добрый вечер. В связи с многочисленными вопросами по созданию переходов между сингл-локациями, решил написать статью по этой теме.
Итак, в этой статье, мы свяжем две сингл-локации, заселим их, и опробуем в игре. Основной упор будет сделан на соединение локаций и настройки переходов.
Связывать мы будем Кордон и... И еще один Кордон.
Для начала нам потребуется декомпилированный оригинальный Кордон. Конвертером от барадка разбираем локацию L01_Escape.
Разобрали? Хорошо. Едем дальше.
Теперь заходим в папку config расположенную в X:\gamedata\config.
Нам понадобятся следующие файлы:
game_levels.ltx
game_maps_single.ltx
Открываем game_levels.ltx, оригинальные локации сразу можно удалять, содержимое для наших тестовых локаций должно быть следующим:
Код
[levels]
level01
level02
[level01]
name = L01_test
caption = "L01_test"
offset = 3000.0, 1000.0, 0.0
id = 01
[level02]
name = L02_test
caption = "L02_test"
offset = 3000.0, 1000.0, 0.0
id = 02
Как видите - нечего лишнего.
Теперь очередь за game_maps_single.ltx
Его содержимое должно быть таким:
Код
[level_maps_single]
L01_test
l02_test
[level_music_tracks]
music\amb01 = 0, 12, 0.5, 10,20
music\amb03 = 0, 12, 0.5, 10,15
music\amb07 = 12,24, 1.0, 5, 25
[global_map]
texture = ui\ui_global_map
bound_rect = 0.0,0.0, 1024, 2634.0
max_zoom = 6.0
[l01_test]
texture = map\map_escape; карта локации, относительно папки textures
bound_rect = -317.164, -633.718, 404.880, 811.627; положение, и размер карты.
global_rect = 355.0,2011.0, 576.0,2453.000000; положение карты на глобальной карте.
weathers = default; погода на локации.
music_tracks = l01_escape_musics; звуковое сопровождение, музыка.
[l02_test]
texture = map\map_escape
bound_rect = -445.000000,-445.000000,755.000000,755.000000
global_rect = 22.0, 2113.0, 352.0, 2443.000000
weathers = default
music_tracks = l01_escape_musics
На этом с конфигами все.
Загружаем Level Editor.
Открываем декомпилированный Кардон в LE... Видим кучи оригинального мусора называемого заселением...

Переходим в раздел Spawn Element, жмем Shift+A, Delete. Тоже самое зверски проделаем с оригинальными Way point. Не стоит хранить мусор на локации, который копился еще со времен билда 2215.
Почистили? Вот, теперь все выглядит намного лучше.

Переходим в раздел Spawn Element и создадим ai/level changer, приаттачем к нему шейп.
Переходим в раздел propetries нашего level changer'a.
Name можно указать любой, дабы не путаться, назовем его
to_l02_test.
В custom_data пишем:
Код
[pt_move_if_reject]
path = l01_test_way_if_reject
Ставим галку напротив
Used AI locations.
В Level to change на выбор будут два наших новых левела, выберем
l02_test, так как переход должен осуществлятся на вторую локацию.
В Level point to chaged указываем название граф-поинта на позицию которого нас перенесет (на локации l02_test).

Создаем way-point с именем
l01_test_way_if_reject. Обязательно состоящий из 2 точек пути.
Создадим граф-поинт и назовем его
start_actor_02 для того чтобы могли переместиться с локации
l02_test назад.
А теперь самое важное, создадим еще один граф-поинт и свяжем его с граф-поинтом на локации
l02_test.
Для этого открываем propetries созданного граф-поинта и вписываем следующие значения:
Name:
exit_l01_testВ параметре Level name выбирем наш второй уровень. (
l02_test)
В параметре Point name впишем название граф-поинта, расположенного на второй локации, с которым будет связан граф-поинт на локации
l01_test. Называться будет
exit_l02_test и создадим уже при редактировании локации
l02_test.

Спавним actor'a.
В Scene/Level path указываем название нового уровня -
l01_test, сохраняем, выполняем make game.

С первой локацией все.
Загружаем вторую локацию.
Заспавним езе один level changer. В propetries необходимо указать следующие значения:
Name:
to_l01_testВ custom_data пишем:
Код
[pt_move_if_reject]
path = l01_test_way_if_reject
Ставим галку напротив
Used AI locations.
Level to change:
l01_test.
Level point to change:
start_actor_02 (Если помните, мы заранее создали его на первой локации.)

Создаем way-point с именем
l02_test_way_if_reject. Обязательно состоящий из 2 точек пути.
Создадим граф-поинт с именем
start_actor_01, для level changer'a расположенного на первой локации.(После загрузки, актор будет перемещен на его позицию.)
Создаем еще один граф-поинт для связки с первой локацией, в настройках вписываем следующие значения:
Name:
exit_l02_testВ параметре Level name выбираем наш первый уровень. (
l01_test)
В параметре Point name впишем название граф-поинта, расположенный на первой локации, с которым будет связан граф-поинт на локации
l02_test.

В Scene/Level path указываем название нового уровня -
l02_test, сохраняем, выполняем make game.

С работой в СДК - все.
Открываем папку X:\gamedata\levels
Видим две новые папки l01_test и l02_test
Открываем папку с оригинальным кордоном и переносим из него все файлы, кроме level.gct, level.graph, level.game, level.spawn, папки meshes. В папку l01_test и l02_test.
Теперь нам понадобится
X-ray Game asset tools pack update 2.0Настраиваем aiwrapper по статье:
Настройка_СДК,_конвертер_и_аиврапперСоздадим 4 батника:
TEST1.bat содержание:
Код
@2588\xrai -g l01_test
@2588\xrai -g l02_test
TEST2.bat содержание:
Код
@2588\xrai -m
TEST3.bat содержание:
Код
@2588\xrai -no_separator_check -noverbose -s
TEST4.bat содержание:
Код
aiwrapper -upgrade 3116
del gamedata\spawns\all.spawn
rename gamedata\spawns\all.spawn.upg all.spawn
del gamedata\game.graph
rename gamedata\game.graph.upg game.graph
Запускаем первый батник, ждем просчета граф-таблиц на локациях l01_test и l02_test, запускаем второй батник ждем пока xrAI просчитает глобальный граф. Запускаем третий батник - собирается all.spawn. Заходим в папку X:\gamedata\spawns и
переименовываем l01_test.spawn в
all.spawn, после этого запускаем четвертый батник.
На этом соединение локаций окончено, если СДК не объединен с игрой, в корневой папке с игрой создаем папку gamedata, и переносим туда папки: spawns, levels, config а также файл game.graph, из папки X:\gamedata\.
Запускаем, проверяем новые level change'ры.


Как видно, мы добавили два новых перехода между локациями.
Готовый вариант с настроенными Level Change'ами на двух локациях.
Автор: Allender (AMK-II)
В ближайшее время, разберем "Базовое заселение".
Сообщение отредактировал Allender - 28.3.2011, 16:03