이번에 설명드릴 터레인(Terrain)은 Unity 3D의 기능으로 에셋을 이용해서 맵의 기본인 부분을 제공해주는 아주 좋은 기능이라고 볼 수 있습니다. 이번 시간에는 터레인(Terrain)에 대한 설명을 해보겠습니다.
터레인 개요
터레인(Terrain)에 대해서 설명드리자면 Unity의 Terrain 시스템을 사용하면 게임에 광대한 풍경을 추가 가능하며, Unity의 제공하는 기능 중 미들웨어 엔진으로 높이 맵을 제작할 수 있는 툴이며 맵의 높낮이를 설정하고, 타일링된 텍스처를 여러 장을 겹친 후 마스킹 텍스처의 RGBA를 섞어주는 방식입니다.
장점 | 단점 |
장점으로는 제작 및 수정이 용이(작업시간을 단축) LOD(Level of Detail)를 지원하고(최적화 작업) Asset Store에 제공되는 다양한 지형지물 오브젝트를 받아 본인의 툴에 사용가능 하며 Terrain 텍츠쳐 사용이 가능하다. |
메모리를 많이 사용 연산이 많아 CPU 지원을 많이 사용(게임이 느려진다.) 2018년에 이상의 버전은 "Draw instanced“기능으로 CPU의 비용을 절감하고 CPU로 처리한다. |
터레인 UI에 대해 알아보자면 일단 생성 방법으로는 메뉴에서 GameObject > 3D Object > Terrain을 선택하여 장면에 지형 개체를 추가할 수 있으며 툴바의 맨 왼쪽 툴(Raise/Lower Terrain)을 선택하고 마우스를 씬 뷰의 터레인 위에서 움직이면 표면 위에 스포트라이트를 닮은 커서가 나타나는 것을 볼 수 있습니다. 더 쉽게 터레인 키보드 단축키(Terrain Keyboard Shortcuts)을 눌러 Shift 키를 누른 상태에서 F1에서 F6까지의 키를 누르면 해당 지형 도구가 선택할 수 있으며, 쉼표(,) 및 점(.)은 사용 가능한 브러시를 순환하거나, Shift-쉼표(<) 및 Shift-점(>)은 나무, 텍스처 및 세부 정보에 대해 사용 가능한 개체를 순환할 수 있습니다.
터레인(Terrain)에 대해 자세한 설명을 보고 싶으시다면 아래 링크로 들어가시면 됩니다.
https://docs.unity3d.com/kr/2022.3/Manual/terrain-UsingTerrains.html
터레인 생성 및 편집 - Unity 매뉴얼
씬에 터레인 게임 오브젝트를 추가하려면 메뉴에서 GameObject > 3D Object > Terrain 을 선택해야 합니다. 이에 해당하는 터레인 에셋이 프로젝트 뷰에도 추가됩니다. 이렇게 하면 초기 랜드스케이프는
docs.unity3d.com
터레인 UI에 대한 설명은 아래 표로 개재하겠습니다.
터레인 UI(Paint Terrain) | |
개요 | Raise or Loser Terrain – 지형의 고도 높이고 낮춤 Paint Holes - 지형 Terrain에 구멍 낼 수 있음 Set Height - Terrain의 높이를 제한하거나 설정( 완만하고 평평한 높이를 구현하기에 적절) Smooth Height - Terrain 지형을 부드럽고 매끄럽게 만든다. 뾰족뾰족한 부분을 스무스하게 만들어줌 |
기능 | Raise or Loser Terrain - Shift를 누른채 좌클릭하면 처음 지형으로 돌아감 낮게 하고 싶은 지형이 있다면 다른 지형들의 높이를 올려줌,Opacity로 강도를 조절 Paint Holes – 클릭 한번으로 지형에 구명을 낼 수 있음 |
터레인UI(Paint Terrain) | |
기능 | Set Height – Height 값을 10 으로 하면 아무리 brush로 지형의 고도를 높여도 10 까지만 높아짐 완만하고 평평한 고원같이 높이가 올라간 것을 볼 수 있음 즉, 높이가 최대 10으로 고정 10을 넘을 수 없음 Flatten All 을 누르면 전체 Terrain의 높이가 현재 설정되어 있는 Height 값으로 설정되며 전체적으로 평평함 Smooth Height – Terrain 지형을 부드럽고 매끄럽게 설정 |
터레인 UI(Paint Texture) | |
개요 | Terrain 에 풀, 눈, 모래 같은 텍스처 추가 컬러를 입히고 세밀한 디테일을 만들기 위해 터레인의 표면에 텍스처 이미지를 추가 하나의 텍스처를 가지고 전체 터레인의 “배경” 이미지로 사용할 수 있지만, 풀, 사막, 눈과 같은 서로 다른 지표면을 시뮬레이션하기 위해 다른 텍스처로 영역을 페인트 |
터레인 UI(Paint Texture) | |
기능 | 텍스처 파일을 Tile로서 붙인다. 직접 텍스처를 Terrain에 그림 텍스처 추가하기 – Create Layer 로 원하는 텍스처 PNG 파일로 텍스처 레이어를 추가 Metalic 으로 광택 정도를 나타낼 수 있고 Smoothness 를 올려주면 빛이 강조가 됨 (전체적으로 빛이 고루게 퍼짐) Tiling Setting 로 텍스처가 반복되어 삽입될 Tile의 해상도를 설정 Tile 의 해상도가 클 수록 텍스처가 확대되어 반복 될 것이고 해상도가 작을 수록 텍스처가 촘촘하게, 작게 반복 |
터레인 UI( Paint Trees) | |
개요 | Terrain 위에 나무를 추가할 수 있다. Unity 터레인을 나무로 꾸미고 하이트맵이나 텍스처로 색칠하는 것과 똑같은 방식으로 나무 패치를 터레인에 색칠이 가능 다만 나무는 표면에서 위로 자라는 입체 3D 오브젝트 수천 그루의 나무로 이루어진 울창한 숲을 만들어도 괜찮은 프레임 속도를 유지가 가능 나무(Trees) 활성화 -처음에는 터레인에 나무를 사용할 수 없지만 Edit Trees 버튼을 누르고 Add Tree 를 선택하면 프로젝트에서 나무 에셋을 선택할 수 있는 창이 나타남 -새 나무 에셋에 캡슐 콜라이더를 추가하려면 씬에서 인스턴스화하고 콜라이더를 추가( Component > Physics > Capsule Collider) |
터레인 UI( Paint Details) | |
개요 | 풀이나 흙 같은 Terrain 의 디테일한 부분을 설정 터레인의 표면이 풀 뭉치나 기타 돌과 같은 작은 오브젝트로 덮여 있을 때가 있음 |
기능 |
디테일(Details) 활성화 -처음에는 터레인에 풀이나 디테일을 사용할 수 없지만 인스펙터에서 세부 편집 버튼을 클릭하면 _ 풀 텍스처 추가_ 및 _ 세부 메시 추가_ 옵션이 있는 메뉴가 나타난 창에서 사용하고자 하는 에셋을 선택 -Detail 텍스처 는 풀을 표현하는 텍스처로 적합한 몇 개의 텍스처를 에셋 스토어에서 다운로드 가능 |
터레인 UI(Terrain Settings) | |
개요 | Terrain의 해상도 크기 조절 바람의 세기, 바람에 의한 풀의 세기, 거리에 따른 디테일 표현, 그림자 |
기능 |
기본 터레인(Base Terrain) -Draw(터레인 렌더링을 켜거나 끔) -Pixel Error(터레인 맵(하이트맵, 텍스처 등)과 생성된 터레인 사이의 매핑 정확도 값이 높으면 정확도가 낮아지지만 렌더링 오버헤드가 낮아짐) -Cast Shadows(터레인이 그림자를 드리우는지 여부) -Material(터레인을 렌더링에 사용되는 머티리얼, 터레인 텍스처의 컬러 채널이 어떻게 해석되는지에 영향을 미침) 트리 및 디테일 오브젝트(Tree and Detail Objects) -Draw(나무, 풀, 디테일을 그려야 할지 여부) -Detail Distance(디테일이 컬링되기 시작하는 카메라로부터의 거리) -Billboard Start(3D 나무 오브젝트가 빌보드 이미지로 대체되는 카메라로부터의 거리) -Max Mesh Trees(솔리드 3D 메시로 표현될 가시적인 나무의 최대 수, 제한을 넘어서면 나무는 빌보드로 대체 바람 설정(Wind Settings) -Speed(풀에 바람이 불 때의 속력) -Size(풀이 있는 영역에 바람이 불 때 풀이 “파도 치는” 크기) -Bending(풀 오브젝트가 바람에 의해 구부러지는 정도) -Grass Tint(풀 오브젝트에 적용되는 전반적인 틴트 컬러) 해상도(Resolution) -Terrain Width(X축에서 터레인 오브젝트의 크기(월드 유닛 단위) -Terrain Length(Z축에서 터레인 오브젝트의 크기(월드 유닛 단위) -Terrain Height(Y축 기준 가장 낮은 값과 가장 높은 값 사이의 차이(월드 유닛 단위) |
윈드 존(Wind Zone)은 바람 효과를 내는 기능으로 생성하려면 Wind Zone 컴포넌트가 있는 오브젝트를 하나 이상 추가하시면 됩니다.윈드 존(Wind Zone) 영향을 받는 곳은 예시를 들어 나무는 현실적인 애니메이션을 통해 휘어지며, 바람 자체는 나무에 자연스러운 움직임 패턴을 만들기 위해 파동을 타고 움직입니다.
윈드 존 오브젝트는 직접 생성(GameObject > 3D Object > Wind Zone)
씬에 있는 적당한 오브젝트에 컴포넌트를 추가(메뉴: Component > Miscellaneous > Wind Zone)
터레인(Terrain)에 대한 자세한 설명과 UI 및 윈드 존(Wind Zone)에 대해 간단하게 설명하였습니다. 다음에는 설명해드린 터레인(Terrain)과 윈드 존(Wind Zone)을 이용하여 맵을 꾸미는 시간을 갖아보도록 하겠습니다.
읽어주셔서 감사합니다.

'Unity > Unity 3D' 카테고리의 다른 글
[Unity 3D] 터레인(Terrain)에 대해 알아보고 사용해보자 (2) (0) | 2024.08.08 |
---|---|
[Unity 3D] Collider, Triger에 대해서 알아보고 사용해보자 (0) | 2024.08.06 |
[Unity 3D]물리엔진 Rigidbody에 대해서 알아보고 사용해보자 (0) | 2024.08.05 |
[Unity 3D] 에셋(Asset)과 FBX 모델 개요 및 FBX 모델 사용해보기 (0) | 2024.08.01 |
[Unity 3D] Unity 애니메이션에 대해 알아보자 (0) | 2024.07.31 |