Frame at 0.00s
## 언리얼 엔진 5.7: 나나이트 폴리지 & 프로시저럴 베지테이션 에디터를 활용한 식생 제작 안녕하세요, 에픽게임즈 코리아 권호찬입니다. 이번 에픽 라이브에서는 언리얼 엔진 5.7에 추가된 **나나이트 폴리지(Nanite Foliage)**와 **프로시저럴 베지테이션 에디터(Procedural Vegetation Editor)**를 활용하여 식생 베리에이션을 만드는 방법을 시연합니다. * **나나이트 폴리지 & 프로시저럴 베지테이션 에디터 상세 내용:** * 에픽게임즈 코리아 유튜브 채널의 언리얼 엔진 5.7 출시 웨비나 참고 ### 1. 사전 세팅 나나이트 폴리지를 사용하기 위해 다음과 같은 사전 세팅이 필요합니다. * **프로젝트 세팅:** * `Nanite` 검색 후 **Nanite Foliage** 옵션 활성화 * **플러그인 창:** * `Nanite` 검색 후 **Procedural Vegetation Editor** 및 **Dynamic Wind** 활성화 ### 2. 퀵셀 메가 플랜츠 애셋 활용 * **프리셋 획득:** * 팹(Fab)에서 **Quicksel Mega Plants** 애셋 다운로드 * 메가 플랜츠(MegaPlants): 특정 종의 식생을 구성하는 데 필요한 모든 애셋과 데이터 세트 패키지 (PVE를 통해 활용) * 현재 팹에서 8종 다운로드 가능, 지속적으로 100여 종 이상 업데이트 예정 * **애셋 추가:** * 팹에서 원하는 메가 플랜츠 검색 후 **프로젝트에 추가** 클릭 ### 3. 프로시저럴 베지테이션 에디터(PVE) 활용 * **PVE 인터페이스:** * **뷰포트:** 결과물 확인 * **그래프:** 노드 구성 * **디테일 창:** 선택한 노드의 파라미터 조절 * **작업 팁:** * **뷰포트 잎 사라짐 문제 해결:** * `Foliage Palette` 노드 선택 * 전체 폴리지 메시 선택 후 마우스 우클릭 > `Asset Actions` > `Property Matrix` > `Select` * 열린 창의 `Nanite Settings` 탭에서 `Preserve Area` 옵션을 `Voxelize`로 변경 및 저장 * **크기 가늠:** 뷰포트 오른쪽 톱니바퀴 아이콘 > `Mannequin` 옵션 활성화 * **뷰포트 노드 고정:** 뷰포트에 표시하고 싶은 노드 선택 후 `Ctrl + L` ### 4. 베리에이션 제작 * **A 베리에이션 제작 (알렉포 소나무 예시):** * **복제:** `Preset` 노드의 A에 연결된 노드들 복제 (`Ctrl-C`, `Ctrl-V`) 후 A 출력에 연결 (원본 유지 목적) * **가지 솎아내기:** * `Remove Branch` 노드 사용 * **기준:** * `Length`: 가지 길이 * `Radius`: 반지름 (한계치 이하 가지 제거) * `Light`: 빛의 양 시뮬레이션 기반 제거 * 노드들은 `Mesh Builder` 노드 앞에 연결 * **넓고 납작하게 만들기:** * `Gravity` 노드 사용: Z축 아래로 가지 처짐 * `Gravity` 노드 추가: Z축 위로 가지 끝부분 올리기 (값 1, `Angle Collection` 조절) * **모드:** `Phototropic` 옵션 (빛 반응으로 자연스러운 휨) * **줄기 길이 조절:** * `Curve` 노드 사용 * `From Bottom` 옵션: 밑동부터 줄기 축소 * `Length from Root`: 나무 밑동으로부터의 거리 기준 끝단 가지 제거 * `Z-Position`: 나무 절대 높이 기준 제거 * **기울기 적용:** * `Slope` 노드 사용: 기울어진 땅에서 식생이 휘는 모양 반영 및 나무 형태 변형 * `Slope Angle`, `Slope Direction` 조절 * **전체 크기 조절:** * `Scale` 노드 사용 (예: 0.9로 축소) ### 5. 지오메트리 메쉬 변환 (Mesh Builder) * **재질(Material) 설정:** * 기본 제공 재질에서 나무 껍질 모양 변경 가능 * `Index` 및 `X-Range` 조절 (생성 레벨에 따라 인덱스 순차 적용) * **메시(Mesh) 설정:** * `Point Removal`, `Segment Removal`: 나나이트 폴리지 사용 시 수정 불필요 * `Min/Max Division`: 가장 얇은/굵은 가지 면 분할 개수 지정 * **프로필(Profile) 설정:** * 줄기의 전반적인 두께 조절 * `Profile Falloff Graph` 수정 (나무 밑동 굵기 조절) * **디스플레이스먼트(Displacement) 설정:** * 디스플레이스먼트 텍스처를 이용해 줄기 표면 굴곡 추가 (Scale, Bias 조절) ### 6. 본 최적화 (Bone Reduction) * **Bone Reduction 노드:** 자동으로 생성되는 본(Bone) 수를 최적화 * 본 수 조절 (성능 유리) * *참고:* `SOU`에서 공개된 `Fortnite` 언리얼 엔진 5 테크 데모: 평균 20만 그루 이상의 나무 동시 렌더링, 13만 개 이상 본 처리 (PS5에서 0.1ms 이하) ### 7. 식생 모양 결정 (Foliage Palette & Foliage Distributor) * **Foliage Palette:** 줄기와 가지에 메시(Mesh)를 어떤 위치에 붙일지 지정 * **Foliage Distributor:** 폴리지 분포 방식 결정 * **Aethelene Limit:** 잎/줄기 늙음, 시듦, 떨어짐에 영향을 미치는 호르몬 (가지 전체 풍성함 또는 잎 떨어짐 표현) * **Distribution Override:** 프리셋 베리에이션 기본값 사용 또는 해당 노드 파라미터로 덮어쓰기 * *주의:* 원본과 많이 달라 보일 수 있으므로 신중한 수정 필요 * **디버깅 팁:** * 별도 `Foliage Palette`에 큐브 메시와 다른 색상 지정하여 디버깅용으로 사용 ### 8. 베리에이션 확장 및 관리 * **B 베리에이션 제작 (예시):** * 제작된 노드 복제 (`Ctrl-C`, `Ctrl-V`) * 다른 `Preset` 베리에이션 (B)에 연결 * `Output` 노드 메시 이름 변경 * `Remove Branch` 노드 비활성화/활성화 (`E` 키) * `Gravity`, `Slope`, `Curve` 등 **Spatial Node** 수정 * `Foliage Distributor` 파라미터 조절 (인스턴스 간격 등) * `Output` 노드 선택 후 Export * **통합 관리:** 생성된 다양한 베리에이션들은 하나의 `Procedural Vegetation` 에셋에서 통합 관리 가능 ### 9. NPR 스타일 식생 제작 * **워크플로우 적용:** 극사실적 식생뿐만 아니라 NPR(Non-Photorealistic Rendering) 스타일 식생에도 적용 가능 * 폴리지 메시, 줄기 머티리얼을 툰(Toon) 스타일로 교체 * 파라미터 조절로 툰 스타일 식생 베리에이션 제작 ### 10. PCG (Procedural Content Generation)를 이용한 레벨 배치 * **목적:** 앞에서 만든 나나이트 폴리지를 레벨에 대량 배치 * PCG 초심자도 좌절하지 않고 따라 하기 * **준비:** 기본 레벨 열기, PCG 모드로 변경 * **PCG 수정:** * `Spline` 탭 > `Draw Spline Surface` > `Area Tool PCG` * 엔진 폴더 파일은 복제하여 사용 * `Area Tool` 복사 및 이름 변경 * `Graph Settings` > `Detail` 창 > `Tool Data` > `Display Name` 수정 * `Graph Parameters` > `Spawn Actors`의 `VL` 값을 `True`로 변경 * `Actor Classes` 배열에 `Skeleton Mesh Object Reference` 타입, `Tris` 속성 추가 * `Match and Set Attribute` 노드에서 `Match Weight Attribute` 비활성화 * `Instanced Skinned Mesh Spawner` 추가 및 `Spawn Actor` 대신 연결 * `Mesh Attribute`를 `Tris`로, `Transform Provider`에 `Wind Transform Provider` 선택 * **레벨 배치:** * PCG 모드에서 툴 선택 후 레벨에 드래그하여 스플라인 그리기 * `Tris`에 나나이트 폴리지 식생 추가 * **밀도 조절:** `Sampling` > `Points per Squared` 값을 0.01 정도로 낮춤 * **배치 설정:** * `Global Transform` > `Absolute Global Rotation` 활성화 (Z축 항상 위) * `Random Rotation Max` (Z축 360도) * `Random Scale Factor` (Min/Max X축 0.8 - 1.1) * `Snap to Surface` 활성화, `Max Distance` 10만 설정 * `Accept` 클릭하여 대량 배치 * **PCG 학습:** 추후 별도 세션을 통해 심층 학습 예정 --- 지금까지 나나이트 폴리지와 프로시저럴 베지테이션 에디터를 활용한 식생 제작 및 PCG를 이용한 레벨 배치 방법을 알아보았습니다. 이 기능을 통해 여러분들의 프로젝트와 작업에 더 큰 매력과 경쟁력이 더해지기를 바랍니다. 감사합니다.