Перейти к содержанию
  • Создание и коррекция NavMesh: хитрости и подсказки

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

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

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

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

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

    s-463.jpg.jpeg

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

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

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

    h-464.jpg.jpeg

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

    h-465.jpg.jpeg

     

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

    h-466.jpg.jpeg

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

    h-467.jpg.jpeg

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

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

    s-468.jpg.jpeg

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

    Лестницы

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

    s-469.jpg.jpeg
    s-470.jpg.jpeg

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

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

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

    h-471.jpg.jpeg

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

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

    h-472.jpg.jpeg

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

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

    h-473.jpg.jpeg

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

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

    h-474.jpg.jpeg

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

    h-475.jpg.jpeg

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

    h-476.jpg.jpeg

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

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

    h-477.jpg.jpeg

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

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

    Gloomdaemon

    • Нравится 12

    Обратная связь

    Рекомендуемые комментарии

    Banyan5

    Опубликовано

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

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

    Вальтер Тьерри

    Опубликовано

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

    babylua12

    Опубликовано

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

    gloom753

    Опубликовано

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

    Makas02

    Опубликовано

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

    Veronica

    Опубликовано

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

    paladin2127

    Опубликовано

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

    LeeLees

    Опубликовано

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

    LadyMarin

    Опубликовано

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

    Gryphon

    Опубликовано

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

    686575

    Опубликовано

    Скалдненько

    gloom753

    Опубликовано

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

    gloom753

    Опубликовано

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

    damirchikkk

    Опубликовано

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



    Для публикации сообщений создайте учётную запись или авторизуйтесь

    Вы должны быть пользователем, чтобы оставить комментарий

    Создать аккаунт

    Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

    Регистрация нового пользователя

    Войти

    Уже есть аккаунт? Войти в систему.

    Войти

×
×
  • Создать...