# Vertical Partition — практическая инструкция > Пошаговое «что нажимать». Архитектура и детали — в [README.md](README.md). Плагин берёт **готовую** вертикальную карту (Only Up / Only Climb), режет её на **Z-ячейки**, печёт офлайн **HLOD-прокси** и в рантайме грузит ближние ячейки целиком, дальние показывает как прокси, совсем дальние выгружает. --- ## 0. Один раз: включить плагин Плагин `EnabledByDefault` — подхватывается сам. Если нет: `Edit → Plugins → Vertical Partition → Enabled`, перезапустить редактор. После C++-правок нужна полная пересборка (новые модули в редактор «на лету» не подгружаются). --- ## 1. Поставить том вокруг трассы 1. В уровне: **Place Actors → ищи `Vertical Partition Volume`** → перетащи на сцену. 2. Масштабируй **Box** так, чтобы он охватил **всю** играбельную спираль (низ → верх). Бокс рисуется голубым; коллизии у него нет. ## 2. Настроить (в деталях тома, секция `Vertical Partition → Settings`) Минимум, что нужно тронуть: - **Cell Height** — высота одной ячейки (см). Ориентир: 1–2 «этажа» трассы. Например `5000`. - **Full/HLOD/Unload ranges** (категория `Streaming`) — сколько ячеек вокруг игрока держать: - `Full Load Cells Below/Above` — целиком (обычно 1/1). - `HLOD Load Cells Below/Above` — прокси (например 4/5). - `Unload Cells Below/Above` — дальше выгрузка. - Остальное можно оставить по умолчанию. > **Важно про LI:** если трасса собрана из **Level Instance** — они должны быть > **ЗАГРУЖЕНЫ** в редакторе (не свёрнуты) перед сборкой. Незагруженный LI пропустится > с варнингом «load it and rebuild». ## 3. Анализ (без записи) Кнопка **`1 - Analyze → Analyze Current Level`**. Смотри лог (Output Log, фильтр `LogVerticalPartition`): сколько акторов внутри тома, сколько ячеек, сколько ушло в persistent, варнинги. Ничего не меняется на диске. ## 4. Сборка Кнопка **`2 - Build → Build Vertical Partition`**. Что произойдёт: - бэкап карты в `Saved/VerticalPartition/Backups/`; - генерится дескриптор `/Game/VPGenerated/<Карта>/VPD_<Карта>`; - пекутся HLOD-прокси в `…/Proxies/`; - в уровень добавляется актор-менеджер (`Vertical Partition Manager`); - том получает ссылку на дескриптор. ## 5. Проверить HLOD во вьюпорте (без запуска игры) - **`3 - Validate → Preview Chunks`** — цветные боксы ячеек: - 🟢 **зелёный** = у ячейки есть HLOD-прокси; - 🟠 **оранжевый** = стримится, но прокси нет (просто прячется вдали); - ⚪ **серый** = пусто / persistent. - **`3 - Validate → Spawn HLOD Preview`** — спавнит сами прокси-меши поверх оригинала. Спрячь реальный декор (или посмотри издалека), чтобы оценить силуэт. - **`3 - Validate → Clear Preview`** — убрать боксы и превью-акторы. ## 6. Запустить и проверить стриминг **Play**. Включи отладку в консоли (`~`): ``` vp.Debug 1 vp.DebugDraw 1 ; цветные боксы ячеек в 3D vp.DebugOverlay 1 ; статистика на экране ``` Цвета: 🟢 Full · 🔵 HLOD · 🟡 грузится · 🔴 ошибка · ⚪ выгружено · 🟣 forced. Полезные команды: `vp.DumpCells`, `vp.TeleportToCell 12`, `vp.ForceCellHLOD 8`, `vp.SetFullRange 2 2`, `vp.ProfileStreaming`. --- ## Что стримится, а что НЕТ (запомни) Стримится (прячется/заменяется прокси) **только чистый статик-декор**. **Никогда не трогаются** (всегда persistent, всегда видны): - свет, **Ultra Dynamic Sky**, Sky Atmosphere, SkyLight, туман, post-process; - аудио, частицы/Niagara, reflection capture, декали; - физика, реплицируемые, Movable-акторы; - свет/геймплей **внутри** Level Instance. → Поэтому небо и рабочие акторы **не пропадают**. Управляется флагом `Settings → bStreamOnlyStaticDecor` (вкл по умолчанию — не выключай без причины). --- ## Если что-то «пропало» / нужно откатить NonDestructive-режим **ничего не удаляет с диска** — прячет только в игре (PIE). - Полный сброс: удали актор `Vertical Partition Manager` из уровня + папку `/Game/VPGenerated/`, затем `Build` заново. Или кнопка **`5 - Maintenance → Clear Generated Data`**. - Восстановить карту из бэкапа: **`4 - Commit → Restore From Backup`**. --- ## Частые проблемы | Симптом | Причина / решение | |---|---| | Небо погасло / акторы исчезли в Play | Старый дескриптор до фикса. **Build заново** (теперь свет/небо/LI остаются persistent). | | Level Instance не попал в чанки | LI был свёрнут. Загрузи его в редакторе → `Build`. | | Ячейки все оранжевые (нет HLOD) | В ячейке нет статик-геометрии, либо `bGenerateHLODProxies` выключен. | | `SimplifiedProxy` ничего не печёт | Нужен включённый **ProxyLODPlugin**. Без него авто-откат на `MergedMesh` (это ок). | | Прокси смещён | Не должно — пекутся с пивотом в (0,0,0). Если видишь смещение — пересобери HLOD. | | Хочу перепечь только прокси | **`2 - Build → Rebuild HLOD`**. | --- ## Офлайн-сборка (CI / без открытия редактора) ``` UnrealEditor-Cmd.exe IHY.uproject -run=VerticalPartition -Map=/Game/Maps/MyClimbMap ``` Отчёт пишется в `Saved/VerticalPartition/<Карта>_Report.txt`.