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

Материал из Modders-wiki - Библиотека знаний модмейкеров S.T.A.L.K.E.R.
Перейти к: навигация, поиск
AI Map. Корректировка сгенерированной карты
Описание
АвторHellRatz
Тип статьисправка
АктуальностьТЧ, ЧН, ЗП
Полный курс
Часть 1: AI Map. Теория

Часть 2: AI Map. Практика
Часть 3: AI Map. Корректировка сгенерированной карты

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

AI сетка на пеньке

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

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

Выделены лишние ноды

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2. Удалите

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

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

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

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

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

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

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

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

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

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

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

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

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

Повернутый нод

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

Итог

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

Источник

  1. Тема на AMK форуме