On this page
article
World Partition
World Partition이란
World Partition은 Unreal Engine 5에서 새롭게 도입된 기능으로, 대규모 월드를 자동으로 타일(Grid) 단위로 나누어 관리하고 스트리밍할 수 있게 해주는 시스템이다. 기존의 Level Streaming보다 자동화되어 있으며, 효율적이고 협업에 용이한 구조를 제공한다.
기존 Level Streaming과의 차이점
항목 | Level Streaming | World Partition |
---|---|---|
레벨 분할 방식 | 수동으로 서브 레벨 생성 및 스트리밍 관리 | 자동으로 셀(Grid) 단위 분할 |
스트리밍 제어 | 수동 (Streaming Volume, Blueprint 등) | 자동 (플레이어 위치 기반 거리 계산) |
협업 편의성 | 하나의 서브 레벨에 다수 액터 포함 → 충돌 발생 가능 | 액터 단위 파일 저장 → Git 충돌 감소 |
레벨 파일 관리 | .umap 단위 레벨 중심 | 액터별 개별 파일로 관리 (One File Per Actor) |
주요 개념
- 자동 타일 분할: 월드를 셀 단위로 자동 나누어 저장하고 로드/언로드를 자동화한다.
- 스트리밍 그리드(Runtime Grid): 플레이어 혹은 카메라 위치를 기준으로 주변 셀만 활성화하고 나머지는 언로드한다.
- One File Per Actor: 각 액터가 별도 파일로 저장되어 협업 시 충돌을 줄일 수 있다.
- Data Layer: 같은 위치라도 조건(퀘스트 진행 상황, 시간대 등)에 따라 다른 액터 구성을 로딩할 수 있게 해준다.
- HLOD (Hierarchical LOD): 멀리 있는 타일은 저해상도 버전으로 렌더링하여 퍼포먼스를 확보할 수 있다.
작동 방식
- 하나의 Persistent World를 만들면 자동으로 그리드가 생성된다.
- 각 셀에 포함된 액터들은 자동으로 배치되고 파일로 분리된다.
- 플레이어가 이동하면 해당 위치를 기준으로 가까운 셀만 스트리밍 로딩된다.
- 멀리 있는 셀은 자동으로 언로드되어 메모리 최적화를 돕는다.
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와 함께 사용하면 다양한 상황에 유연하게 대응할 수 있다.