[UE5] Sculpting Our Landscape

2024. 2. 4. 03:02강의/Unreal Engine 5 - Realistic Environment

Gavin Eisenbeisz 의 unreal-engine-5-outdoor-level-design 라는 유데미 강의 입니다.

 

섹션 1: UE5 설치 및 사용방법에 대해 다룹니다.

섹션 2: 맵을 어떻게 그릴지에 대해 다룹니다.

섹션 3 부터 실습이 시작되며, 이 글은 그 과정을 간략하게 요약한 자료입니다.

 

- 강의 목적: 지형 툴 기능 파악, 맵 구성

 

1. Landscape Tools 사용하기

 

 

- New > Fill World > Create

    - Height map의 해상도를 설정할 수 있고, Scale을 통해 Height map의 픽셀 크기를 조절할 수 있습니다.

    - Component 단위를 설정할 수 있으며, Select, Add, Delete 와 같은 연산의 단위가 됩니다.

 

-  Import를 통해 파일로 Height map을 불러올 수 있습니다.

 

 

 

다양한 Sculpt 도구들을 사용할 수 있습니다. 한번씩 사용해보면 어떻게 동작하는지 바로 알 수 있을 겁니다.

 

- Flatten 에서 유요한것 : Flatten Mode

    - Raise : 브러쉬 영역에서 낮은것만 평평하게 올리는 것

 

- Erosion : 침식도구로, 강사가 가장 좋아하는 도구라고 합니다. 평평하게 만들고 경사를 만들어 형태를 다듬을 수 있습니다.

    - Threshold: 각도를 조절합니다.

 

- Hydro: 침식을 더 날카롭게 

    - Sediment Cap: 이 값이 높을수록 침식효과가 더 커집니다.

 

- Visibility : 가시성 제거 + 충돌 제거 

    - 예시: 동굴

 

2. 섬 조각하기

 

- Plane 을 추가하 바다로 설정 (표면 바로 위에 두어서, Water Material 사용하는 것으로, 임시방편입니다. 후에 Water 플러그인을 사용합니다.)

- 이 섹션에서는 강사가 직접 조각 툴을 사용하는 것을 보고 어떤 상황에서 어떤 도구를 사용하면 될지를 자세하게 볼 수 있습니다.

     - 특히, 산에 좁고 구불구불한 길을 만드는 부분이 인상 깊습니다.

 

- 저는 프로젝트 진행중 테스트할 것이 있어서 원형으로 오르막, 내리막이 있는 섬으로 구성했습니다.

 

3. 텍스쳐 Material 설정하기

 

- Quixel Bridge 를 사용하여 텍스처를 가져옵니다.

    - Surfaces > Grass, Sand/Beach, Rock, Ground

 

- Material 을 새로 만든 다음, 그 Material 을 클릭해서 Material Graph 를 수정합니다.

     - Landscape Layer Blend 노드를 생성합니다. 

    - 그리고, Layer 를 Quixel에서 가져온 텍스쳐 개수만큼 더 추가합니다.

   - 제일 첫번째에 weight를 1.0을 설정합니

 

 

 

- 종류마다 위와같이 텍스쳐 3개를 위와 같이 연결시킵니다.

     - 이를 통해 젖은 느낌의 땅과 같은 것을 구현할 수 있습니다. ( 반사값 조절, Roughness 조절, 반사광 조절)

 

 

- 두번째 블렌드 노드 역할은 "반사광" 입니다. 이는 constant 노드를 생성해 연결하면 됩니다.

     - (젖은 느낌, 반짝임을 주기 위해 사용) 

 

- 위와 같은 과정을 아까 얻은 텍스처들 전부에 대해 수행합니다.

    - 각 blend 노드의 weight 값을 조절하여, 자신이 원하는 텍스쳐를 만들 수 있습니다. (제대로 연결됬는지 확인할 수 있습니다.)

- 그런 다음 Landscape Coords 를 추가하여 각 텍스처의 UV에 넣어줍니다.

 

 

주의점

- Epic Games에서는 텍스처 수, 레이어 수를 유지하도록 권장함 (이 강의에선 8개 사용했지만, 일반적으로 5개 정도가 권장)

- 더 많은 개수를 설정하고 싶다면, 모든 텍스쳐를 선택하고 detail 패널에서 Material Expression Texture Sample >Sample Source > Shared Wrap 으로 설정

(그렇지 않으면, 지형을 그리기 시작할 때 한 영역에 레이어가 너무 많으면 회색으로 표시됨)

 

 

4. 지형 색칠하기

 

 

- LandScape를 클릭하고 3에서 설정한 Material을 설정해줍니다.

- LandScape mode 에서 Paint 탭에서 브러쉬로 마테리얼을 색칠할 수 있습니다.

 

- LayerInfo 파일을 만들어야합니다.

    - 더하기 버튼을 클릭하고, Weight-Blended Layer 을 클릭합니다. 

    - 이 때 레이어 이름에 공백이 없어야 합니다.

 

 

 

- 그런 다음에 브러쉬들로 적절히 지형을 칠할 수 있습니다.

5. 메쉬 붙이기

 

- Surface Snapping 을 사용하면, 울타리와 같은 작업을 비교적 쉽게 할 수 있습니다.

 

6. Folige

 

- folige 또한 Quixel Bridge 에서 얻을 수 있습니다.

    - Home/3DPlants/Grass, Weed, Shrub

- Folige 모드에서 이를 설정할 수 있습니다. (Quixel 에서 추가한 에셋들은 자동으로 들어갑니다.)

 

 

- Paint 모드에서는 활성화된 Foliage 모두를 사용해서 랜덤으로 칠하니 주의하세요

 

 

7. 마무리 작업

 

- 바다 추가

 

    - Water 라는 플러그인을 사용합니다. (실험적 기능) 

    - Water Body Custom 을 배치합니다.  (Large Plane)

   - z 값으로 수면을 조절합니다. 또한 Scale을 적당히 두어 평면을 넓힐 수 있습니다.

   - 가장자리를 Land scape mode 에서 Sculp로 오목하게 만듭니다.

 

Load Error 
    - Collision Profile settings do not include an entry for the Water Body Collision profile, which is required for water collision to function. Add entry to DefaultEngine.ini

오류 해결: DefaultEngine.ini 에 다음을 추가합니다.
(출처: https://forums.unrealengine.com/t/help-please-error-packaging-project/693911)

[/Script/Engine.CollisionProfile] +Profiles=(Name="WaterBodyCollision",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="",CustomResponses=((Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="Default Water Collision Profile (Created by Water Plugin)")

 

 

 

- 장면 조명

 

강사는 아래 설정들을 조작하여 장면을 구성하였습니다.

 

- Create > Volumes > Post Process Volume 에서 여러가지 후처리 옵션들을 사용할 수 있습니다. (육면체 안에서 적용되는 것)

    -  min, max Brightness (1.0)

    - infinit Extent (unbound) 으로 육면체 밖에도 적용시킬 수 있습니다.

    - vignette intensity

    - bloom > method, intensity, threshold 

 

- Visual Effects > Sky Astmosphere

 

- Visual Effects > Exponential Height Fog 

    - Fog Density, Fog Height Falloff

   - volumetric Fog 

   - 

 

- Directional Light   

    - Atmosphere Light 를 적용할 수 있습니다. 

 

- Volumetric Cloud 

 

- Sky Light

    - 캡쳐 프로젝트 다운,   

    - intensity scale

 

- 충돌 및 차단 볼륨

 

- 메쉬에 충돌체 설정

    - 필요보다 더 낳은 충돌 데이터 > (Collision Presets > Custom, Collision Complexity > Use Complex Collision As Simple )

    - Collision > Add Box 

 

-  Create > Volumes > Blocking Volume 으로 볼륨 박스를 설정할 수 있습니다.

    - 바다, 절벽에 플레이어가 들어가지 못하도록 충돌 설정

 

- 충돌 예외 설정

    - Details > Collision Presets > Custom 으로 설정하고 ignore 설

 

 

8. 후기

 

- 레벨에 아무것도 없는 상태에서 맵을 구성하는 방법을 알게되었습니다.

- 지형툴에 어떤 기능이 있는지 간단하게 알 수 있었습니다.