기존에는 큰 맵을 만들려면 개발자가 직접 맵을 서브 레벨로 나눈 다음, 레벨 스트리밍 시스템을 통해 플레이어가 랜드스케이프를 이동할 때 로드, 언로드해야 했습니다. 이 방법은 다수의 사용자가 파일을 공유하고 전체 월드의 맥락을 파악하기가 어렵다는 문제를 자주 유발했습니다.
월드 파티션(World Partition)은 대규모 월드를 관리하기에 완벽한 솔루션인 자동 데이터 관리 및 거리 기반 레벨 스트리밍 시스템입니다. 기존에는 그리드 셀로 나눠진 단일 퍼시스턴트 레벨에 월드를 저장함으로써 커다란 레벨을 서브 레벨로 나눠야 했던 것과 달리, 스트리밍 소스와 셀의 거리에 따라 로드, 언로드하는 자동 스트리밍 시스템입니다.
월드 파티션은 다음 기능과 밀접한 관련이 있습니다.
- 액터당 한 개의 파일(One File Per Actor)
- 월드 파티션 - 데이터 레이어(Data Layers)
- 레벨 인스턴싱
- 월드 파티션 - HLOD(Hierarchical Levels of Detail)
월드 파티션 활성화
언리얼 엔진에서 월드 파티션을 활성화하는 방법에는 다음 세 가지가 있습니다.
- 게임 카테고리에 있는 템플릿에서 새 프로젝트 생성
- 오픈 월드 템플릿을 사용하여 새 레벨 생성
- 월드 파티션을 사용할 수 있도록 기존의 레벨 변환
게임 템플릿을 사용하여 프로젝트 생성하기
게임 카테고리에 있는 많은 프로젝트 템플릿에는 월드 파티션이 디폴트로 활성화되어 있습니다.
새 프로젝트를 생성할 때 복잡성을 줄이고 확장 가능한 솔루션을 제공하려는 경우, 월드 세팅(World Settings) 에 있는 스트리밍 활성화(Enable Streaming) 옵션을 사용하여 그리드 셀 스트리밍을 활성화하거나 비활성화할 수 있습니다.
다음 템플릿에선 월드 파티션을 사용하지만, 스트리밍 활성화 가 디폴트로 비활성화되어 있습니다.
- Blank
- First Person
- Third Person
- Top Down
- Vehicle Advanced
오픈 월드 디폴트 맵 사용하기
오픈 월드 디폴트 맵 타입은 대규모 오픈 월드 맵을 만들기 위한 시발점으로 삼을 수 있도록 설계되었으며, 다음 기능이 디폴트로 활성화되어 있습니다.
- 월드 파티션(World Partition)
- 액터당 한 개의 파일(One File Per Actor)
- 데이터 레이어(Data Layers)
- HLOD(Hierarchical Levels of Detail)
맵에는 랜드스케이프 머티리얼이 포함된 2km×2km 크기의 샘플 랜드스케이프와 야외 환경을 위한 라이팅 구성이 포함되어 있습니다. 여기에는 스카이 애트머스피어, 스카이라이트, 디렉셔널 라이트, 익스포넨셜 하이트 포그, 볼류메트릭 클라우드가 포함됩니다.
프로젝트에 오픈 월드 디폴트 맵 타입을 사용하려면 다음 단계를 따릅니다.
- 파일(File) 메뉴를 열고 새 레벨(New Level) 을 선택합니다.
- 오픈 월드(Open World) 맵 타입을 선택합니다.
- 만들기(Create) 버튼을 클릭하여 새 맵을 생성합니다.
월드 파티션을 사용할 수 있도록 기존의 레벨 변환하기
툴(Tools) > 레벨 변환(Convert Level) 메뉴 옵션을 사용하여 변환하거나 월드 파티션 변환(World Partition Convert) 커맨드릿을 사용하여 레벨에 월드 파티션을 추가할 수 있습니다.
월드 파티션 변환 커맨드릿을 사용하려면 다음 단계를 따르세요.
명령: UnrealEditor.exe QAGame -run=WorldPartitionConvertCommandlet Playground.umap -AllowCommandletRendering
기존 레벨을 월드 파티션으로 변환
-
Windows에서 명령 프롬프트 창을 엽니다.
-
프롬프트에서
UnrealEditor.exe
실행 파일이 있는 위치로 이동합니다. 위의 예시에서는c:\Builds\Home_UE5_Engine\Engine\Binaries\Win64
입니다. - 다음으로 커맨드릿을 실행할 .exe 파일의 이름인
UnrealEditor.exe
로 명령어 작성을 시작하세요. -
프로젝트 이름을 추가합니다. 이 예시에서는
QAGame
입니다. - 실행할 커맨드릿의 이름인
-run=WorldPartitionConversionCommandlet
을 추가합니다. - 변환할 맵 파일의 이름을 추가합니다. 위의 예시에서는
Playground.umap
입니다. -
-AllowCommandletRendering
실행인자를 추가하여 명령을 완료합니다. - Enter 를 누르면 월드 파티션을 사용할 수 있도록 커맨드릿이 맵을 변환합니다.
다음과 같은 실행인자도 커맨드릿에 선택적으로 사용할 수 있습니다.
실행인자 옵션 | 설명 |
---|---|
-SCCProvider=(None,Perforce...) | 사용할 소스 컨트롤 제공자를 지정합니다. 소스 컨트롤을 사용하지 않고 실행하려면 -SCCProvider=None 으로 지정합니다. |
-Verbose | 상세 로깅을 표시합니다. |
-ConversionSuffix | 변환된 맵의 이름 끝에 _WP를 추가합니다. 테스트용으로 레벨을 변환하면서 소스 레벨은 그대로 유지할 때 유용합니다. |
-DeleteSourceLevels | 변환 후 소스 레벨을 삭제합니다. |
-ReportOnly | 변환 중에 발생할 일들을 출력합니다. 실제 변환은 하지 않습니다. |
-GenerateIni | 이 맵의 디폴트 .ini 변환 파일을 생성합니다. 실제 변환은 하지 않습니다. |
-SkipStableGUIDValidation | 불안정한 액터 GUID 유효성 검사를 건너뜁니다. 불안정한 액터 GUID가 있는 레벨을 여러 번 변환할 경우 변환 결과가 달라질 수 있습니다. 레벨을 다시 저장하면 이 문제가 해결됩니다. |
-OnlyMergeSubLevels | 월드 파티션을 사용하지 않고 레벨과 서브 레벨을 액터당 한 개의 파일로 변환하고 병합합니다. 변환된 레벨은 월드 파티션 레벨에서 레벨 인스턴스로 사용할 수 있습니다. |
-FoliageTypePath=[Path] | 폴리지 타입을 해당 경로에 에셋으로 추출합니다. 레벨에 자체 폴리지 타입이 포함된 경우 이 옵션을 사용합니다. |
변환 세팅을 바꾸고 싶은 경우 커맨드릿으로 .ini
디폴트 변환 파일을 사용합니다. .ini
파일은 맵 파일과 같은 폴더에 있어야 하고, 파일명이 맵과 같지만 확장자가 .ini
여야 합니다. 예를 들어 FirstPersonExampleMap.umap
의 .ini
파일 이름은 FirstPersonExampleMap.ini
여야 합니다.
다음은 .ini
디폴트 변환 파일의 예시입니다.
[/Script/UnrealEd.WorldPartitionConvertCommandlet]
EditorHashClass=Class'/Script/Engine.WorldPartitionEditorSpatialHash
RuntimeHashClass=Class'/Script/Engine.WorldPartitionRuntimeSpatialHash
LevelsGridPlacement=(("/Game/Maps/Highrise_Audio", Bounds),("/Game/Maps/Highrise_Collisions_Temp", Bounds),("/Game/Maps/Highrise_Gameplay", Bounds),("/Game/Maps/Highrise_Lights", Bounds),("/Game/Maps/Highrise_Vista", AlwaysLoaded))
HLODLayerAssetsPath=
DefaultHLODLayerName=
[/Script/Engine.WorldPartitionEditorSpatialHash]
CellSize=51200
WorldImage=None
WorldImageTopLeftW=(X=0.000000,Y=0.000000)
WorldImageBottomRightW=(X=0.000000,Y=0.000000)
[/Script/Engine.WorldPartitionRuntimeSpatialHash]
Grids=(GridName="MainGrid",CellSize=3200,LoadingRange=25600.000000,DebugColor=(R=0.500000,G=0.500000,B=0.500000,A=1.000000))
월드 파티션 사용하기
월드 파티션 시스템은 월드를 단일 퍼시스턴트 레벨 파일에 저장하고, 환경설정 가능한 런타임 그리드를 사용해 공간을 스트리밍 가능한 그리드 셀로 다시 나눔으로써 작동합니다. 이러한 셀은 플레이어 같은 스트리밍 소스의 존재로 인해 로드, 언로드됩니다. 엔진은 특정 시간에 플레이어가 보고 상호작용하는 부분만 로드합니다.
월드 파티션 내 액터
월드를 편집할 때 액터는 어디든 추가될 수 있고, 디테일 패널의 월드 파티션(World Partition) 섹션에 있는 공간적으로 로드되었는지 여부(Is Spatially Loaded) 세팅에 따라 그리드 셀에 자동으로 할당됩니다.
옵션 | 설명 |
---|---|
런타임 그리드(Runtime Grid) | 이 액터가 배치되는 파티션 그리드를 결정합니다. 없음(None) 으로 지정한 경우 파티션 시스템이 그리드를 선택합니다. |
공간적으로 로드되었는지 여부(Is Spatially Loaded) | 액터가 공간적으로 로드되는지 여부를 결정합니다.
|
'액터당 한 개의 파일' 기능을 사용하면 액터가 개별 파일에 저장되므로, 소스 컨트롤에서 레벨 파일을 체크아웃하고 월드 내 액터를 변경할 필요가 없습니다. 이 기능으로 다른 팀원도 레벨 파일을 이용할 수 있습니다.
액터당 한 개의 파일 시스템과 언리얼 엔진의 통합 소스 컨트롤에 대한 자세한 내용은 액터당 한 개의 파일 문서를 참조하세요.
레벨에서 다른 액터를 참조하는 액터는 하나로 묶여서 동시에 로딩될 것입니다.
스트리밍 소스
런타임의 그리드 내 그리드 셀의 스트리밍은 다음 두 가지 요소로 결정됩니다.
- 스트리밍 소스(Streaming Sources)
- 런타임 그리드 세팅(Runtime Grid Settings)
첫 번째는 레벨 내 스트리밍 소스의 위치입니다.

스트리밍 소스는 월드 내 위치를 결정하고, 주변 셀의 로딩을 유발하는 컴포넌트입니다. 플레이어 컨트롤러(Player Controllers)는 스트리밍 소스입니다. 월드 파티션 스트리밍 소스(World Partition Streaming Source) 컴포넌트를 사용하여 다른 스트리밍 소스를 월드에 추가할 수 있습니다. 예를 들어 스트리밍 소스 컴포넌트는 플레이어가 텔레포트할 위치에서 활성화되어 그곳의 셀을 로딩할 수 있습니다. 그리드 셀이 로딩되면 플레이어는 그 위치로 텔레포트하고 스트리밍 소스 컴포넌트가 비활성화됩니다. 플레이어의 이전 위치에는 이제 스트리밍 소스가 없으므로, 해당 그리드 셀은 언로드됩니다.
플레이어를 스트리밍 소스로 사용하기
스트리밍 소스 활성화(Enable Streaming Source) 옵션을 선택하면 각 플레이어 컨트롤러가 월드 파티션 스트리밍 소스로 사용됩니다. 이 옵션은 디폴트로 활성화되어 있습니다.
월드 파티션 스트리밍 소스 컴포넌트 사용하기
월드 파티션 스트리밍은 월드 파티션 스트리밍 소스 컴포넌트로도 이뤄집니다.
이 컴포넌트에는 다음과 같은 옵션이 있습니다.
옵션 | 설명 |
---|---|
디폴트 시각화 툴 로딩 범위(Default Visualizer Loading Range) | 디버그 시각화 툴이 활성화되었을 때 나타나는 디버그 시각화 툴 그리드의 크기를 설정합니다. |
타깃 그리드(Target Grid) | 해당 소스의 영향을 받는 스트리밍 그리드를 설정합니다. |
디버그 컬러(Debug Color) | 디버깅에 사용되는 색상을 설정합니다. |
타깃 HLOD 레이어(Target HLOD Layer) | 스트리밍 소스의 영향을 받는 HLOD 레이어를 설정합니다. |
모양(Shapes) | 해당 스트리밍 소스의 커스텀 셰이프를 구성하는 데 사용되는 셰이프 목록을 설정합니다. 비워 두면 그리드 로딩 범위와 동일한 반경의 구체를 사용합니다. |
우선순위(Priority) | 스트리밍 소스의 우선순위를 설정합니다. 그리드 셀이 여러 스트리밍 소스와 교차하는 경우, 그리드 셀의 우선순위가 모든 스트리밍 소스에 최우선하여 적용됩니다. |
스트리밍 소스 활성화됨(Streaming Source Enabled) | 해당 컴포넌트의 활성화 여부를 결정합니다. |
타깃 상태(Target State) | 교차하는 그리드 셀의 상태(로드됨 또는 활성화)를 설정합니다. 그리드 셀이 여러 스트리밍 소스와 교차하는 경우 타깃 상태 옵션이 최우선으로 적용됩니다('활성화'가 '로드'보다 우선합니다). |
블루프린트 함수 스트리밍 소스 활성화(Enable Streaming Source) 와 스트리밍 소스 비활성화(Disable Streaming Source) 는 이 컴포넌트를 사용하여 스트리밍을 활성화 및 비활성화합니다.
컴포넌트가 교차하는 그리드 셀의 스트리밍을 완료하면 블루프린트 함수 스트리밍 완료(Is Streaming Completed) 가 'true'를 반환합니다.
런타임 그리드 세팅
런타임에 그리드 셀의 로딩 또는 언로딩 여부를 결정하는 두 번째 요소는 런타임 그리드의 세팅 자체입니다. 런타임 그리드 세팅은 월드 세팅 패널의 월드 파티션 세팅 에 있습니다.
2D 런타임 해시(2D Runtime Hash) 그리드가 디폴트로 제공됩니다. 두 가지 이상의 그리드를 사용하면 퍼포먼스에 악영향을 줄 수 있습니다.
2D 런타임 해시 그리드의 권장 설정 및 세팅에 대한 자세한 내용은 도시 샘플 프로젝트의 빅 시티(Big City) 맵을 참조하세요.
옵션 | 설명 |
---|---|
그리드 이름(Grid Name) | 런타임 그리드의 이름입니다. |
셀 크기(Cell Size) | 스트리밍 레벨을 생성하는 데 사용되는 그리드 셀의 크기를 설정합니다. 예시의 셀 크기 는 256제곱미터입니다. |
로딩 범위(Loading Range) | 셀이 로딩될 스트리밍 소스와의 거리 범위를 설정합니다. 위 이미지에서 로딩 범위 는 스트리밍 소스로부터 반경 768미터까지입니다. |
느린 스트리밍 차단(Block on Slow Streaming) | 그리드 셀의 로딩 속도가 느린 경우 로딩을 중지합니다. |
우선순위(Priority) | 스트리밍 소스의 우선순위를 설정합니다. 그리드 셀이 여러 스트리밍 소스와 교차하는 경우, 그리드 셀의 우선순위가 모든 스트리밍 소스에 최우선하여 적용됩니다. |
디버그 컬러(Debug Color) | 프리뷰 그리드(Preview Grids) 가 활성화되었을 때 그리드 선의 색을 설정합니다. |
프리뷰 그리드(Preview Grids) | 활성화하면 뷰포트에 그리드 선이 표시됩니다. |
에디터에서 영역 로드 및 언로드하기
거대한 월드 개발을 지원하기 위해, 처음에는 월드가 언로드되어 있습니다. 레벨이 열리면 에디터는 환경 배경과 매니저처럼 공간적으로 로드되었는지 여부 세팅이 False 로 표시된 액터만 로드합니다. 그러면 에디터에 맵 전체를 로드할 수 없는 거대 월드를 개발할 때 도움이 됩니다.
월드 파티션 창을 사용하여 영역 로드 및 언로드
월드 파티션(World Partition) 창에서 작업할 영역을 수동으로 선택할 수 있습니다. 메인 메뉴에서 창(Window) > 월드 파티션(World Partition) > 월드 파티션 에디터(World Partition Editor) 를 선택하여 창을 엽니다.
창에서 영역을 클릭하여 드래그합니다. 선택한 영역을 우클릭하여 컨텍스트 메뉴를 열고 선택에서 영역 로드(Load Region from Selection) 를 선택합니다.
위치 볼륨을 사용하여 영역 로드 및 언로드
위치 볼륨(Location Volumes) 을 사용하여 영역을 로드 및 언로드할 수도 있습니다.
위치 볼륨은 레벨에 배치된 에디터 전용 볼륨으로 월드 파티션 창에서 맵의 영역을 나타냅니다.
레벨에 위치 볼륨을 추가하려면 다음 단계를 따릅니다.
- 아직 열려 있지 않은 경우 액터 배치(Place Actors) 창을 엽니다.
- 위치 볼륨 을 검색합니다. 클릭하여 레벨로 드래그합니다.
- 레벨을 저장합니다.
레벨을 저장하면 월드 파티션 창에 위치 볼륨과 이름이 동일한 새 영역이 표시됩니다.
영역을 선택하고 우클릭하여 컨텍스트 메뉴를 엽니다. 선택된 영역 로드(Load Selected Region) 를 클릭하여 영역을 로드합니다. 드래그하여 선택하거나 Ctrl을 누른 채로 여러 영역을 클릭하여 몇 군데의 영역을 동시에 로드 또는 언로드할 수 있습니다.
위치 볼륨에서는 다음 세팅이 지원됩니다.
브러시 세팅(Brush Settings)
세팅 | 설명 |
---|---|
셰이딩된 볼륨 표시(Display Shaded Volume) | 셰이딩된 볼륨이 있는 브러시를 표시합니다. |
셰이딩된 볼륨 오파시티 값(Shaded Volume Opacity Value) | 0.0~1.0의 값을 사용하여 셰이딩된 볼륨의 오파시티를 설정합니다. |
브러시 세팅 섹션의 대다수 옵션이 선택한 브러시 셰이프(Brush Shape) 에 따라 달라집니다.
월드 파티션(World Partition)
세팅 | 설명 |
---|---|
로드 및 언로드(Load and Unload) | 선택한 볼륨 내의 영역을 로드 및 언로드합니다. |
월드 파티션 창용 미니맵 생성하기
빌드(Build) 메뉴의 월드 파티션 섹션에 있는 미니맵 빌드(Build Minimap) 옵션을 사용하거나 월드 파티션 미니맵 빌더(World Partition Minimap Builder) 커맨드릿을 사용하여 미니맵을 생성하면 월드 파티션 창을 더 쉽게 탐색할 수 있습니다.
이 커맨드릿을 실행하면 월드 파티션 월드의 미니맵 이미지가 생성되어 월드 파티션 창에 배치됩니다.
미니맵을 빌드했는데 월드 파티션 창에 나타나지 않으면 프로젝트에서 버추얼 텍스처 지원을 활성화해야 합니다. 버추얼 텍스처를 활성화하려면 메인 메뉴에서 편집(Edit) > 프로젝트 세팅(Project Settings) 으로 이동합니다. 그런 다음 버추얼 텍스처 지원 활성화(Enable virtual texture support) 체크박스를 선택하여 활성화합니다.
월드 파티션 창의 유용한 단축키 및 옵션
단축키 | 설명 |
---|---|
Shift + 드래그 | 현재 런타임 그리드 크기로 선택을 스냅합니다. |
더블클릭 | 카메라를 모든 뷰포트의 위치로 이동합니다. |
Shift + 더블클릭 | 클릭한 위치에서 PIE 세션을 시작합니다. |
Ctrl + 더블클릭 | 클릭한 위치 주변의 영역을 로드합니다. |
마우스 휠 버튼 + 드래그 | 클릭한 지점에서 끝 지점까지의 거리를 언리얼 유닛으로 표시합니다. |
HLOD 생성하기
HLOD는 빌드 메뉴의 월드 파티션 섹션에 있는 빌드 HLOD 옵션을 사용하거나 월드 파티션 HLOD 빌더(World Partition HLODs Builder) 커맨드릿을 사용하여 생성할 수 있습니다.
이 커맨드릿을 실행하면 HLOD 레이어에서 지정한 생성 세팅에 따라 월드 파티션 셀의 HLOD 액터를 생성합니다. 월드 파티션에서 HLOD를 사용하는 방법과 월드 파티션 HLOD 빌더 커맨드릿을 사용하는 방법에 대한 자세한 내용은 월드 파티션 - HLOD 문서를 참조하세요.
월드 파티션 월드 쿠킹
월드 파티션 맵을 쿠킹하려면 쿠킹(Cook) 커맨드릿을 사용해야 합니다.
명령: UnrealEditor.exe QAGame -run=cook -targetplatform=WindowsNoEditor -Unversioned -map=Playground
월드 파티션 맵을 쿠킹하려면:
- Windows에서 명령 프롬프트 창을 엽니다.
- 프롬프트에서
UnrealEditor.exe
실행 파일이 있는 위치로 이동합니다. - 다음으로 커맨드릿을 실행할 .exe 파일의 이름인
UnrealEditor.exe
로 명령어 작성을 시작하세요. - 프로젝트 이름을 추가합니다. 이 예시에서는
QAGame
입니다. - 실행할 커맨드릿의 이름으로
-run=cook
을 그대로 사용합니다. - 다음 실행인자를 사용하여 명령을 완료합니다.
-targetplatform=WindowsNoEditor
는 Windows 플랫폼용 프로젝트를 쿠킹합니다.-UnVersioned
는 버전 구분 없이 쿠킹된 모든 패키지를 저장합니다. 이 인수를 사용하여 저장한 패키지는 로드했을 때 현재 버전으로 취급합니다.-map=Playground
는 맵의 이름을 지정하며, 이 예시는Playground.umap
입니다.
쿠킹 커맨드릿 사용법에 대한 자세한 내용은 콘텐츠 쿠킹을 참조하세요.
블루프린트와 월드 파티션 함께 사용하기
월드 파티션 월드에서는 블루프린트 클래스와 레벨 블루프린트를 모두 지원합니다. 하지만 블루프린트 클래스가 선호되며, 레벨 블루프린트에 참조된 모든 액터는 항상 로딩됨으로 표시됩니다.
파티션된 월드 테스트하기
디버깅 및 런타임 오버라이드
런타임 중에 월드 파티션 월드를 디버깅하는 데 유용한 여러 가지 콘솔 명령이 있습니다.
콘솔 명령 | 설명 |
---|---|
wp.Runtime.ToggleDrawRuntimeHash2D | 월드 파티션 런타임 해시의 2D 디버그 표시를 토글합니다. |
wp.Runtime.ToggleDrawRuntimeHash3D | 월드 파티션 런타임 해시의 3D 디버그 표시를 토글합니다. |
wp.Runtime.ShowRuntimeSpatialHashGridLevel | 월드 파티션 런타임 해시를 보여줄 때 표시할 그리드 레벨을 선택합니다. |
wp.Runtime.ShowRuntimeSpatialHashGridLevelCount | 월드 파티션 런타임 해시를 보여줄 때 표시할 그리드 레벨 개수를 선택합니다. |
wp.Runtime.ShowRuntimeSpatialHashGridIndex | 월드 파티션 런타임 해시를 보여줄 때 특정 그리드를 보여줍니다. 무효한 인덱스는 모든 그리드를 보여줍니다. |
wp.Runtime.RuntimeSpatialHashCellToSourceAngleContributionToCellImportance | 스트리밍 소스에서 셀까지의 벡터와 소스의 포워드 벡터 사이의 각도를 셀 중요도 판단에 얼마나 반영할지 0~1 범위에서 조절합니다. 0에 가까울수록 각도가 셀 중요도에 기여하는 정도가 낮아집니다. |
wp.Runtime.OverrideRuntimeSpatialHashLoadingRange | 런타임 로딩 범위를 설정합니다. 다음 실행인자가 필요합니다.
|
wp.Runtime.MaxLoadingLevelStreamingCells | 동시에 로딩할 월드 파티션 스트리밍 셀의 수를 제한합니다. |
wp.Runtime.HLOD 0 | wp.Runtime.HLOD 를 사용하여 HLOD가 사용되지 않는 월드를 보여줍니다. |
월드 파티션 빌더 커맨드릿
월드 파티션에는 UWorldPartitionBuilderCommandlet 및 UWorldPartitionBuilder 베이스 클래스를 통해 빌더 커맨드릿 프레임워크가 추가됩니다.
이 커맨드릿은 배치 프로세스를 자동화하고 월드 파티션 레벨에서 데이터를 생성하거나 수정합니다. HLOD를 생성하거나, AI 내비게이션 데이터를 생성하거나, 다수의 액터를 다시 저장하는 등의 작업을 수행할 때도 거대 월드를 한 번에 전부 로드할 필요가 없습니다.
월드 파티션 HLOD 빌더
HLOD는 월드 파티션 HLOD 빌더(World Partition HLODs Builder) 커맨드릿을 사용하여 생성할 수 있습니다. 이 커맨드릿을 실행하면 HLOD 레이어에서 지정한 생성 세팅에 따라 월드 파티션 셀의 HLOD 액터를 생성합니다.
명령: UnrealEditor.exe "C:\Users\user.name\Documents\Unreal Projects\MyProject\MyProject.uproject" "/Game/ThirdPersonBP/Maps/OpenWorldTest" -run=WorldPartitionBuilderCommandlet -AllowCommandletRendering -builder=WorldPartitionHLODsBuilder
월드 파티션에서 HLOD를 사용하는 방법과 월드 파티션 HLOD 빌더 커맨드릿을 사용하는 방법에 대한 자세한 내용은 월드 파티션 - HLOD 문서를 참조하세요.
월드 파티션 미니맵 빌더
월드 파티션 미니맵 빌더(World Partition MiniMap Builder) 커맨드릿은 월드 파티션 에디터 창에 표시되는 미니맵을 생성하거나 업데이트하는 데 사용됩니다.
명령: UnrealEditor.exe "C:\Users\user.name\Documents\Unreal Projects\MyProject\MyProject.uproject" "/Game/ThirdPersonBP/Maps/OpenWorldTest" -run=WorldPartitionBuilderCommandlet -AllowCommandletRendering -builder=WorldPartitionMiniMapBuilder
월드 파티션 이름변경 복제 빌더
월드 파티션 이름변경 복제 빌더(World Partition Rename Duplicate Builder) 커맨드릿은 기존의 월드 파티션 레벨과 모든 관련 액터를 복제하거나 이름을 변경하는 프로세스를 자동화합니다.
명령: UnrealEditor.exe "C:\Users\user.name\Documents\Unreal Projects\MyProject\MyProject.uproject" "/Game/ThirdPersonBP/Maps/OpenWorldTest" -run=WorldPartitionBuilderCommandlet -SCCProvider=None -builder=WorldPartitionRenameDuplicateBuilder -NewPackage=/Game/ThirdPersonBP/Maps/NewPackage
이 명령을 사용하면 원본 맵은 그대로 유지한 채 NewPackage 로 명명된 OpenWorldTest 맵의 월드 파티션 레벨 사본이 생성됩니다.
사본은 생성하지 않고 월드 파티션 맵의 이름만 변경하려면 -Rename
실행인자를 추가하세요.
월드 파티션 액터 재저장 빌더
월드 파티션 액터 재저장 빌더(World Partition Resave Actors Builder) 커맨드릿은 월드 파티션 레벨의 모든 액터를 재저장하는 데 사용되며, 액터의 서브셋만 재저장할 수 있는 클래스 필터를 지원합니다.
명령: UnrealEditor.exe "C:\Users\user.name\Documents\Unreal Projects\MyProject\MyProject.uproject" "/Game/ThirdPersonBP/Maps/OpenWorldTest" -run=WorldPartitionBuilderCommandlet -SCCProvider=None -builder=WorldPartitionResaveActorsBuilder
위의 예시를 실행하면 OpenWorldTest 레벨의 모든 액터 패키지가 다시 저장됩니다.
-ActorClass
실행인자를 사용하면 특정 액터 서브셋만 다시 저장할 수 있습니다. 예를 들어 -ActorClass=StaticMeshActor
를 추가하면 지정된 레벨의 스태틱 메시 액터만 다시 저장됩니다.
월드 파티션 폴리지 빌더
월드 파티션 맵에서 폴리지 인스턴스의 인스턴스드 폴리지 그리드 크기(Instanced Foliage Grid Size)는 256미터가 디폴트입니다. 월드 파티션 폴리지 빌더(World Partition Foliage Builder) 커맨드릿은 기존 월드 파티션 레벨의 인스턴스드 폴리지 그리드 크기를 변경합니다.
명령: UnrealEditor.exe QAGame Playground.umap -run=WorldPartitionBuilderCommandlet -Builder=WorldPartitionFoliageBuilder -NewGridSize=Value
월드 파티션과 함께 폴리지 모드를 사용하는 방법에 대한 자세한 내용은 폴리지 모드 문서를 참조하세요.
월드 파티션 내비게이션 데이터 빌더
월드 파티션 내비게이션 데이터 빌더(World Partition Navigation Data Builder) 커맨드릿은 월드 파티션 레벨의 내비게이션 메시를 리빌드합니다.
명령: UnrealEditor.exe "C:\Users\user.name\Documents\Unreal Projects\MyProject\MyProject.uproject" "/Game/ThirdPersonBP/Maps/OpenWorldTest" -run=WorldPartitionBuilderCommandlet -AllowCommandletRendering -builder=WorldPartitionNavigationDataBuilder -SCCProvider=None
이 커맨드릿에는 다음 실행인자가 필요합니다.
실행인자 옵션 | 설명 |
---|---|
-SCCProvider | 사용할 소스 컨트롤 제공자를 지정합니다. 소스 컨트롤을 사용하지 않고 실행하려면 -SCCProvider=None 으로 지정합니다. |
-Verbose | 상세 로깅을 표시합니다. |
-Log | 로그를 특정 파일로 출력합니다. |
-CleanPackages | 내비게이션 데이터 패키지를 빌드하지 않고 모두 삭제합니다. |
월드 파티션 스마트 오브젝트 컬렉션 빌더
월드 파티션 스마트 오브젝트 컬렉션 빌더(World Partition Smart Object Collection Builder) 커맨드릿은 월드 파티션 레벨의 모든 스마트 오브젝트 컴포넌트에 있는 스마트 오브젝트 컬렉션을 리빌드합니다.
명령: UnrealEditor.exe "C:\Users\user.name\Documents\Unreal Projects\MyProject\MyProject.uproject" "/Game/ThirdPersonBP/Maps/OpenWorldTest" -run=WorldPartitionBuilderCommandlet -builder=WorldPartitionSmartObjectCollectionBuilder
위의 예시를 실행하면 OpenWorldTest 레벨의 모든 스마트 오브젝트 컬렉션이 리빌드됩니다. -SCCProvider
실행인자를 이 커맨드릿과 함께 사용하여 소스 제어 제공자를 지정할 수 있습니다.
월드 파티션 PCG 빌더
월드 파티션 PCG 빌더(World Partition PCG Builder) 커맨드릿은 레벨을 완전히 로드하고, 스태틱 메시 빌드와 같은 비동기 프로세스가 완료될 때까지 대기한 다음, 일치하는 PCG 컴포넌트 생성을 예약합니다. 모든 생성이 완료되면 프로세스에서 월드 파티션 레벨이 저장되고 종료됩니다.
명령줄: UnrealEditor.exe "C:\Users\user.name\Documents\Unreal Projects\MyProject\MyProject.uproject" "/Game/ThirdPersonBP/Maps/OpenWorldTest" -run=WorldPartitionBuilderCommandlet -AllowCommandletRendering -Builder=PCGWorldPartitionBuilder -IncludeGraphNames=PCG_GraphA;PCG_GraphB
콘솔 명령: pcg.BuildComponents -IncludeGraphNames=PCG_GraphA;PCG_GraphB
이 커맨드릿에는 다음 실행인자가 필요합니다.
실행인자 옵션 | 설명 |
---|---|
-IncludeGraphNames | 생성에 ; 기호로 구분되는 그래프 이름 목록을 포함합니다. 제공된 경우 시스템은 할당된 첫 번째 그래프, 두 번째 그래프 순으로 모든 PCG 컴포넌트의 생성을 예약합니다. 누락되는 경우 그래프에서 PCG 컴포넌트를 필터링하지 않습니다. |
-GenerateComponentEditingModeNormal | 편집 모드(Editing Mode)가 노멀(Normal) 로 설정된 컴포넌트를 생성합니다. 기본적으로 편집 모드가 프리뷰로 로드(Load As Preview) 인 상태로 저장된 컴포넌트만 생성됩니다. |
-GenerateComponentEditingModePreview | 편집 모드가 프리뷰(Preview) 로 설정된 컴포넌트를 생성합니다. 기본적으로 편집 모드가 프리뷰로 로드(Load As Preview) 인 상태로 저장된 컴포넌트만 생성됩니다. |
-IgnoreGenerationErrors | 오류에 관계없이 결과를 소스 컨트롤에 제출합니다(단, 오류는 계속 보고되며 작업 상태는 여전히 실패(Failed)가 됩니다). 오류가 있음에도 작업을 온라인 상태로 유지하는 데 사용할 수 있지만 주의하여 사용해야 합니다. 기본적으로 컴포넌트 생성 중에 발생하는 모든 오류는 빌더에 등록되고 빌드 작업은 실패하며, 결과는 제출되지 않습니다. |
-IncludeActorIDs | ; 기호로 구분되는 고유한 액터 ID의 목록을 포함합니다. 제공된 경우 액터가 일치하는 PCG 컴포넌트만 생성됩니다. 특히 단일 컴포넌트/액터 디버깅에 유용합니다. |
-OneComponentAtATime | 한 번에 하나의 컴포넌트 생성을 예약하고 각각의 생성이 완료될 때까지 대기한 다음 새 컴포넌트를 예약합니다. 디버깅 중에 비동기 프로세스가 서로 간섭하지 않도록 하는 데 유용합니다. |
-Unattended | 에디터 UI 초기화를 방지하고, 대신 콘솔에서 실행합니다. |
-AllowCommandletRendering | 렌더링 서브시스템을 초기화합니다. PCG에 GPU를 활용하는 몇 가지 기능이 있으므로 유용합니다. |
-AutoSubmit | 사용 가능한 경우 결과를 소스 컨트롤에 제출하려고 시도합니다. |
-AssetGatherAll | 프로젝트의 모든 에셋에 대해 전체 에셋 레지스트리를 빌드합니다. 빌더가 레벨에 참조되지 않은 에셋에 액세스해야 하는 경우 필요합니다. |