폴리지 모드(Foliage Mode) 는 지형에 숲과 초원을 빠르게 조성하여 실감 나는 랜드스케이프를 제작할 수 있게 해줍니다. 폴리지 툴을 사용하면 프로젝트에 나무, 덤불, 꽃 등을 어떻게 추가할지 결정할 수 있습니다. 이 편집 모드는 랜드스케이프 모드(Landscape Mode)와 함께 작동합니다.
작동 원리
폴리지 모드에 액세스하려면 모드 선택(Select Mode) 드롭다운 메뉴를 클릭하고 폴리지 모드를 선택합니다. 그러면 뷰포트 창 왼쪽에 폴리지 모드 패널이 열립니다. 이 모드에 대한 자세한 내용은 언리얼 엔진 폴리지 모드를 참고하세요.
폴리지 모드 툴을 사용하려면 콘텐츠 브라우저(Content Browser) 를 열고 Environment > Foliage 폴더에서 선택된 폴리지의 스태틱 메시를 메시 목록(Mesh List) 으로 드래그합니다. 메시 목록의 스태틱 메시에는 나무와 잔디뿐만 아니라 모든 유형의 스태틱 메시를 추가할 수 있습니다.
폴리지 모드는 임포트한 스태틱 메시에서도 작동합니다. 폴리지 모드는 포트나이트 사물에서 작동하지 않는데, 그 이유는 이러한 요소에는 나무와 덤불이 바람이 부는 것처럼 움직이도록 하는 블루프린트 스크립팅이 있지만 스태틱 메시가 전혀 움직이지 않기 때문입니다.
레벨을 그레이박싱할 때 폴리지 모드를 사용하여 폴리지를 어디에 배치할지 계획하세요. 모델링 모드로 단순한 셰이프를 생성한 후 해당 셰이프를 메시 목록에 추가하고 지형에 페인트하면 폴리지가 어떻게 보일지 아이디어를 얻을 수 있습니다.
폴리지 툴
폴리지 모드에서는 각 툴에 대한 환경설정을 원하는 대로 설정하거나 메시 목록의 모든 폴리지의 폴리지 유형을 수정할 수 있는 확장 가능한 툴을 사용합니다.
툴 |
설명 |
이미지 |
선택(Select) |
프로젝트에서 사용할 스태틱 메시를 메시 목록에 드래그하거나 검색창에서 특정 스태틱 메시를 검색합니다.
+폴리지(+Foliage) 버튼을 클릭하고 드롭다운 메뉴에서 스태틱 메시를 선택하거나 비인터랙티브 폴리지에 대해 메시 인스턴싱을 사용하는 새 스태틱 메시 에셋을 생성합니다.
|
 |
모두(All) |
폴리지 모드 툴이 적용된 프로젝트에서 스태틱 메시를 모두 선택합니다.
이를 사용하면 선택된 폴리지의 사본을 생성하고 해당 사본을 이동하거나 단순히 선택된 모든 폴리지를 이동할 수도 있습니다.
|
 |
선택 해제(Deselect) |
폴리지 모드 툴이 적용된 프로젝트에서 스태틱 메시를 모두 선택 해제합니다. |
 |
유효하지 않음(Invalid) |
유효하지 않은 폴리지 인스턴스를 선택합니다.
데이터 레이어에 정렬되지 않고 이 위에 호버링되는 폴리지 메시입니다. 이렇게 하면 지형 위를 떠다니는 폴리지가 생기지 않습니다.
|
|
올가미(Lasso) |
적용된 폴리지 범위 또는 메시 목록에 추가된 폴리지를 선택합니다. 선택하면 올가미로 묶인 폴리지를 복사 또는 이동할 수 있습니다. |
 |
페인트(Paint) |
메시 목록에서 선택된 폴리지로 지형을 페인트합니다.
페인트 세팅은 페인트 시 지형에 적용되는 스태틱 메시의 분포와 그 수를 결정합니다.
|
 |
재적용(Reapply) |
메시 목록에서 메시를 하나 이상 선택한 후 월드에 이미 배치된 폴리지 인스턴스의 세팅을 변경합니다.
- 재적용 툴을 선택하고 메시 목록에서 변경사항을 적용하려는 폴리지 유형을 선택합니다.
- 폴리지 디테일(Foliage Details) 섹션에서 원하는 대로 변경합니다.
- 변경사항을 레벨의 폴리지 인스턴스에 페인트합니다.
|
 |
단일(Single) |
폴리지의 단일 인스턴스를 단일 위치에 페인트합니다.
메시 목록에 스태틱 메시가 여러 개 있는 경우 단일 툴을 선택하면 동일한 지점에 모든 메시가 한 번에 적용됩니다.
|
 |
채우기(Fill) |
타기팅된 지형을 선택된 폴리지로 채웁니다. 해당 지형에 생성된 다른 스태틱 메시에서도 작동합니다. |
|
지우기(Erase) |
지형에서 선택된 폴리지를 지웁니다.
폴리지를 모두 지우려는 것이 아니라면 씬에서 지울 폴리지만 체크 해제하면 됩니다.
|
 |
제거(Remove) |
지형에서 선택된 폴리지를 모두 제거합니다. |
 |
이동(Move) |
선택된 폴리지를 현재 레벨로 이동합니다.
이 툴은 데이터 레이어와 함께 작동하여 폴리지가 어느 레이어에 있는지 식별한 후 해당 폴리지를 다른 데이터 레이어로 이동할 수 있게 해줍니다.
|
|
페인트 툴
페인트 툴을 사용하면 프로젝트에 스케일, 회전, 폴리지 추가 등 다양한 작업을 수행할 수 있습니다.
페인트 툴 |
설명 |
 |
브러시 옵션(Brush Options):
- 브러시 크기(Brush Size) - 브러시의 크기를 결정합니다.
- 페인트 밀도(Paint Density) - 페인트 브러시 내 스태틱 메시의 인스턴스 수와 간격을 결정합니다.
- 지우기 밀도(Erase Density) - Shift를 누른 채 폴리지를 지울 때 남길 폴리지의 밀도입니다.
- 단일 인스턴스 모드(Single Instance Mode) - 마우스 커서로 단일 폴리지 인스턴스를 페인트합니다.
- 현재 레벨에 배치(Place in Current Level) - 폴리지 메시를 현재 레벨에 배치할지 또는 페인트 중인 메시가 포함된 레벨에 배치할지 여부입니다.
필터(Filters):
- 랜드스케이프(Landscape) - 폴리지를 랜드스케이프에 배치합니다.
- 스태틱 메시(Static Meshes) - 폴리지를 스태틱 메시에 배치합니다.
- BSP - 폴리지를 BSP에 배치합니다.
- 폴리지(Foliage) - 폴리지를 다른 폴리지 메시에 배치합니다.
- 반투명(Translucent) - 폴리지를 반투명 지오메트리에 배치합니다.
- +폴리지(+Foliage) - 프로젝트에 추가할 스태틱 메시를 선택합니다.
- 메시(Mesh) - 현재 선택된 스태틱 메시입니다.
- 컴포넌트 클래스(Component Class) - 폴리지 인스턴스에 사용할 컴포넌트 클래스입니다. FoliageInstancedStaticMeshComponent의 블루프린트 서브클래스를 만들어 커스텀 행동을 구현하고 여기에 클래스를 할당할 수 있습니다.
- 머티리얼 오버라이드(Override Materials) - 새 머티리얼 배열을 추가하여 폴리지 인스턴스를 오버라이드합니다.
- 나나이트 머티리얼 오버라이드(Nanite Override Materials) - 새 나나이트 머티리얼 오버라이드 배열을 폴리지 인스턴스에 추가합니다.
페인팅(Painting):
- 밀도/1Kuu(Density / 1Kuu) - 폴리지 인스턴스가 이 밀도로 배치되며, 유닛 면적 1000x1000당 인스턴스 수로 지정됩니다.
- 반경(Radius) - 폴리지 인스턴스 사이의 최소 거리입니다.
- 단일 인스턴스 모드 오버라이드(Single Instance Mode Override) - 단일 인스턴스 모드에서 페인트할 때 다른 인스턴스와의 콜리전을 탐지하는 데 사용되는 기본값을 재정의할 수 있는 옵션입니다.
- 단일 인스턴스 모드 반경(Single Instance Mode Radius) - 단일 인스턴스 모드에서 다른 인스턴스와의 콜리전을 탐지하는 데 사용되는 반경입니다.
- 스케일링(Scaling) - 페인트 시 폴리지 인스턴스 스케일링 행동을 지정합니다.
- 스케일 X(Scale X) - 폴리지 인스턴스의 X 스케일 프로퍼티에 적용할 최소~최대 스케일 범위를 지정합니다.
- 스케일 Y(Scale Y) - 폴리지 인스턴스의 Y 스케일 프로퍼티에 적용할 최소~최대 스케일 범위를 지정합니다.
- 스케일 Z(Scale Z) - 폴리지 인스턴스의 Z 스케일 프로퍼티에 적용할 최소~최대 스케일 범위를 지정합니다.
- 채널로 버텍스 컬러 마스크(Vertex Color Mask by Channel) - 컬러 채널(RGBA)을 사용하여 폴리지 인스턴스에 버텍스 마스크를 생성합니다.
배치(Placement):
- ** Z 오프셋(Z Offset) - 폴리지 인스턴스의 Z 위치에 적용할 최소~최대 오프셋 범위를 지정합니다.
- ** 노멀에 정렬(Align to Normal) - 폴리지 인스턴스의 각도가 수직에서 벗어나 페인트되는 표면의 노멀을 기준으로 조정됩니다. 노멀에 정렬이 체크되어 있고 랜덤 요(Random Yaw)가 체크되어 있지 않은 경우 인스턴스는 회전하여 +X 축이 아래쪽 경사를 가리키게 됩니다.
- 평균 노멀 단일 컴포넌트(Average Normal Single Component) - 노멀 평균화 시 다른 히트 컴포넌트에서 발생한 노멀을 버릴지 여부입니다.
- 랜덤 요(Random Yaw) - 체크한 경우, 폴리지 인스턴스에는 수직축을 중심으로 랜덤 요 회전이 적용됩니다.
- 랜덤 피치 각도(Random Pitch Angle) - 원본에서 지정된 각도(도)까지 랜덤 피치 조정을 각 인스턴스에 적용할 수 있습니다.
- 지면 경사 각도(Ground Slope Angle) - 폴리지 인스턴스는 수평에서 지정된 각도 범위 내에서 경사진 표면에만 배치됩니다.
- 높이(Height) - 폴리지 인스턴스가 배치될 수 있는 유효한 고도 범위로, 최소 및 최대 월드 좌표 Z 값을 사용하여 지정됩니다.
- 포함 랜드스케이프 레이어(Inclusion Landscape Layers) - 레이어 이름이 지정되어 있는 경우 랜드스케이프에 페인트하면 랜드스케이프의 폴리지 영역이 페인트한 지정된 레이어로 제한됩니다.
- 제외 랜드스케이프 레이어(Exclusion Landscape Layers) - 레이어 이름이 지정되어 있는 경우 랜드스케이프에 페인트하면 페인트한 지정된 레이어가 없는 랜드스케이프의 폴리지 영역이 제외됩니다.
- 월드와 콜리전(Collision with World) - 체크한 경우, 각 인스턴스를 배치하기 전에 기존 월드 지오메트리와의 오버랩 테스트가 수행됩니다.
- 평균 노멀 샘플 수(Average Normal Sample Count) - 노멀을 평균화할 때 히트 위치 주변에 사용할 라인 트레이스 수입니다.
인스턴스 세팅(Instance Settings):
- 모빌리티(Mobility) - 폴리지 컴포넌트에 적용할 모빌리티 프로퍼티입니다.
- 컬 디스턴스(Cull Distance) - PerInstanceFadeAmount 머티리얼 노드를 사용하는 경우 인스턴스가 페이드 아웃되기 시작하는 거리입니다. 0으로 설정하면 이 옵션이 비활성화됩니다. 전체 클러스터가 이 거리를 벗어나면 클러스터가 완전히 컬링되고 전혀 렌더링되지 않습니다.
- 그림자 드리우기(Cast Shadow) - 폴리지가 그림자를 드리울지 여부를 제어합니다.
- 다이내믹 간접광 영향(Affect Dynamic Indirect Lighting) - 폴리지가 라이트 프로퍼게이션 볼륨에 라이트를 주입할 수 있는지 여부를 제어합니다. 이 플래그는 그림자 드리우기가 true일 때만 사용됩니다.
- 디스턴스 필드 라이팅 영향(Affect Distance Field Lighting) - 프리미티브가 다이내믹 디스턴스 필드 라이팅 메서드에 영향을 줄지 여부를 제어합니다. 이 플래그는 CastShadow가 true로 설정된 경우에만 사용됩니다.
- 다이내믹 섀도 드리우기(Cast Dynamic Shadow) - 미리 계산되지 않은 섀도잉의 경우, 폴리지가 섀도를 드리울지 여부를 제어합니다. 이 플래그는 CastShadow가 true로 설정된 경우에만 사용됩니다.
- 스태틱 섀도 드리우기(Cast Static Shadow) - 폴리지가 섀도 드리우기 라이트에서 스태틱 섀도를 드리울지 여부입니다. 이 플래그는 그림자 드리우기가 true일 때만 사용됩니다.
- 컨택트 섀도 드리우기(Cast Contact Shadow) - 오브젝트가 컨택트 섀도를 드리울지 여부입니다. 이 플래그는 그림자 드리우기가 true일 때만 사용됩니다.
- 라이트 맵 해상도(Light Map Resolution) - 스태틱 메시에 정의된 라이트 맵 해상도를 오버라이드 합니다.
- 콜리전 프리셋(Collision Presets) - 콜리전 프리셋을 선택합니다. 이 데이터는 프로젝트 세팅(Project Settings)에서 설정할 수 있습니다.
- 커스텀 탐색 가능 지오메트리(Custom Navigable Geometry) - 프리미티브가 내비메시에 영향을 미치는 경우 DoCustomNavigableGeometryExport()를 호출하여 이 프리미티브의 탐색 가능 지오메트리를 익스포트해야 합니다.
- 반투명 정렬 우선순위(Translucent SortPriority) - 반투명 오브젝트의 우선순위를 결정합니다.
- 양면으로 섀도 드리우기(Cast Shadow as Two Sided) - 이 폴리지가 양면 머티리얼인 것처럼 다이내믹 섀도를 드리울지 여부입니다.
- 데칼 수신(Receives Decals) - 폴리지가 데칼을 수신할지 여부입니다.
- 라이트맵 타입(Lightmap Type) - 이 컴포넌트에 사용된 라이트맵 유형을 제어합니다.
- 오클루더로 사용(Use as Occluder) - 체크한 경우, 폴리지는 다른 프리미티브를 가릴 수 있는 프리패스를 렌더링하며 DBuffer 데칼을 올바르게 수신할 수 있는 방법도 제공합니다. 이 세팅을 체크하면 퍼포먼스에 부정적인 영향을 미칠 수 있습니다.
- 레이 트레이싱에서 표시(Visible in Ray Tracing) - 체크한 경우, 스태틱 메시에 레이 트레이싱이 표시됩니다.
- 월드 포지션 오프셋 평가(Evaluate World Position Offset) - 체크한 경우, 월드 포지션 오프셋이 스태틱 메시 LOD에서 평가됩니다.
- 월드 포지션 오프셋 비활성화 거리(World Position Offset Disable Distance) - 월드 포지션 오프셋이 비활성화되는 거리를 설정합니다.
- 라이팅 채널(Lighting Channels) - 0~2 사이에서 라이팅 채널을 선택합니다.
- 커스텀 뎁스 패스 렌더(Render CustomDepth Pass) - true인 경우, 폴리지는 커스텀 뎁스 패스에서 렌더링합니다. 보통 외곽선에 사용됩니다.
- 커스텀 뎁스 스텐실 쓰기 마스크(Custom Depth Stencil Write Mask) - 스텐실 버퍼 쓰기에 사용되는 마스크입니다.
- 커스텀 뎁스 스텐실 값(CustomDepth Stencil Value) - 이 0~255 값을 커스텀 뎁스 패스의 스텐실 버퍼에 선택적으로 기록합니다. 프로젝트 세팅 또는 r.CustomDepth = = 3이 필요합니다.
엔진 퀄리티(Scalability):
- 밀도 스케일링 활성화(Enable Density Scaling) - 이 폴리지 유형이 엔진 퀄리티 시스템의 폴리지 엔진 퀄리티 세팅의 영향을 받을지 여부입니다. 게임에 실제 영향이 없는 디테일 메시에 활성화합니다. 모든 중요한 메시에는 비활성화합니다. 일반적으로 이 옵션은 콜리전이 없는 작은 메시(잔디)에 대해서는 활성화되고 콜리전이 있는 큰 메시(덤불)에는 비활성화됩니다.
- 로드 시 버리기 활성화(Enable Discard on Load) - CVarFoliageDiscardDataOnLoad가 활성화되어 있는 경우 이 폴리지 유형을 버릴지 여부입니다.
- 컬 디스턴스 스케일링 활성화(Enable Cull Distance Scaling) - 이 폴리지 타입이 엔진의 'foliage.CullDistanceScale' 세팅의 영향을 받을지 여부입니다.
버추얼 텍스처(Virtual Texture):
- 버추얼 텍스처에서 그리기(Draw in Virtual Textures) - 엔진이 인스턴스를 그리는 런타임 버추얼 텍스처의 배열입니다. 또한 이 메시 머티리얼은 버추얼 텍스처로 출력하도록 설정되어야 합니다. 컴포넌트가 메인 패스와 버추얼 텍스처에도 그릴 경우 컨트롤에 그립니다.
- 버추얼 텍스처 생략 밉(Virtual Texture Skip Mips) - 이 프리미티브의 렌더링에서 생략할 런타임 버추얼 텍스처의 하위 밉 수입니다. 값이 클수록 런타임 버추얼 텍스처의 유효한 그리기 거리가 줄어듭니다. 이 컬링 메서드는 프리미티브 크기나 버추얼 텍스처 크기를 고려하지 않습니다.
HLOD:
- HLOD에 포함(Include in HLOD) - 체크한 경우, 폴리지가 HLOD 그리기에 포함됩니다.
|