Unreal Engine 5 오픈월드 RPG 환경 만들기

조정원·2025년 6월 10일
post-thumbnail

유튜브 추천 영상에 엘든링과 비슷한 환경을 언리얼에서 만드는 콘텐츠가 올라와 여러 영상을 참고하며 직접 만들어보고 싶다는 생각이 들었다.

유튜브 영상 링크
https://www.youtube.com/watch?v=XWGhI801LQE&list=LL&index=4&t=24s
https://www.youtube.com/watch?v=atFn2E1anrg&list=LL&index=3

유튜브 영상을 보고 따라 했지만 설명이 자세하지 않아, 직접 창작해보면 더 재미있을 것 같아 몇 가지를 따라 만들어보았다.

처음에 이 영상을 보고 따라서 만들어 보았고,

딱히 어렵거나 설명할 것 없이 랜드스케이프를 만들고 액터들을 배치하기만 하면 되었다.
어떤 느낌으로 배치할지에 대한 감을 익히는데는 도움이 되었다.

그리고 이번에는

이 영상을 보고 만들어 볼 것이다.

이런 느낌의 결과물을 만들어 보는 것이 목표이다.

가장 먼저, Gaea라는 툴을 사용해서 랜드스케이프를 만들었다.
Gaea는 사실적인 지형을 만들고 Hieightmap 형태로 내보내 언리얼 엔진에서 바로 불러와 사용할 수 있다.
언리얼 엔진에서 구현하기 어려운 자연스러운 산, 계곡, 평원 등을 손쉽게 만들 수 있다.

Gaea의 그래프를 활용하여 여러 요소들을 합친 랜드스케이프를 제작할 수 있다.

Gaea에서 만든 height map을 가져와서 언리얼에 임포트하였고, 임포트는 언리얼의 랜드스케이프 모드에서 하면 된다.

이번 프로젝트에서는 Grass, Rock, Dirt 세 가지 텍스처를 사용할 예정이다.
이를 위해 랜드스케이프 모드의 페인트 기능에서 사용할 레이어를 먼저 추가해야 한다.

그리고 머티리얼 클래스에서는 Landscape Layer Blend 노드를 이용해 이 세 가지 머티리얼을 하나로 블렌딩한다.

머티리얼 클래스를 만들어준 후에

Base color, Normal map, ORM 텍스쳐를 머티리얼 클래스에 가져온다.

ORM 텍스처
ambient occlusion, roughness, metalic 세 가지 텍스처를 한 장에 압축한 텍스처로 각각의 값을 R, G, B 채널에 저장한다. 이렇게 하면 텍스처 하나로 최적화하고 메모리를 절약할 수 있다.


랜드스케이프 머티리얼을 만들기 위해,
Landscape Coords에 각각의 UV를 연결한다.
이 노드는 랜드스케이프의 크기와 스케일에 맞는 UV 좌표를 생성해주기 때문에,
텍스처가 너무 크거나 작게 보이지 않고 자연스럽게 반복 타일링되도록 도와준다.

UV Map은 3D 모델의 표면에 2D 이미지를 입히기 위한 좌표 정보를 의미하고,
이를 통해 텍스처가 어느 위치에 어떻게 붙을지 제어하게 된다.

세 가지 텍스처(예: 흙, 풀, 바위)를 사용할 것이기 때문에,
동일한 구조의 머티리얼 노드를 세 개 만든 후,
Landscape Layer Blend 노드를 이용해 각 텍스처에 해당하는 Layer (예: Dirt, Grass, Rock)를 추가해 연결한다.

이렇게 하면 랜드스케이프에서 페인트처럼 직접 각 텍스처를 칠할 수 있는 구조가 완성된다.


Landscape Layer Blend는 여러 개의 지형 레이어를 하나의 머티리얼로 블렌딩할 수 있도록 만들어주는 노드다.

다음으로,
랜드스케이프 모드에서 할당된 머티리얼에서 레이어 생성을 누르면
세 가지 layer가 자동으로 할당된다.
각각에 대해 layer info 생성까지 해주면 된다.

이제 랜드스케이프를 페인팅할 수 있다.
랜드스케이프의 각 영역에 다양한 텍스처를 입혀 자연스러운 지형을 표현할 수 있게 된다.

랜드스케이프 머티리얼을 처음 적용하면, 텍스처 그리드가 지나치게 촘촘하게 보일 수 있다.
이때 LandscapeLayerCoords 노드의 Mapping Scale 값을 조절해 텍스처 타일링 크기를 적절히 조정할 수 있다.

임의의 오브젝트를 배치하였고,


Infinite Blade 에셋을 가져와서 마무리하였다.

원래는 에셋을 하나하나 직접 찾아가며 제작해보려 했지만, 여러 번의 시행착오 끝에 결국 포기하게 되었다.
게임의 컨셉이나 색감, 컨셉 아트 등 방향을 잡아줄 요소 없이 작업하다 보니, 손댈 때마다 오히려 산으로 가는 느낌이 들었다.
그래서 오픈월드 RPG 컨셉에 맞게 잘 구성된 에셋을 활용하기로 결정했고, 이를 통해 레벨 디자인과 게임의 분위기를 잡아갈 수 있었다.
직접 컨셉을 정하고 디테일을 조율하며 만드는 과정은 생각보다 훨씬 어려운 작업이었다.

ALS를 공부해보려고 조금씩 읽어봤는데, 정말 이름 그대로 Advanced Level이라는 느낌이 들었고 막막함이 컸다.
내용이 너무 어렵게 느껴져서, 우선 전체 구조를 간단하게 훑어볼 수 있도록 개요를 정리해보려 한다.
ALS 에셋을 만든 분이 에픽게임즈에 입사했다는 이야기를 듣고 나니, 이것만 제대로 이해해도 개발자로서 한 단계 성장한 느낌일 것 같다는 생각이 든다.

profile
게임 AI 개발자 조정원입니다.

0개의 댓글