Последние новости
Трекинг камеры в Blender: как добавить 3D-объекты в архитектурную съёмкуUnreal Engine Level Snapshots: руководство по управлению вариантами архитектурных сценРуководство по Unreal Engine World Partition: разбивайте большие архитектурные сцены на ячейкиРуководство по созданию архитектурных изображений и редактированию интерьеров с Nano Banana 2.1Представлена Genie 4: Google сначала откроет модель проверенным тестировщикамApple представила 14-дюймовый MacBook Pro с M6: 12-ядерные CPU и GPUIntel Crescent Island D270: кристалл с 32 ядрами Xe3PДоказательства, созданные ИИ OpenAI, переданы независимым экспертамПредставлены планы Youth Orchestra Abu Dhabi: проект Фрэнка ГериСимуляция твёрдых тел в Blender: настройка падающих и связанных объектов
СоветыUnreal EngineMari

Руководство по Unreal Engine World Partition: разбивайте большие архитектурные сцены на ячейки

Система World Partition в Unreal Engine делит большие миры на ячейки в пределах одного постоянного уровня и загружает их по мере необходимости. В руководстве описаны основные шаги настройки потоковой загрузки и удалённой геометрии для архитектурных сцен окружения.

Большая архитектурная сцена кампуса с детализированными зданиями и упрощённым удалённым окружениемИИ-изображение
Иллюстрация создана с помощью ИИ.Изображение: 3dsınıfı / FCA AI

Коротко

  1. World Partition хранит большие уровни в одном постоянном файле и делит рабочую область на ячейки сетки.
  2. Во время выполнения ячейки загружаются и выгружаются в зависимости от расположения источников потоковой загрузки и параметров сетки.
  3. HLOD может отображать удалённые объекты из незагруженных ячеек с помощью прокси-геометрии.
  4. Перед созданием HLOD нужные акторы необходимо добавить в слой HLOD, а значение Mobility установить на Static.

В официальной документации Unreal Engine World Partition описывается как система, которая делит большие уровни на ячейки в пределах одного постоянного Level и загружает или выгружает их во время выполнения. В руководстве рассказывается, как настроить систему для архитектурного окружения, обширных ландшафтов и крупных визуализационных сцен, а также как использовать HLOD для работы с удалённой геометрией. В документации не указана конкретная версия Unreal Engine, поэтому названия меню и параметров приведены в том виде, в каком они встречаются в источнике.

1. Создайте проект или уровень World Partition

В некоторых шаблонах категории Games при создании проекта World Partition включён по умолчанию. Однако в шаблонах Blank, First Person, Third Person, Top Down и Vehicle Advanced параметр Enable Streaming по умолчанию отключён. Поэтому, если вам нужно не только разбить сцену на части, но и включить потоковую загрузку ячеек, проверьте параметр Enable Streaming в World Settings.

Чтобы создать основу для большой открытой территории, выберите File › New Level, укажите тип карты Open World и нажмите Create. В Open World по умолчанию включены World Partition, One File Per Actor, Data Layers и Hierarchical Levels of Detail. В примере из документации представлена карта с Landscape размером 2 км x 2 км и наружным освещением.

Для преобразования существующего уровня можно использовать Tools > Convert Level. Также можно запустить инструмент командной строки. В официальной документации приведён такой пример команды:

Промпт
UnrealEditor.exe QAGame -run=WorldPartitionConvertCommandlet Playground.umap -AllowCommandletRendering

Параметр -ReportOnly позволяет вывести отчёт о предстоящих действиях, не выполняя преобразование. Параметр -ConversionSuffix помогает сохранить исходный уровень, добавляя _WP к имени преобразованной тестовой карты. Прежде чем использовать параметр -DeleteSourceLevels, который удаляет исходные уровни, оцените, какие файлы нужно сохранить и как устроен рабочий процесс команды.

2. Настройте потоковую загрузку ячеек под сцену

World Partition делит уровень на ячейки сетки, которые можно использовать во время выполнения. Загрузка и выгрузка ячеек зависят от расположения источников потоковой загрузки и параметров Runtime Grid. По умолчанию в качестве источника потоковой загрузки может использоваться Player Controller; кроме того, в сцену можно добавить компонент World Partition Streaming Source.

Например, чтобы ячейки вокруг точки телепортации загрузились до того, как игрок туда попадёт, в этой точке можно временно активировать источник потоковой загрузки. В компоненте есть параметры Target Grid, Priority и Target State. Target State задаёт, должны ли пересекающиеся ячейки переходить в состояние Loaded или Activated. Функция Blueprint Is Streaming Completed сообщает, завершилась ли потоковая загрузка ячеек, охватываемых компонентом.

Параметры Runtime Grid находятся в разделе World Partition Setup панели World Settings. В документации в качестве стандартной указана сетка 2D Runtime Hash, а также отмечено, что использование нескольких сеток может отрицательно повлиять на производительность. Значения ниже приведены в документации как примеры; их не следует считать универсальными рекомендуемыми настройками для любой сцены.

ПараметрПример из документацииЭффект
Cell Size256 м x 256 м x 256 мЗадаёт размер ячеек.
Loading Rangeрадиус 768 мОпределяет расстояние от источника потоковой загрузки, в пределах которого загружаются ячейки.

3. Создайте слой HLOD для удалённого окружения

Потоковая загрузка ячеек может приводить к тому, что объекты в незагруженных в данный момент областях не отображаются. Система World Partition HLOD представляет такие области с помощью proxy mesh; согласно документации, этот подход может уменьшить количество draw call на кадр и повысить производительность.

Чтобы создать новый слой HLOD, выберите в Content Drawer пункт + Add, затем Miscellaneous › HLOD Layer. Выбирайте тип слоя с учётом содержимого сцены:

  1. Instancing отображает исходные Static Mesh с низкоуровневыми настройками LOD через компоненты Instanced Static Mesh. Документация относит к подходящим примерам для этого типа imposter-объекты, например деревья и растения.

  2. Merged Mesh объединяет акторы Static Mesh в один proxy mesh.

  3. Simplified Mesh объединяет акторы в один proxy mesh и упрощает геометрию.

Для Merged Mesh и Simplified Mesh доступны отдельные настройки. В зависимости от типа слоя можно настроить UV для lightmap, упрощение материалов, объединение мешей и параметры создания proxy. HLODMaterial задаёт базовый материал для запекания материалов в объединённых или упрощённых слоях; в документации отмечено, что для большинства сценариев достаточно материала по умолчанию.

4. Создайте HLOD и проверьте результат

Чтобы создать HLOD, добавьте акторы в слой HLOD, установите для них Mobility на Static и включите создание HLOD. Слой можно назначить через свойство HLOD в панели Details актора, свойство Default HLOD Layer в Data Layer или через World Settings. Затем используйте Build > Build HLODs либо запустите commandlet WorldPartitionHLODsBuilder.

Влияние на рабочий процесс архитектурной визуализации

World Partition позволяет управлять нужными частями сцены вместо того, чтобы загружать всё сразу — это полезно для крупных комплексов, кампусов и моделей окружения. При командной работе One File Per Actor может сократить необходимость брать файл Level на редактирование, поскольку акторы хранятся в отдельных файлах. HLOD помогает сохранять видимость удалённых элементов ландшафта и зданий.

При этом размер ячеек и дальность загрузки нужно проверять с учётом потребностей проекта; примеры из документации не следует без проверки применять к каждой сцене. Обработка большой геометрии с небольшим шагом выборки в настройках Simplified Mesh может потребовать много памяти. Отключение distance field у объединённых мешей, отображаемых на расстоянии, может помочь сэкономить память. В документации не указаны сведения о лицензии, цене или конкретных требованиях к оборудованию; перед внедрением также следует проверить используемую версию Unreal Engine и настройки проекта команды.

Распространённые ошибки

  • Считать, что потоковая загрузка ячеек включена: в некоторых шаблонах параметр Enable Streaming отключён; проверьте его в World Settings.

  • Назначать всем акторам один и тот же тип HLOD: для деревьев можно рассмотреть instancing, а для объединённых структур — другие типы слоёв.

  • Забывать установить Mobility на Static перед созданием HLOD: согласно документации, это одно из необходимых условий.

  • Считать примерные размеры сетки универсальным решением: размер ячеек и дальность загрузки следует проверять с учётом масштаба сцены.

Источники

Источников: 2
D
dev.epicgames.comdev.epicgames.com/documentation/en-us/unreal-engine/world-partition-in-unreal-engine
Пересказ
D
dev.epicgames.comdev.epicgames.com/documentation/en-us/unreal-engine/world-partition---hierarchical-level-of-detail-in-unreal-engine
Пересказ

Тексты источников не перепечатываются; короткие цитаты отмечены, остальное — наш пересказ и комментарий.

Мнение 3dsınıfı
3dОценка редактора

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

Однако не стоит без проверки переносить в проект примерные значения размера ячеек и дальности загрузки: их нужно тестировать с учётом конкретной сцены. При использовании Simplified Mesh следует учитывать, что небольшой шаг выборки может потребовать много памяти. В документации нет сведений о лицензии, цене и требованиях к оборудованию; бюро важно отдельно проверить совместимость с используемой версией и производительность на имеющемся оборудовании.

Частые вопросы

Для чего нужен Unreal Engine World Partition?

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

Что даёт HLOD в Unreal Engine?

HLOD может отображать удалённые акторы из незагруженных ячеек World Partition с помощью proxy mesh. Согласно документации, это помогает уменьшить количество draw call и повысить производительность.

Какие условия нужны перед созданием HLOD?

Акторы необходимо добавить в слой HLOD, установить для них Mobility на Static и включить создание HLOD.

Комментарии и форум — на турецком языке.Присоединиться к обсуждению
+

Похожие новости