본문 바로가기
Unreal5/월드 파티션

월드 파티션 셋팅

by ftftgop3 2024. 6. 25.

월드 파티션

대규모 월드를 관리하기 위한 자동 데이터 관리 및 거리 기반 레벨 스트리밍 시스템

스트리밍 소스와 셀의 거리에 따라 로드 및 언로드 하는 자동 스트리밍 시스템

 

월드 파티션의 중요 기능 

액터 당 하나의 파일

액터 인스턴스의 데이터를 외부에 저장해서 액터 변경 시 메인 레벨을 저장 할 필요가 없다

사용자 간의 작업이 겹치는 상황을 막는다

 

월드 파티션 - 데이터 레이어

액터를 별도의 레이어로 구성 해 레이어를 로드 및 언로드 하여 월드를 구성

게임 플레이 요소 와 환경 자산을 에디터에 구분

WorldDataLayer 에서 레이어 데이터를 관리

레이어의 이름 변경 및 삭제 시 관련된 엑터에는 아무 영향이 없다

 

레벨 인스턴싱

하나의 엑터와 레벨 인스턴싱을 만들어서

복잡한 레벨을 여러 하위 레벨로 모듈화 작업 가능, 다른 레벨에서도 하위 레벨을 재사용 가능

 

계층형 레벨 디테일 ( HLOD)

레벨 내의 엑터들을 클러스트화 후 프록시 매쉬를 생성( 디테일 및 크기에 따라 프로세스 시간 달라진다)

기존의 LOD는 많은 엑터들과 거리 체크 후 렌더링

HLOD는 클러스트와 거리 체크 후 프록시 매쉬를 렌더링 하는 방식 사용

 

월드 파티션 예제

새로운 레벨 생성 오픈 월드 맵 선택 후 WorldPartition 맵 생성

창 월드 파티션 월드 파티션 에디터 활성화

 

랜드 스케이프 디테일 패널에 World Partition 

 


스트리밍 소스

런타임 시 그리드 셀의 스트리밍은 2가지 요소로 결정, 스트리밍 소스, 런타임 그리드 셋팅

 

런타임 그리드 셋팅 

셀의 크기 및 그리드 프리뷰 설정

셀의 크기에 따라서 해당 셀을 로드 하며 크기에 클 수록 한번에 큰 데이터 로드

그리드 프리뷰 활성화 시 셀 크기에 와 로딩 범위 따라서 디버그 컬러로 표시

 

스트로밍 소스  활용 및 컴포넌트 

월드 내 위치를 따라 주변 셀을 로딩하는 컴포넌트

플레이어 컨트롤러, 플레이어가 텔레포트 할 위치에 미리 셀을 로딩 가능

 

플레이어 컨트롤러에 기본적으로 스트리밍 기능 제공

고급에서 런타임 그리드를 월드 셋팅의 그리드 이름으로 변경

 

 

월드 파티션 스트리밍 소스컴포넌트 

 

위치 볼륨 생성

월드 파티션 에디터에서 영역을 설정 후 엑터 생성 시 해당 영역에 맞는 위치 볼륨 생성

위치 볼륨에 따라 로드 및 언로드 영역을 설정 및 디테일한 크기를 설정

 

 

디버그 및 런타임 오버 라이드

2D, 3D 디버그 활용 방법 작성

언리얼 엔진의 cmd에 해당 콘솔 명령 입력

wp.Runtime.ToggleDrawRuntimeHash2D 

2D로 플레이어 위치에 따라서 로드 및 언로드 되는 셀 파악

 

wp.Runtime.ToggleDrawRuntimeHash3D

3D로 표현

 

같은 명령어를 다시 입력시 해당 명령어 기능이 해제

 

 

월드 파티션  빌더 커맨드릿

기존의 프로젝트에 월드 파티션을 에디터 상에서 추가 하지 않고, 커맨드를 이용해서 기능 확장

월드 파티션 미니맵, HLOD, 

 

참고 사이트 및 영상

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/world-partition-in-unreal-engine

https://www.youtube.com/watch?v=LnoCwJBdUPM&t=1406s

 

'Unreal5 > 월드 파티션' 카테고리의 다른 글

3. 월드 파티션 구조 및 분석  (0) 2024.07.29
2. 월드 파티션 사용 및 테스트  (0) 2024.07.05