레벨 요구 사항
월드 파티션(World Partition) 레벨에서는 메시 파티션(Mesh Partition)을 사용해야 합니다. 새 레벨을 생성할 때는 반드시 오픈 월드(Open World) 레벨을 선택해야 합니다.
메시 파티션 액터 생성
메시 파티션 액터의 베이스를 생성할 때는 3가지 옵션 중 하나를 사용할 수 있습니다.
직사각형 생성
하이트맵 임포트
메시 변환
직사각형 생성
직사각형 생성(Create Rectangle) 툴은 평면 그리드를 메시 파티션의 베이스로 설정하며, 기존 랜드스케이프 생성 방식과 가장 유사합니다.
| 세팅 | 설명 |
|---|---|
| 메시(Mesh) | |
크기(Size) | 디폴트 유닛(cm)의 크기입니다. |
해상도(Resolution) | 각 XY 축에 생성된 쿼드 수입니다. |
| 섹션(Sections) | |
생성(Generation) | 자동(Automatic)(최대 트라이앵글 기반) 명시적(Explicit)(레이아웃 및 해상도 기반) |
최대 트라이앵글(Max Triangles) | 섹션별로 허용되는 최대 트라이앵글 수입니다. 임포트된 메시를 관리 가능한 섹션으로 자동 분할하는 작업을 제어합니다. 나중에 '분할(Split)' 및 '병합(Merge)' 툴을 사용하여 원하는 대로 이러한 섹션을 수동으로 병합 및 분할할 수 있습니다. 이 옵션은 '섹션'의 '생성'이 '자동'으로 설정된 경우에만 사용할 수 있습니다. |
레이아웃(Layout) | X-Y축의 섹션 수를 정의합니다. |
해상도(Resolution) | 각 섹션에 대한 특정 해상도(X-Y 축의 쿼드 수)를 정의합니다. |
저장 및 언로드(Save and Unload) | 활성화한 경우, 생성된 베이스 섹션을 생성될 때 월드 파티션에서 자동으로 언로드합니다. 이는 한 번에 모두 로드하기 어려운 매우 큰 메시 파티션을 생성할 때 유용합니다. |
| 추가(Add) | |
기존 메시 파티션(Existing Mesh Partition) | 새로운 직사각형 그리드를 새로 생성하는 대신 기존 메시 파티션 액터에 추가할 수 있는 옵션을 제공합니다. |
새 메시 파티션 정의(New Mesh Partition Definition) | 새로 생성된 메시 파티션에 할당할 메시 파티션 정의를 선택합니다. |
하이트맵 임포트
하이트맵 임포트(Import Heightmap) 툴을 사용하면 선택된 하이트맵에 따라 변형된 그리드를 메시 파티션 베이스로 생성할 수 있습니다.
| 세팅 | 설명 |
|---|---|
| 하이트맵(Heightmap) | |
파일명(Filename) | 원하는 하이트맵 파일을 탐색합니다. |
| 메시(Mesh) | |
해상도(Resolution) | 각 XY 축에 생성된 쿼드 수입니다. |
크기(Size) | 디폴트 유닛(cm)의 크기입니다. |
메시 변환
메시 변환(Convert Mesh)을 사용하면 스태틱 메시 액터를 메시 파티션 액터로 변환하고 베이스 섹션으로 분할할 수 있습니다.
| 세팅 | 설명 |
|---|---|
| 분할 | |
면별 섹션 수(Number Of Sections Per Side) | 메시가 몇 개의 섹션으로 분할되는지 제어합니다. 예를 들어 값이 3이면 그리드를 9개(3x3) 섹션으로 분할합니다. |
| 추가(Add) | |
기존 메시 파티션(Existing Mesh Partition) | 선택한 경우, 변환 오퍼레이션이 새 파티션을 생성하는 대신 기존 메시 파티션에 새 메시를 추가합니다. |
새 메시 파티션 정의(New Mesh Partition Definition) | 새로 생성된 메시 파티션에 할당할 메시 파티션 정의를 선택합니다. |
메시 파티션 정의 할당
메시 파티션 정의 문서에 설명된 대로 정의에는 메시 파티션 액터에 대한 중요한 환경설정 세팅이 포함됩니다. 액터에 정의를 할당하려면 다음 단계를 따릅니다.
레벨에서 메시 파티션 액터(Mesh Partition Actor)를 선택합니다.
디테일(Details) 패널에서 메시 파티션 정의(Mesh Partition Definition) 세팅을 찾은 다음 콘텐츠 브라우저에서 'MPD_<name>' 에셋을 할당합니다.
메시 터레인 모디파이어 사용하기
이제 베이스 메시 파티션 액터가 있으므로 월드 셰이핑을 시작할 수 있습니다. 에디터 툴바에서 메시 터레인 모드(Mesh Terrain Mode)를 연 다음 모디파이어(Modifiers) 탭으로 이동합니다. 사용할 수 있는 다양한 모디파이어가 표시됩니다. 제공하려는 입력 타입에 따라 다른 모디파이어를 선택할 수 있습니다. 대부분의 모디파이어는 입력을 기반으로 터레인의 버텍스를 이동합니다.
텍스처 모디파이어는 텍스처의 값을 사용하여 터레인을 표시합니다.
스플라인, 노이즈, 스컬프팅 및 메시도 다양한 입력을 사용하여 터레인을 표시합니다.
터레인의 토폴로지를 변경하는 추가 모디파이어도 있으며, 이러한 모디파이어는 터레인을 리메시하거나 서브디바이드하여 더 세밀한 디테일을 표현할 수 있도록 추가적인 해상도를 제공합니다.
부울 모디파이어는 메시의 섹션을 더하거나 빼고 소스의 트라이앵글을 병합합니다.
다양한 방법을 다양한 방식으로 결합하여 다양한 터레인 구조를 구현하고 토폴로지를 최적화할 수 있습니다. 모디파이어는 툴바에서 드래그 앤 드롭으로 추가됩니다.
모디파이어 기본 파라미터
파라미터 | 설명 |
영향받은 메시 파티션(Affected Mesh Partition) | 영향받은 메시 터레인은 일반적으로 자동으로 설정되지만, 모디파이어를 연결 해제하거나 다른 메시 터레인에 다시 할당하려는 경우에는 조정할 수 있습니다. |
우선순위 레이어(Priority Layer) | 우선순위 레이어는 빌드 순서에 영향을 미치는 기본 레이어입니다. 이 레이어는 메시 파티션 정의에서 정의됩니다. |
레이어 하위 우선순위(Layer Sub-Priority) | 필요한 경우 하위 우선순위를 정의할 수 있습니다. 예를 들어 두 개의 모디파이어가 특정 레이어에 존재해야 하지만 하나가 다른 하나 이후에 빌드되어야 하는 경우, 값을 더 높은 숫자로 설정할 수 있습니다. |
투영 평면(Projection Plane) | 투영 평면은 모디파이어 투영의 기본 평면 크기와 방향을 나타냅니다. |
로컬 바운드(Local Bounds) | 모디파이어 컴포넌트의 로컬 바운드를 볼륨처럼 노란색으로 표시합니다. |
월드 바운드(World Bounds) | 월드 바운드는 컴포넌트의 완전한 월드 스페이스 바운드를 표시하며, 이는 특정 모디파이어에 대해 평가되는 영역을 확인하는 데 유용합니다. |
에디터에서 비활성화됨(Disabled in Editor) | 에디터에서 모디파이어를 비활성화하면 현재 세션에서 모디파이어가 꺼집니다. 이는 빌드에서 활성화됩니다. |
빌드에서 비활성화됨(Disabled in Editor) | 에디터와 빌드 모두에서 모디파이어를 비활성화합니다. |
베이스 성장(Base Growth) | 메시 파티션 빌더가 모디파이어를 빌드할 때, 처음에는 바운딩 박스가 해당 섹션에 기여하는 원본 베이스 바운드('베이스')와 오버랩되는 모디파이어만 고려합니다. 베이스 성장 기능을 사용하면 모디파이어가 원본 베이스 바운딩 박스를 지정된 방향으로 개념적으로 '성장'시킬 수 있습니다. 이렇게 하면 다음 모디파이어가 업데이트된 베이스 바운드와 교차할 수 있습니다. |
커버리지 및 규모
'모디파이어' 세팅과 마찬가지로 모디파이어의 규모와 커버리지 영역을 정의하는 일반적인 커버리지 값 세트가 있습니다. 모디파이어는 기능에 따라 약간 다른 커버리지 옵션을 가질 수 있습니다.
웨이트 채널 추가하기
대부분의 모디파이어에는 웨이트 채널에 데이터를 쓸 수 있는 추가 옵션이 있습니다. 머티리얼 구성에서 메시 파티션 정의에 정의된 웨이트 채널을 사용하여 텍스처 세트, 기타 렌더링 어트리뷰트를 블렌딩하거나 PCG에서 사용할 수 있습니다.
예를 들어 여기서는 패치 모디파이어가 이 특정 메시 파티션 정의에 정의된 자갈 웨이트 채널에 쓰고, 메시 파티션 머티리얼이 이를 사용하여 터레인에 자갈 텍스처를 적용하는 것을 보여 줍니다.
우선순위 조정하기
터레인을 제작할 때는 빌드 우선순위를 기억하는 것이 중요합니다. 다양한 모디파이어를 레이어링하는 기능을 통해 변경사항에 대한 유연성을 유지하면서 복잡한 터레인 개발을 수행할 수 있습니다. 메시 파티션 정의는 원하는 모디파이어 할당 순서를 정의합니다. 우선순위 레이어 외에 하위 우선순위도 설정할 수 있습니다. 하위 우선순위를 사용하면 특정 레이어에 설정된 모든 모디파이어의 빌드 순서를 제어할 수 있습니다.
빌드 우선순위 및 레이어를 이해하면 월드가 빌드되는 방식을 제어하여 개발 프로세스를 향상할 수 있습니다. 즉, 더 큰 구조적 변경사항에서 복잡한 로컬 디테일을 다른 레이어에 숨길 수 있습니다.
우선순위 레이어를 이해하기 위해 첫 번째 우선순위 레이어에 할당된 계란 모양의 부울 모디파이어를 준비했습니다. 그런 다음 언리얼 엔진 로고를 사용하여 텍스처 모디파이어를 두 번째 우선순위 레이어에 할당했습니다. 순서가 중요합니다. 이 순서를 따르지 않으면 텍스처 모디파이어가 영향을 미칠 메시 파티션 지오메트리를 갖지 못하게 됩니다.
메시 해상도 제어하기
메시 터레인은 균등한 해상도로 제한되지 않습니다. 메시 터레인을 구성할 때 기억해야 할 두 가지 주요 개념이 있습니다.
첫 번째는 섹션의 수입니다. 일반적으로 섹션이 너무 크지 않도록 하는 것이 좋습니다. 섹션이 크면 메시 터레인 빌더가 작은 변경사항이라도 전체 섹션을 다시 계산하기 때문에 모디파이어 변경사항이 더 큰 영향을 미칠 수 있습니다.
두 번째는 섹션의 해상도입니다. 메시 터레인을 생성하거나 메시 터레인으로 변환할 때 정의하는 해상도가 작업의 베이스 해상도입니다. 이 해상도는 수정할 수 있으며, 해상도가 균등하게 변경될 필요는 없습니다. 즉, 필요한 관심 지점마다 로컬로 해상도를 손쉽게 변경할 수 있습니다.
해상도는 원하는 경우 베이스 메시에서 직접 변경할 수 있고, 보다 흔한 방식인 모디파이어를 통한 변경 등 여러 가지 방법으로 변경할 수 있습니다.
리메시 모디파이어 또는 스플라인 리메시 모디파이어를 사용하여 로컬 해상도를 제어할 수 있습니다. 이 두 모디파이어는 리메시 모드와 테셀레이트 모드 간에 전환할 수 있는 추가 기능을 제공합니다. 모디파이어로 해상도를 수정하는 것 외에도 편집 탭의 섹션 병합 툴 또는 분할 툴을 사용하여 베이스 섹션의 수를 조정할 수 있습니다.
리메시 vs. 테셀레이션
리메시 모디파이어는 '리메시(Remesh)' 모드 또는 '테셀레이트(Tesselate)' 모드에서 사용할 수 있습니다.
리메시는 새로운 균등 트라이앵글을 생성하고, 테셀레이트는 기존 트라이앵글을 서브디비전합니다.
세팅에 따라 다르지만, 대부분의 경우 테셀레이트가 더 빠르고 리메시는 더 느립니다.
리메시
'리메시'는 새로운 트라이앵글을 균등하게 생성하거나 밀도 마스크를 사용하는 경우 불균등하게 생성합니다. 타깃 에지 길이(Target Edge Length)는 '리메시' 모드에서 조정하는 메인 파라미터입니다. 리메시 밀도를 제어하기 위해 웨이트 채널을 사용할 수 있는 추가 옵션도 있습니다.
테셀레이트
텍스처 모디파이어
메시 해상도를 제어하는 또 다른 방법은 어댑티브 테셀레이션(Adaptative Tessellation) 옵션이 있는 텍스처 모디파이어를 사용하는 것입니다.
스컬프팅 및 페인팅
스컬프트 모디파이어를 사용하면 메시 파티션을 스컬프팅 및 페인팅할 수 있습니다.
스컬프트 모디파이어를 선택하면 '스컬프트(Sculpt)' 및 '페인트(Paint)' 탭에 액세스할 수 있습니다.
스컬프트 모디파이어는 모디파이어 자체 내에 로컬 메시 레이어를 지원하므로, 이를 사용하여 작업을 정리할 수 있습니다.
렌더링 머티리얼 모드
'스컬프트' 및 '페인트' 툴에서 다양한 머티리얼 모드를 사용할 수 있습니다.
워터 바디 툴 사용하기
메시 터레인은 워터 시스템과 호환되지만, 액터에 메시 파티션 컴포넌트를 추가하여 빠른 구성을 해야 합니다.
레이크 및 리버
WaterBodyLake 또는 WaterBodyRiver 액터를 사용할 때는 해당 LakeModifier 또는 RiverModifier를 추가한 다음 영향을 받는 메시 파티션을 할당하고 우선순위 레이어를 설정하여 모디파이어 컴포넌트를 환경설정합니다.
워터 바디 테라포밍
워터 바디 컴포넌트에서 '터레인' 섹션을 찾아 레이크와 리버의 테라포밍 이펙트를 환경설정합니다.
워터 랜드스케이프 통합의 터레인 조각 기능은 아직 일부만 번역되어 있습니다.
웨이트 채널
워터 바디 툴은 필요한 경우 머티리얼 또는 기타 이펙트를 적용하기 위해 메시 파티션 웨이트 채널에도 영향을 미칠 수 있습니다.
워터 바디 컴포넌트를 선택하면 특정 웨이트 채널을 추가할 수 있는 레이어 웨이트맵 세팅(Layer Weightmap Settings) 섹션이 표시됩니다. 웨이트 채널이 렌더링되려면 메시 파티션 정의에 존재해야 합니다.
아일랜드
메시 파티션에는 일반 아일랜드 워터 바디 툴이 필요하지 않습니다. 아일랜드는 워터 자체에는 영향을 미치지 않고 터레인에만 영향을 미치므로, 대신 일반 스플라인 모디파이어로 대체할 수 있습니다.
다음은 구성 방법의 예시입니다.
워터 우선순위 레이어(이 특정 메시 파티션 정의에 정의됨)에서 레이크 워터 바디를 하위 우선순위 1로 설정합니다.
아일랜드 셰이핑을 위해 일반 스플라인 모디파이어를 추가하고 동일한 워터 우선순위 레이어에서 하위 우선순위를 2로 설정합니다.
오션
오션 워터 바디 툴에는 특별한 구성이 필요하지 않으며, 테라포밍에 영향을 미칠 필요가 없으므로 메시 터레인 모디파이어도 필요하지 않습니다. 오션 스플라인은 터레인 아래에 있는 오션 워터를 잘라내는 데에만 사용됩니다.
터레인 구멍 생성
터레인에 구멍을 만들려면 트림(Trim)으로 설정된 부울(Boolean) 모디파이어를 사용할 수 있습니다.
다음 단계를 따릅니다.
부울 모디파이어를 메시 터레인에 드래그 앤 드롭합니다.
메시 소스 모드(Mesh Source Mode)를 스태틱 메시(StaticMesh)로 설정합니다.
콘텐츠 브라우저에서 스태틱 메시(예: EditorSphere)를 선택합니다.
부울 연산(Boolean Op)을 트림(Trim)으로 설정합니다.
아래 이미지와 같이 들쭉날쭉한 트라이앵글이 표시되는 것은 이러한 트라이앵글이 모디파이어 바운드 내에 완전히 포함되지 않았기 때문입니다.
이 문제를 해결하려면 오퍼레이터 바운드 확장(Expand Operator Bounds) 세팅의 값을 늘립니다. 이 예시와 같은 수직 표면의 경우에는 세로로 길게 스트레칭된 트라이앵글이 문제가 되기 때문에 Z축만 늘려도 충분합니다.
블루프린트 및 메시 터레인
블루프린트를 사용하여 메시 터레인에서 작업할 수 있는 다양한 툴을 빌드할 수 있습니다.
위 예시는 스플라인과 불린 모디파이어를 사용한 다이내믹 메시 블루프린트입니다. 블루프린트 이벤트 그래프에서 스플라인을 사용하여 다이내믹 메시를 생성하고, 이 다이내믹 메시를 부울 모디파이어가 사용합니다.
이를 사용하여 터널 또는 아치를 만들 수 있습니다. 예를 들어 다음과 같습니다.