
게임이나 영화 속에 나오는 산, 사막, 바다, 빙하, 용암, 우주 행성 등등 많은 지형들이 어떻게 만들어질까?
이번에는 대규모 프로덕션 작업에서 고퀄리티 지형을 제작하는 데 사용되는 툴인 World Creator과 World Machine을 아주 간단하게 소개할 것이다
첫 번째로 소개할 툴은 World Creator 이다

World Creator - The real-time terrain generator and landscape generator
World Creator is a real-time terrain generator and landscape generator, which is industry proven by many game, movie and artwork companies.
www.world-creator.com
구글에서 World Creator이라는 키워드로 검색하면 제일 상단에 World Creator - The Terrain and Landscape Generator라는 이름으로 공식 페이지 링크가 뜨는 것을 볼 수 있다
아래쪽에 소개할 World Machine과 World Creator를 비교했을 때는 World Creator 쪽이 조금 더 고퀄리티의 결과물을 내기에 좋다고 한다
그래서인지 우리가 잘 아는 대규모 개발사들은 상당수 월드 크리에이터를 사용하고 있다
이 툴은 유료버전만 있는데, 가장 가격이 낮은 Casual License가 149달러, 한화 약 19만원 정도 한다
고퀄리티의 지형 제작에 도전해보고 싶으신 분들이라면 구매해서 사용해보고 공부하면 좋을 듯하다
두 번째로는 World Machine 툴에 대해 알아보자
World Machine : The Premier 3D Terrain Generator
Simulate instead of sculpt Have our algorithms work for you.Use tools like erosion to create realistic CG landscapes. Then export to Unity, UE4, or your favorite 3D tool.
www.world-machine.com
이번에는 구글에서 World Machine이라는 키워드로 검색하면 제일 상단에 World Machine : The Premier 3D Terrain Generator라는 이름으로 월드 머신 공식 페이지 링크가 뜬다
그 링크로 접속하면 월드 머신을 어떻게 사용하는지 간단한 프리뷰가 보이는 홈페이지를 볼 수 있는데, 여기서는 World Creator과는 다르게 무료 버전이 존재한다. 우선 아래쪽에 Free download(Windows) 버튼을 눌러보자
그리고 아무것도 입력할 필요 없이 아래쪽에 Download World Machine Basic Build ~ 주황 버튼을 클릭하면 되는데,
무료 버전의 World Machine은 비상업적으로 사용하는 경우에 무료로 제공되고 1025x1025의 해상도 제한이 있다
만약 이러한 제한 없이 사용하고 싶다면 유료 버전을 구매해서 사용하면 된다
(먼저 무료 버전을 통해서 사용법을 익힌 뒤에 유료 버전을 구매해서 사용하는 것도 좋다)
무료 버전의 World Machine 설치가 완료되고 실행해 보면 마치 블루프린트 같이 노드를 이어서 지형을 제작하는 작업 공간이 보인다
그리고 왼쪽 상단에는 지금 노드로 만들어진 월드가 작게 보이는데 좀 더 크게 보고 싶다면 상단 메뉴 바에서 사각형 4개가 모여있는 스플릿 버튼을 누르면 월드의 모습을 좀 더 크게 원하는 각도로 돌려볼 수 있는 3D뷰를 볼 수 있게 된다
이 3D 뷰를 켜고 각 노드를 선택하면 해당 노드의 결과물을 볼 수 있고, 어떻게 이 결과물이 나오게 되었는지에 대한 과정을 볼 수 있다 그리고 Scene View 노드를 선택하면 모든 작업이 처리된 최종 결과물을 볼 수 있다
그리고 각 노드를 더블클릭하여 선택해서 변수 값을 바꿔주면 실시간으로 지형이 바뀌는 모습을 볼 수 있다
블루프린트와 같이 빈 공간에 우클릭을 하고 Quick-add (Search)... 항목을 선택하면 여러 가지 추가할 수 있는 노드가 보이고,
그리고 노드를 추가하면 이런 식으로 바다나 강 역시도 추가할 수 있다
[지금은 기능에 대해 모르지만 본인이 원하는 지형을 한번 조작해서 만들어보자]
이런 작업을 통해 만들어진 높이 맵을 게임 엔진으로 불러와서 사용하게 된다
그럼 이렇게 프로그램에서 만든 지형맵을 언리얼에 적용해 보자
상단에 [File > Export Terrain Files..]을 선택하면 속성 창이 뜨게 되는데, 아래에는 Height Output과 Bitmap Output이 보인다
- Height Output: 보통 높낮이 정보를 나타내는 GrayScale 이미지를 생성한다. 이것은 각 픽셀 값이 해당 지점의 높낮이를 나타내는 방식으로 사용되는데, 주로 지형 생성, Terraining, 지형의 기본 형상을 결정하는 데 사용된다
- Bitmap Output: 주로 지형에서 사용할 다양한 속성을 나타내는 컬러 또는 Mask 이미지를 생성한다. 예를 들어, 특정 지역의 바위, 풀, 물 등의 분포를 내타내며, 이는 지형의 다양한 속성을 제어하거나 표현하는 데 사용되고 RGB 컬러를 사용하여 여러 가지 정보를 동시에 표현할 수 있다
이것들을 사용목적과 필요에 따라 두 유형의 출력을 조합하여 지형을 다양하게 제어할 수 있다
그리고 Height Output과 Bitmap Output을 더블클릭하면 파일의 속성 창이 열리는데, 파일의 이름과 저장할 경로 등을 지정할 수 있다. 설정이 끝나면 속성 창을 닫은 뒤 아래에 Export All을 누르면 이름과 경로가 뜨면서 외부로 보내기가 성공했다는 메시지가 나온다
이제 언리얼엔진에서 테스트할 빈 맵을 먼저 만들어주고 (C++ 클래스가 필요 없으므로 크기가 작은 BLUEPRINT로 생성해도 된다)
Content Browser에서 Content 폴더에 우클릭하고 맵을 불러올 Maps 폴더를 생성해 준 후, 위에 Import 버튼을 누른다
그리고 오른쪽에 아웃라이너 패널에 LandScape에 해당하는 부분을 모두 삭제하고 상단 툴바에 Selection mode에서 Landscape을 선택한다
그러면 Landscape 패널이 열리는데, [Manage > New]에서 Create New 대신 옆의 Import from File 창을 누르고
[New Landscape > Heightmap File]옆에 ...을 눌러 다운로드 하였던 Height Output 파일을 넣는다
그 다음에 여기 보이는 설정처럼 맨 위에 Enable Edit Layers를 체크 해제하고 아래의 Import 버튼을 누른 다음,
생성했던 Maps 폴더에 이름을 지정하고 Save를 눌러준다
그리고 잠시 기다리면 랜드스케이프의 형태가 임포트 한 월드맵의 형태로 바뀐다
다음에는 HeightOutput과 함께 가져온 BitmapOutput(텍스처)를 넣어 줄 차례이다
콘텐츠 브라우저 패널의 Content폴더를 선택하고 Import를 클릭하여 Bitmap Output 파일을 임포트 한다
그리고 다시 콘텐츠 브라우저 패널에 우클릭하고 [Material] 항목을 선택해서 새 머티리얼을 만들어준다
머티리얼 애셋 생성이 완료되면 더블클릭해서 머티리얼 에디터를 열어준 다음, 머티리얼 에디터에서 빈 영역에 우클릭하고 "Texture Sample"을 검색해서 텍스처 샘플 노드를 추가한다
그리고 텍스처 샘플 노드의 기본 텍스처를 방금 임포트 한 월드맵의 텍스처로 지정하고 텍스처 샘플 노드의 RGB 핀을 베이스 컬러 핀에 연결해 주고
모든 작업이 끝나면 Apply 버튼을 눌러 적용을 하고 저장을 해준다
레벨 에디터로 돌아와서 Landscape를 선택하고 디테일 패널의 Landscape 섹션에서 Landscape Material 항목에 방금 만든 머티리얼을 넣으면 Texture가 엄청나게 작은 상태로 랜드스케이프에 반복되어 그려지는 모습을 볼 수 있다
다시 머티리얼 에디터로 돌아가서 그래프의 빈 영역에 우클릭하고 "Texture Coordinate"를 검색해서 텍스처 코디네이트 노드를 추가한다. 그리고 이 노드의 Details 패널에서 UTiling 값과 VTiling 값을 0.000955로 변경한 다음 출력 핀을 끌어 텍스처 샘플 노드의 UVs 핀에 연결해 준다
작업을 모두 마친 다음에는 머티리얼을 적용하고 저장한 다음 머티리얼 에디터를 닫아준다
이제 레벨 에디터의 뷰포트에서 랜드스케이프를 보면 월드맵의 텍스처가 잘 입혀진 모습을 확인할 수 있다
VR게임 개발을 위한 언리얼엔진/C++ 공부한 내용 끄적이기...
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!