Друзья, приветствую, с Вами Будуев Антон. В данной статье мы обсудим класс Mesh Component в Unreal Engine (UE5, UE4), предоставляющий функциональность для работы с материалами в компонентах.
Но прежде чем разбираться с компонентом меша, рекомендую изучить более детально саму концепцию компонентов в движке Анрил Энджин, сделать это Вы можете в отдельной статье: Unreal Engine Component.
Вскоре выйдет моя бесплатная книга по Blueprints для Unreal Engine в PDF формате. Как она выйдет, рекомендую её скачать, чтобы Вы детально изучили блюпринты Анрил Энджин.
Mesh Component

Mesh Component в Unreal Engine — это абстрактный класс, предоставляющий общую функциональность для работы с материалами, текстурами, рендерингом, стримингом и параметрами материалов у всех типов Mesh-компонентов.
* Абстрактный класс компонента (Abstract Component) в Unreal Engine (UE5, UE4) — это класс компонента, объект которого не может быть создан напрямую. Такой класс служит в качестве основы или шаблона для других, более конкретных (неабстрактных) компонентов.
Перевод официальной справки: Mesh Component — это абстрактная база для любого компонента, который представляет собой набор отрисовываемых треугольников.
Класс Mesh Component предоставляет общую основу для реализации компонентов, которые отвечают за отображение трёхмерной сетки (Mesh) в сцене. Он обеспечивает работу с материалами, их переопределением, управление параметрами материалов (скалярными и векторными), поддержку Overlay-материалов, стриминг текстур и материалов, а также взаимодействие с системой рендеринга.
В целом данный абстрактный класс выступает как общая точка для всех компонентов, отвечающих за отображение трехмерных сеток (Mesh) и предоставляет унифицированную функциональность для работы с материалами компонента, чтобы избежать дублирования этого кода в наследниках.
Ключевые особенности Mesh Component
- Работа с материалами — компонент даёт возможность получения и установки материала по индексу или имени слота, поддерживает переопределение материалов для каждого элемента Mesh.
- Overlay материалы — поддерживает дополнительный материал, который накладывается поверх основного.
- Параметры материалов — даёт возможность динамического изменения параметров материалов с поддержкой их кэширования.
- Стриминг текстур и материалов — управляет загрузкой текстур в память, а также поддерживает Callback для отслеживания завершения стриминга LOD-уровней.
- Связь с рендерингом — определяет релевантность материалов для текущего уровня графики, а также, при изменении материалов, помечает состояние компонента как «грязное», чтобы начать его перерисовку.
- Поддержка редактора — предоставляет возможность редактирования материалов и Overlay-слоёв из редактора.
Наследование классов
Родительский класс
Mesh Component наследуется от класса Primitive Component, в основном расширяя его функционалом управления материалами компонента, а также другими сопутствующими функциями.

Дочерние классы
Вследствие своей абстрактности, Mesh Component является базовым классом для многих более специализированных компонентов с геометрией, среди которых самыми известными и популярными являются:
- Static Mesh Component — отображает статическую 3D-модель, которую можно рендерить и использовать для коллизии.
- Skeletal Mesh Component — отображает анимированную скелетную модель, также поддерживает коллизию.
Настройки Mesh Component во вкладке Details
MeshComponent, как и многие другие компоненты, имеет ряд небольших настроек во вкладке Details, которые, в последствии, наследуют все его дочерние классы. Рассмотрим подробнее эти настройки.

- Overlay Material — дополнительный полупрозрачный материал, который накладывается поверх основного при отрисовке объекта. При использовании этого свойства меш рендерится дважды: сначала с базовым материалом, а затем с материалом из Overlay Material, что позволяет создавать различные визуальные эффекты наложения, например, подсветку, контуры или эффекты состояния.
- Overlay Material Max Draw Distance — максимальное расстояние, на котором будет отображаться Overlay-материал. Если значение равно 0, используется максимальное расстояние видимости самого Mesh. Полезно для экономии производительности — позволяет не отрисовывать Overlay-материал на больших дистанциях.
- Enable Material Parameter Caching — включает или отключает кэширование индексов параметров материалов (при включенном кэшировании вызовы к параметрам материалов работают быстрее).
Функции Mesh Component

- Get Materials — возвращает массив всех материалов, используемых компонентом меша.
- Get Overlay Material — возвращает дополнительный материал (Overlay), который накладывается поверх основного при отрисовке объекта.
- Get Overlay Material Max Draw Distance — возвращает максимальное расстояние, на котором будет отображаться Overlay-материал.
- Prestream Mesh LODs — загружает все уровни детализации (LOD) меша в память.
- Prestream Textures — предзагружает текстуры, используемые компонентом, с указанием времени, в течение которого они должны быть полностью загружены.
- Set Overlay Material — задаёт новый Overlay-материал для компонента.
- Set Overlay Material Max Draw Distance — задаёт новое максимальное расстояние отрисовки Overlay-материала.
- Set Scalar Parameter Value On Materials — устанавливает скалярное значение параметра материала по имени для всех материалов компонента.
- Set Vector Parameter Value On Materials — устанавливает векторное значение параметра материала по имени для всех материалов компонента.
Совет. Вскоре выйдет моя бесплатная книга по Blueprints для Unreal Engine в PDF формате. Как она выйдет, рекомендую её скачать, чтобы Вы детально изучили блюпринты Анрил Энджин.