Initial commit: Vertical Partition Streaming plugin (UE 5.7)

Bounded vertical route partition / streaming for handcrafted spiral climb maps
(Only Up / Only Climb). Not World Partition, not Level Instances as core arch.

- Z-cell segmentation + optional XY subcells, editor builder + commandlet
- NonDestructive visibility backend + streaming-level backend
- Offline HLOD proxies: MergedMesh / SimplifiedProxy (ProxyLOD)
- Universal Level Instance + Packed Level Actor + HISM support (flatten+merge)
- Vertical-aware runtime streamer (full/preload/HLOD/unload, hysteresis,
  velocity prediction, fall-risk), WP-style debug viz + vp.* console
- Safe-by-default: only static decor streams; sky/lights/gameplay stay persistent

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Bonchellon
2026-06-30 17:42:41 +03:00
commit 04ad6d3f25
28 changed files with 4361 additions and 0 deletions

View File

@ -0,0 +1,32 @@
// Copyright IHY. Vertical Partition Streaming plugin.
#include "VerticalPartitionDescriptor.h"
int32 UVerticalPartitionDescriptor::FindCellIndex(const FVerticalCellId& Id) const
{
for (int32 i = 0; i < Cells.Num(); ++i)
{
if (Cells[i].CellId == Id)
{
return i;
}
}
return INDEX_NONE;
}
const FVerticalCellDescriptor* UVerticalPartitionDescriptor::FindCell(const FVerticalCellId& Id) const
{
const int32 Index = FindCellIndex(Id);
return Cells.IsValidIndex(Index) ? &Cells[Index] : nullptr;
}
bool UVerticalPartitionDescriptor::HasFullPackages() const
{
for (const FVerticalCellDescriptor& Cell : Cells)
{
if (Cell.FullCellPackage.IsValid())
{
return true;
}
}
return false;
}