하이트맵과 텍스처를 페인팅하는 것과 유사한 방식으로 나무를 터레인에 페인팅할 수 있습니다. 하지만 나무는 표면에서 뻗어나오는 견고한 3D 오브젝트입니다. Unity 에디터는 최적화(예: 멀리 있는 나무를 빌보드로 처리)를 사용하여 렌더링 퍼포먼스를 유지하므로, 수천 그루의 나무로 이루어진 울창한 숲을 만들어도 적당한 프레임 속도를 유지할 수 있습니다.
툴바의 Paint Trees 버튼으로 나무 페인팅을 활성화합니다.
처음에는 터레인에 아무 나무 프로토타입도 없습니다. 터레인에 페인팅하려면 나무 프로토타입을 추가해야 합니다. Edit Trees 버튼을 클릭한 후 Add Tree 를 선택하십시오. 여기에서 프로젝트의 나무 에셋을 선택한 후 Tree Prefab 으로 추가하여 브러시로 사용할 수 있습니다.
효율적인 프로토타이핑을 위해 SpeedTree는 에셋 스토어의 무료 SpeedTree 패키지에서 네 개의 SpeedTree 모델을 제공합니다. 또는 직접 나무를 만들 수도 있습니다.
임포트하는 나무 프리팹이 Bend Factor 를 지원하면 Add Tree 창에 바람 반응성을 조정하기 위한 Bend Factor 프로퍼티가 표시됩니다. Bend Factor 는 SpeedTree 모델러를 사용하여 만든 나무에는 없고, 트리 에디터를 통해 만든 나무에만 있습니다. 아래의 바람에 휘어지는 나무 만들기 섹션을 참조하십시오.
아래에 설명된 대로 설정을 마치고 나면 텍스처나 하이트맵을 페인팅하는 것과 동일한 방식으로 터레인에 나무를 페인팅할 수 있습니다. 영역에서 나무를 제거하려면 Shift 키를 길게 누른 채로 페인팅하십시오. 현재 선택된 나무 타입만 제거하려면 Ctrl 키를 길게 누른 채로 페인팅하십시오.
배치할 나무를 선택한 후 해당 설정을 조정하여 나무 배치 및 특징을 커스터마이즈하십시오.
프로퍼티 | 기능 |
---|---|
Mass Place Trees | 전체 랜드스케이프를 색칠할 필요 없이 전체를 나무로 덮을 수 있습니다. 대량 배치 후에도 색칠하기를 사용하여 나무를 추가하거나 제거하여 더 울창하거나 듬성듬성한 영역을 만들 수 있습니다. |
Brush Size | 나무를 추가할 수 있는 영역의 크기를 제어합니다. |
Tree Density | Tree Density는 Brush Size에 따라 정의된 영역에 페인팅할 평균 나무 수를 제어합니다. |
Tree Height | 슬라이더를 사용하여 나무의 최소 높이와 최대 높이를 제어합니다. 슬라이더를 왼쪽으로 드래그하면 나무가 짧아지고 오른쪽으로 드래그하면 나무가 길어집니다. Random을 선택 해제하면 새로 페인팅하는 모든 나무의 정확한 높이 스케일을 0.01–2 범위 내에서 지정할 수 있습니다. |
Lock Width to Height | 기본적으로 나무의 너비는 나무가 항상 일관되게 스케일링되도록 높이에 고정됩니다. 하지만 Lock Width to Height 옵션을 비활성화한 후 너비를 별도로 지정할 수도 있습니다. |
Tree Width | 나무의 너비가 높이에 비례하도록 고정되지 않은 경우 슬라이더를 사용하여 나무의 최소 너비와 최대 너비를 제어할 수 있습니다. 슬라이더를 왼쪽으로 드래그하면 나무가 가늘어지고 오른쪽으로 드래그하면 나무가 두꺼워집니다. Random을 선택 해제하면 새로 페인팅하는 모든 나무의 정확한 너비 스케일을 0.01–2 범위 내에서 지정할 수 있습니다. |
Random Tree Rotation | LOD Group을 사용하여 나무를 설정하려는 경우 Random Tree Rotation 설정을 사용하면 무작위적이고 자연스러운 숲의 느낌을 쉽게 구현할 수 있습니다. 고정되고 동일한 회전을 가진 나무를 배치하려면 이 옵션을 선택 해제하십시오. |
Color Variation | 나무에 적용되는 무작위 셰이딩 양입니다. 셰이더가 _TreeInstanceColor 프로퍼티를 읽을 때에만 동작합니다. 트리 에디터를 사용하여 만드는 모든 나무의 셰이더가 _TreeInstanceColor 프로퍼티를 읽을 때를 예로 들 수 있습니다. |
Tree Lightmap Static | 이 체크박스를 선택하면 게임 오브젝트의 위치가 고정되고 전역 조명 계산에 참가한다고 Unity에 알립니다. 게임 오브젝트가 Lightmap Static이라고 표시되지 않아도 라이트 프로브를 사용하여 계속 조명을 비출 수 있습니다. |
새로운 나무 모델을 만드는 방법은 두 가지가 있습니다. IDV, Inc.의 SpeedTree 모델러를 사용하여 부드러운 LOD 전환, 빠른 빌보딩, 자연스러운 바람 애니메이션 등과 같은 고급 시각 효과가 적용된 나무를 만들 수 있습니다. 자세한 내용은 SpeedTree Modeler 문서를 참조하십시오. 또는 Unity의 트리 에디터를 사용하여 나무 모델을 만들 수도 있습니다.
내부적으로 터레인 엔진은 나무 프리팹의 루트 게임 오브젝트에 LOD Group이 있는지 여부를 판단함으로써 두 타입의 모델을 구분합니다. SpeedTree 프리팹에는 LODGroup 컴포넌트가 있지만, 트리 에디터 프리팹에는 없습니다.
나무를 만들 때는 나무가 지면에서 솟아나오는 나무의 아래 지점에 앵커 포인트를 배치하십시오. 나무 모델의 폴리곤 수에 따라 성능이 달라지므로, 원하는 플랫폼에서 테스트해야 합니다. 또한 가능한 한 단순한 나무를 생성하는 것이 좋습니다. 또한 트리 에디터 나무의 경우 각 메시에는 항상 정확히 두 개의 머티리얼(하나는 나무 몸체, 또 다른 하나는 나뭇잎에 대한 머티리얼)이 있습니다.
트리 에디터를 사용하여 만드는 나무에는 Nature/Soft Occlusion Leaves 및 Nature/Soft Occlusion Bark 셰이더를 사용해야 합니다. 이러한 셰이더를 사용하기 위해서는 Ambient-Occlusion 이라는 이름이 포함된 특정 폴더 안에 나무를 위치시켜야 합니다. 그렇지 않으면 나무가 제대로 렌더링되지 않습니다. 이 폴더에 모델을 넣고 다시 임포트하면 Unity가 나무용으로 특별히 설계된 방식으로 소프트 앰비언트 오클루전 을 계산합니다.
별도 3D 모델링 애플리케이션에서 임포트한 나무 에셋을 변경하는 경우 에디터의 Refresh 버튼을 클릭해야만 업데이트된 나무가 터레인에 표시됩니다.
참고 3D 모델링 프로그램에서 SpeedTree 모델을 임포트하여 변경한 후 .fbx
또는 .obj
파일 확장자로 다시 익스포트하면 SpeedTree 모델의 자연스러운 바람 애니메이션 기능이 사라질 수 있습니다.
캡슐 콜라이더를 새 나무 에셋에 추가할 수 있습니다. Assets 폴더에서 씬으로 프리팹을 드래그하여 씬의 나무를 인스턴스화할 수 있습니다. 그런 다음 Component > Physics > Capsule Collider 메뉴를 사용하여 콜라이더를 추가하십시오. 그러고 나서 다음 중 하나를 수행할 수 있습니다.
원본 프리팹 오버라이드: 인스펙터 창에서 나무 게임 오브젝트의 Apply 버튼을 클릭합니다.
새 프리팹 생성: 나무 게임 오브젝트를 Assets 폴더로 드래그합니다.
새 프리팹을 만들 때에는 콜라이더가 포함된 나무를 원본 게임 오브젝트가 아니라 터레인에 추가해야 합니다. 또한 터레인의 Terrain Collider 컴포넌트에서 Create Tree Colliders 를 활성화해야 합니다.
이 섹션은 Unity의 트리 에디터로 만든 나무(Bend Factor 가 포함되어 있음)에만 적용됩니다.
나무가 바람에 반응하도록 만들려면 먼저 GameObject > 3D Object > Wind Zone 을 선택하여 Wind Zone 을 만들어야 합니다.
나무가 휘어지도록 설정되었는지 확인해야 합니다. Terrain 을 선택하고 Inspector 에서 Place Trees 버튼을 클릭한 다음 Edit Trees > Edit Tree 를 선택합니다. 이 작업을 아직 수행하지 않은 경우 Bend Factor 를 1로 설정하십시오.
기본 설정을 사용하면 나무가 매우 격렬하게 움직입니다. 이를 수정하려면 각 나무 타입의 Bend Factor 를 변경하십시오. 일부 나무 타입이 다른 나무 타입보다 더 휘어지게 만들고 싶은 경우에 유용합니다. 전체 Wind Zone 의 구부러짐 효과를 변경하려면 Wind Zone 컴포넌트에서 값을 직접 설정하십시오. 나뭇잎의 떨림 효과를 제거하려면 바람 터뷸런스를 0.1–0.3 사이로 낮추십시오. 그러면 움직임이 훨씬 부드러워집니다. 나무가 한쪽 방향으로 끝까지 흔들리는 대신 일부 배리에이션을 적용하고 싶다면 Main 값을 터뷸런스와 동일한 값으로 낮추십시오.
트리 에디터 나무의 경우 Unity의 LOD 시스템은 2D - 3D 전환 영역을 사용하여 2D 빌보드를 3D 나무 모델과 원활하게 블렌딩합니다. 이렇게 하면 2D 및 3D 나무의 갑작스러운 파핑을 방지합니다(VR에서 특히 중요함).
SpeedTree 나무의 경우 LOD 컴포넌트에 관한 자세한 내용은 LOD 및 LOD Group 문서를 참조하십시오.
2019–04–19 페이지 수정됨
새로운 UI에 맞게 스크린샷을 업데이트함