Version: 2018.1
터레인 텍스처
SpeedTree

나무

Unity 터레인을 향상하기 위해 하이트맵과 텍스처를 색칠하는 것과 똑같은 방식으로 나무를 터레인에 색칠할 수 있습니다. 하지만 나무는 표면에서 뻗어나오는 견고한 3D 게임 오브젝트입니다. Unity 에디터는 최적화(예: 멀리 있는 나무를 빌보드로 처리)를 사용하여 렌더링 퍼포먼스를 유지하므로, 수천 그루의 나무로 이루어진 울창한 숲을 만들어도 적당한 프레임 속도를 유지할 수 있습니다.

나무가 있는 터레인
나무가 있는 터레인

나무(Trees) 페인팅

툴바의 나무 버튼으로 나무 색칠하기를 활성화합니다.

처음에는 터레인에 아무 나무도 없습니다. 터레인에 색칠하려면 나무를 추가해야 합니다. Edit Trees 버튼을 클릭한 후 Add Tree 를 선택하십시오. 여기에서 프로젝트의 나무 에셋을 선택한 후 Tree Prefab 으로 추가하여 브러시로 사용할 수 있습니다.

나무 추가 창
나무 추가 창

프로토타이핑을 지원하기 위해 Unity는 스탠다드 에셋 패키지로 여러 개의 샘플 SpeedTree 트리 게임 오브젝트를 제공합니다. 또는 나무를 직접 만들 수도 있습니다.

임포트하는 나무 게임 오브젝트가 Bend Factor 를 지원하면 나무 추가 창에 바람 반응성을 조정하기 위한 Bend Factor 프로퍼티가 표시됩니다. SpeedTree 모델러를 사용하여 만든 나무에는 Bend Factor 가 있습니다. 아래의 Making Trees bend in the wind 섹션을 참조하십시오.

아래에 설명된 대로 나무 프로퍼티를 설정하고 나면 텍스처나 하이트맵을 색칠하는 것과 동일한 방식으로 터레인에 나무를 색칠할 수 있습니다. Shift 키를 길게 누른 채로 색칠하면 영역에서 나무를 제거할 수 있습니다. 또는 Ctrl 키를 길게 눌러 현재 선택된 나무 유형을 제거할 수도 있습니다.

나무 프로퍼티

배치할 나무를 선택한 후 해당 설정을 조정하여 나무 배치 및 특징을 커스터마이즈하십시오.

나무 프로퍼티
나무 프로퍼티
프로퍼티: 기능:
Mass Place Trees 전체 랜드스케이프를 색칠할 필요 없이 전체를 나무로 덮을 수 있습니다. 대량 배치 후에도 색칠하기를 사용하여 나무를 추가하거나 제거하여 더 울창하거나 듬성듬성한 영역을 만들 수 있습니다.
Brush Size 나무를 추가할 수 있는 영역의 크기를 제어합니다.
Tree Density 나무 밀도는 브러시 크기에 따라 정의된 영역에 색칠할 평균 나무 수를 제어합니다.
Tree Height 슬라이더를 사용하여 나무의 최소 높이와 최대 높이를 제어합니다. 슬라이더를 왼쪽으로 드래그하면 나무가 짧아지고 오른쪽으로 드래그하면 나무가 길어집니다. Random을 선택 해제하면 새로 색칠하는 모든 나무의 정확한 높이 스케일을 0.01–2 범위 내에서 지정할 수 있습니다.
Lock Width to Height 기본적으로 나무의 너비는 나무가 항상 일관되게 스케일링되도록 높이에 고정됩니다. 하지만 Lock Width to Height 옵션을 비활성화한 후 너비를 별도로 지정할 수도 있습니다.
Tree Width 나무의 너비가 높이에 비례하도록 고정되지 않은 경우 슬라이더를 사용하여 나무의 최소 너비와 최대 너비를 제어할 수 있습니다. 슬라이더를 왼쪽으로 드래그하면 나무가 가늘어지고 오른쪽으로 드래그하면 나무가 두꺼워집니다. Random을 선택 해제하면 새로 색칠하는 모든 나무의 정확한 너비 스케일을 0.01–2 범위 내에서 지정할 수 있습니다.
Random Tree Rotation Random Tree Rotation은 똑같은 나무를 인공적으로 배치하지 않고 무작위적이고 자연스러운 숲의 느낌을 구현할 때 유용한 배리에이션 옵션입니다. 고정되고 동일한 회전을 가진 나무를 배치하려면 이 옵션을 선택 해제하십시오.
Lighting
Lightmap Static 이 체크박스를 선택하면 게임 오브젝트의 위치가 고정되고 전역 조명 계산에 참가한다고 Unity에 알립니다. 게임 오브젝트가 Lightmap Static이라고 표시되지 않으면 라이트 프로브를 사용하여 계속 조명을 받습니다.
Scale In Lightmap 라이트맵 내 게임 오브젝트의 UV에 대한 상대 크기를 지정합니다. 값을 0으로 지정하면 Unity가 게임 오브젝트에 라이트맵을 적용하지 않지만, 해당 게임 오브젝트가 씬 내 다른 게임 오브젝트의 조명에는 계속 기여합니다. 값을 1.0보다 크게 지정하면 게임 오브젝트에 사용되는 라이트맵의 픽셀이 증가하고, 값을 1.0보다 작게 지정하면 픽셀이 감소합니다. 이 프로퍼티를 사용하면 중요하거나 디테일을 살려야 하는 부분에 더욱 정확한 조명을 비출 수 있도록 라이트맵을 최적화할 수 있습니다. 예를 들어, 평평하고 어두운 벽이 있는 고립된 건물은 낮은 라이트맵 스케일(1.0 미만)을 사용하고, 함께 붙어 있는 화려한 오토바이 컬렉션에는 높은 스케일 값을 지정할 수 있습니다.
Lightmap Parameters 이 게임 오브젝트에 대해 라이트맵 파라미터 세트를 선택하거나 만들 수 있습니다.

나무 생성

자신만의 나무를 생성하려는 경우 Unity의 나무 생성기 툴 SpeedTree Modeler 또는 3D 모델링 애플리케이션을 사용하여 나무를 생성한 후 프로젝트로 이를 임포트할 수 있습니다.

IDV, Inc.에서 만든 SpeedTree Modeler를 사용하여 매끄러운 LOD 전환, 빠른 빌보드화, 자연스러운 바람 애니메이션 같은 고급 시각 효과가 적용된 나무를 생성할 수 있습니다. 자세한 내용은 SpeedTree Modeler 문서를 참조하십시오. 에셋 스토어 패키지 또는 기타 타사 소스에서 SpeedTree 에셋을 프로젝트 폴더로 임포트할 수도 있습니다.

Unity는 고유한 나무 생성기를 통해 새로운 나무 에셋을 생성하도록 지원합니다. 또한 3D 모델링 애플리케이션을 사용할 수 있습니다.

나무를 생성할 때는 나무가 지면에서 솟아나오는 나무 밑둥에 앵커 포인트를 배치하십시오. 성능상의 제한으로 인해 나무 메시의 삼각형 개수는 2,000개 이하여야 합니다. 메시는 나무 바디와 나뭇잎에 대해 각각 하나씩의 머티리얼을 보유합니다.

나무에는 Nature/Soft Occlusion LeavesNature/Soft Occlusion Bark 셰이더를 사용해야 합니다. 이러한 셰이더를 사용하기 위해서는 Ambient-Occlusion 이라는 이름이 포함된 특정 폴더 안에 나무를 위치시켜야 합니다. 그렇지 않으면 렌더링이 제대로 이루어지지 않습니다. 해당 폴더에 모델을 넣고 다시 임포트하면 Unity 에디터는 나무용으로 특별 설계된 방식을 통해 소프트 앰비언트 오클루전을 계산합니다.

3D 모델링 애플리케이션에서 임포트한 나무 에셋을 변경하는 경우 에디터의 Refresh 버튼을 클릭해야만 업데이트된 나무가 터레인에 표시됩니다. 새로고침 버튼 위치

경고 3D 모델링 프로그램에서 SpeedTree 모델을 임포트하고 변경한 후 .fbx 또는 .obj 파일 확장자로 다시 임포트하면 SpeedTree 모델의 자연스러운 바람 애니메이션 기능이 사라질 수 있습니다.

나무에 콜라이더 사용

에셋 폴더의 프리팹을 씬으로 드래그하여 씬에 나무를 인스턴스화하는 방식으로 캡슐 콜라이더를 새 나무 에셋에 추가할 수 있습니다. 그런 다음 Component > Physics > Capsule Collider 메뉴를 사용하여 콜라이더를 추가하십시오. 그런 다음 다음 중 하나 를 수행할 수 있습니다.

  • 인스펙터 창에서 나무 게임 오브젝트의 Apply 버튼을 클릭하여 원본 프리팹을 오버라이드합니다.

  • 또는 나무 게임 오브젝트를 에셋 폴더로 드래그하여 새 프리팹을 생성합니다.

색칠을 위해 나무를 터레인에 추가하는 경우 새 프리팹을 만들 때 원본 게임 오브젝트가 아니라 콜라이더를 선택해야 합니다. 터레인의 Terrain Collider 컴포넌트 인스펙터에서 Create Tree Colliders 를 활성화하여 새로 만들 수도 있습니다.

바람에 휘어지는 나무 만들기

먼저 Wind Zone 을 생성하여 나무가 바람에 반응하도록 만들어야 합니다. 이렇게 하려면 GameObject > 3D Object > Wind Zone 을 선택하십시오.

이 시점에 나무가 휘어지도록 설정되었는지 확인해야 합니다. Terrain 을 선택하고 Inspector 에서 Place Trees 버튼을 클릭한 다음 Edit Trees > Edit Tree 를 선택합니다. Bend Factor 를 1로 설정하면 나무를 아직 조절하지 않은 경우 나무가 조절됩니다.

기본 설정을 사용하면 나무가 매우 격렬하게 움직입니다. 이를 수정하려면 각 나무 타입의 구부림 값을 변경하십시오. 일부 나무 타입이 다른 나무 타입보다 더 휘어지게 만들고 싶은 경우에 유용합니다. 전체 Wind Zone 의 구부러짐 효과를 변경하려면 Wind Zone 컴포넌트에서 값을 직접 설정하십시오. 나뭇잎의 떨림 효과를 제거하려면 바람 터뷸런스를 0.1–0.3 사이로 낮추십시오. 그러면 움직임이 훨씬 부드러워집니다. 나무가 한쪽 방향으로 끝까지 흔들리는 대신 일부 배리에이션을 적용하고 싶다면 Wind Main 값을 터뷸런스와 동일한 값으로 낮추십시오.

나무 디테일 수준(LOD) 전환 존

Unity의 LOD 시스템은 2D–3D 전환 존을 사용하여 2D 빌보드를 3D 나무 모델과 원활하게 블렌딩합니다. 이렇게 하면 2D 및 3D 나무의 갑작스러운 움직임(popping)을 방지할 수 있습니다. 이는 특히 VR에서 매우 중요합니다. LOD 컴포넌트 설정에 대한 자세한 내용은 (LOD)[LevelOfDetail] 및 (LOD 그룹)[class-LODGroup] 매뉴얼 페이지를 참조하십시오.


  • 2018–09–20 편집 리뷰를 거쳐 페이지 수정됨

  • Unity 4.6에서 게임 오브젝트 메뉴 변경됨

  • Unity 2017.3에서 2D–3D 전환 존이 LOD 시스템에 추가됨 NewIn20173

터레인 텍스처
SpeedTree