AI Map. Корректировка сгенерированной карты

Материал из MODFAQ.RU — моддинг S.T.A.L.K.E.R., TES и Fallout
Перейти к: навигация, поиск

AI Map. Корректировка сгенерированной карты

Автор HellRatz
Тип статьи справка
Актуальность ТЧ, ЧН, ЗП
Связанные статьи
AI Map. Теория

AI Map. Практика
AI Map. Корректировка сгенерированной карты

К сожалению, инструмент SDK для работы со S.T.A.L.K.E.R. не идеален, и имеет свои ошибки, AI Map не исключение[1]. Настоятельно рекомендуется, после генерации AI Map, проверить ее на предмет ошибок. Распространенный тип ошибок и мелких косяков, а так же их исправление, смотрите ниже.

Не соединенные ноды

Часто бывает, что ноды не соединяются между собой, даже если находятся близко друг к другу. Что на это влияет неизвестно (оправдано, если место стыка находится в трудном месте, на высоте или еще где, а то бывает на ровном месте).

1.jpg
Не линкованные между собой ноды


Как видно на скриншоте выше, на краю сетки есть ноды, которые ведут в 1 сторону. Т.е моб попадая на этот нод, не пойдет вдоль например, а развернется назад. Так быть не должно, поэтому нужно исправить:

1. Выделите все AI Ноды (Ctrl + A)

2. Затем нажмите на среднюю кнопку (+)

2.png
Кнопка исправляющая данную ошибку.


3. Проверьте результат

3.jpg
Результат с исправленными нодами


Соответственно это исправит такие косяки не только в этом месте, но и в других подобных, возможно которые и не заметишь сразу.

Одиночные ноды

Еще одна частая ошибка AI Map, когда появляются одиночные ноды. Появляться они могут по разным причинам, например во время генерации случайно залезает выше по объекту, и даже коррекция описанная выше не помогает. Для примера выше они были расставлены специально. В обычном же картостроении, на хорошем большом уровне, их очень часто можно не заметить, опять нужно прибегнуть к помощи SDK.

4.jpg
Одиночные ноды получившиеся после генерации карты


Для того, чтобы выделить все одиночные ноды, нажмите на Select 0-Link (Находятся справа от кнопки (+) ), данная кнопка выделит все нулевые ноды. Затем нажмите Delete на клавиатуре - готово, одиночные ноды удалены.

Лишние ноды, и как их удалить

Еще один частый глюк SDK, когда AI сетка произвольно залезает на объекты, на которые не должна.

5.jpg
AI сетка на пеньке


Как можно видеть на скриншоте выше, AI Map забралась на пенек. Не трудно догадаться, что в игре будет выглядеть не очень красиво, когда NPC или мутант будет бегать по пеньку. В таких случаях, к сожалению, автоматика SDK не поможет - такие места нужно искать самому и исправлять их:

1. Выделите ноды (Кнопка-стрелочка вверху слева на панели инструментов, или горячая кнопка S)

6.jpg
Выделены лишние ноды


2. Нажмите Delete на клавиатуре.

3. Проверьте результат

7.jpg
Конечный результат, теперь мобы будут обходить пенек


Одиночное (ручное) добавление нодов

Порой возникают случаи, когда нужно добавить ноды на уровень. Если AI сетка создавалась правильно, такие случаи в основном исключены, но никто не от чего не застрахован. Возможно нужно добавить парочку нодов туда, куда SDK автоматически не смог их положить. В примере, к зданию проложена "тропинка".

Чтобы это сделать, нужно опять же находясь в режиме редактирования AI сетки (Кнопка AI Map) нажать на "чайник" или горячую клавишу А, при условии что все статические объекты до сих пор находятся в снап-листе.

Это ограничивает Вас от мороки навроде новой генерации сетки и т.д.

8.jpg
Результат ручного добавления (Новые ноды подсвечены)


Одиночная (ручная) линковка нодов между собой

Иногда бывает ситуация, когда ноды не линкованны между собой. Это бывает во многих случаях, например если добавляете некоторые новые ноды вручную, и они не хотят соединяться с основной сеткой.

9.jpg
Нелинкованные ноды (В этом случае после ручного добавления новых нодов они не соединяются с новой сеткой)


Отчетливо видим ошибку. Чтобы мобы смогли зайти в будущем в здание, нужно соединить ноды находящиеся в дверном проеме.

Чтобы исправить эту проблему, делаем следующее (Правка похожа на самую первую корректировку):

1. Выделяем ноды, которые нужно соединить между собой

10.jpg
Выделены необходимые ноды (Подсвечены)


2. Затем нажмите на среднюю кнопку +

3. Проверьте результат

11.jpg
Результат корректировки


Генерация по определенным объектам

Иногда бывают случаи, когда AI карта не генерируется в некоторых местах. Например в зданиях. Благо, это тоже исправляется.

12.jpg
Внутри здания нет AI cетки


Если все основные работы с основной сеткой были проведены, то для этой корректировки можно и нужно очистить снап-лист, а далее добавить в него только нужные объекты для генерации. Нажмите Commands > Clear List, и подтвердите удаление.

13.jpg
Очистка снап-листа.


Далее вручную выделите нужные объекты, в этом случае это: дом, мебель. Выделять ВСЕ объекты уровня не нужно! Когда выделили все, добавьте выделенные объекты в снап-лист, поставьте внутрь дома как минимум 1 нод, но рекомендуется (При чем очень настоятельно) расставить по ноду в каждую комнату, чтобы сетка сгенерировалась в каждой комнате, ибо из-за дверных проемов она не всегда пролезает автоматически через него и генерируется в других помещениях.

14.jpg
Выделены нужные объекты, обновлен снап-лист, добавлены ноды.


Выделите вручную каждый новый нод (Зажав L Ctrl) и нажмите Generate Selected (Не Full!)

15.jpg
Результат выборочной генерации только внутри здания (Основная сетка не была затронута)


Теперь, вроде бы, все правильно. Однако есть глюк - на тумбочку залез один нод. Нехорошо. Надо убрать. Как это сделать описано в пункте, про удаление лишних нодов. И еще один глюк. Как писалось выше, AI сетка иногда может не проходить сквозь дверные проемы и т.п, это сейчас и можно наблюдать.

16.jpg
AI сетка не соединилась из-за узкого прохода


Исправить это легко, все из предыдущих корректировок - добавьте в дверной проем по 2 нода (Не забыв нажать Ignore Constraints, как всегда), и тут они либо сами между собой залинкуются, либо выделите их и ближайшие к ним ноды и нажмите на среднюю кнопку (+).

17.jpg
Исправленная сетка в дверном проеме


На этом все - комнаты соединены между собой. Проделывайте эту работу с каждой комнатой и проверьте результат. AI Map расстелена по зданию и присоединена к основной сетке, чего не смог сделать SDK. Теперь мобы будут посещать домик.

18.jpg
Конечный результат


"Летающие" ноды

Еще один глюк, который возникает довольно часто - это "летающие" ноды. Благо они попадается очень редко, почти всегда в лице пары-тройке экземпляров, в основном в зданиях, на объектах или после ручного добавления нода в узкий проем.

19.jpg
"Летающий" нод


Необходимо исправлять, а то некрасиво как-то будет в игре, если моб попадет на этот нод и резко подлетит вверх, а потом вниз, верно? :) Выделите этот нод, затем нажмите кнопку отвечающую за перемещение объектов (Вверху на панели инструментов) и как обычный объект двигайте нод вниз по оси Y, и равняйте его примерно с остальными. Готово!

20.jpg
Результат смещения нода вниз


Неправильная линковка нодов

Еще одна редкая, но все же ошибка - когда ноды соединяются между собой по нескольку раз или же на далеких расстояниях, что в игре может вызвать адские глюки и некрасивые моменты.

21.jpg
Пример такой ошибки


Ноды с лестницы соединились с нодами внизу, которые, в свою очередь, присоединены к основной сетке снизу.

Чтобы исправить:

1. Выделите все три нода на лестнице, которые соединены с нижним

2. Удалите

3. Поставьте заново поштучно

Либо можно не удалять, а поставить новые ноды поверх старых, они автоматически перелинкуются в правильную сторону. Такие дела.

22.jpg
Исправленные ноды, теперь они ведут в правильную сторону


Такие ошибки к сожалению могут возникать не только на лестницах, но и на различных выступах, ямках, обрывах и т.д - смотрите внимательнее и исправляйте эти недоразумения.

AI сетка на вышках и т.д

Еще один, не то, чтобы глюк, а скорее недоработка - AI сетка не генерируется на вышках, например, вертикальных лестницах и т.д. Все это приходится делать вручную.

23.jpg
AI сетка на платформе, которая не соединена с основной сеткой на террейне


Чтобы соединить два куска сетки между собой, сделайте следующее:

1. Поставьте нод снизу лестницы (Должен быть вкл. Ignore Constraints, не забудьте), по надобности такой же нод сверху

24.jpg
Новый нод - будущий мост между двумя кусками


2. Выделите новый нод, передвиньте его к верху лестницы (Как показано было в ранних корректировках), затем выделите самый ближний к нему нод и нажмите на кнопку (+), итог:

25.jpg
Теперь соединены 2 куска между собой


Однако в игре это будет выглядеть не очень хорошо, если NPC или мутант полезет по лестнице, но допускать разъединения сетки нельзя, по этому выбора нет. Так же можно перетащить нод-"мост" на центр лестницы и повернуть его (Через обычный инструмент поворота на панели инструментов):

26.jpg
Повернутый нод


Скорее всего это немного украсит перемещение NPC по лестнице, но на практике неизвестно. -_-

Итог

На этом все! После всех правок, AI карта должна быть отточена до мелочей, не иметь глюков и ошибок, NPC и мутанты будут бродить везде, где положено, ну и прочие хорошие вещи. Учтите: AI сетка не должна иметь разрывов (Например, AI сетка в здании не соединена с AI сеткой на террейне) - будут вылеты xrAI. Между ними обязательно должен быть хотя бы один нод, соединяющий два куска. Можно собрать AI сетку и скомпилировать.

Источники