Коротко
- World Partition хранит мир в одном постоянном Level и загружает или выгружает его в виде настраиваемых ячеек.
- HLOD представляет содержимое незагруженных ячеек с помощью proxy mesh, позволяя показывать удалённые участки сцены.
- Для генерации HLOD нужно назначить Actor’ы слою HLOD Layer, установить для них Mobility в Static и запустить генерацию HLOD.
- Согласно документации, в шаблоне Open World функция World Partition включена по умолчанию; шаблон также содержит пример Landscape размером 2 км x 2 км.
Что вы узнаете из этого руководства?
В большой сцене на открытом воздухе важно сохранять детали рядом с камерой и одновременно показывать удалённые горы, деревья и здания. В Unreal Engine World Partition делит мир на ячейки и загружает или выгружает содержимое в зависимости от положения источников потоковой загрузки. HLOD (Hierarchical Level of Detail) может представлять содержимое ячеек, которые в данный момент не загружены, с помощью proxy mesh.
В руководстве рассмотрим варианты создания Level, совместимого с World Partition, или преобразования существующего Level, создание HLOD Layer и генерацию HLOD. Цель — подготовить масштабное архитектурное окружение или большую сцену визуализации к более управляемой потоковой загрузке. В документации не указана конкретная версия Unreal Engine, поэтому шаги не привязаны к определённому номеру версии.
Требования и выбор начального варианта
В исходной документации не перечислены обязательные требования к ПО, типу аккаунта или оборудованию, помимо Unreal Engine. Для использования World Partition в проекте предусмотрено три способа: создать проект на основе шаблона из категории Games, выбрать Open World Level или преобразовать существующий Level.
Самый простой вариант для начала — карта Open World. В Unreal Engine выберите File > New Level, укажите тип карты Open World и нажмите Create. В этом шаблоне по умолчанию включены World Partition, One File Per Actor, Data Layers и HLOD. Пример карты также содержит Landscape размером 2 км x 2 км и настройку освещения для открытого пространства.
Если вы работаете с существующим Level, его можно преобразовать через пункт меню Tools > Convert Level. В официальной документации также описан способ использовать World Partition Convert Commandlet через командную строку. Если перед преобразованием нужно сохранить исходный Level, параметр -ConversionSuffix добавляет к преобразованной карте суффикс _WP. Параметр -ReportOnly формирует отчёт о возможном преобразовании, не выполняя его. Прежде чем применять эти параметры в проекте, выберите подходящий способ преобразования.
1. Разберитесь, как работает потоковая загрузка World Partition
World Partition хранит мир в одном постоянном файле Level и делит его на ячейки. Ячейки загружаются или выгружаются в зависимости от положения источников потоковой загрузки, таких как Player Controller, и настроек runtime grid. Таким образом, обрабатывается только нужная в данный момент часть сцены, а не весь уровень целиком.
За то, будет ли Actor загружаться пространственно, отвечает параметр Is Spatially Loaded в разделе World Partition панели Details. Если параметр включён, Actor загружается, когда источник потоковой загрузки попадает в радиус его действия; если выключен — Actor загружается, если только он не находится в отключённом Data Layer. Настройки runtime grid, включая размер ячеек и дальность загрузки, расположены в разделе World Partition Setup панели World Settings.
Хотя можно использовать несколько runtime grid, в официальной документации отмечено, что несколько grid могут отрицательно сказаться на производительности. Поэтому на начальном этапе разумно использовать стандартный 2D Runtime Hash grid и не создавать дополнительные grid, пока в них не возникнет явная необходимость. В источниках не указано универсально правильное значение размера ячейки или дистанции загрузки: их следует подбирать с учётом масштаба сцены и требуемой видимости.
2. Создайте HLOD Layer и выберите его тип
Настройки HLOD управляются через asset HLOD Layer. Откройте Content Drawer и выберите + Add > Miscellaneous > HLOD Layer. Дважды щёлкните по новому asset, чтобы открыть его настройки. В проекте можно использовать несколько HLOD Layer, например, чтобы задать отдельные слои для разных групп Actor’ов.
Выберите тип слоя с учётом особенностей содержимого:
Instancing: представляет статические mesh с помощью компонентов Instanced Static Mesh, использующих минимальный уровень детализации. В документации в качестве примера такого применения приведены imposter для деревьев и растений.
Merged Mesh: объединяет статические mesh в один proxy mesh.
Simplified Mesh: объединяет mesh и упрощает их.
В настройках слоя доступны параметры Always Loaded, Cell Size и Loading Range. Обратите внимание: если включён Always Loaded, параметры Cell Size и Loading Range недоступны. В зависимости от выбора Merged Mesh или Simplified Mesh также становятся доступны дополнительные настройки объединения или proxy.
3. Назначьте Actor’ы слою и сгенерируйте HLOD
Перед генерацией HLOD назначьте соответствующие Actor’ы слою HLOD Layer. В документации перечислены три способа: свойство HLOD на панели Details Actor’а, параметр Default HLOD Layer у Data Layer или слой HLOD по умолчанию в World Settings.
Для Actor’ов, которые войдут в слой, установите Mobility в Static. Затем запустите генерацию HLOD через Build > Build HLODs. В качестве альтернативы можно использовать упомянутый в официальной документации commandlet WorldPartitionHLODsBuilder. После завершения генерации содержимое незагруженных ячеек может отображаться с помощью HLOD-прокси. Среди задач системы HLOD — сохранять видимость удалённого содержимого и сокращать количество draw call на кадр.
Частые ошибки
Первая ошибка — предполагать, что HLOD автоматически применяется к сцене. Actor’ы нужно назначить слою HLOD Layer, установить для них Static и отдельно запустить генерацию HLOD. Если одно из этих условий не выполнено, ожидаемые proxy могут не появиться.
Вторая ошибка — выбирать типы слоёв без учёта различий в содержимом. Для групп растений в документации в качестве подходящего варианта указано Instancing, а Merged Mesh и Simplified Mesh обеспечивают другие способы объединения. В частности, параметр Merge Distance в настройках Simplified Mesh может закрыть проёмы в удалённой геометрии — например, дверные или оконные. Поэтому проверяйте упрощённый результат с разных расстояний.
Наконец, не применяйте ко всей сцене одну и ту же схему, не проверив UV для lightmap, объединение материалов и параметры упрощения mesh. В документации отмечено, что при определённых условиях объединения могут возникнуть визуальные артефакты. В источниках не приведены универсальные значения качества или производительности для разных проектов, поэтому безопаснее испытать разные типы HLOD на характерных участках сцены и оценить результат.
Следующие шаги в архитектурном и archviz-процессе
World Partition и HLOD можно рассматривать для архитектурных сцен с большим окружением — например, для проектов, где в одном мире сочетаются удалённый рельеф, растительность или группы зданий. Размещение близкой архитектурной геометрии и удалённого окружения в разных HLOD Layer может помочь отдельно управлять визуальными приоритетами. Это рекомендация по организации рабочего процесса, сделанная на основе описанных в источниках слоёв и способов представления; она не гарантирует определённого прироста производительности.
Сначала проверьте тип слоя, поведение ячеек и результат HLOD на небольшом фрагменте сцены. Затем, до обработки всей сцены, оцените проёмы дверей и окон, lightmap и внешний вид материалов. Поскольку в документации не указаны требования к оборудованию или условия лицензирования, перед производством следует отдельно проверить конфигурацию Unreal Engine и рабочую среду, используемые командой проекта.
Источники и лицензия
Это руководство адаптировано на турецкий язык на основе официальных документов Epic Games World Partition и World Partition – Hierarchical Level of Detail (HLOD). В предоставленном списке источников для обоих документов указана лицензия «свободная».
Источники
Источников: 2Тексты источников не перепечатываются; короткие цитаты отмечены, остальное — наш пересказ и комментарий.
Для архитектурных и визуализационных команд в Турции World Partition предлагает способ управления масштабными сценами окружения в рамках одного Level. Разделение HLOD Layer по типам содержимого — например, растительности, удалённому окружению или группам зданий — может помочь организовать сцену более контролируемо.
Однако источники не указывают конкретную версию, требования к оборудованию, стоимость лицензии или гарантированный прирост производительности. Поэтому командам разумнее сначала проверить потоковую загрузку и качество изображения на характерном фрагменте, а не преобразовывать сразу весь проект. В частности, в упрощённых mesh следует проверять проёмы дверей и окон и результат отображения материалов; также нужно отдельно уточнить используемую конфигурацию Unreal Engine и условия лицензирования.
Частые вопросы
Как включить Unreal Engine World Partition?
World Partition по умолчанию включён в шаблоне Open World Level. Существующие Level можно преобразовать через меню Tools > Convert Level или с помощью World Partition Convert Commandlet.
Как создать HLOD Layer в Unreal Engine?
В Content Drawer выберите + Add > Miscellaneous > HLOD Layer, чтобы создать asset. Затем выберите один из типов: Instancing, Merged Mesh или Simplified Mesh.
Какие условия нужны для генерации HLOD?
Actor’ы должны быть назначены HLOD Layer, а для Mobility должно быть установлено значение Static. Генерацию можно запустить через меню Build > Build HLODs или с помощью commandlet WorldPartitionHLODsBuilder.



