Version: 2017.2
터레인 텍스처
SpeedTree

나무(Trees)

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

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

나무 활성화

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

처음에는 터레인에 나무를 사용할 수 없지만 Edit Trees 버튼을 누르고 Add Tree 를 선택하면 프로젝트에서 나무 에셋을 선택할 수 있는 창이 나타납니다.

나무 추가 창
나무 추가 창

Unity 에디터는 프로토타이핑 용도의 스탠다드 에셋 패키지에 포함된 몇몇 SpeedTree 나무 오브젝트 샘플(Assets > Import Package > Terrain Assets)을 제공하며, 이외에 SpeedTree Modeler 앱, Unity 나무 생성기 도구, 기타 3D 모델링 앱으로 적합한 오브젝트를 생성할 수도 있습니다.

선택한 나무 오브젝트를 나무 생성기에서 생성했다면 바람 반응성을 조정하는 구부림 인수(Bend factor)가 창에 표시됩니다. 아래의 바람에 휘어지는 나무 만들기 섹션을 참조하십시오.

나무 색칠하기

텍스처나 하이트맵을 색칠하는 것과 똑같은 방식으로 나무를 선택하여 터레인을 색칠할 수 있습니다. 터레인을 색칠하는 중에 Shift 키를 누른 채 나무를 선택하여 한 영역에서 나무를 모두 제거할 수도 있고, Ctrl 키를 누른 채 나무를 선택하여 현재 선택한 나무 타입만을 제거할 수도 있습니다. 나무로 색칠할 때에는 친숙한 Brush Size 옵션을 사용할 수 있으며, Opacity 프로퍼티가 Tree Density 옵션으로 대체되어 주어진 영역 단위에 색칠될 나무의 평균 개수를 조절할 수 있습니다.

나무의 최소 높이와 최대 높이를 조절할 수 있는 범위 슬라이더도 있습니다. 랜덤 옵션을 비활성화하면 모든 나무에 적용되는 높이 값을 지정할 수 있습니다. 기본적으로 나무의 너비는 높이에 대해 고정되어 있으므로 나무가 항상 동일하게 조절됩니다. 하지만 Lock Width to Height 옵션을 비활성화하고 너비를 따로 지정할 수도 있습니다.

Color VariationRandom Tree Rotation 옵션도 있습니다. 배리에이션 옵션을 사용하면 똑같은 나무로 이루어진 인공 농장 같은 모습이 아닌 무작위하게 구성된 자연스러운 숲과 같은 인상을 만들 수 있습니다.

Mass Place Trees 버튼은 전체 터레인을 색칠할 필요 없이 전체를 나무로 덮을 수 있는 아주 유용한 기능입니다. 대량 배치 후에도 색칠하기를 사용하여 나무를 추가하거나 제거하여 더 울창하거나 듬성듬성한 영역을 만들 수 있습니다.

SpeedTree/LOD 나무

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

자세한 내용은 여기를 참조하십시오.

나무 생성기 나무

Unity에는 새로운 나무 에셋을 생성하는 데 사용할 수 있는 자체적인 나무 생성기가 있지만, 스탠다드 3D 모델링 앱을 이 작업에 사용할 수도 있습니다. 나무 메시의 삼각형은 성능을 이유로 2,000개 이하여야 하며 앵커 포인트는 나무 하단, 즉 나무가 지면에서 솟아나오는 지점에 위치해야 합니다. 메시에는 항상 정확히 두 개의 머티리얼(하나는 나무 몸통, 다른 하나는 잎)이 있어야 합니다.

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

나무 에셋을 모델링 프로그램에서 저장할 때 업데이트된 나무가 터레인에 표시되도록 하려면 (나무 페인팅 툴이 선택된 경우 인스펙터에 표시되는) Refresh 버튼을 클릭해야 합니다.

나무에 콜라이더 사용

캡슐 콜라이더를 씬에서 인스턴스화하고 콜라이더를 추가(메뉴: Component > Physics > Capsule Collider)한 후 수정된 나무 오브젝트용 새 프리팹을 생성하여 캡슐 콜라이더를 새 나무 에셋에 추가할 수 있습니다. 터레인을 색칠하기 위한 용도로 나무를 추가하는 경우 오리지널 오브젝트가 아닌 콜라이더가 있는 프리팹을 선택해야 합니다. 터레인의 Terrain Collider 컴포넌트 인스펙터에서 Create Tree Colliders 도 활성화해야 합니다.

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

가장 먼저 수행해야 하는 작업은 윈드 존 생성입니다. Game Object > 3D Object > Wind Zone 메뉴에서 윈드존을 선택하여 생성할 수 있습니다.

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

나무가 상당히 과격하게 움직이는 것처럼 보일 수도 있습니다. 구부림 값을 변경하여 이 문제를 해결할 수 있지만, 구부림 인수를 1로 유지한 채로 두고 Wind Zone 에서 직접 값을 설정하는 것이 더 쉬울 수 있습니다. 나무가 지나치게 흔들리지 않도록 하려면 바람 터뷸런스를 0.10.3 사이로 낮춥니다. 그러면 모든 것이 훨씬 더 부드러워집니다. 나무가 한쪽 방향으로 끝까지 흔들리지 않게 하려면 Wind Main 값을 터뷸런스와 같은 값으로 낮춥니다.


  • 2017–09–19 일부 편집 리뷰를 거쳐 페이지 수정됨

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

터레인 텍스처
SpeedTree