AI Map. Корректировка сгенерированной карты — различия между версиями
м |
(Перезагрузил картинки) |
||
Строка 20: | Строка 20: | ||
К сожалению, инструмент SDK для работы со S.T.A.L.K.E.R. не идеален, и имеет свои ошибки, AI Map не исключение<ref>[http://www.amk-team.ru/forum/topic/13134-ai-map-v-x-ray-teoriia-praktika-oshibki Тема "AI-Map в X-Ray: теория, практика, ошибки" на AMK форуме]</ref>. Настоятельно рекомендуется, после генерации AI Map, проверить ее на предмет ошибок. Распространенный тип ошибок и мелких косяков, а так же их исправление, смотрите ниже. | К сожалению, инструмент SDK для работы со S.T.A.L.K.E.R. не идеален, и имеет свои ошибки, AI Map не исключение<ref>[http://www.amk-team.ru/forum/topic/13134-ai-map-v-x-ray-teoriia-praktika-oshibki Тема "AI-Map в X-Ray: теория, практика, ошибки" на AMK форуме]</ref>. Настоятельно рекомендуется, после генерации AI Map, проверить ее на предмет ошибок. Распространенный тип ошибок и мелких косяков, а так же их исправление, смотрите ниже. | ||
− | |||
== Не соединенные ноды == | == Не соединенные ноды == | ||
Строка 27: | Строка 26: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/Xrpc9hGN https://i.postimg.cc/Xrpc9hGN/1.jpg]</span> |
|- | |- | ||
| Не линкованные между собой ноды | | Не линкованные между собой ноды | ||
Строка 41: | Строка 40: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/5YFwDF5h https://i.postimg.cc/5YFwDF5h/2.png]</span> |
|- | |- | ||
| Кнопка исправляющая данную ошибку. | | Кнопка исправляющая данную ошибку. | ||
Строка 51: | Строка 50: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/s17Yc7gS https://i.postimg.cc/s17Yc7gS/3.jpg]</span> |
|- | |- | ||
| Результат с исправленными нодами | | Результат с исправленными нодами | ||
Строка 58: | Строка 57: | ||
Соответственно это исправит такие косяки не только в этом месте, но и в других подобных, возможно которые и не заметишь сразу. | Соответственно это исправит такие косяки не только в этом месте, но и в других подобных, возможно которые и не заметишь сразу. | ||
− | |||
== Одиночные ноды == | == Одиночные ноды == | ||
Строка 65: | Строка 63: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/zVNnPvyQ https://i.postimg.cc/zVNnPvyQ/4.jpg]</span> |
|- | |- | ||
| Одиночные ноды получившиеся после генерации карты | | Одиночные ноды получившиеся после генерации карты | ||
Строка 72: | Строка 70: | ||
Для того, чтобы выделить все одиночные ноды, нажмите на '''Select 0-Link''' (Находятся справа от кнопки ('''+''') ), данная кнопка выделит все нулевые ноды. Затем нажмите '''Delete''' на клавиатуре - готово, одиночные ноды удалены. | Для того, чтобы выделить все одиночные ноды, нажмите на '''Select 0-Link''' (Находятся справа от кнопки ('''+''') ), данная кнопка выделит все нулевые ноды. Затем нажмите '''Delete''' на клавиатуре - готово, одиночные ноды удалены. | ||
− | |||
== Лишние ноды, и как их удалить == | == Лишние ноды, и как их удалить == | ||
Строка 79: | Строка 76: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/zHCTGZcp https://i.postimg.cc/zHCTGZcp/5.jpg]</span> |
|- | |- | ||
| AI сетка на пеньке | | AI сетка на пеньке | ||
Строка 91: | Строка 88: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/HJFM0kGB https://i.postimg.cc/HJFM0kGB/6.jpg]</span> |
|- | |- | ||
| Выделены лишние ноды | | Выделены лишние ноды | ||
Строка 103: | Строка 100: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/d7hdTTfh https://i.postimg.cc/d7hdTTfh/7.jpg]</span> |
|- | |- | ||
| Конечный результат, теперь мобы будут обходить пенек | | Конечный результат, теперь мобы будут обходить пенек | ||
|} | |} | ||
<br clear="all" /> | <br clear="all" /> | ||
− | |||
== Одиночное (ручное) добавление нодов == | == Одиночное (ручное) добавление нодов == | ||
Строка 119: | Строка 115: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/DSjLZcxV https://i.postimg.cc/DSjLZcxV/8.jpg]</span> |
|- | |- | ||
| Результат ручного добавления (Новые ноды подсвечены) | | Результат ручного добавления (Новые ноды подсвечены) | ||
|} | |} | ||
<br clear="all" /> | <br clear="all" /> | ||
− | |||
== Одиночная (ручная) линковка нодов между собой == | == Одиночная (ручная) линковка нодов между собой == | ||
Строка 131: | Строка 126: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/MvYykwRp https://i.postimg.cc/MvYykwRp/9.jpg]</span> |
|- | |- | ||
| Нелинкованные ноды (В этом случае после ручного добавления новых нодов они не соединяются с новой сеткой) | | Нелинкованные ноды (В этом случае после ручного добавления новых нодов они не соединяются с новой сеткой) | ||
Строка 145: | Строка 140: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/k2XWqHFF https://i.postimg.cc/k2XWqHFF/10.jpg]</span> |
|- | |- | ||
| Выделены необходимые ноды (Подсвечены) | | Выделены необходимые ноды (Подсвечены) | ||
Строка 157: | Строка 152: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/N2krw8Kz https://i.postimg.cc/N2krw8Kz/11.jpg]</span> |
|- | |- | ||
| Результат корректировки | | Результат корректировки | ||
|} | |} | ||
<br clear="all" /> | <br clear="all" /> | ||
− | |||
== Генерация по определенным объектам == | == Генерация по определенным объектам == | ||
Строка 169: | Строка 163: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/qt6h7Htn https://i.postimg.cc/qt6h7Htn/12.jpg]</span> |
|- | |- | ||
| Внутри здания нет AI cетки | | Внутри здания нет AI cетки | ||
Строка 179: | Строка 173: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/zHrRM2Gh https://i.postimg.cc/zHrRM2Gh/13.jpg]</span> |
|- | |- | ||
| Очистка снап-листа. | | Очистка снап-листа. | ||
Строка 189: | Строка 183: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/V5qtMwKW https://i.postimg.cc/V5qtMwKW/14.jpg]</span> |
|- | |- | ||
| Выделены нужные объекты, обновлен снап-лист, добавлены ноды. | | Выделены нужные объекты, обновлен снап-лист, добавлены ноды. | ||
Строка 199: | Строка 193: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/crT89myK https://i.postimg.cc/crT89myK/15.jpg]</span> |
|- | |- | ||
| Результат выборочной генерации только внутри здания (Основная сетка не была затронута) | | Результат выборочной генерации только внутри здания (Основная сетка не была затронута) | ||
Строка 210: | Строка 204: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/BXJKBzy9 https://i.postimg.cc/BXJKBzy9/16.jpg]</span> |
|- | |- | ||
| AI сетка не соединилась из-за узкого прохода | | AI сетка не соединилась из-за узкого прохода | ||
Строка 220: | Строка 214: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/bZJSKtpm https://i.postimg.cc/bZJSKtpm/17.jpg]</span> |
|- | |- | ||
| Исправленная сетка в дверном проеме | | Исправленная сетка в дверном проеме | ||
Строка 230: | Строка 224: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/18jVP3zs https://i.postimg.cc/18jVP3zs/18.jpg]</span> |
|- | |- | ||
| Конечный результат | | Конечный результат | ||
|} | |} | ||
<br clear="all" /> | <br clear="all" /> | ||
− | |||
== "Летающие" ноды == | == "Летающие" ноды == | ||
Строка 242: | Строка 235: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/r06d0ZWH https://i.postimg.cc/r06d0ZWH/19.jpg]</span> |
|- | |- | ||
| "Летающий" нод | | "Летающий" нод | ||
Строка 253: | Строка 246: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/YG1v1NzC https://i.postimg.cc/YG1v1NzC/20.jpg]</span> |
|- | |- | ||
| Результат смещения нода вниз | | Результат смещения нода вниз | ||
|} | |} | ||
<br clear="all" /> | <br clear="all" /> | ||
− | |||
== Неправильная линковка нодов == | == Неправильная линковка нодов == | ||
Строка 265: | Строка 257: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/64tyz7ML https://i.postimg.cc/64tyz7ML/21.jpg]</span> |
|- | |- | ||
| Пример такой ошибки | | Пример такой ошибки | ||
Строка 285: | Строка 277: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/Cn7d2Fty https://i.postimg.cc/Cn7d2Fty/22.jpg]</span> |
|- | |- | ||
| Исправленные ноды, теперь они ведут в правильную сторону | | Исправленные ноды, теперь они ведут в правильную сторону | ||
Строка 292: | Строка 284: | ||
Такие ошибки к сожалению могут возникать не только на лестницах, но и на различных выступах, ямках, обрывах и т.д - смотрите внимательнее и исправляйте эти недоразумения. | Такие ошибки к сожалению могут возникать не только на лестницах, но и на различных выступах, ямках, обрывах и т.д - смотрите внимательнее и исправляйте эти недоразумения. | ||
− | |||
== AI сетка на вышках и т.д == | == AI сетка на вышках и т.д == | ||
Строка 299: | Строка 290: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/dDYBg4Xn https://i.postimg.cc/dDYBg4Xn/23.jpg]</span> |
|- | |- | ||
| AI сетка на платформе, которая не соединена с основной сеткой на террейне | | AI сетка на платформе, которая не соединена с основной сеткой на террейне | ||
Строка 311: | Строка 302: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/xq3RQLVQ https://i.postimg.cc/xq3RQLVQ/24.jpg]</span> |
|- | |- | ||
| Новый нод - будущий мост между двумя кусками | | Новый нод - будущий мост между двумя кусками | ||
Строка 321: | Строка 312: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/kBMygD7b https://i.postimg.cc/kBMygD7b/25.jpg]</span> |
|- | |- | ||
| Теперь соединены 2 куска между собой | | Теперь соединены 2 куска между собой | ||
Строка 331: | Строка 322: | ||
{| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | {| class="wikitable" style="float:left; margin-right:0.8em; clear:left; width: 250px;" | ||
|- | |- | ||
− | | style="text-align:center" | <span class="plainlinks">[https:// | + | | style="text-align:center" | <span class="plainlinks">[https://postimg.cc/crDBgZJ5 https://i.postimg.cc/crDBgZJ5/26.jpg]</span> |
|- | |- | ||
| Повернутый нод | | Повернутый нод | ||
Строка 338: | Строка 329: | ||
Скорее всего это немного украсит перемещение NPC по лестнице, но на практике неизвестно. -_- | Скорее всего это немного украсит перемещение NPC по лестнице, но на практике неизвестно. -_- | ||
− | |||
== Итог == | == Итог == | ||
На этом все! После всех правок, AI карта должна быть отточена до мелочей, не иметь глюков и ошибок, NPC и мутанты будут бродить везде, где положено, ну и прочие хорошие вещи. Учтите: AI сетка не должна иметь разрывов (Например, AI сетка в здании не соединена с AI сеткой на террейне) - будут вылеты [[xrAI]]. Между ними обязательно должен быть хотя бы один нод, соединяющий два куска. Можно собрать AI сетку и скомпилировать. | На этом все! После всех правок, AI карта должна быть отточена до мелочей, не иметь глюков и ошибок, NPC и мутанты будут бродить везде, где положено, ну и прочие хорошие вещи. Учтите: AI сетка не должна иметь разрывов (Например, AI сетка в здании не соединена с AI сеткой на террейне) - будут вылеты [[xrAI]]. Между ними обязательно должен быть хотя бы один нод, соединяющий два куска. Можно собрать AI сетку и скомпилировать. | ||
− | + | == Источники == | |
− | == | + | {{reflist|3}} |
− | {{ | ||
[[Категория:X-Ray_SDK]][[Категория:Level Editor]] | [[Категория:X-Ray_SDK]][[Категория:Level Editor]] |
Текущая версия на 18:15, 27 июня 2022
AI Map. Корректировка сгенерированной карты | |
Автор | HellRatz |
Тип статьи | справка |
Актуальность | ТЧ, ЧН, ЗП |
Связанные статьи | |
AI Map. Теория 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 сетку и скомпилировать.