월드 컴포지션(World Composition) 은 대규모 월드 관리를 간소화하기 위해 설계되었습니다. 그 목표 중 하나는 퍼시스턴트 레벨을 사용하여 스트리밍 정보를 저장하지 않도록 하는 것으로, 이 경우 레벨 디자이너 팀이 동시에 레벨 작업을 하려 할 때 병목 현상이 발생하기 때문입니다. 퍼시스턴트 레벨은 어떠한 스트리밍 정보도 저장하지 않습니다. 대신, 폴더를 스캔하여 발견된 모든 레벨을 스트리밍 레벨로 처리합니다. 각 스트리밍 레벨에는 패키지 헤더에 저장된 정보가 있으며, 월드 컴포지션은 메모리에 레벨을 로드하지 않고도 이 정보를 읽을 수 있습니다. 처음에는 퍼시스턴트 레벨을 제외한 모든 레벨이 월드 컴포지션에서 언로드됩니다. 월드의 어떤 부분이든 원할 때 수동으로 로드하거나 언로드할 수 있습니다.
월드 컴포지션은 거리 기반 레벨 스트리밍과 함께 사용될 때 월드 원점 이동 기능에 의존하므로, 엔진에 하드 코딩된 WORLD_MAX
상수 값에 국한되지 않는 월드를 만들 수 있습니다.
월드를 관리하는 월드 컴포지션은 월드 세팅(World Settings) 에서 월드 컴포지션 활성화(Enable World Composition) 를 체크하여 활성화할 수 있습니다.
또한, 월드 세팅에서 월드 원점 리베이스 활성화(Enable World Origin Rebasing) 체크를 해제하여 월드 원점 이동을 비활성화할 수도 있습니다.
월드 컴포지션을 활성화한 다음에는 프로젝트의 모든 레벨이 레벨(Levels) 창에 표시됩니다. 이 창을 열려면, 창(Windows) 메뉴를 클릭한 다음, 레벨을 선택합니다.
레벨 창에 있는 항목은 월드의 계층구조를 나타냅니다.
이름이 파란색 텍스트로 된 레벨이 현재 레벨입니다. 현재 로드된 레벨의 이름은 흰색 텍스트로 표시되며, 언로드된 레벨 이름은 회색으로 표시됩니다.
월드 컴포지션에서 레벨을 로드하려면, 레벨 이름을 더블클릭 하면 됩니다. 드래그 앤 드롭을 사용하여 개별 레벨 간의 관계를 설정할 수 있습니다. 자손 레벨에는 부모 레벨에 대한 상대 위치가 저장되므로 부모 레벨의 위치를 변경하면 그에 따라 모든 자손 레벨의 위치가 다시 계산됩니다.
레벨 창에서 레벨 이름 오른쪽에 있는 버튼으로 레벨을 잠그고, 저장하고, 각 레벨의 레벨 블루프린트(Level Blueprint) 를 열 수 있습니다.
월드 컴포지션 활성화가 켜져 있으면, 레벨 창 상단에 월드 컴포지션을 여는 버튼이 있습니다.
여기서 월드의 레이아웃을 볼 수 있습니다.
기본적으로 모든 레벨은 미분류(Uncategorized) 레이어에 할당되어 있습니다. 레이어에는 스트리밍 거리에 대한 정보가 담겨 있으므로 특정 레이어에 할당된 레벨은 해당 스트리밍 거리를 상속받습니다. 스트리밍 거리가 비활성화된 레이어에 할당된 레벨은 거리 스트리밍에서 제외되며, 대신 블루프린트를 사용하여 제어할 수 있습니다.