Nav Movement Component в Unreal Engine

Друзья, приветствую, с Вами Будуев Антон. В данной статье мы обсудим абстрактный компонент Nav Movement Component, отвечающий в Unreal Engine (UE5, UE4) за предоставление базовой навигационной функциональности для компонентов движения. Разберём настройки данного компонента, а также Blueprint-функции, связанные с ним.

Вскоре выйдет моя бесплатная книга по Blueprints для Unreal Engine в PDF формате. Как она выйдет, рекомендую её скачать, чтобы Вы детально изучили блюпринты Анрил Энджин.

Nav Movement Component — это абстрактный компонент в Unreal Engine (UE4, UE5), представляющий базовую навигационную функциональность для компонентов движения, которые перемещают ИИ-агентов в процессе поиска пути, позволяя им взаимодействовать с системой построения путей (Pathfinding) и перемещаться по миру.

* Абстрактный компонент (Abstract Component) в Unreal Engine (UE5, UE4) — это класс компонента, объект которого не может быть создан напрямую. Он служит в качестве основы или шаблона для других, более конкретных (неабстрактных) компонентов.

Перевод официальной справки: Nav Movement Component — определяет базовую функциональность для компонентов передвижения, перемещающих агентов, участвующих в AI-навигации.

Nav Movement Component позволяет ИИ-агентам перемещаться по миру, используя построенные пути, и управляет параметрами движения, специфичными для навигации (такими как радиус агента, высота, возможности движения), содержит методы для остановки движения, запроса движения по пути, обновления параметров агента на основе коллизии владельца и т.д. Класс также обеспечивает интеграцию с интерфейсом Path Following Agent Interface для управления движением по пути.

Ключевая функциональность Nav Movement Component

Ключевая функциональность Nav Movement Component — поддержка навигации и взаимодействия с системой поиска пути для компонентов передвижения.

  • Nav Agent Props (свойства навигационного агента) — определяет возможности агента (прыгать, плавать, летать, приседать, ходить). Обновляет радиус и высоту агента на основе коллизии владельца.
  • Request Move (запрос передвижения) — реализует методы запроса движения агента.
  • Stop Movement (остановка движения) — реализует методы остановки движения агента (с возможностью продолжить следование по выбранному пути).
  • Acceleration / Braking for Paths (ускорение и торможение) — управляет ускорением и торможением при следовании по пути.
  • Path Following — интеграция с интерфейсом Path Following Agent Interface для управления движением по пути.

Наследование классов

Родительский класс

Nav Movement Component наследуется от класса Movement Component, расширяя его поддержкой навигации и взаимодействия с системой поиска пути для компонентов передвижения.

Nav Movement Component наследуется от класса Movement Component, расширяя его поддержкой навигации и взаимодействия с системой поиска пути для компонентов передвижения.
Nav Movement Component наследуется от класса Movement Component, расширяя его поддержкой навигации и взаимодействия с системой поиска пути для компонентов передвижения.

Дочерние классы

Вследствие своей абстрактности, Nav Movement Component является родительским классом для более специализированных компонентов:

  • Pawn Movement Component (прямой дочерний компонент) — базовый компонент для перемещения Pawn, предоставляет простую физику и движение.
  • Floating Pawn Movement (косвенный дочерний компонент) — упрощённый компонент движения для плавного перемещения в воздухе или воде без сложной физики (например, для камеры или летающих объектов).
  • Character Movement Component (косвенный дочерний компонент) — продвинутый компонент для персонажей (Character), поддерживает ходьбу, прыжки, физику, взаимодействие с ландшафтом и гравитацию.
Функциональность абстрактного компонента Nav Movement Component, входящая в состав косвенно дочерних компонентов Floating Pawn Movement и Character Movement
Функциональность абстрактного компонента Nav Movement Component, входящая в состав косвенно дочерних компонентов Floating Pawn Movement и Character Movement

Настройки Nav Movement Component во вкладке Details

Рассмотрим настройки Nav Movement Component во вкладке Details.

Категория Nav Movement (движение по навигации)  содержит свойства, связанные с настройками движения агента при работе с навигационной системой (Path Following).

Настройки Nav Movement Component во вкладке Details
Настройки Nav Movement Component во вкладке Details
  • Fixed Path Braking Distance (фиксированное расстояние торможения при следовании по пути) — свойство, задающее фиксированное расстояние торможения для агента при движении по пути с использованием ускорения (когда активирован флаг Use Acceleration For Paths). Оно используется для переопределения стандартного расчета дистанции торможения, позволяя точно определить, на каком расстоянии от цели агент должен начать замедляться. Это свойство доступно для редактирования только при включенном флаге Use Fixed Braking Distance For Paths.
  • Update Nav Agent with Owners Collision (обновлять навигационного агента с учетом коллизии владельца) — определяет, следует ли автоматически обновлять свойства навигационного агента (радиус и высоту в Nav Agent Props) на основе размеров коллизионной капсулы владельца. Если значение установлено в True (по умолчанию), радиус и высота агента синхронизируются с текущими размерами коллизии владельца. Это обеспечивает соответствие параметров агента в навигационной системе с реальными габаритами объекта, что критично для корректного построения пути и избегания препятствий.
  • Use Acceleration for Paths (использовать ускорение при следовании по пути) — определяет метод управления движением при следовании по пути:
    • True: система пути управляет движением через ускорение (более плавное, физически корректное движение с инерцией).
    • False: скорость задаётся напрямую (мгновенные изменения скорости, упрощённое управление).
  • Use Fixed Braking Distance for Paths (использовать фиксированное расстояние торможения при следовании по пути) — включает использование фиксированной дистанции торможения (Fixed Path Braking Distance) при замедлении во время следования по пути.

Movement Capabilities

Категория Movement Capabilities (возможности передвижения) — определяет, какие типы навигации и движения поддерживаются навигационным агентом, а также настройки самого агента. Данные свойства принадлежат структуре Nav Agent Properties, которая, в свою очередь, входит в состав класса Nav Movement Component.

* Nav Agent Properties — специальная структура в Unreal Engine, хранящая параметры агента для навигационной системы.

Movement Capabilities — свойства структуры Nav Agent Properties, входящей в состав компонента Nav Movement Component
Movement Capabilities — свойства структуры Nav Agent Properties, входящей в состав компонента Nav Movement Component
  • Nav Agent Radius (радиус навигационного агента) — радиус, используемый навигационной системой для представления агента.
  • Nav Agent Height (высота навигационного агента) — высота, используемая навигационной системой для представления ИИ-агента.
  • Nav Agent Step Height (высота шага навигационного агента) — максимальная высота, на которую навигационный агент может подниматься при движении по земле без прыжка.
  • Nav Walking Search Height Scale (множитель высоты агента, используемый при поиске пути для ходьбы) — множитель высоты агента при поиске пути в режиме ходьбы. Корректирует вертикальный поиск пути (например, для учёта ступенек или покатых склонов). 
  • Preferred Nav Data (предпочитаемые навигационные данные) — предпочитаемый класс Nav Data для использования при поиске пути.
  • Can Crouch (может приседать) — параметр определяет, может ли агент приседать.
  • Can Jump (может прыгать) — параметр определяет, может ли агент прыгать.
  • Can Walk (может ходить) — параметр определяет, может ли агент ходить.
  • Can Swim (может плавать) — параметр определяет, может ли агент плавать.
  • Cam Fly (может летать) — параметр определяет, может ли агент летать.

Blueprint-функции компонента Nav Movement Component

Blueprint-функции компонента Nav Movement Component
Blueprint-функции компонента Nav Movement Component
  • Is Crouching — определяет, находится ли агент в состоянии приседания. Функция может быть использована для изменения поведения агента в зависимости от его позы (например, для прохода через низкие проемы). Возвращает значение True, если агент приседает, иначе False.
  • Is Falling — определяет, находится ли агент в состоянии падения. Это означает, что агент не находится на земле, не плавает и не летает. Функция полезна для обработки ситуаций, когда агент упал с платформы или был сброшен в воздух. Возвращает значение True, если агент падает, иначе False.
  • Is Flying — определяет, находится ли агент в состоянии полёта. Это означает, что агент движется в воздухе без опоры на землю и не находится в жидкости. Важно отметить, что это состояние отличается от падения, так как полёт обычно предполагает какое-то активное управление движением в воздухе. Возвращает значение True, если агент летит, иначе False.
  • Is Moving on Ground — определяет, движется ли агент по земле. Это включает в себя ходьбу, бег и любые другие формы передвижения, при которых агент контактирует с землёй. Возвращает значение True, если агент движется по земле, иначе False.
  • Is Swimming — определяет, плавает ли агент. Это означает, что агент находится в жидкости (например, в воде), использует специальные анимации и логику движения для плавания.
  • Stop Active Movement — останавливает текущее движение агента, обычно путём постепенного снижения ускорения до нуля. Это позволяет избежать резких остановок и обеспечивает более плавное замедление.
  • Stop Movement Keep Pathing — немедленно останавливает движение агента, сбрасывая его скорость до нуля. Однако, в отличие от Stop Active Movement, этот метод сохраняет текущий путь, по которому движется агент. Это означает, что агент продолжит движение по пути, как только получит новые команды движения.

Совет. Вскоре выйдет моя бесплатная книга по Blueprints для Unreal Engine в PDF формате. Как она выйдет, рекомендую её скачать, чтобы Вы детально изучили блюпринты Анрил Энджин.


наш Телеграм канал

Оцените статью
( 1 оценка, среднее 5 из 5 )
Поделитесь этой статьей со своими знакомыми в социальных сетях, возможно, эта статья кому-то будет полезна
Unreal Engine - это просто
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.