Что такое Mesh в Unreal Engine

Приветствую, друзья, с Вами Будуев Антон. В данной статье мы поговорим о том, что такое Mesh в Unreal Engine (UE4, UE5) или, по-русски говоря, Меш или просто сетка. А также обсудим её основные типы.

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

Unreal Engine Mesh

Mesh (Меш, сетка) — это компонент в Unreal Engine, представляющий собой 3D-модель. По сути, это набор соединённых между собой вершин, рёбер и граней, определяющих форму объекта в трёхмерном пространстве. Где:

  • вершина (Vertex) — это точка в 3D-пространстве, определяющая положение объекта. Множество вершин создаёт каркас модели;
  • ребро — линия, соединяющая две вершины;
  • грань  — поверхность, образованная тремя (или более) вершинами, соединёнными ребрами. В Unreal Engine в целях оптимизации используются треугольные грани (Triangles).
Mesh оружия в Unreal Engine, состоящий из 10317 Triangles и 8503 Vertex
Mesh оружия в Unreal Engine, состоящий из 10317 Triangles и 8503 Vertex

Также при работе с Mesh в Анрил Энджин часто используются следующие термины:

  • UV-координаты — координаты, используемые для отображения текстур на поверхности Mesh. Они связывают пиксели текстуры с определенными точками на гранях Меша.
  • Normals (нормали) — векторы, перпендикулярные граням. Они определяют, как свет отражается от поверхности и влияют на освещение.
  • Material (материал) — определяет визуальные характеристики поверхности Меша, такие как цвет, текстура, блеск, прозрачность и другие параметры.
  • Skeleton (скелет) — иерархическая структура костей, используемая для анимации Mesh, обычно персонажей или существ.
  • Weight (вес) — значение, определяющее, насколько сильно вершина Меша подвержена влиянию определенной кости скелета.
  • Collision (коллизия) — свойство, определяющее, как Меш взаимодействует с другими объектами в игровом мире.

Типы Mesh в Unreal Engine

Static Mesh

Static Mesh (статический Меш) — это базовый тип Меша, который не подвержен анимации. В лучшем случае он может иметь модификацию преобразования (местоположения, поворота или масштаба), которая применяется ко всему объекту сразу. Он оптимален для объектов, которые не двигаются или мало меняют свою форму. Например, стены, мебель, ландшафт.

Static Mesh - статический меш
Static Mesh — статический меш

Несмотря на то, что в Unreal Engine имеется специализированный инструмент Modeling Mode (режим моделирования) для создания простейших Static Mesh, обычно статические Меши создаются и импортируются из внешних 3D-редакторов (Blender, Maya, 3ds Max) в формате FBX, OBJ или других поддерживаемых форматах.

После импорта данные Меши можно настраивать в редакторе статических Мешей — Static Mesh Editor, в котором определяются основные свойства Мешей:

  • Material — назначение материалов, характеризующих внешний вид модели.
  • Collision — настройка коллизий объекта (Simple Collision, Complex Collision).
  • LOD (Level of Detail) — создание нескольких версий Меша с разным уровнем детализации для оптимизации производительности на разных расстояниях от камеры. Разный уровень детализации достигается разным количеством вершин и треугольников. Чем их меньше, тем меньше детализация 3D-модели и тем меньше Mesh занимает места в памяти.
  • Nanite — настройка специальной технологии UE5, позволяющей работать в игре с высокодетализированными объектами, состоящими из миллионов полигонов. При этом сохраняя высокую частоту кадров в реальном времени.
  • Sockets — создание точек привязки, используемых для присоединения других Акторов или эффектов к статическому Мешу.

Skeletal Mesh

Skeletal Mesh (скелетный Меш) — это анимируемый Меш, состоящий из двух частей:

  1. Сам Меш, представляющий собой 3D-модель (поверхность Skeletal Mesh).
  2. Skeleton (скелет) — иерархический набор взаимосвязанных костей, к которым привязаны соответствующие вершины Меша. Где каждая вершина Меша имеет свой вес относительно костей скелета, что определяет, насколько сильно она подвержена влиянию движений этих костей.
Skeletal Mesh - скелетный Меш
Skeletal Mesh — скелетный Меш

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

Skeletal Mesh используется для персонажей, существ и других механических объектов, содержащих внутри себя скелеты (например, автомобилей), которые должны быть анимированы.

Skeletal Mesh автомобиля
Skeletal Mesh автомобиля

Procedural Mesh

Procedural Mesh (процедурный Меш) — Меш, генерируемый динамически с помощью кода непосредственно во время симуляции или выполнения игры. В этом коде описываются правила определения вершин, рёбер и граней, а также настройки текстур, материалов, коллизий и других параметров. Процедурный Меш полезен для создания динамических объектов, изменяемых ландшафтов и процедурных миров.

Сердцем процедурного Меша является компонент Procedural Mesh Component и функция Create Mesh Section. Именно с помощью них и создаются процедурные Меши в Unreal Engine, к которым после их создания добавляются соответствующие свойства, текстуры и материалы.

Простой Procedural Mesh (треугольник), созданный в Unreal Engine с помощью кода
Простой Procedural Mesh (треугольник), созданный в Unreal Engine с помощью кода

Instanced Static Mesh

Instanced Static Mesh, ISM (статический Меш в виде экземпляра) — оптимизированный метод объединения множества одинаковых статических Мешей в один Instance (экземпляр), позволяющий эффективно отображать множество копий одного и того же статического Меша в сцене.

Оптимизация достигается благодаря тому, что все экземпляры одного и того же Instanced Static Mesh используют один общий Меш, с одними и теми же материалами и текстурами, что снижает нагрузку на производительность, так как система использует меньшее количество Draw Calls (вызовов отрисовки) по сравнению с обычными статическими Мешами.

Instanced Static Mesh используется для создания большого количества повторяющихся объектов, таких как трава, деревья, камни.

Instanced Static Mesh, используемый для размещения множества объектов одинаковых книг
Instanced Static Mesh, используемый для размещения множества объектов одинаковых книг

Spline Mesh

Spline Mesh (сплайновый Меш) — это компонент в Unreal Engine, который позволяет процедурно создавать или деформировать с помощью кода статический Меш вдоль сплайна (кривой). Это особенно полезно для создания объектов, которые должны следовать изогнутым или неровным траекториям, таких как дороги, трубы, заборы, кабели и так далее.

Spline Mesh, с помощью которого создаётся изогнутый забор любой длины
Spline Mesh, с помощью которого создаётся изогнутый забор любой длины

Nav Mesh, Navigation Mesh (навигационный Меш) — это специализированный Меш, входящий в систему навигации в Unreal Engine, которая позволяет агентам ИИ (персонажам с искусственным интеллектом) перемещаться по игровому миру. Nav Mesh представляет собой зелёную сетку (Меш), которая покрывает доступные для передвижения участки уровня и используется для расчёта путей, обеспечивая эффективное движение персонажей ИИ.

Добавляется на уровень навигационный Меш при помощи объёма Nav Mesh Bounds Volume (для того, чтобы визуально отобразить его, необходимо на клавиатуре нажать на клавиатуре клавишу P).

Nav Mesh, Navigation Mesh - навигационный Меш в Unreal Engine
Nav Mesh, Navigation Mesh — навигационный Меш в Unreal Engine

Импорт Mesh в Unreal Engine

Если все прочие типы Мешей так или иначе создаются внутри самого движка Unreal Engine, то Static Mesh, а уж тем более Skeletal Mesh обычно создаются в специализированных 3D-редакторах, таких как Blender, Maya, 3ds Max. И импортируются в движок в наиболее распространённом формате для импорта Мешей — FBX (Filmbox). Также поддерживаются OBJ и некоторые другие форматы.

При экспорте Mesh из 3D-редакторов необходимо обязательно удостовериться в соответствии измерений Вашей модели с измерениями Unreal Engine, где 1 единица измерения равна 1 сантиметру.

Для импорта Mesh в Unreal Engine перейдите в Content Browser, нажмите кнопку Import и выберите файл Меша на компьютере. Откроется окно настроек импорта FBX Import Options.

Движок автоматически определяет тип файла, который Вы пытаетесь импортировать, и соответствующим образом настраивает интерфейс диалогового окна FBX Import Options. Нижняя часть настроек будет одинаковой для любых типов FBX, а верхняя различаться в зависимости от того, какой тип FBX Вы импортируете — Static Mesh, Skeletal Mesh или анимацию.

После определения настроек нажмите кнопку Import. Как результат, ассеты импортированных файлов появятся в Content Browser.

Так как диалоговое окно FBX Import Options имеет очень большое количество настроек импорта Mesh, то разбор этих опций выделен в отдельную статью. Рекомендую её также изучить: разбор опций FBX Import Options.

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


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

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

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