Переход между уровнями (level changer) — различия между версиями

Материал из xrWiki
Перейти к: навигация, поиск
(Новая страница: «Все живые существа перемещаются по глобальному графу, и, соответственно, для них не нужн…»)
 
 
(не показана 1 промежуточная версия этого же участника)
Строка 4: Строка 4:
  
 
[[Файл:level-changer-prefs-01.png|center]]
 
[[Файл:level-changer-prefs-01.png|center]]
 +
 +
По идее игрок после перехода будет смотреть в ту сторону, куда указывает флажок graph point'а.
  
 
Затем в свойствах самого level changer'а в поле '''Level to change''' нужно выбрать имя целевого уровня и '''Point to change''' — точку графа на том уровне, куда должен попасть игрок.
 
Затем в свойствах самого level changer'а в поле '''Level to change''' нужно выбрать имя целевого уровня и '''Point to change''' — точку графа на том уровне, куда должен попасть игрок.
Строка 9: Строка 11:
 
[[Файл:level-changer-prefs-02.png|center]]
 
[[Файл:level-changer-prefs-02.png|center]]
  
Параметр Silent mode отвечает за вывод диалогового окошка с подтверждением желания перейти на другой уровень (да/нет). Если отмечен, то окошко не выводится и игрока перебрасывает сразу.
+
Параметр '''Silent mode''' отвечает за вывод диалогового окошка с подтверждением желания перейти на другой уровень (да/нет). Если отмечен, то окошко не выводится и игрока перебрасывает сразу.
  
При необходимости в свойствах перехода, в параметре '''Custom data''', можно задать [[way point|точку пути]], в которую игрока будет перебрасывать при отказе перейти на другой уровень.
+
При необходимости в свойствах перехода, в параметре '''Custom data''', можно задать [[way point|точку пути]], в которую игрока будет перебрасывать при отказе перейти на другой уровень. Это нужно для того, чтобы при отказе перейти игрок не остался внутри уже сработавшего рестриктора перехода и не смог пройти сквозь него на задворки уровня.<br />
 
Формат конфига таков:
 
Формат конфига таков:
 
<syntaxhighlight lang="ini">[pt_move_if_reject]
 
<syntaxhighlight lang="ini">[pt_move_if_reject]
Строка 17: Строка 19:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Изначально к level changer'у не подсоединён свой [[shape|шейп]], т.к. геометрия, в которой располагается точка перехода, может иметь различную форму, и, соответственно, под неё придется делать свои шейпы. И для того, чтобы переход заработал, нужно добавить к нему шейп, при попадании в который сработает переход.
+
Изначально к level changer'у не подсоединён свой [[shape|шейп]], т.к. геометрия, в которой располагается точка перехода, может иметь различную форму, и, соответственно, под неё придется делать свой шейп. Подсоединяется он стандартным способом: в режиме Shape в нужное место добавляется и масштабируется шейп, затем в режиме Spawn выделяется объект Level changer, нажимается кнопка Attach, кликается по шейпу. Если всё прошло хорошо, то флажок level changer'а переместится в центр шейпа, а сам шейп подкрасится цветом.
  
 
[[Категория:A-Life]]
 
[[Категория:A-Life]]

Текущая версия на 11:24, 20 ноября 2017

Все живые существа перемещаются по глобальному графу, и, соответственно, для них не нужны особые точки перехода — всё просчитывается автоматически компилятором xrAI. Но actor управляется игроком, а не симуляцией, поэтому для него был придуман спавн-объект Level changer, предназначенный специально для перехода игрока с одного уровня на другой.

Каждому переходу требуется по одной точке графа. В их свойствах, в разделе Connection, в параметре Level name следует выбрать имя целевой локации (на неё существо или игрока будет перекидывать), а в параметре Point name указать имя целевой точки графа (на ней существо или игрок окажется после перехода). Имена уровней читаются LevelEditor'ом из файла configs\game_levels.ltx

level-changer-prefs-01.png

По идее игрок после перехода будет смотреть в ту сторону, куда указывает флажок graph point'а.

Затем в свойствах самого level changer'а в поле Level to change нужно выбрать имя целевого уровня и Point to change — точку графа на том уровне, куда должен попасть игрок.

level-changer-prefs-02.png

Параметр Silent mode отвечает за вывод диалогового окошка с подтверждением желания перейти на другой уровень (да/нет). Если отмечен, то окошко не выводится и игрока перебрасывает сразу.

При необходимости в свойствах перехода, в параметре Custom data, можно задать точку пути, в которую игрока будет перебрасывать при отказе перейти на другой уровень. Это нужно для того, чтобы при отказе перейти игрок не остался внутри уже сработавшего рестриктора перехода и не смог пройти сквозь него на задворки уровня.
Формат конфига таков:

[pt_move_if_reject]
path = esc_level_changer_to_val_reject_way    ; патрульный путь, в начало которого перебрасывает игрока

Изначально к level changer'у не подсоединён свой шейп, т.к. геометрия, в которой располагается точка перехода, может иметь различную форму, и, соответственно, под неё придется делать свой шейп. Подсоединяется он стандартным способом: в режиме Shape в нужное место добавляется и масштабируется шейп, затем в режиме Spawn выделяется объект Level changer, нажимается кнопка Attach, кликается по шейпу. Если всё прошло хорошо, то флажок level changer'а переместится в центр шейпа, а сам шейп подкрасится цветом.