Fallout3 GECK:Руководство Bethsoft по Navmesh

Материал из Tiarum
Перейти к: навигация, поиск
Fallout3: Официальный туториал по Navmesh
45px-Scroll.png

автор: Bethesda Softworks & GECK Wiki team
переводчик: Vel (Князев В.К.)
редактор: Garin
ccылка на оригинал: Bethsoft Tutorial Navmesh
дата публикации оригинала: 11.12.2008г
ссылка на сайт: The Garden of Eden Creation Kit Wiki
ver: 1.0

Официальное руководство по Navmesh


Официальное руководство №4


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

Когда помещение построено и в него помещены необходимые предметы, нам нужно определить поверхность, по которой могут перемещаться NPC и создания. Вот в этот момент на сцену выходит navmesh (надо полагать, это сокращенное от Navigation Meshes, что можно перевести как навигация моделей, а по сути - навигационные пути перемещений персонажей игры. Прим. --Garin 13:46, 18 марта 2011 (MSK)). Если кратко, navmesh - это набор полигонов, которые сообщают персонажу о поверхности, по которой он может ходить.


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

  • Обзор Navmesh - в категории navmesh есть ссылки на полезные темы относительно навигационных путей перемещений.
  • Панель инструментов (Toolbar) - информация о различных иконках на главной панели инструментов и на панели Navmesh, а также функции, которые эти иконки выполняют.


Шаг 1: Создание треугольника navmesh

Начинать работу мы будем в простом коридоре, который находится на северо-западе Убежища 74 (Vault 74).

Новый редактор navmesh интуитивно понятный и предоставляет много новых возможностей, используемых в Fallout3.

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


Наше обучение начинается с небольшой прихожей в Хранилище 74


  • Чтобы войти в режим редактирования navmesh, щелкните на кнопке Navmesh в главной панели инструментов или используйте комбинацию клавиш CTRL+E:
Включение/выключение редактирования Navmesh
  • Появится панель инструментов Navmesh:
The Navmesh Tool Bar.
  • Сейчас нас интересуют только три кнопки и все они крайние слева:
BT4 04 NavmeshToolBar.jpg
  • Самая крайняя кнопка - переключатель Выделение целых Треугольников (Select Triangle):
BT4 05 NavmeshToolBar.jpg
  • Средняя кнопка - переключатель Выделение Вершин (Select Vertex):
BT4 06 NavmeshToolBar.jpg
  • Кнопка справа - переключатель Выделение Ребер (Select Edge):
BT4 07 NavmeshToolBar.jpg


В процессе создания и редактирования все большего и большего количества navmesh вам захочется использовать горячие клавиши (Navmesh hotkeys) взамен иконок в панели инструментов:
  • клавиша T - переключает выделение Треугольников (Triangle Selection On/Off)
  • клавиша V - переключает выделение Вершин (Vertex Selection On/Off)
  • клавиша G - переключает выделение Ребер (Edge Selection On/Off)
Проверьте отключение опции привязки к сетке. Вы редко, а, возможно, и никогда не будете пользоваться этой привязкой при работе с navmesh. Если вам нужно руководство по привязке к сетке и по управлению камерой,

Включите выделение Вершин (Vertex Selection), или используйте клавишу "V", увеличив масштаб на верхнем левом углу карты.

Щелкните правой кнопкой мыши на полу. Как видите, появилась вершина. Создайте еще две вершины, используя правую кнопку мышки.

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

К некоторым клавишам вы уже, возможно, привыкли, например, это клавиша "Т" для вида сверху/снизу, у которой другое назначение при редактировании navmesh.

BT4 08 NavmeshEditing.jpg


Обратите внимание на цвет созданных вершин:

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

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

Нажмите клавишу "А" или используйте кнопку Jb NavmeshToolBarIconsCreateTriangle.jpg для создания треугольника по трем выделенным вершинам.


BT4 09 NavmeshEditing.jpg


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


Шаг 2: Navmesh коридора

Видеотуториал по Navmesh (часть 1) на YouTube



После того, как мы создали наш первый треугольник, нам нужно заполнить треугольниками весь оставшийся коридор. Самый простой способ для этого - выделить две вершины и щелкнуть правой кнопкой при нажатой клавише Ctrl для создания третьей вершины, автоматически создав треугольник между тремя вершинами (две из них были выделены, а третья - вновь созданная).

После создания очередного треугольника две вершины вновь будут выделены. Снова используйте Ctrl+правый щелчок мышки, создав следующий треугольник. С практикой вы войдете в ритм и будете заполнять большие пространства, удерживая Ctrl и щелкая правой кнопкой мышки. Продолжайте начатое и заполните оставшуюся часть коридора, как показано на рис. 1а.

Используя комбинацию Ctrl + щелчок правой кнопкой мыши, вы сможете очень быстро покрывать треугольниками большие площади. Шутя, мы называем эту технику "Выгуливание собаки".

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

Если вы создали navmesh так, как показано на рисунке, то вам нужно добавить вершины на ребро около дверного проема, чтобы мы могли продолжить создание треугольников по остальной части уровня. Чтобы сделать это, переключитесь на Выделение Ребер (Edge Selection) Jb NavmeshToolBarIconsEdges.jpg или используйте горячую клавишу "G". Теперь, когда курсор мыши будет над ребром, оно будет подсвечиваться темно-красным цветом. Щелкните правой кнопкой на ребре и в месте щелчка будет создана вершина. Если вы рассмотрите рис. 2b, то около дверного проема вы увидите четыре новые вершины. По две вершины на каждом ребре, из которых мы сможем продолжать выстраивать треугольники через дверной проем.

Двери, как объекты с тегом "препятствие", автоматически обрежут сетку в игре, поэтому что-то особенное делать нам не нужно.
Если у вас возникнут проблемы с отображением navmesh, вы можете попробовать один из трех режимов отображения navmesh: Normal, Transparent, Navmesh Only. Нажмите "W" несколько раз, проходя по циклу этих режимов отображения, или используйте кнопки в панели инструментов: Jb NavmeshToolBarIconsViewMode01.jpgJb NavmeshToolBarIconsViewMode02.jpgJb NavmeshToolBarIconsViewMode03.jpg


Fig 1a: Basic Navmesh Surface. Notice the lack of long, thin triangles.
Fig 1b: Navmesh w/vertices added prepare for building a surface through the doorway


Шаг 3: Navmesh для остальной части уровня

Видеотуториал по Navmesh (часть 2) на YouTube.



Если вы выполнили вышеприведенные шаги, значит, вы уже знаете основы и готовы продолжить navmesh в остальной части Убежища 74.

  • В случае с лестницами создайте одно ребро в верхней части лестницы, а другое в низней. Сделайте двойной щелчок на верхнем ребре и, удерживая клавишу Ctrl, щелкните на нижнем. Будут автоматически созданы два треугольника, соединив промежуток.
  • Поэкспериментируйте с тремя различными режимами просмотра, чтобы выбрать тот, который вам больше подходит в разных ситуациях. Для циклического переключения по этим режимам используйте клавишу "W" или кнопки на панели инструментов Jb NavmeshToolBarIconsViewMode01.jpgJb NavmeshToolBarIconsViewMode02.jpgJb NavmeshToolBarIconsViewMode03.jpg
  • Если вы создали треугольник, который вам не нравится и его нужно удалить, вы можете переключиться на выделение треугольников (Triangle Selection) или просто нажать "Т" и выделить нежелательный треугольник, после чего нажать DELETE. Для отмены изменений вы можете использовать комбинацию CTRL+Z.
  • Если вместо иконок при переключении режимов выделения вы будете как можно чаще использовать клавиши T, V и G, то при длительной работе сможете сэкономить очень много времени.
  • Иногда возникает ситуация, когда нужно объединить несколько вершин в одну. Чтобы сделать это, выделите две или больше вершин и нажмите клавишу Q или кнопку на панели инструментовJb NavmeshToolBarIconsMergeVerts.jpg, в результате чего вершины сольются в одну - в ту, которая была выделена первой.
  • Двойной щелчок на ребре (с включенным режимом выделения ребер) используется для быстрого выделения двух вершин этого ребра.
  • Помните о том, как остаются две вершины после создания треугольника? Вы можете проходить циклично через пару выделенных вершин с помощью клавиши TAB.
  • Если вы не хотите тянуться через всю клавиатуру, чтобы нажимать клавишу Delete, вместо нее вы можете использовать клавишу R.
  • Старайтесь создавать настолько равносторонние треугольники, насколько это возможно. В игре это скажется очень положительно. Стоит избегать длинных и узких треугольников. Для достижения лучшего результата пробуйте поворачивать треугольники с помощью клавиши S или кнопки Jb NavmeshToolBarIconsEdgeRotate.jpg.
  • Пересчет баланса ребер и треугольников - полезный инструмент. Выполняйте его с помощью кнопки на панели инструментов Jb NavmeshToolBarIconsBalanceOpt.jpg или клавиши B. Такую проверку лучше делать вначале, потому что она отключает все укрытия или данные финализации навигационных путей navmesh, в результате чего могут быть утрачены мелкие детали.


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


BT4 12 NavmeshEditing.jpg


BT4 13 NavmeshEditing.jpg


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


BT4 14 NavmeshEditing.jpg


Шаг 4: Исправление ошибок navmesh

При сохранении своего дополнение вы узнаете, если ли ошибки в navmesh. Если ошибки есть, то при сохранении вы увидите сообщение, подобное этому:


BT4 15 NavmeshFixNavmesh.jpg


Если вы увидели это сообщение, вам нужно отобразить диалоговое окно Select Triangle by Index (Выделение треугольника по индексу). Сделать это можно, нажав кнопку Jb NavmeshToolBarIconsFindTriangle.jpg Find Triangle в панели инструментов Navmesh или нажать CTR+F. Есть еще один способ, он показан ниже на изображении - выбрать пункт Select Triangle by Index в меню Navmesh главной строки меню.


BT4 16 NavmeshFixNavmesh.jpg


Когда появится нужное диалоговое окно, выберите функцию Check Navmesh.


BT4 17 NavmeshFixNavmesh.jpg


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


BT4 18 NavmeshFixNavmesh.jpg


Выбор Yes приведет к удалению всех проблемных треугольников, но после этого вам придется искать места, в которых эти треугольники были, и заделывать отверстия (обычно, создавая новые треугольники). Мы рекомендуем вам исправлять каждую ошибку вручную и в этом случае в всплывающем окне стоит выбрать пункт No. Таким образом, вы просто закроете окно. В окне Select Triangle выберите пункт Next Warning (Следующее предупреждение). Камера в окне визуализации автоматически переместиться на проблемный треугольник и выделит его для вас. Большинство проблем решается простым удалением такого треугольника и создание в место него нового.

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

Для большей информации об очищении navmesh щелкните здесь. Эта ссылка объясняет также процесс финализации, о чем пойдет речь в одном из следующих упражнений этой серии.


Шаг 5: Создание ребер укрытий для navmesh

Ребра укрытий сохраняют данные, такие как высота участка укрытия, которые NPC используют во время боя и во время нахождения пути. Для автоматического создания укрытий, переместитесь в Navmesh > Find Cover в главном меню или используйте кнопку на панели инструментов Navmesh Jb NavmeshToolBarIconsFindCover.jpg

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

Чтобы хорошо рассмотреть тип укрытий, которые находятся на вашем уровне, просто щелкните на кнопке Navmesh Menu Button в главной панели инструментов и выберите Draw Cover, как показано на рис. 2b.

Появится 3D-вид укрытий, окрашенных разным цветом, как показано на рис. 2с. Обратите внимание на черные полосы на некоторых сторонах укрытий. Со стороны черных полос будут стрелять NPC, когда будут укрываться за этими укрытиями.

Navmesh может содержать и другие полезные данные, например, обозначение бортов (корабля), области, погруженные в воду и другие. Данные укрытий вы можете редактировать и вручную, для получения дополнительной информации по этой теме перейдите сюда.


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

Этой темой мы займемся в следующем по порядку руководстве, в котором мы начнем размещать NPC и настраивать их поведение.


Рис. 2а Обычные данные укрытий в navmesh
Рис. 2b Пункт Draw Cover в главной панели инструментов
Рис. 2с: Navmesh с включенной опцией Draw Cover (справа)