[언리얼엔진5] 월드 파티션

    월드 파티션은 언리얼 엔진 5로 넘어오면서 대규모 월드를 관리하기 위해 언리얼 엔진 4에서 사용되었던 월드 컴포지션을 대체하는 시스템이다. 월드 컴포지션의 경우 레벨안에 서브레벨을 두어 관리하는 방식이였다면, 월드 파티션은 단일 퍼시스턴트 레벨에 월드를 저장하여 스트리밍 소스와 셀의 거리에 따라 로드, 언로드를 조절하는 시스템이다.

    월드 파티션은 다음 4가지 큰 특징이 있다.

    • 액터당 한개의 파일 (One File per Actor)
    • 월드 파티션 - 데이터 레이어(Data Layers)
    • 레벨 인스턴싱 (Level Instancing)
    • 월드 파티션 - HLOD (Hierarchical Levels of Detail)

    월드 파티션 활성화

    월드 파티션을 활성화 하기 위해서는 3가지 방법이 있다.

    • 게임 카테고리에 있는 템플릿에서 새 프로젝트 생성
      • Games 카테고리에 있는 템플릿들은 월드 파티션이 활성화 되어있다.

    • 오픈월드 템플릿을 사용하여 새 레벨 생성
      • 새 레벨을 생성할때 Empty OpenWorld나 OpenWorld 유형을 선택해서 생성하면 된다.

    • 월드 파티션을 사용하도록 기존 레벨을 변환
      • 커멘드렛을 사용하여 기존 레벨을 월드 파티션이 사용하도록 변환할 수 있다.

    월드 파티션 사용

    월드 파티션의 액터

    액터는 월드 어디든 추가될 수 있고, 디테일 패널의 월드 파티션 섹션에 있는 Is Spatially Loaded 세팅에 따라 그리드 셀에 자동으로 할당 된다.

    • Runtime Grid = 이 액터가 배치되는 파티션 그리드를 결정, None으로 지정하면 파티션 시스템이 그리드를 선택
    • Is Spatially Loaded = 데이터 레이어에 할당된 경우 스트리밍 거리에 따라 로드될지 여부

    액터당 한개의 파일 특징으로 액터 개별 파일에 저장되기 때문에 레벨파일을 체크아웃 할 필요가 없다. 자세한 내용은 액터당 한개의 파일 문서를 참조

    스트리밍 소스

    런타임 시 그리드 내의 그리드 셀 스트리밍은 두 가지 요소에 의해 결정된다.

    • 스트리밍 소스
    • 런타임 그리드 설정

    스트리밍 소스는 월드의 위치를 정의하고 주변 셀 로드를 조절하는 구성 요소이다. 플레이어 컨트롤러는 스트리밍 소스이며 World Partition Streaming Source 컴포넌트를 사용하여 다른 스트리밍 소스를 월드에 추가할 수 있다. 예를 들어 스트리밍 소스는 플레이어가 순간 이동 하는 위치에서 활성화되어 셀을 미리 로드할 수 있다.

    런타임 그리드 설정

    런타임 그리드 설정은 World Settings 패널의 WorldPartition Setup 섹션에 있다. 2D 런타임 해시 그리드가 기본적으로 제공된다. 둘 이상의 그리드를 사용하면 성능에 좋지 않다.

    • Grid Name = 런타임 그리드의 이름
    • Cell Size = 스트리밍 레벨을 생성하는데 사용되는 그리드 셀의 크기
    • Loading Range = 셀이 로드되는 스트리밍 소스의 범위
    • Block on Slow Streming = 그리드 셀이 빠르게 로드되지 않느 상황에서 로드를 차단
    • Priority = 스트리밍 소스의 우선순위

    HLOD 생성

    HLOD는 빌드 메뉴의 월드 파티션 섹션에 있는 빌드 HLOD 옵션을 사용하거나 월드 파티션 HLOD 빌더(World Partition HLODs Builder)커멘드렛을 사용하여 생성할 수 있다. 커멘드렛을 실행하면 HLOD 레이어에서 지정한 세팅에 따라 월드 파티션 셀의 HLOD 액터를 생성한다. 자세한 내용은 HLOD 문서를 참조

    요약

    월드 파티션은 언리얼 엔진 4에서 5로 넘어오면서 추가된 대규모 월드를 위한 시스템이다. 월드 컴포지션에서는 스트리밍 로드 범위를 레이어 단위로 설정햇다면, 월드 파티션에서는 런타임 그리드 설정에서 그리드 단위로 설정 할 수 있다.

    문서

    https://docs.unrealengine.com/5.0/ko/world-partition-in-unreal-engine/

    반응형

    댓글

    Designed by JB FACTORY