World Partition이란

World Partition은 Unreal Engine 5에서 새롭게 도입된 기능으로, 대규모 월드를 자동으로 타일(Grid) 단위로 나누어 관리하고 스트리밍할 수 있게 해주는 시스템이다. 기존의 Level Streaming보다 자동화되어 있으며, 효율적이고 협업에 용이한 구조를 제공한다.

기존 Level Streaming과의 차이점

항목Level StreamingWorld Partition
레벨 분할 방식수동으로 서브 레벨 생성 및 스트리밍 관리자동으로 셀(Grid) 단위 분할
스트리밍 제어수동 (Streaming Volume, Blueprint 등)자동 (플레이어 위치 기반 거리 계산)
협업 편의성하나의 서브 레벨에 다수 액터 포함 → 충돌 발생 가능액터 단위 파일 저장 → Git 충돌 감소
레벨 파일 관리.umap 단위 레벨 중심액터별 개별 파일로 관리 (One File Per Actor)

주요 개념

  • 자동 타일 분할: 월드를 셀 단위로 자동 나누어 저장하고 로드/언로드를 자동화한다.
  • 스트리밍 그리드(Runtime Grid): 플레이어 혹은 카메라 위치를 기준으로 주변 셀만 활성화하고 나머지는 언로드한다.
  • One File Per Actor: 각 액터가 별도 파일로 저장되어 협업 시 충돌을 줄일 수 있다.
  • Data Layer: 같은 위치라도 조건(퀘스트 진행 상황, 시간대 등)에 따라 다른 액터 구성을 로딩할 수 있게 해준다.
  • HLOD (Hierarchical LOD): 멀리 있는 타일은 저해상도 버전으로 렌더링하여 퍼포먼스를 확보할 수 있다.

작동 방식

  1. 하나의 Persistent World를 만들면 자동으로 그리드가 생성된다.
  2. 각 셀에 포함된 액터들은 자동으로 배치되고 파일로 분리된다.
  3. 플레이어가 이동하면 해당 위치를 기준으로 가까운 셀만 스트리밍 로딩된다.
  4. 멀리 있는 셀은 자동으로 언로드되어 메모리 최적화를 돕는다.

Data Layer와의 통합

World Partition은 Data Layer와 함께 사용할 수 있다. 예를 들어:

  • 같은 위치에 낮과 밤의 액터를 각각 배치해두고, Data Layer를 통해 조건에 맞는 쪽만 활성화할 수 있다.
  • 퀘스트 시작 전/후에 다른 월드 상태를 표현할 수 있다.
  • 시네마틱용 세트 구성을 기존 월드 위에 겹쳐 구성하고 선택적으로 활성화할 수 있다.

HLOD와의 통합

멀리 있는 지역은 로딩하지 않고도 시각적 정보만 전달하면 되기 때문에, HLOD 시스템을 사용하면 타일 단위로 저해상도 대체 메시를 렌더링할 수 있다.
이로써 GPU/CPU 부하를 줄이면서도 월드 전체를 자연스럽게 표현할 수 있다.

장점 요약

항목설명
자동화기존 Level Streaming 대비 수동 작업이 거의 없음
대규모 맵 관리타일 기반으로 나뉘기 때문에 수십km의 맵도 관리 가능
협업 효율액터 단위 저장으로 Git 병합 충돌 위험이 적음
최적화불필요한 셀은 자동 언로드되므로 메모리 효율적
스토리/퀘스트 대응Data Layer로 다양한 상황에 따라 월드 구성이 가능

단점 및 고려 사항

  • 레벨 구조가 자동 분할되므로 구조 파악이 어려울 수 있다.
  • 수작업으로 제어하고 싶은 경우 유연성이 부족하다고 느껴질 수 있다.
  • 모든 프로젝트에 적합한 것은 아니며, 작은 레벨 기반 구조에서는 오히려 불필요할 수 있다.

정리

World Partition은 대규모 오픈 월드를 효율적으로 만들고 유지할 수 있는 강력한 도구이다.
자동화된 스트리밍과 타일 관리, 액터 단위 저장 구조 덕분에 협업과 최적화 측면에서 많은 이점을 제공한다.
Data Layer, HLOD, Runtime Grid와 함께 사용하면 다양한 상황에 유연하게 대응할 수 있다.