728x90

이 글은 인프런 "따라하면서 배우는 고박사의 유니티" 강의를 듣고 정리한 글입니다. 

 

[지금 무료] 따라하면서 배우는 고박사의 유니티 기초 | 고박사 - 인프런

고박사 | 유니티로 게임을 개발하고 싶은 초보자를 대상으로 하며, 유니티 설치부터 2D/3D 게임 개발에 필요한 기초 지식까지 자세하게 설명합니다. (강의에 사용되는 모든 리소스는 영상 상단의

www.inflearn.com


Unity Terrain

유니티에서 제공하는 미들웨어 엔진으로 높이 맵을 제작할 수 있는 툴

맵의 높낮이를 설정(높낮이 정보는 grayscale 형태의 raw 파일로 저장)하고,타일링된 텍스처를 여러 장 겹친 후 마스킹 텍스처의 RGBA를 섞어주는 방식

 

장점

  • 제작 및 수정이 용이하다 (작업시간 단축)
  • LOD (Level of Detail) 지원 (최적화 작업)
  • Asset Store에 제공되는 다양한 지형지물 오브젝트, Terrain 텍스처

단점

  • 메모리를 많이 사용한다
  • 연산이 많아 CPU 자원을 많이 사용한다 (=게임이 느려진다)
  • 2018.3 이상 버전은 “Draw Instanced” 기능으로 CPU의 비용을 절감하고 GPU로 처리

Terrain에 사용할 Asset Import

Asset Store에서 “Terrain Tools Sample Asset Pack” 검색 후 다운로드해야하지만 에셋스토어 만료로 아래 에셋을 다운받아 진행하겠다. 

https://assetstore.unity.com/packages/3d/vegetation/trees/realistic-tree-9-rainbow-tree-54622

 

Realistic Tree 9 [Rainbow Tree] | 3D 나무 | Unity Asset Store

Elevate your workflow with the Realistic Tree 9 [Rainbow Tree] asset from Pixel Games. Find this & other 나무 options on the Unity Asset Store.

assetstore.unity.com

 

 

 

 

Terrain 게임오브젝트 생성

GameObject > 3D Object > Terrain에서 생성한다.

 
 

​Terrain object 의 크기를 아래와 같이 설정한다. 


Create Neighbor Terrains

Terrain의 주변에 현재 Terrain의 기본 텍스쳐,크기를 가지는 Terrain 생성하는 메뉴이다. 

현재 Terrain이 배치된 곳을 기준으로 이웃한 네 위치에 Terrain을 생성할 수 있게 가이드라인을 생성된다. 클릭하면 동일한 크기의 Terrain이 생성되고, 생성된 Terrain을 기준으로 가이드라인의 개수도 늘어나게 된다.

​기본으로 설정된 Texture Layer가 있을 때, 이웃 Terrain에 그대로 적용된다. 


Paint Terrain

Terrain에 보여지는 이미지, 높낮이 등을 설정할 수 있는 메뉴로 아래 이미지와 같이 드롭다운으로 원하는 메뉴를 선택할 수 있다.

 

Raise or Lower Terrain

Brush 정보를 바탕으로 Terrain의 높낮이를 바꾸는 기능으로 Brush Size가 10으로 동일할 때, Opacity 값에 따른 높이 변화를 확인할 수 있다. 

 
 
 

Paint Holes

: Brush 정보를 바탕으로 Terrain에 구멍을 뚫거나 메꾸는 기능

 

Paint Texture

: Terrain에 Texture를 입혀주는 역할 (여러 장의 Texture 사용 가능)

 

Paint Texture 선택 > Edit Terrain Layers > create layer > 원하는 texture 선택

레이어를 선택했을 때 바로 아래에 있는 레이어 정보에서 레이어의 텍스처, 노말, 정보 등을 설정할 수 있으며, 레이어 에셋을 설정하여 설정을 변경할 수도 있다.

Terrrain Layer - Normal Map

Normal Map이란?

모델링(Mesh)을 좀 더 자세하게 표현하기 위해 사용되는 기법으로 
굴곡을 점(Vertex) 정보를 수정해서 표현하게 되면 폴리곤의 개수가 늘어나 
메모리가 증가하기 때문에 빛이 반사되는 벡터(Normal Vector) 정보를 수정해서 
굴곡을 표현하는 기법 (실제 물리적 충돌을 했을 때는 평지)

이때 벡터 정보를 바꾸는 이미지가 Normal Map Texture

 

Terrain Layer - Tiling Setting

 

: 원본 이미지를 어느정도 크기로 배치할지 설정

 

Terrain Layer을 몇가지를 더 추가하고 원하는 레이어를 선택하고 브러쉬 정보를 설정한 다음 scene view에 드래그하게 되면, 텍스처가 변화한다.

 

Terrain Asset에 현재 Terrain의 레이어 배치 정보 또한 함께 저장된다.

 

 

Set Height

: 높이의 최대치를 설정하여 Terrain에 평평한 언덕을 만드는 기능

 

Smooth Height

: Terrain의 언덕 가장자리를 부드럽게 다듬어 주는 기능

 
 

Stamp Terrain

: 설정된 Stamp Height 높이만큼 브러쉬와 동일한 모양을 Terrain에 찍어낸다.

Rasie or Lower Terrain처럼 탑을 쌓아가는 형태가 아닌 도장찍듯이 동일한 모양의 높이맵을 찍는다. 

“New Brush”를 이용해 원하는 브러쉬도 생성할 수 있다.“New Brush” > 원하는 텍스처 선택 (회색조의 텍스처가 더 정확한 모양을 낼 수 있음)

 
 

Paint Trees

: Unity의 Tree 오브젝트 또는 일반 오브젝트를 Terrain에 배치하는 기능

 

Unity의 Tree 오브젝트 생성은 GameObject > 3D Object > Tree 생성할 수 있으며, 나무잎, 가지 오브젝트를 직접 추가할 수 있다. 

 

Tree 오브젝트 등록

Edit Trees > Add Tree 에서 Tree Prefab에 원하는 오브젝트를 선택하고 add하면 생성된다. 

 

 

mass place tress 으로 원하는 숫자만큼 임의의 위치에 자동으로 나무를 배치할 수 있다. 

 

Paint Details

풀이나 돌 같은 지형지물을 심을 때 사용 (풀, 돌, 게임 오브젝트 등), 풀의 경우 바람에 흔들리는 것을 표현할 수 있다.

edit details > add grass texture로 풀 이미지 생성

풀이 흔들린다..


Terrain Settings

Basic Terrain

: 전체에 대한 기본 설정이라고 할 수 있다.

 

 

Tree & Detail Objects

: 나무, 오브젝트들에 대한 설정을 할 수 있다. 

 

 

Wind Settings for Grass

풀의 바람 설정이 가능하다. 

 

Mesh Resolution & Texture Resolutions

 
 

 

 

export raw 를 눌러 파일을 저장한다. 이후 새로운 씬을 생성한 뒤 terrain 오브젝트를 생성하고 import raw 버튼을 누르게 되면 저장했던 높이 맵 정보가 그대로 반영된다.

+ Recent posts