Учебный курс Bethsoft. GECK. Нависеть.


<<<BACK|---|NEXT>>>

Содержание.

Введение в нависеть.

После захламленя площадки, нам нужно определить где будут находиться неигровые персонажи (НИП) и как они будут перемещаться. Тут появляется Нависеть. Уясните, что нависеть — это коллекция полигонов, которые расскажут персонажу куда он должен идти.

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

Шаг 1: Создание нависетевых треугольников.

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

This tutorial begins with a small hallway in Vault 74

  • Чтобы войти в режим Нависеть, нажмите кнопку на Главной панели инструментов или используйте сочетание клавиш CTRL+E.

Toggle On/Off Navmesh Editing

  • Появится Нависетевая панель инструментов.

The Navmesh Tool Bar.

  • Сейчас нам нужны только первые слева три кнопки.

Image:jb_NavmeshToolBar01c.jpg

  • Самая левая кнопка переключает (Вкл/Выкл) выбор треугольников.

Image:jb_NavmeshToolBar01c1.jpg

  • Средняя — переключает (Вкл/Выкл) выбор вершинн.

Image:jb_NavmeshToolBar01c2.jpg

  • Правая — переключает (Вкл/Выкл) выбор рёбер.

Image:jb_NavmeshToolBar01c3.jpg

С ростом навыков при работе с нависетью, вы захотите использовать нависетевые клавиши-акселераторы взамен панели инструментов.
T — Вкл/Выкл выбора треугольников.
V — Вкл/Выкл выбора вершин.
G — Вкл/Выкл выбора рёбер.
Убедитесь, что у вас отключено выравнивание по сетке. Во время нависетезации вам если и потребуется это, то исключительно редко. Если вам необходимо освежить знания о выравнивании по сетке или управлению камерой, то нажмите сюда.

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

Редактор нависети использует отдельный набор клавиш-акселераторов, отличный от стандартного редактора GECK. В режиме редактирования нависети, некоторые привычные клавиши-акселераторы, например, "T" для включения вида сверху, могут быть переопределены.

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

Чтобы создать треугольник, используя CTRL+Left-Click, выберите все три вершины или выделите их рамкой щёлкнув левой кнопкой и потянув. Выбранные вершины должны быть зелёными. Нажмите "A" или используйте image:Jb_NavmeshToolBarIconsCreateTriangle.jpg для создания треугольника из трёх вершин.

Заметьте, что после создания треугольника, две вершины продолжают оставаться зелёными/выделенными. Это упрощает создание последующих треугольников. С двумя выделенными вершинами, всё что вам надо, чтобы создать другой треугольник, нажать CTRL+Правый-щелчок. Новая вершина создана. Когда вы щёлкаете автоматически создаются треугольники.

Шаг 2: Нависеть и коридор.

Видеокурс на YouTube. Нависеть. Часть 1.


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

Заметьте, что вновь созданный треугольник имеет две оставшиеся выбранными/зелёными вершины. Просто используйте CTRL+Правый-щелчок, чтобы создать другие треугольники. С опытом, вы будете делать это в ритме и сможете быстро заполнять пространство просто удерживая CTRL и щёлкая правой кнопкой Действуйте! Заполните оставшуюся часть коридора как на иллюстрации Рис. 1а ниже.

С помощью этих навыков вы можете очень быстро создать треугольники на больших площадях земли просто используя CTRL-правый щелчок. Мы ласково называем эту технику "гуляющей собакой".

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

Если вы создали нависеть как описано выше, то вам нужно создать вершины на рёбрах рядом с дверными проёмами, таким образом, мы сможем завершить создание треугольников на остальной части уровня. Чтобы сделать это, включите выбор рёбер image:Jb_NavmeshToolBarIconsEdges.jpg или нажмите "G". Заметьте, что когда курсор оказывается над ребром, оно подсвечивается тёмно-красным. Правый щелчок на ребре и вершине создаёт другое ребро. На Рис. 2б., если присмотреться, вы заметите четыре новые вершины. Две на каждом ребре из тех треугольников, которые мы построили раньше, проходят через дверной проём.

Двери подобны объектам с признаком "препятствие" ("obstacle"), автоматически отрезающие для нас нависеть в игре, так что нам не нужно делать что-нибудь особенное с ними.
Если вы не видите вашу нависеть, вы можете попытаться включить один из трёх нависетевых режимов: Нормальный (Normal), Прозрачный (Transparent), Только нависеть. Для циклической прокрутки режимов нажмите 'W или кнопки Image:Jb_NavmeshToolBarIconsViewMode01.jpgImage:Jb_NavmeshToolBarIconsViewMode02.jpgImage:Jb_NavmeshToolBarIconsViewMode03.jpg на пенели инструментов.

Шаг 3: Добавление недостающих участков нависети.

Видеокурс на YouTube. Нависеть. Часть 2.


Создадим рёбра для лестниц наверху и внизу лестничного марша.

  • Удерживая CTRL, дважды щёлкните по ребру наверху. Автоматически создадутся два треугольника, образовав зазор.
  • Поэкспериментируйте с тремя видами, чтобы понять что предпочесть в разных ситуациях. Нажмите "W" или используйте кнопки Image:Jb_NavmeshToolBarIconsViewMode01.jpgImage:Jb_NavmeshToolBarIconsViewMode02.jpgImage:Jb_NavmeshToolBarIconsViewMode03.jpg на панели инструментов, чтобы циклически переключать виды.
  • Если вы создали треугольник, то вам не следует его удалять простым выключением. Включите выделение треугольников (просто нажмите "T") и выберите нарушающий нормальную работу треугольник и нажмите клавишу удаления. Вы можете отменить сделанные изменения с помощью CTRL-Z.
  • Попробуйте использовать клавиши-акселераторы для переключения между режимами треугольник, вершина, выбор ребра (T, V, G соответственно). Это поможет сохранить уйму времени.
  • Время от времени, вам понадобится объединить множество вершин в одну. Чтобы сделать это, выделите две или несколько вершин и нажмите Q или Image:Jb_NavmeshToolBarIconsMergeVerts.jpg, и вершины объединятся в ту вершину, которую выбрали первой.
  • Двойной щелчок по ребру (с включенным выбором рёбер) служит для быстрого выбора вершин этого ребра.
  • Помните как две вершины остаются выбранными после создания треугольника? Нажав TAB, вы можете циклически перемещаться между двумя вершинами, которые вы хотите выделить.
  • Если вы не хотите тянуться через клавиатуру к клавише удаления, чтобы удалить выделенные объекты, вы можете нажать R.
  • Старайтеся создавать треугольники по возможности близкими к равносторонним. Это хорошо работает с внутриигровыми траекториями. Избегайте удлинённых, тонких треугольников. Для достижения наилучшего результата, поворачивайте рёбра, используя клавишу-акселератор "S" или Image:Jb_NavmeshToolBarIconsEdgeRotate.jpg.
  • Симметричность полезна тем, что в этом случае маршруты будут вычислены автоматически на основе рёбер и треугольников. Включите показ пути с помощью Image:Jb_NavmeshToolBarIconsBalanceOpt.jpg или клавиши-акселератора "B". Этот способ лучше использовать как можно раньше, так как это поможет предотвратить невозможность финализировать данные в вашей нависети и потерять нескольких мелких деталей.

Вы всегда должны осторожно проверять вашу нависеть после балансировки пути. Нависеть должна выглядеть после этого так, как будто она сделана вручную.




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



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

Когда вы сохраните свой плагин, тогда вы узнаете, что в вашем маршруте содержатся ошибки. Если у вас есть ошибка и ваш плагин сохранён, то появится следующее предупреждение:
Image:jb_NavmeshFixNavmesh01a.jpg


Если вы получили данное предупреждение, вам нужно вызвать Select Triangle by Index (Выбор треугольника по индексу). Вы можете сделать это нажав кнопку Image:jb_NavmeshToolBarIconsFindTriangle.jpg на панели Navmesh (Нависеть), или нажать CTRL-F, или из главного меню в выпадающем списке Navmesh выбрать Select Triangle Index (см. рис. ниже):


В появившемся диалоге выберите Check Navmesh (Проверить Нависеть).

Image:jb_NavmeshFixNavmesh01c.jpg

В окне предупреждения отображается количество найденных треугольников и запрос на удаление всех их.

Image:jb_NavmeshFixNavmesh01d.jpg

Нажмите Yes (Да) чтобы удалить все проблемные треугольники, но, вы должны будете найти где они были и исправить (обычно путём создания новых треугольников). Мы советуем вам исправить каждую ошибку вручную, для чего вы можете нажать "No" (Нет). Диалоговое окно с предупреждением будет закрыто. В диалоге Select Triangle выберите Next Warning (следующее предупреждение). В окне отрисовки камера автоматически установится на проблемном треугольнике и он будет подсвечен. Удалив треугольники и заново их построив, можно легко исправить большинство ошибок.

В дополнение, чтобы найти следующий треугольник вам нужно ещё раз выбрать Check Navmesh (Проверить Нависеть) и повторять процесс пока все проблемные треугольники будут заменены на корректные. Когда завершите, снова сохраните ваш плагин. Если больше не выдаётся предупреждающих сообщений, то это значит, что ваша нависеть готова к прохождению.

Чтобы узнать больше об очистке Нависети щёлкните сюда. Эта ссылка как же объясняет финализацию которая будет изучена в следующей части руководства.

Шаг 5: Создание Рёбер Укрытий для Нависети.

Рёбра укрытий хранят данные, такие как высота части ограждения, которое неигровые персонажи используют в бою и во время поиска верного пути. Чтобы автоматически определить укрытие, найдите в главном меню Navmesh>Find Cover (Нависеть>Найти укрытие) или нажмите кнопку Image:Jb_NavmeshToolBarIconsFindCover.jpg в панели инструментов.

Поиск укрытия занимает пару секунд. Когда всё готово, вы увидите в нависети разноцветные рёбра. Каждый цвет обозначает разные по высоте укрытия. После генерации укрытия, нависеть должна выглядеть примерно как на Рис. 2а.

Чтобы лучше рассмотреть укрытия на вашем уровне, просто щёлкните на кнопке в меню Navmesh в главной панели инструментов и выберите Draw Cover (Нарисовать укрытие), как на иллюстрации Рис. 2б.

На уровне появится трёхмерное, цветное представление укрытия, как на иллюстрации Рис. 2в. Обратите внимание на чёрные полосы на сторонах некоторых укрытий. Это говорит вам о том, что персонаж будет использовать эти укрытия и стрелять из-за них (со стороны чёрных полос).

Можно перекроить укрытия, манипулируя их свойствами вручную. Чтобы получить более подробное объяснение щёлкните здесь.

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


<<<BACK|---|NEXT>>>