Создание и коррекция NavMesh: хитрости и подсказки

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

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

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

Начало работы

Если вам нужно подредактировать ячейку, где уже был навмеш (далее Меш), выберите "выбор треугольников" и места, которые вам надо редактировать, предварительно очистите. Для этого или просто выбираете мешающий вам треугольник (далее 3к) и удаляете его, или (если 3к большой, и чтобы очистить место для работы, вам бы не хотелось удалять его целиком) вы можете раздробить его на два. Для этого вам нужно выбрать режим "Выбор граней" (Select Edges) G и наведя на нужное вам место на грани треугольника, который вы хотите разбить, жмите правую кнопку мыши, он разрежется на 2 по линии от точки где вы выбрали до противоположной вершины.

s-463.jpg

Отключаем G-режим, выбираем ненужный 3к и удаляем. Здесь и далее старайтесь избегать возникновения при этом маленьких, а также узких и длинных треугольников. При проверке на ошибки редактор их пропускает обычно, но движок игры к сожалению к этому привередлив, и вы получите дефект зоны, другими словами начинай все сначала. (Верный признак этого - вылет игры, при входе в ячейку или нпс просто стоят.) О зеленых мешах: это границы ячейки, их можно удалять, если вы где то такую удалили или зацепили, ничего страшного тут нет, но придется финализировать ячейку, об этом позже.

Если рабочая зона очищена, можно начинать рисовать, хочу заметить, что я бы не советовал пользоваться функциями Gekk или CK для автоматической прорисовки мешей, весьма велик шанс, что он запорет esp. Также если вы рисовали сами и таки поймали клин, вы примерно имеете представление где запороли, а если за вас делал Гекк или СК, то поди знай где проблема. Также существует функция оптимизации вашего меша, результат тот же обычно: вся работа насмарку. О самом процессе прорисовки весьма экспертно описано и показано в материалах, что я приложил, добавляю лишь то что, там или не написано или написано неявно, но важно.

Размеры и форма треугольников. Делайте крупные 3ки. избегайте мельчить, если это возможно, избегайте также острых углов. Весьма распространенная ошибка:  чтобы поставить где то вершину, делают 3к, подобный рисунку ниже

h-464.jpg

Да, вы получаете вершину в нужном вам месте, но и маленький, и критичный для движка игры 3к-паразит. Чтобы избавиться от этого, или думаем и избегаем такого построения, или делаем то же самое примерно, но избегая этого 3ка - дробим материнский. См. ниже:

h-465.jpg

 

Нередко бывает ситуация, что нужно заполнить какое то место, окруженное готовыми мешами,
это не совсем удобно, т.к. уже есть куча вершин и их не всегда можно объединить (См. приложенный туториал). В данном случае, можно использовать построение, которое я бы назвал спин. Делаете вершину в центре области, и окружаете ее 3ками от существующих вершин, главное опять же следим, чтобы 3ки получались не мелкие. Длинных в этом случае, конечно, не избежать, но если они достаточно большие, все будет нормально.

h-466.jpg

В общем и целом, ваш меш должен получиться похожим примерно на такой.

h-467.jpg

 Вы можете видеть, на скрине, что есть красные меши, а есть желтые, красные - это стандартный меш, желтые Preferred Path - скажем так, меш более высокого приоритета. Нпс будут стараться ходить по ним, если возможно. Используются для дорог, всяких проблемных мест и т.п. Покрасить можно, выбрав нужные треугольники и нажав P.

Статики и хавоки, как быть с ними

s-468.jpg

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

Лестницы

Стоит упомянуть, хотя в туториале это тема описана довольно подробно. В принципе, поступаем, как обычно, единственное, что можно сказать: когда рисуем саму лестницу. делаем 2 вершины внизу лестницы, в затем делаем 3к. с 3-й вершиной на верхней части. Получив один 3к, дорисовываем к нему еще один, т.к. лестницы обычно прямоугольные. Если вы делаете длинную лесенку, то после каждого пролета, где уровень меняется, надо делать площадку где уровень не растет.. иначе проблемы могут быть. И если лестница - самодельная, как на скрине 2, к примеру, она должна быть достаточно широкой, иначе нпс по ней не пойдет, хотя вы залезете прекрасно сами.

s-469.jpg
s-470.jpg

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

Надеюсь, мои рекомендации вам помогли. и вы нарисовали меш. Далее идет проверка на ошибки, создание укрытий, тестирование и финализация. Рассмотрим это ниже (следует заметить, что все нижеперечисленное коснется одной ячейки, и если вы затронули несколько ячеек, то нужно повторить это для КАЖДОЙ редактированной ячейки).

Проверка на ошибки

h-471.jpg

Жмем. Если есть проблемные 3ки, удаляем, рисуем новые, пока проблемы не исчезнут.

Создание укрытий

h-472.jpg

Тоже самое. заходим в ячейку, нажимаем, ждем пока отработает.

Тестирование

h-473.jpg

В появившемся окошечке жмем "Update owerlay", как отработает, вы сможете увидеть область, где могут пройти актеры, залитую фиолетовым.

Далее выбираем какого нибудь актера:

h-474.jpg

Теперь, кликаем на какое-то место, устанавливаем актера, а затем на другое, и видим его маршрут (тут придется маленько потренироваться)

h-475.jpg

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

h-476.jpg

Значит, прокол, актер не может пройти. Ищите, в чем тут дело.

Если все нормально, то нас ждет финализация

h-477.jpg

Ждем, пока закончит, если вы уже прошли по всем своим ячейкам, записываем esp и идем тестить в игре.
В целом все.

P.S. Будут вопросы - пишите, может, смогу помочь. Удачи.

Gloomdaemon

10

Комментарии

Добавить комментарий

Огромное спасибо за доходчивый туториал! Перестроенный дом в Мегатонне буквально ожил! Все НПС начали беседовать, прогуливаться и даже спать по ночам после долгих дней дерганья по углам. Особенно помог совет про лень при прорисовке.

Не получилось только тестирование кнопкой "Update overlay". Кнопка западает и ничего не происходит минут 20. Что-то с редактором.

Навмеши в экстерьерах стали для меня настоящей головной болью. Благодарю за помощь.

Огромное, человеческое спасибо!

gloom753
модмейкер
автор
20.01.2016 — 12:54

Рад что помогло.. сам помню не 1 неделю с этой байдой разбирался.. ))

Спасибо за статью очень помогла !

Очень помогла ваша статья. Спасибо!

Подскажите пожалуйста, что это за жирная зеленая линия,соединяющая квадраты и как ее нарисовать если случайно удалил?

после финализации ребра мешей идущие по границе участка не стали зелеными. продолжаю вникать....

Прекрасная статья, огромное спасибо!
Но у меня есть один вопрос. Иногда попадаются навмеши с широкой розовой полосой, похоже, что так отмечаются места, где НПС могут спрыгнуть. Но я нигде не нашла статей или уроков, где бы описывалось их создание. Как их можно сделать?

Ребята, подскажите пожалуйста, как я могу для NPC дать возможность спрыгнуть с небольших уступов? По-английски Drop-down... (Но это не выбор приоритета путей (Желтые треугольники))

gloom753
модмейкер
автор
05.10.2022 — 23:38

Gryphon, желтые треугольники не то . это проторенные дороги. тоесть ПРОритетныные проходы...

Скалдненько

gloom753
модмейкер
автор
05.10.2022 — 23:34

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

Авторизуйтесь, чтобы оставить новый комментарий. Или зарегистрируйтесь.