Внутренняя работа навигационной системы игрового движка Unity | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 11 мая, печатный экземпляр отправим 15 мая.

Опубликовать статью в журнале

Автор:

Научный руководитель:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №20 (310) май 2020 г.

Дата публикации: 18.05.2020

Статья просмотрена: 91 раз

Библиографическое описание:

Бекренёв, К. А. Внутренняя работа навигационной системы игрового движка Unity / К. А. Бекренёв. — Текст : непосредственный // Молодой ученый. — 2020. — № 20 (310). — С. 21-23. — URL: https://moluch.ru/archive/310/70251/ (дата обращения: 27.04.2024).



Ключевые слова: NavMesh, Unity, агент, навигационная система.

Когда разработчику необходимо умно перемещать игровых персонажей (также их называют агентами) в игре, он должны решить две проблемы: как «понять» игровой уровень, чтобы найти цель, и как переместиться туда. Проблема «понимания» уровня берет в расчет целую сцену. Движение рассматривает только направление движения и как предотвратить сталкивание с другими агентами.

Система навигации нуждается в данных для отображения проходимых областях в сцене. Проходимые области определяются как места в сцене, где агент может стоять и двигаться. Проходимые области строятся автоматически, тестируя места, где агент может стоять. Затем эти места связываются к поверхности сцены. Это поверхность называется навигационной сеткой (Часто ее называют NavMesh) [1], которая изображена на рисунке 1.

C:\Users\acer\AppData\Local\Microsoft\Windows\INetCache\Content.Word\walkAreas.png

Рис. 1. Навигационная сетка и агент

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

Чтобы найти путь между двумя локациями в сцене, сперва необходимо отметить стартовую и конечную локации их ближайших полигонов. Затем необходимо начать поиск с начальной локации, посещая всех соседей, до тех пор, пока не будет найден нужный полигон. Отслеживание всех посещенных полигонов позволяет найти последовательность полигонов, которая ведет от старта к конечной цели. Распространённый алгоритм для нахождения пути, который использует Unity - это A*[2] (произносится как А звезда или А стар).

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

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

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

Obstacle avoidance (Алгоритм избегания препятствий) выбирает новую скорость, которая балансирует между движением в желаемом направлении, предотвращением будущих столкновений с другими агентами и краями NavMesh-а. Unity использует reciprocal velocity obstacles (взаимная скорость объектов) чтобы предсказать и предотвратить столкновения.

Наконец, после выбора направления и использования obstacle avoidance, финальная скорость подсчитана. В Unity агенты симулированы, используя простую динамическую модель, которая также берет в расчет ускорение, чтобы обеспечить более естественное и плавное перемещение.

На этой стадии возможно отправить скорость симулированного агента Mecanim animation system, чтобы переместить персонажа, или же позволить навигационной системе самой позаботиться об этом. Как только персонаж был перемещен, расположение персонажа перемещено и ограничено по NavMesh. Этот шаг важен для надежной навигации.

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

Линейный лист полигонов описывающий путь – это гибкая структура данных для выбора направления, и может быть локально корректирована во время движения персонажа. Локальная навигация пытается понять, как эффективно двигать к следующему углу без столкновения с другими агентами или движущимися объектами.

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

Изменение NavMesh называется carving (резьба или вырезание) [3]. Этот процесс обнаруживает какие части препятствий касаются NavMesh, и вырезает дыры в NavMesh. Это сложная вычислительная операция, которая является еще одной убедительной причиной, почему перемещение препятствий должно рассматриваться, используя collision avoidance (Алгоритм избегания столкновений).

Локальное collision avoidance также может быть часто использовано, чтобы выбираться направление возле скудно разбросанных препятствий. Поскольку алгоритм локальный, он будет учитывать только следующее непосредственное столкновение, и не может быть направлено возле ловушек или рассматривать случаи, где препятствие блокирует путь. Эти случаи могут быть решены, используя carving.

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

Эти действия могут быть описаны с использованием Off-mesh Links, которая расскажет системе нахождения пути, что существует маршрут через указанную ссылку. Эта ссылка может быть позже доступна, при следовании определенного пути и выполнении специального действия. Пример изображен на рисунке 2.

Рис. 2. Применение Off-Mesh Link

Литература:

  1. Хокинг Джозеф. Unity в действии. Мультиплатформенная разработка на C# - 2016.
  2. Гибсон Бонд, Гибсон Бонд Джереми. Unity и C#. Геймдев от идеи до реализации – 2019
  3. Мэннинг Джон, Батфилд-Эддисон Пэрис. Unity для разработчика. Мобильные мультиплатформенные игры – 2018 – C. 274-292
Основные термины (генерируются автоматически): агент, навигационная система, выбор направления, глобальная навигация, локальная навигация, навигационная сетка, нахождение пути, последовательность полигонов, система нахождения пути, угол коридора.


Ключевые слова

агент, Unity, навигационная система, NavMesh

Похожие статьи

Общие принципы построения навигационных систем...

Целью статьи являлся анализ принципов построения систем навигации на примере систем для подвижных наземных объектов и определение направлений повышения качества работы данных систем.

Системы навигации подвижных наземных объектов и их...

Сбор необходимых данных проводился путем рассмотрения нескольких навигационных систем различных производителей и изучения их технической

Основные термины (генерируются автоматически): пройденный путь, система, ZUPT, угол ориентации, система навигации...

Системы навигации подвижных наземных объектов и их...

Целью статьи являлся анализ существующих систем навигации для подвижных наземных объектов и сравнение их точностных характеристик. Сбор необходимых данных проводился путем рассмотрения нескольких навигационных систем различных производителей и...

Навигационные системы для систем автоматического...

система , факт наличия, навигационная система , координата местоположения, метод обработки информации , угол ориентации...

Космические навигационные системы. Спутниковая система навигации — совокупность технических средств, предназначенных для...

Автономная система навигации и ориентирования беспилотных...

Разработаны требования к построению автономной системы навигации и ориентирования

Обзор информационных материалов о характере и условиях ведения локальных войн и

Для реализации принципов управляемого полёта, навигации и ориентирования БЛА на их борту...

Направления повышения качества функционирования...

Предложены направления повышения качества функционирования навигационных систем подвижных наземных объектов.

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

Основы спутниковой навигации | Статья в журнале...

Спутниковые системы навигации также позволяют получить скорости и направления движенияприемника сигнала.

Но какова история создания самих спутников навигации, да и всей навигационной системы? Правительство США в 1973 году начало развертку программу...

Анализ и выбор систем навигации робота для позиционирования...

Автономные системы навигации находят применение в условиях, когда передача или прием сигналов извне затруднен или невозможен [7]. Этот аспект важен для замкнутых пространств, так как, как было сказано выше, они имеют повышенную зашумленность среды. Локальная система.

Проблемы и перспективы глобальной навигационной...

– Развитие системы ГЛОНАСС в направлении улучшения ее тактико-технических характеристик с целью достижения ее паритета с иностранными системами навигационного обеспечения, лидирующих позиций Российской Федерации в области спутниковой навигации.

Сравнительный анализ отечественных и зарубежных систем...

В статье дан сравнительный анализ систем навигации подвижных наземных объектов.

система, навигационная система, дифференциальный режим работы, иностранное

DGPS, SBAS, система, путь, решаемая задача, система навигации, характеристика, отечественное...

Похожие статьи

Общие принципы построения навигационных систем...

Целью статьи являлся анализ принципов построения систем навигации на примере систем для подвижных наземных объектов и определение направлений повышения качества работы данных систем.

Системы навигации подвижных наземных объектов и их...

Сбор необходимых данных проводился путем рассмотрения нескольких навигационных систем различных производителей и изучения их технической

Основные термины (генерируются автоматически): пройденный путь, система, ZUPT, угол ориентации, система навигации...

Системы навигации подвижных наземных объектов и их...

Целью статьи являлся анализ существующих систем навигации для подвижных наземных объектов и сравнение их точностных характеристик. Сбор необходимых данных проводился путем рассмотрения нескольких навигационных систем различных производителей и...

Навигационные системы для систем автоматического...

система , факт наличия, навигационная система , координата местоположения, метод обработки информации , угол ориентации...

Космические навигационные системы. Спутниковая система навигации — совокупность технических средств, предназначенных для...

Автономная система навигации и ориентирования беспилотных...

Разработаны требования к построению автономной системы навигации и ориентирования

Обзор информационных материалов о характере и условиях ведения локальных войн и

Для реализации принципов управляемого полёта, навигации и ориентирования БЛА на их борту...

Направления повышения качества функционирования...

Предложены направления повышения качества функционирования навигационных систем подвижных наземных объектов.

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

Основы спутниковой навигации | Статья в журнале...

Спутниковые системы навигации также позволяют получить скорости и направления движенияприемника сигнала.

Но какова история создания самих спутников навигации, да и всей навигационной системы? Правительство США в 1973 году начало развертку программу...

Анализ и выбор систем навигации робота для позиционирования...

Автономные системы навигации находят применение в условиях, когда передача или прием сигналов извне затруднен или невозможен [7]. Этот аспект важен для замкнутых пространств, так как, как было сказано выше, они имеют повышенную зашумленность среды. Локальная система.

Проблемы и перспективы глобальной навигационной...

– Развитие системы ГЛОНАСС в направлении улучшения ее тактико-технических характеристик с целью достижения ее паритета с иностранными системами навигационного обеспечения, лидирующих позиций Российской Федерации в области спутниковой навигации.

Сравнительный анализ отечественных и зарубежных систем...

В статье дан сравнительный анализ систем навигации подвижных наземных объектов.

система, навигационная система, дифференциальный режим работы, иностранное

DGPS, SBAS, система, путь, решаемая задача, система навигации, характеристика, отечественное...

Задать вопрос