본문 바로가기

개발/내일배움캠프

02/10 랜드스케이프,머터리얼,폴리지,라이팅


랜드스케이프(Landscape)는 언리얼의 대규모 환경 편집 전용 시스템으로,

언리얼 엔진 에디터 자체에서 오픈월드나 야외 맵을 만들고, 편집하는 기능을 제공한다.

 

스테이지 기반의 작은 맵보다는 탐험이나 오픈월드 기반의 게임 등을 제작할 때 더 효율적이다.

 

언리얼 엔진에서 제공하는 조형(Sculpting)도구를 통해 손쉽게 지형을 수정하고,

페인팅 도구를 통해 만들어진 지형에 머티리얼을 즉시 입힐 수 있다.

 

이는 좌상단의 모드 선택에서 Landscape Mode로 진입하여 수정할 수 있다.

조형(Sculpt)

조형 도구는 여러가지 방식의 지형 편집 방법을 제공하며

어떤 방식으로 편집하고 가장자리는 어떤 모양으로 낼지 등 다양한 방법을 제공한다.

각 방법에 대한 자세한 내용은 공식문서를 참고

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/landscape-sculpt-mode-in-unreal-engine

 

도구를 통해 초기에 평지였던 지형의 높낮이 등을 수정하여 아래처럼 지형을 만들어낸 결과물.

 

Paint

랜드스케이프의 페인트 기능은 랜드스케이프 머티리얼을 지형에 옮겨그리는 기능으로,

원하는 머티리얼만 있다면 간단하게 지형에 색을 입힐 수 있다.

 

이를 위해서는 당연히 지형에 입힐 머티리얼 에셋이 필요하다.

에셋스토어에서 무료로 쉽게 구할수는 있는데,
머티리얼 에셋 전체가 아닌 일부만 가져가려면 직접 랜드스케이프에 쓸 머티리얼을 설정해야함.

 

Create Basic Asset에서 Material에셋을 생성 한 후

다운받은 에셋의 Texture파일을 로드, 해당파일은 보통 같은 이름의 3개 파일로 구성됨

해당 파일 Texture파일을 머티리얼 에디터 창에 드롭하고, 각 노드를 아래처럼 연결

LandscapeCoords에 각 텍스쳐를 연결하고 

diffuse텍스쳐의 RGB, normalMap의 RGB, roughness의 R,G값을 landscape Layer Blend노드에 연결하고, 

각 값을 결과물인 M_Landscape(머티리얼 파일 명)에 각 값에 맞게 연결.

 

후 랜드스케이프 액터의 랜드스케이프 머티리얼에 해당 머티리얼을 사용하면 연결한 텍스쳐를 사용 할 수 있음.

머티리얼을 사용해 텍스쳐를 입혀봄

 

 

위 내용에 대한 자세한건 나중에 더 알아봐야 할것으로 보임

 

 

 

폴리지(Foliage)

폴리지 모드는 지형 위에 스태틱 메시 또는 액터 폴리지 세트를 페인트처럼 지형에 입힐 수 있는 기능으로,

손쉽게 풀이나 나무등을 자연스럽게 생성할 수 있다.

예를 들면 산지 지형에 있어야 할 바위, 풀, 나무 등을 수백 수천개 배치해야하는것을 폴리지모드로 바로 그려낼 수 있다.

랜스스케이프 모드처럼 좌상단에서 모드선택으로 폴리지 모드 진입

처음에는 가장 아래의 폴리지가 존재하지 않는데,

만드는 방법중 하나는 아래 +Foliage 버튼을 누르고 액터 폴리지 또는 스태틱 메시 폴리지를 생성 후,

생성된 폴리지를 선택후 아래에서 액터 폴리지라면 Actor를 설정,

스태틱 메시 폴리지라면 스태틱 메시를 선택만 하면 사용 가능하다.

생성 및 설정된 여러 폴리지들.

이후 지형에 추가될 폴리지를 체크후 지형에 마우스를 올려 구체가 표시되면

클릭하여 폴리지를 추가할 수 있다.

캐릭터 주위에 풀숲 폴리지가 추가된것을 확인할 수 있다.

 

건물등 액터도 폴리지처럼 설치할 수 있다.

 

폴리지별로 생성시 밀도, 크기, 지형 노멀에 맞추는지 여부 등이 있으니 폴리지에 따라 적절히 설정해야 할 것이다.
Align to Normal이 지형에 맞게 설정인데, 건물의 경우 경사로에 맞게 기울어지면 이상할테니 빼는게 자연스러울것이나,

나무나 수풀등은 그게 더 자연스러울수도 있으니...

 

 

라이팅 중 특수효과를 주는 액터 몇가지

 

카메라 노출 및 블룸효과 : PostProcessVolume의 Exposure, Bloom설정

안개효과 ExponentialHeightFog에서 강도와 Height falloff등 설정