Перейти к содержимому


Информация о статье

  • Добавлено:
  • Обновлено:
  • Просмотры: 3536

 


* * * * *
2 Рейтинг

Creation Kit: Создание NavMesh (подводные камни)

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

Написано в Янв 05 2014 03:21

Если вы пишете моды, то когда нибудь столкнетесь с необходимостью сделать или подкорректировать 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.