언어:
페이지 정보
수준별:
엔진 버전:
언리얼 엔진

폴리지, 인스턴싱된 메시

언리얼 엔진

Foliage Tool

폴리지(Foliage) 인스턴스드 메시 시스템은 랜드스케이프 액터나 다른 스태틱 메시 액터나 BSP 지오메트리에 스태틱 메시 세트를 빠르게 칠하거나 지울 수 있는 시스템입니다. 이러한 메시들은 하드웨어 인스턴싱을 사용하여 렌더링되는 일괄(batch) 그룹 속에 자동으로 묶이는데, 이는 단 하나의 드로 콜에 다수의 인스턴스를 렌더링할 수 있다는 뜻입니다.

폴리지 툴의 실전 예제는 랜드스케이프 콘텐츠 예제 콘텐츠 예제의 1.3 - 폴리지 섹션을 확인하시기 바랍니다.

폴리지 편집 모드

폴리지 툴을 사용하려면, 모드 패널의 Foliage (폴리지) 버튼을 (Shift+4) 누릅니다.

FoliageMode.png

폴리지 편집 모드 창이 모드 패널에 나타납니다.

FoliageWindowInitial.png

메시 목록

메시 목록은 폴리지로 사용할 스태틱 메시가 놓이는 곳입니다. 메시 목록에 스태틱 메시를 추가하려면, 콘텐츠 브라우저의 여기에 폴리지 드롭 이라는 곳에 스태틱 메시를 드롭해야 합니다.

노랑 폴리지 타입은 올바른 액터 유형을 추가하려 할 때만 표시됩니다. 이게 보이지 않으면, 추가하려는 것도 안됩니다.

폴리지로 사용된 스태틱 메시의 프로퍼티를 조절하려면, 먼저 메시 목록의 스태틱 메시를 선택한 다음 화면 우하단의 작은 확대경 아이콘을 클릭하면 선택된 스태틱 메시의 디테일이 나타납니다.

누르면 아래 그림과 비슷한 것이 보일 것입니다.

메시 목록에 폴리지 메시 선택

메시 목록의 폴리지 메시는 목록의 메시에 마우스 커서를 올린 뒤 좌상단 구석의 체크 표시된 박스를 체크 또는 해제함으로써 활성화 또는 비활성화시킬 수 있습니다.

Foliage_Selecting_Meshes.png

메시 목록의 폴리지 메시를 클릭으로 선택할 수도 있습니다. 그러면 그 주변에 주황색 외곽선이 그려지고, 아래 옵션 패널에서 다양한 프로퍼티를 조절할 수 있습니다.

브러시 세팅

Foliage_Brush_Settings.png

메시 목록(위 그림)에, 메시 편집 툴에는 현재 선택된 폴리지 툴에 관련된 프로퍼티가 표시됩니다. (모든 폴리지 툴에 모든 세팅이 전부 표시되지는 않습니다.)

항목

설명

Brush Size

브러시 크기 - 언리얼 유닛 단위의 크기입니다.

Paint Density

왼쪽 마우스 버튼으로 인스턴스를 칠할 때 목표로 삼을 밀도입니다.

  • 이 값의 범위는 0 에서 1 까지로, 1 은 각 메시에 대해 메시 프로퍼티에 나열된 최대 밀도로 메시 인스턴스를 칠합니다 (아래 참고).

  • 브러시 내 메시의 밀도가 이보다 크면, 메시가 추가되지 않습니다.

Erase Density

Ctrl+Shift+클릭 으로 인스턴스를 지울 때 목표로 삼을 밀도입니다.

  • 이 값의 범위는 0 에서 1 까지로, 0 은 메시가 없음을, 1 은 각 메시에 대한 메시 프로퍼티에 나열된 최대 밀도를 나타냅니다. 이 지우기 밀도보다 메시가 적은 경우, 메시를 더이상 지우지 않습니다.

  • 이미 칠해진 메시 인스턴스를 완전히 지우지는 않으면서 연하게 만들 수 있습니다.

랜드스케이프, 스태틱 메시, BSP, 반투명 이라는 이름의 체크 표시 박스는 툴 사용시 폴리지 메시가 어떤 액터 유형 위에 놓이도록 할 것인지를 결정합니다. 박스 하나를 체크하면 폴리지 메시가 그 액터 유형 위에 툴을 사용한 것처럼 폴리지 메시가 추가됨을 나타냅니다. 박스 체크를 해제하면 그 액터 유형에 폴리지 메시가 추가되지 않음을 나타냅니다.

태블릿 압력 감지 기능도 지원됩니다. 다른 모든 파라미터를 고려한 이후, 펜 압력을 통해 증감되는 폴리지 메시 인스턴스의 수가 변조됩니다.

폴리지 툴

폴리지 창 상단의 툴바에 버튼을 선택하여 사용할 수 있는 툴은 다섯가지 입니다.

항목

설명

페인트 툴

Paint Tool (페인트 툴) - 월드에/서 폴리지를 더하거나/빼는 데 사용되는 툴입니다.

재적용 툴

Reapply Tool (재적용 툴) - 월드에 이미 칠해진 인스턴스의 파라미터를 변경하는 데 사용됩니다.

선택 툴

Selection Tool (선택 툴) - 이동이나 삭제 등의 작업을 위해 개별 인스턴스를 선택하는 데 사용되는 툴입니다.

페인트 선택 툴

Lasso Tool (올가미 툴) - 페인트 브러시를 사용하여 다수의 인스턴스를 선택하는 데 사용됩니다.

Fill Tool

Fill Tool (채우기 툴) - 페인트 툴로 배치하려는 메시의 수를 결정하는 데 사용됩니다.

페인트 툴

Paint Tool

페인트 툴은 폴리지 편집 모드의 기본 툴입니다. 레벨의 메시 목록에 있는 스태틱 메시 인스턴스를 칠할 수 있습니다. 폴리지 편집 모드가 활성화되면, 레벨에 투명한 구체 브러시가 그려져 폴리지 브러시 적용 위치를 나타냅니다. 아래 그림에서 폴리지 페인트 브러시가 어때 보이는지 예제를 확인할 수 있습니다.

Foliage_Paint_Tool_Gimzo.png

폴리지 페인팅은 VR 에디터에서도 작동합니다. VR 에서의 폴리지 페인팅 조작법은, VR 모드 조작법 문서를 참고하세요.

브러시 영역에 폴리지를 칠하려면:

  • 왼쪽 마우스 버튼을 누른 상태로 폴리지를 추가하려는 곳에 클릭합니다. 메시 목록에 현재 선택된 메시 전부가 현재 파라미터와 세팅에 따라 추가됩니다.

메시를 칠할 때, 엔진은 구체 내부에서 보는 방향에 평행으로 라인 트레이스를 수차례 실시하여, 구체 내부에 보이는 표면이 폴리지 인스턴스 배치의 잠재적 대상이 될 수 있도록 합니다.

브러시 영역에서 폴리지를 지우려면:

  • 왼쪽 마우스 버튼 + Shift 키를 누른 상태로 폴리지를 지우려는 곳에 클릭합니다.

페인트 세팅

메시 목록의 각 스태틱 메시에 있는 여러가지 프로퍼티를 통해 스태틱 메시를 칠할 때 인스턴스 배치, 스케일 또는 회전 제어 방식을 조절할 수 있습니다. 프로퍼티에 접근하는 법은, 메시 목록에서 스태틱 메시를 선택한 다음 아래 표시되는 프로퍼티를 조절하면 됩니다.

각 섹션이 어떻게 쓰이는지 일반적 관점에서의 설명입니다:

프로퍼티

설명

Mesh

메시 - 어떤 유형의 스태틱 메시를 사용할지 입력하는 곳입니다.

Painting

페인팅 - 여기서 조절할 수 있는 것에는, 폴리지 메시 사이 최소 거리, 메시 추가 밀도, 폴리지 메시 스케일 적용 여부 등입니다.

Placement

배치 - 레벨에 폴리지를 칠할 때 폴리지 메시 배치 방법을 조절합니다.

Instance Settings

인스턴스 세팅 - 이 인스턴스의 작동방식을 제어하며, 콘텐츠 브라우저 내 스태틱 메시에서 파생된 프로퍼티는 사용하지 않도록 할 수 있습니다.

재적용 툴

재적용 툴

재적용 툴은 월드에 이미 놓인 폴리지 메시에 대한 특정 파라미터를 선택적으로 변경할 수 있도록 해 주는 툴입니다. 재적용 툴을 켜고 폴리지 메시 위에 칠을 하면 메시 목록에 선택된 폴리지 메시가 재적용 툴에서 가한 변경사항을 반영하도록 업데이트됩니다.

체크박스를 설정하면 기존 인스턴스에 브러시를 칠할 때 해당 파라미터가 재적용됩니다. 대부분의 세팅은 페인트 툴을 사용할 때와 비슷하며, 약간의 차이는 있습니다:

항목

설명

Mesh

메시 - 어떤 유형의 스태틱 메시를 사용할지 입력하는 곳입니다.

Painting

페인팅 - 레벨에 폴리지 메시를 추가할 때 무엇을 덮어쓸지를 정하는 곳입니다.

Placement

배치 - 레벨에 배치된 폴리지 메시 덮어쓰기 방법을 정하는 곳입니다.

선택 툴

선택 툴

선택 툴이 활성화되면, 폴리지 메시의 개별 인스턴스를 클릭하여 선택 가능합니다. Ctrl 키를 누른 채 레벨의 폴리지 메시를 클릭하면 한 번에 여러 개의 폴리지 메시를 선택할 수 있습니다.

인스턴스 선택 후 거기에 다음과 같은 작업이 가능합니다.

작업

결과

위젯 축 끌기

선택된 인스턴스는 위젯 모드 별로 위젯을 따라 움직이거나 회전되거나 스케일 조절됩니다.

Alt + 위젯 축 끌기

선택된 인스턴스를 먼저 복제한 다음 위젯을 따라 움직입니다.

Delete 키

선택된 인스턴스는 삭제됩니다.

End 키

선택된 인스턴스를 바닥에 끌어붙여 봅니다. 원래 이 세팅이 켜진 상태인 경우 노멀에 정렬됩니다.

다양한 선택 버튼으로 모든 폴리지 메시 액터, 유효하지 않은 폴리지 메시 선택, 선택된 것 선택 해제 등이 가능합니다.

Foliage_Select_Options.png

올가미 툴

Lasso Tool

올가미(Lasso) 툴은 다수의 크고 작은 폴리지 메시를 동시에 선택할 수 있습니다. 필터 세팅을 사용해서 특정 오브젝트에 놓인 폴리지 메시는 선택되지 않도록 할 수 있습니다. 폴리지 메시를 선택하려면 오른쪽 마우스 버튼을 누른 채 마우스를 움직여 씬을 돌아다닙니다. 폴리지 메시 선택을 해제하려면 칠하는 와중에 Shift 키를 누르면 됩니다. 선택을 했으면, 일반 선택 툴로 전환하여 폴리지 메시 복제, 이동, 또는 제거가 가능합니다.

Lasso Tool

채우기 툴

Fill Tool

채우기 툴은 레벨에 있는 전체 스태틱 메시 액터를 선택된 폴리지 메시로 덮는 데 사용됩니다. 채우기 툴은 칠하기 툴과 매우 비슷한 방식으로 작동하는데, 주요 차이점이라면 클릭 한 번으로 폴리지 내 전체 액터를 커버할 수 있다는 점입니다. 채우기 툴을 사용하려면, 폴리지로 덮고자 하는 스태틱 메시에서 왼쪽 마우스 버튼 을 누르면 됩니다. 마우스 버튼을 많이 클릭할 수록 추가되는 폴리지도 많아집니다. 폴리지를 제거하려면 Shift 키를 누른 상태로 폴리지에서 제거하고자 하는 스태틱 메시에 마우스 왼쪽 버튼 클릭하면 됩니다.

채우기 툴에서 폴리지 메시가 지워지는 문제를 겪고 계신다면, 추가된 폴리지 메시가 아니라 배치된 액터를 클릭했는지 확인하시기 바랍니다.

컬링

폴리지 인스턴스가 드로 콜 한 번에 클러스터로 렌더링되는 이유로, 각각의 클러스터는 오클루전에 따라 렌더링되거나 말거나 둘 중 하나입니다. End Cull Distance (컬링 끝 거리) 파라미터에 값을 설정하면, 그 거리 너머에 있는 클러스터 역시도 컬링됩(가려집)니다. 하지만 이때문에 전체 클러스터가 거리 밖을 벗어남에 따라 급작스럽게 메시 그룹이 사라지게 되기도 합니다.

이러한 현상은 Start Cull Distance (컬링 시작 거리) 파라미터를 추가한 다음 머티리얼을 적절히 구성하는 방식으로 줄일 수 있습니다. 버텍스 셰이더에서 인스턴스별 페이드 인수가 계산되는데, 시작 위치에서는 1.0 으로 시작하여 끝 위치에서는 0.0 이 됩니다. 이 값은 머티리얼에서 PerInstanceFadeAmount 노드를 사용하여 접근 가능합니다. 이를 오파시티나 마스킹 값에 연결해 주면, 그 값을 사용하여 컬링 끝 거리 위치에 이르러 렌더링 제외되기 전까지 천천히 사그라들게 만들 수 있는 것입니다.

아래는 머티리얼 마스크에 페이드 인수를 곱해서, 폴리지 메시 나뭇잎이 완전히 사라질 때까지 옅어지게 하는 머티리얼 예제입니다.

Culling Material Example

LOD

폴리지에 스태틱 메시 LOD 가 지원됩니다. 주의하실 점이 약간 있습니다:

  • 스태틱 메시의 (LOD0 아래 보이는) Elements (엘리먼트) 배열에 항목이 딱 하나만 있는지 확인합니다.

  • 라이트/섀도맵이 모든 LOD 레벨에 공유되므로, 모든 LOD 에 같은 unwrapping 을 사용해야 합니다.

  • 현재 인스턴스의 클러스터 전부가 LOD 를 동시에 변경합니다. 앞으로 인스턴스별 거리 기반 페이딩을 지원할 수도 있습니다.

라이팅

각 개별 메시 인스턴스에는 라이트매스로 자체 생성된 섀도 그리고/또는 라이트맵이 있어, 이들을 각각의 미리계산된 일괄작업(batch)에 대해 같이 타일링하여 일괄작업(batch)에 미리계산을 지원할 수 있습니다. 폴리지 인스턴스가 제대로 작동하게 하기 위해 미리계산된 라이팅에 대해서 체크해줘야 할 스태틱 메시 세팅이 몇 가지 있습니다. 라이트매스는 인스턴스 메시에 대한 섀도맵을 생성시 그리 관대하지 못한지라, 세팅이 잘못되면 라이팅 이후 메시가 까맣게 나올 수 있습니다.

  • Light Map Coordinate Index (라이트맵 좌표 인덱스) - 고유 UV 언래핑을 가진 적합한 UV 채널로 설정해야 합니다. 스태틱 메시 에디터의 Window (창) 메뉴에서 접근할 수 있는 고유 UV 생성 기능으로 고유 언래핑을 빠르게 생성할 수 있습니다.

  • Lightmap Resolution (라이트맵 해상도) - (디폴트 크기가 100인) 클러스터 하나에 있는 인스턴스에 대한 모든 섀도맵이 최대 텍스처 해상도(4096x4096)를 초과하지 않고 타일링 가능하게 하려면, 이 수치가 충분히 작아야 합니다.

폴리지 엔진 퀄리티(Scalability)

폴리지 스태틱 메시는 엔진 퀄리티(Scalability) 시스템 을 사용하여 현재 화면에 렌더링되고 있는 폴리지 인스턴스의 양을 늘이거나 줄일 수 있습니다. 프로젝트에 이 기능을 추가하는 방법은 다음과 같습니다:

폴리지 페인팅 모드 사용을 위해서는, 레벨에 반드시 콜리전이 켜진 랜드스케이프 터레인 또는 스태틱 메시가 있어야 합니다.

  1. 콘텐츠 브라우저에 우클릭합니다. 고급 애셋 생성 섹션 아래 기타 부분을 펼치고 폴리지 타입 옵션을 선택합니다.

  2. 폴리지 타입 이름을 입력 (이 예제에서는 FT_Box) 하고 FT_Box 폴리지 타입에 더블클릭하여 엽니다.

  3. FT_Box 가 열리면, MeshScalability 섹션을 엽니다.

  4. 콘텐츠 브라우저 에서 스태틱 메시를 선택합니다 (이 예제에서는 시작용 콘텐츠에 포함된 Shape_Cube 를 사용합니다). FT_Box 폴리지 타입의 Mesh 섹션에서, 콘텐츠 브라우저의 Shape_Cube 를 끌어 Mesh 옵션에 놓습니다.

  5. FT_Box 폴리지 타입의 Scalability 섹션에서, Enable Density Scaling (밀도 스케일 허용) 옆의 박스를 클릭하면 엔진 퀄리티(Scalability) 시스템이 이 스태틱 메시에 접근하도록 허용합니다.

    Enable Density Scaling 옵션은 전형적으로 작은 돌이나 덤불처럼 콜리전이 없는 디테일 폴리지에만 켜야 합니다. 나무와 같이 콜리전이 있는 폴리지 타입에 켜면 인스턴스를 제거한 경우 콜리전만 게임에 남아있기 때문입니다.

  6. 모드 패널에서 폴리지 툴 을 선택합니다. 콘텐츠 브라우저에서 FT_Box 폴리지 타입을 끌어 여기에 폴리지 드롭 이라는 영역에 놓습니다.

  7. 폴리지 타입 목록에서 배치한 FT_Box 폴리지 타입을 선택합니다. 뷰포트에 좌클릭 하여 FT_Bo 폴리지 타입 메시를 표면에 칠하기 시작합니다.

  8. 툴바 에서 플레이 버튼을 클릭하여 레벨을 실행합니다. 폴리지를 추가한 위치로 이동합니다.

    Foliage_Scalability_07.png

  9. 물결표 (`) 키를 쳐 콘솔 을 열고 다음 명령 뒤에 0 과 1 사이의 소수를 입력하면 폴리지 렌더링 밀도를 조절할 수 있습니다.

    • foliage.DensityScale

    Foliage Density Scale (폴리지 밀도 스케일) 세팅을 조절해도 에디터 뷰포트에서는 그 결과가 실시간 업데이트되지 않습니다. 실시간 업데이트를 확인하려면 에디터에서 또는 독립형 플레이 / 시뮬레이트 상태에서 명령을 입력해야 합니다.

foliage.DensityScale 세팅이 0.1 에서 1.0 까지 0.1 단위로 증가함에 따라 폴리지의 밀도가 어떻게 바뀌어가는지는 아래와 같습니다.

슬라이더를 끌면 foliage.DensityScale 세팅이 0.1 에서 1.0 까지 조절됩니다.