Frame at 0.00s
# 지형 디테일 메시 추가하기: Unity & Unreal Engine 이 튜토리얼에서는 Unity와 Unreal Engine에서 지형에 디테일 메시를 추가하는 방법을 알아봅니다. 초목, 바위 등 복잡한 디테일을 개별적으로 배치하는 대신, 두 엔진 모두 이를 효율적으로 관리하고 렌더링할 수 있는 도구를 제공합니다. ## Unity ### 1. 디테일 메시 준비 * **Unity 기본 제공 에셋 사용:** * `Window` > `Package Manager`로 이동합니다. * `Shader Graph` 패키지를 선택하고 `Samples` 탭으로 전환합니다. * `Production Ready Shaders` 샘플을 찾아 `Import`합니다. * 이 샘플에는 암석, 데칼, 물, 지형 디테일 등을 위한 셰이더가 포함되어 있습니다. * **가져온 에셋 확인:** * `Samples/Shader Graph/<버전>/Production Ready Shaders/Environment/Details` 폴더에서 다양한 지형 디테일 에셋을 찾을 수 있습니다. * 예시: Clover, Ferns, Grass, Nettle, Pebbles * **메시 최적화:** * 디테일 메시는 반복적으로 복사되고 수백, 수천 번 사용될 수 있으므로 가능한 한 단순하게 제작해야 합니다. * *Clover* 메시의 경우, 88개의 삼각형으로 매우 단순하게 구성되어 있습니다. * *Grass* 메시는 개별 잔디 블레이드 하나로 구성되어 있습니다. ### 2. Unity에서 디테일 메시 페인팅 * **도구 선택:** * `Terrain` 오브젝트를 선택합니다. * `Paint Details` 탭으로 이동합니다. * **디테일 추가:** * `Edit Details` 버튼을 클릭합니다. * `Add Detail Mesh`를 선택합니다. * 추가하려는 메시(예: *Clover*)를 선택하고 설정을 구성합니다. * **주요 설정:** * ***Align to Ground Percent***: 메시가 지형의 기울기를 얼마나 따라갈지 설정합니다. `100%`는 지형에 완전히 정렬, `0%`는 항상 위를 향하도록 합니다. * ***Size (Min/Max Width/Height)***: 각 인스턴스의 크기 범위를 설정하여 다양한 크기를 생성합니다. * ***Density***: 메시의 밀도를 설정합니다. * ***Use GPU Instancing***: GPU에서 메시 인스턴싱을 사용하여 성능을 크게 향상시킵니다. * ***Effect by Density Scale***: 플레이어의 품질 설정에 따라 밀도를 조절합니다. * **페인팅:** * `Clover` 메시를 선택하고 지형에 페인팅합니다. * `Ctrl + Z`로 실행 취소, `Shift` + 페인팅으로 지울 수 있습니다. * **다양한 디테일 추가:** * Pebbles, Nettle, Fern A, Fern B, Fern C 등을 추가하고 각각의 설정을 조정합니다. * **Pebbles:** `Align to Ground 100%`, `Min/Max Size 0.6-2`, `Density 0.4` * **Nettle:** `Align to Ground 20%`, `Min/Max Size 0.5-3`, `Density 0.75` * **Ferns:** `Align to Ground 50%`, `Min/Max Size 0-3`, `Density 1` (3가지 변형으로 다양성 확보) * **디테일 거리 및 페이드:** * **Terrain Settings > Tree and Detail Objects > Detail Distance:** 디테일 메시가 렌더링되는 최대 거리를 설정합니다. 성능에 중요합니다. * **Material Distance Fade:** 메시에 적용된 셰이더의 페이드 설정을 통해 메시가 카메라로부터 멀어질 때 부드럽게 사라지도록 합니다. * *Ferns*의 경우, 셰이더의 `Distance Fade` 설정을 사용합니다. * *Clover*의 경우, `Distance Mask` 노드를 사용하여 `Clip Distance`와 `Clip Offset`으로 페이드 거리를 조절합니다. * **성능 최적화:** * 디테일 거리를 가능한 낮게 설정하고, 셰이더 페이드를 사용하여 거리에 따라 자연스럽게 사라지도록 합니다. * 일부 작은 메시(예: 일부 Fern)는 그림자를 비활성화하여 성능을 향상시킬 수 있습니다. * **다중 그라스 메시:** * 각기 다른 페이드 거리를 가진 3가지 그라스 메시를 사용하여 잔디가 사라질 때 덜 눈에 띄게 만듭니다. * `Align to Ground 18%`, `Min/Max Size 0.2-1.4`, `Detail Density 0.1` ## Unreal Engine ### 1. 디테일 메시 준비 * **Quixel Bridge 사용:** * `Quick Add` 메뉴에서 `Quixel Bridge`를 선택하여 3D 에셋을 다운로드하고 프로젝트에 가져옵니다. * 예시: Ferns, Bracken Fern, Rocks, Grass * **메시 가져오기:** * `Content Drawer`에서 `Megascans` 폴더를 확인하고, 3D Plant 등에서 가져온 에셋을 찾습니다. * 동일한 텍스처 세트를 공유하는 여러 변형 메시는 효율적입니다. * **임시 배치 (Construction Yard):** * 가져온 에셋을 레벨의 특정 구역에 임시로 배치하여 크기, 스케일, 상호 작용을 확인합니다. ### 2. Unreal Engine에서 디테일 메시 페인팅 * **Foliage 도구:** * `Selection Mode`에서 `Foliage`를 선택합니다. * `Foliage` 패널이 나타납니다. * **Foliage 목록에 메시 추가:** * `+ Foliage` 버튼을 클릭하고 추가할 메시를 선택합니다. * **Foliage 설정:** * **Painting:** * ***Density***: 브러시 영역당 배치될 인스턴스 수를 설정합니다. (인스턴스/1000x1000 유닛) * **Placement:** * ***Scaling***: 각 인스턴스의 크기에 무작위성을 적용합니다. (예: 0.5 ~ 1.2) * ***Z Offset***: 지형 표면에서 오브젝트의 높이를 조절합니다. (주로 바위 등에 사용) * ***Align to Normal***: 메시가 지형의 기울기에 맞춰 정렬되도록 합니다. * ***Align Max Angle***: 지형 기울기에 맞춰 정렬될 수 있는 최대 각도를 설정합니다. * ***Random Yaw***: 오브젝트의 Z축을 중심으로 무작위 회전을 적용합니다. * ***Random Pitch Angle***: 오브젝트가 기울어질 수 있는 각도를 설정합니다. * **Ground Slope:** 메시를 배치할 지형 기울기 범위를 설정합니다. * **Altitude:** 메시를 배치할 고도 범위를 설정합니다. (예: 특정 산악 지형에 눈을 배치할 때 사용) * **페인팅 모드:** * **Paint Mode:** * 브러시 크기를 조절하여 지형에 메시를 페인팅합니다. * 선택된 모든 메시가 함께 배치됩니다. * **Single Instance Mode:** * 클릭할 때마다 하나의 오브젝트만 배치합니다. * ***Cycle Through Selected***: 선택된 메시 목록에서 번갈아 가며 배치하여 다양성을 확보합니다. (주로 바위 배치에 유용) * **배치 순서:** * 가장 큰 오브젝트부터 작은 오브젝트 순서로 배치하는 것이 좋습니다. (예: 큰 바위 -> Ferns -> Grass) * 이는 오브젝트가 서로 겹쳐 가려지는 것을 방지하고 자연스러운 구성을 만듭니다. * **규칙 설정:** * 강가에는 작은 바위와 자갈을, 물가 진흙에는 잔디를, 경사면에는 Ferns를 배치하는 등 규칙을 설정하면 더욱 자연스러운 장면을 연출할 수 있습니다. * **PCG (Procedural Content Generation) 시스템:** * 최신 Unreal Engine 버전에서는 PCG 시스템을 사용하여 더욱 효율적으로 디테일 메시를 배치할 수 있습니다. foliage 페인팅 시스템과 비교하여 성능을 테스트해 보는 것이 좋습니다. 이러한 도구를 활용하여 Unity와 Unreal Engine 모두에서 복잡하고 현실적인 지형 디테일을 빠르고 효율적으로 추가할 수 있습니다.