이번 포스트에서는 Unreal Engine의 Landscape를 이용해 섬 지형을 제작한 두 가지 실습을 정리했다.
첫 번째 작업에서는 Height Map으로 섬 형태의 지형을 불러온 뒤 Auto Material과 Water Body Custom을 적용하고, Landscape Spline을 이용해 도로와 철길을 배치했다.
두 번째 작업에서는 별도의 Basic Level에 빈 Landscape를 생성하고, Height Map을 사용하지 않은 채 Water Body와 Sculpt 도구로 섬의 형태를 직접 만들었다.
두 작업은 같은 Landscape를 이어서 수정한 과정이 아니라, 서로 다른 방식으로 섬 지형을 제작한 별개의 실습이다.
Height Map 기반 섬 지형과 도로·철길 제작
Landscape 생성: Basic Level로 시작하는 이유
시네마틱 영상을 제작할 때 촬영 범위가 제한적이라면 새 Level을 Open World로 만들 필요는 크지 않다.
Open World 기본 맵에는 World Partition, One File Per Actor, Data Layers, HLOD와 2 km × 2 km Landscape가 포함되어 있어 작은 장면에는 구성이 과할 수 있다.
World Partition은 큰 월드를 Grid Cell로 나누고, 플레이어나 별도의 Streaming Source 주변에 필요한 Cell만 자동으로 불러오는 시스템이다.
넓은 오픈 월드에는 유용하지만, 이번처럼 하나의 섬을 중심으로 촬영하는 작업에서는 Basic Level에서 필요한 요소만 추가하는 편이 단순하다.
Basic Level을 생성한 뒤 기본 Plane을 삭제하고 Landscape Mode로 이동했다.

Height Map 불러오기
Landscape Mode에서 Import from File을 선택하고 Height Map 파일을 불러왔다.

이번 실습에서는 16-bit Grayscale PNG를 사용했다.
Unreal Engine은 r8, r16, RAW 형식도 지원하지만, 16-bit 이미지는 높이 단계가 더 세밀해 완만한 경사에서 계단 현상이 나타날 가능성을 줄일 수 있다.
Height Map을 선택하면 Unreal Engine이 파일의 Heightmap Resolution을 읽어 온다.
이때 생성할 Landscape의 Component 구성을 확인하고, 최종 Overall Resolution이 원본 해상도와 대응되는지 확인해야 한다.
원본과 다른 크기로 Resample하거나 Expand하면 가장자리나 지형 비율이 달라질 수 있다.

Import 후 지형이 지평선 아래에 배치될 때가 있다.


이 상태에서 먼저 Z 위치를 맞춘 뒤 전체 Scale을 바꾸면 지형이 다시 아래로 내려가거나 수면과 어긋날 수 있다.
따라서 필요한 크기로 Scale을 조정한 뒤 Z 위치를 지평선에 맞추는 순서가 작업하기 편했다.


지형의 정면 모습만 볼 때는 높이 차이를 놓치기 쉬웠지만, 측면 View에서 확인하면 Landscape가 기준선 아래로 내려간 정도를 바로 확인할 수 있었다.
MW Landscape Auto Material 적용
Fab에서 MW Landscape Auto Material을 프로젝트에 추가하고 Landscape에 적용했다.

Material을 적용하면 높이와 경사 등의 조건에 따라 Snow, Grass, Dirt 재질이 자동으로 나뉜다.
이는 Landscape의 기본 기능이 아니라, 해당 Auto Material이 World Position과 경사 정보를 이용하도록 제작되어 있기 때문이다.

Material Instance를 열면 지형 요소별 Parameter를 조절할 수 있다.

예를 들어 더 높은 위치까지 Grass 재질을 표시하려면 3_Grass 항목의 MW_GrassMaxWorldPosition 값을 높이면 된다.


여기서 특정 수치가 모든 Landscape에 공통으로 맞는 것은 아니다.
Landscape의 Z 위치와 Scale이 달라지면 같은 World Position 값도 다른 결과를 만들기 때문에 Viewport를 보며 조절해야 한다.
Auto Material을 적용한 직후에는 복잡한 Layer Painting 없이도 산 정상의 눈, 중간 지대의 흙과 바위, 낮은 지대의 풀이 나뉘어 지형의 높이 구조가 훨씬 명확하게 보였다.
Landscape를 살리는 라이팅 방향
Directional Light가 카메라 정면에서 들어오거나 지형 위에서 거의 수직으로 내려오면 능선의 그림자가 짧아져 형태가 평평해 보일 수 있다.
측면이나 측후면에서 빛을 비추면 능선을 따라 긴 그림자가 생기고 지형의 굴곡이 더 잘 드러난다.

다만 측면광이 항상 정답인 것은 아니다.
최종 카메라 방향을 먼저 정한 뒤, 능선과 계곡이 겹치지 않고 읽히는 방향으로 Directional Light를 회전하는 것이 중요하다.
Water Body Custom 배치와 해안 표현
Edit - Plugins에서 Water Plugin을 활성화하고 Editor를 재시작했다.

이후 Level에 Water Body Custom을 배치하고 크기와 높이를 Landscape에 맞췄다.


Water Body Custom은 지정한 Static Mesh 형태를 수면으로 사용할 수 있지만, Ocean·Lake·River처럼 지형을 자동으로 깎지는 않는다.
정형화되지 않은 수영장이나 특정 형태의 수면을 만들 때 적합하다.
해안가에는 Landscape Material Instance의 2_Dirt 항목에 있는 MW_DirtMaxWorldPosition 값을 조절해 낮은 지대에 모래와 흙이 나타나도록 수정했다.


물의 높이만 맞췄을 때보다 해안선을 따라 모래 재질이 이어지도록 조절하자 지형과 수면의 경계가 훨씬 자연스럽게 보였다.
Material 기반 Grass와 Foliage Mode의 차이
Play를 실행하면 Landscape 전체에 Grass가 나타났다.

이 Grass는 Foliage Mode에서 직접 칠한 것이 아니라, Auto Material의 Landscape Grass Output과 Landscape Grass Type 설정으로 절차적으로 생성된 것이다.
따라서 Foliage를 배치하는 방식은 다음 두 가지로 나눠서 이해해야 한다.
- Foliage Mode: Brush로 직접 배치하며 개별 Instance를 선택하거나 지울 수 있음
- Material 기반 Grass: Material의 Layer와 Mask에 따라 자동 생성되며 Material Parameter나 Grass 설정으로 범위 제어
겉으로는 같은 풀처럼 보여도 생성 경로가 다르기 때문에, 도로 위의 Grass를 제거할 때 먼저 어떤 방식으로 배치됐는지 확인해야 한다.
도로 경로 만들기: Landscape Spline
Spline 전용 Edit Layer 생성
Landscape Mode에서 새 Edit Layer를 추가하고 Spline Edit Layer로 설정했다.
버전에 따라 Layer가 Landscape Edit Layer Splines와 비슷한 이름으로 표시될 수 있다.

Spline을 Base Layer와 분리하면 도로 경로를 이동하거나 삭제해도 원본 Height Map을 직접 훼손하지 않는다.

Spline Point와 Segment 생성
Spline Tool에서 Ctrl + 좌클릭으로 첫 Control Point를 만들고, 다시 Ctrl + 좌클릭을 하면 다음 Point와 이를 연결하는 Segment가 생성된다.

경로가 중간에서 끊겼다면 마지막 Control Point를 선택하고 다시 Ctrl + 좌클릭으로 이어서 연장할 수 있다.


처음 Point를 클릭해 연결하면 폐곡선 형태의 경로도 만들 수 있다.

Control Point의 주요 설정은 다음과 같다.
- Half-Width: Spline 중심에서 한쪽 가장자리까지의 폭; 값을 낮추면 도로가 좁아짐
- Side Falloff: 도로 가장자리에서 주변 지형으로 이어지는 완충 영역의 폭; 값을 높이면 더 넓고 완만하게 지형이 이어짐
- Raise Terrain: Spline보다 낮은 지형을 도로 높이까지 올림
- Lower Terrain: Spline보다 높은 지형을 도로 높이까지 내림







전체 경로를 선택하려면 Control Point나 Segment를 선택한 뒤 Ctrl + A를 사용할 수 있다.
이때 서로 연결되지 않은 별도의 Spline까지 모두 선택되는 것이 아니라, 현재 선택한 요소와 연결된 Spline만 선택된다.



Spline은 Landscape의 Heightfield를 위아래로 변형하는 방식이다.
한 X·Y 위치에 하나의 높이만 가질 수 있어 동굴이나 터널처럼 지형을 관통하는 형태를 직접 만들 수는 없다.
터널이 필요하다면 별도의 Static Mesh와 Landscape Visibility Mask를 함께 사용해야 한다.
Landscape Spline에서 삼거리 만들기
Landscape Spline에서도 분기점을 만들 수 있다.
- 분기할 기존 Segment를 Ctrl + 좌클릭 해서 Control Point 삽입
- 삽입한 Control Point 선택
- 새로운 방향의 지형을 Ctrl + 좌클릭
- 선택한 Point에서 새 Segment가 연결되며 삼거리 형태가 됨

두 개의 별도 Spline을 연결하려면 한쪽 Spline을 선택하고 다른 Spline을 Ctrl + 좌클릭한다.

Point를 많이 추가하면 세밀한 높이 조절은 쉬워지지만 곡선이 불필요하게 흔들릴 수 있다.
완만한 구간은 적은 Point로 만들고, 급커브나 경사가 바뀌는 구간에만 Point를 추가하는 편이 정리하기 좋았다.
도로용 Static Mesh 만들기
도로 Mesh의 기본 형태 - Cinema 4D
Cinema 4D에서 Polygon을 추가해 도로 Mesh를 만들었다.
이번 Mesh는 C4D의 Z축이 도로가 이어지는 방향이 되도록 제작했다.


Landscape와 완전히 겹치면 Z-Fighting이 생길 수 있으므로 도로 표면을 지형보다 조금 위에 두었다.

양쪽 가장자리에는 K~L로 선분을 추가하고, 끝부분은 지형 아래로 들어가도록 아래로 휘게 만들었다.
이렇게 하면 Spline Segment가 끝나는 지점의 절단면이 덜 드러난다.


UV가 정상적으로 펴져 있는지 확인한 뒤 FBX로 Export하고 Unreal Engine에 Import했다.

도로 Mesh를 Spline Segment에 적용
Fab에서 가져온 도로 Material을 Static Mesh에 적용했다.



Landscape Spline의 모든 Segment를 선택하고, Landscape Spline Meshes - Spline Meshes에서 +를 누르고 도로 Static Mesh를 지정했다.


처음에는 도로 방향이 Spline과 맞지 않았기 때문에 Forward Axis를 Y로 변경했다.



Forward Axis는 항상 Y로 고정하는 값이 아니다.
Import된 Mesh에서 실제로 길게 뻗는 축을 지정해야 하며, 모델링 축과 FBX 변환 결과에 따라 X나 Y가 될 수 있다.
급커브에서 도로가 각져 보이는 문제
처음 만든 도로는 진행 방향의 Polygon 분할이 부족해 급커브에서 각진 형태가 보였다.

Cinema 4D로 돌아가 도로의 진행 방향을 따라 가로 선분을 추가했다.

수정한 FBX를 기존 Static Mesh가 참조한 원본 경로에 덮어쓴 뒤, Unreal Engine에서 Static Mesh를 우클릭하고 Reimport했다.

Reimport는 파일 이름만 확인하는 것이 아니라 기존 Asset이 기억한 Source File 경로를 사용한다.
Mesh의 분할 수를 늘리자 같은 Spline 경로에서도 급커브가 더 부드럽게 휘었다.

이 과정에서 곡선 품질은 Spline Point뿐 아니라 Mesh Topology에도 크게 영향을 받는다는 점을 확인할 수 있었다.
같은 Spline에 철길 적용하기
모든 Segment를 선택한 뒤 Spline Mesh를 교체하면 같은 경로에 다른 Static Mesh를 적용할 수 있다.


철길은 침목 간격이 반복적으로 드러나기 때문에 도로보다 변형이 눈에 잘 띈다.
Spline Point 사이의 거리가 지나치게 넓으면 Segment를 따라 Mesh가 크게 늘어나 침목 간격도 넓어 보일 수 있다.

Point를 선택한 뒤 Alt를 누른 채 Drag해 Point를 복제하고, 경로와 높이를 조절했다.
철길처럼 반복 간격이 중요한 Mesh는 급커브와 경사 변화 구간에 Point를 조금 더 촘촘하게 배치하는 편이 자연스럽다.


도로와 철길 위에는 Auto Material에서 생성한 Grass가 남을 수 있다.
직접 칠한 Foliage라면 Foliage Mode에서 지울 수 있지만, Material 기반 Grass라면 도로 Layer를 Mask로 사용하거나 Auto Material의 Grass Parameter를 조절해야 한다.


여기까지는 Height Map을 불러온 Landscape에 Auto Material과 도로·철길을 추가한 첫 번째 작업이다.
이어지는 내용은 새로운 Basic Level에서 Landscape를 직접 Sculpting해 섬을 만든 두 번째 작업이다.
Landscape Sculpt와 Water Body를 이용한 섬 제작
Landscape로 지형 생성
첫 번째 실습과는 별도로 새로운 Basic Level을 만들고, 기본 Plane을 삭제한 뒤 Landscape Mode에서 평평한 Landscape를 생성했다.


이번 작업에서는 Height Map을 불러오지 않고 Sculpt 도구로 지형을 직접 만드는 방식으로 진행했다.
또한 Water Body가 Landscape를 변형할 수 있도록 Landscape 생성 시 Enable Edit Layers를 활성화했다.
Water System의 구성
Water Plugin을 활성화한 뒤 Water Body를 배치하면 버전에 따라 Water Zone과 Water Mesh 관련 Actor가 함께 생성된다.
- Water Body: Ocean·Lake·River의 위치, 형태, 깊이와 흐름을 정의
- Landscape Water Brush Manager: Water Body가 Landscape Edit Layer에 남기는 지형 Brush 정보를 관리
- Water Zone / Water Mesh Actor: Water Body의 범위를 바탕으로 화면에 필요한 수면 Tile을 생성하고 품질과 범위를 관리
- Water Material: 물의 색, 투명도, Normal과 세부 움직임을 표현
- Water Waves Asset: Ocean과 Lake에 사용할 파동 Parameter를 관리
Water Zone 자체는 수면의 모양을 정의하지 않는다.
각 Water Body의 Spline이 수면 범위를 정하고, Water Zone이 해당 영역의 Mesh Tile을 렌더링한다.

Water Body Ocean
Water Body Ocean은 닫힌 Spline의 바깥쪽으로 바다를 생성하며, 섬의 해안선을 만드는 데 사용할 수 있다.


Spline Point를 이동해 섬의 형태를 바꾸고, Alt를 누른 채 Point를 Drag해 Point를 복제할 수 있다.

Ocean Actor의 Z 위치를 바꾸면 수면 높이와 Water Brush의 지형 변형 기준이 달라진다.
이때 Landscape 전체가 이동하는 것이 아니라 물에 잠기거나 드러나는 높이 관계가 바뀌는 것으로 이해하는 편이 정확하다.


카메라를 Water Body나 Water Zone의 유효 범위 밖에 배치하면 수면 끝이 보일 수 있다.


외곽 촬영을 무조건 피하기보다 Water Zone의 Extent와 Far Distance Mesh Extent가 카메라와 지평선을 충분히 덮는지 먼저 확인한다.
Water Body Island
Water Body Island는 별도의 수면이나 완성된 섬 Mesh를 배치하는 Actor가 아니다.
닫힌 Spline 안쪽의 Landscape가 항상 수면 위에 있도록 지형을 올리는 역할을 한다.


Spline Point를 조절해 섬의 범위와 형태를 바꿀 수 있으며, 다른 Water Body가 적용된 뒤 마지막에 지형 변형이 반영된다.
Water Body Lake
Water Body Lake는 닫힌 Spline 내부에 호수를 만들고 아래쪽 Landscape를 깎는다.
Lake의 Spline Point는 같은 높이를 유지한다.


Lake를 급격하게 높이면 주변 지형과 수면 사이에 절벽처럼 끊긴 경계가 생길 수 있다.
수면 높이와 Terrain의 Channel Depth, Falloff Width를 함께 조절해 자연스럽게 이어지도록 해야 한다.

Water Body River
Water Body River는 시작점과 끝점이 있는 열린 Spline으로 강을 만든다.
Lake와 달리 Point마다 높이를 다르게 설정할 수 있다.


- River Width: Point별 강의 폭 조절; 일반적으로 상류는 좁고 하류로 갈수록 넓게 만들면 자연스러움
- Velocity: Point 사이 물의 흐름 속도와 방향 조절; 양수와 음수로 Spline을 따르는 흐름 방향을 바꿀 수 있음
- Depth: Point별 강바닥 깊이 조절










River는 Lake와 Ocean을 연결하도록 설계되어 있다.
경계가 보인다면 겹침을 무조건 줄이기보다 River의 Lake Transition Material, Ocean Transition Material, 높이와 Overlap Material Priority를 확인한다.
Sculpt 도구로 섬 지형 만들기
Water Body를 배치한 뒤 Sculpting을 하기 위해 새 Landscape Edit Layer를 생성했다.


Landscape Mode의 Sculpt 도구로 섬의 큰 형태를 잡았다.

처음부터 세부 굴곡을 만들기보다 큰 Brush로 산과 해안의 실루엣을 만든 뒤 다음 순서로 다듬었다.
- Sculpt로 섬의 큰 높낮이 구성
- Smooth로 급격하게 끊긴 경계 완화
- 작은 Brush와 낮은 Strength로 물과 맞닿는 해안선 정리
- 큰 Brush, 낮은 Strength와 Noise로 단조로운 표면에 변화 추가
- 경사면에 Erosion과 Hydro Erosion으로 침식 흔적 추가
- Landscape Auto Material 적용 및 높이 범위 보정
해안 외곽을 지나치게 낮추면 수면과 지형 사이가 날카롭게 끊기거나 Water Brush의 범위가 드러날 수 있다.
물가에서는 Brush Size와 Strength를 낮추고 조금씩 다듬는 편이 안전하다.

Erosion은 높은 곳의 흙이 낮은 곳으로 무너지는 열적 침식을 흉내 내고, Hydro Erosion은 물의 흐름으로 지형이 깎이는 과정을 모사한다.
두 도구 모두 강하게 한 번 적용하기보다 약한 값으로 여러 번 확인하는 편이 원래 실루엣을 유지하기 쉽다.


큰 형태를 만든 뒤 해안선과 침식 표현을 단계적으로 추가하자, 단순한 덩어리였던 Landscape가 바다·호수·강의 흐름을 가진 하나의 섬으로 정리됐다.



이번 포스트에서는 서로 다른 두 가지 방식으로 섬 지형을 제작했다.
첫 번째 작업에서는 Height Map으로 복잡한 지형의 큰 형태를 빠르게 확보한 뒤 Auto Material, Water Body Custom, Landscape Spline을 이용해 도로와 철길을 추가했다.
두 번째 작업에서는 빈 Landscape에서 직접 Sculpting을 진행하고, Water Body Ocean·Island·Lake·River를 이용해 바다와 호수, 강이 포함된 섬을 만들었다.
Height Map은 넓고 복잡한 지형의 기본 형태를 빠르게 만들 때 유용하고, 직접 Sculpting하는 방식은 촬영 구도와 물의 흐름에 맞춰 지형을 세밀하게 수정할 때 유리했다.
특히 첫 번째 작업에서 도로가 각져 보이는 문제를 Spline Point만 늘려 해결하지 않고 Static Mesh의 Polygon 분할을 수정한 과정은, Unreal Engine의 결과가 모델링 단계의 구조와도 직접 연결된다는 점을 보여줬다.
'3D Video Production > Unreal Engine (5.6.1)' 카테고리의 다른 글
| UE 5.6 Foliage & Motion Design (0) | 2026.09.03 |
|---|---|
| UE 5.6 Landscape: Landmass를 활용한 지형 제작 (0) | 2026.09.02 |
| UE 5.6 Material 심화: 물 Material 만들기 & 텍스처·Nanite 최적화 (0) | 2026.08.31 |
| UE 5.6 Material 심화: 이미지 시퀀스 Fog부터 Material Attributes, 눈 쌓임 표현까지 (0) | 2026.08.28 |
| UE 5.6 Material 심화: Decal과 Vertex Paint부터 Dissolve, 유리, 물 재질까지 (1) | 2026.08.27 |