Unreal Engine 5 - Foliage

mingu Lee·2025년 7월 5일

Unreal Engine 5

목록 보기
3/9

이번에 작성할 내용은 Foliage이다.

Foliage


Unreal Engine의 Foliage는 맵 위에 풀, 나무, 꽃 등 자연 오브젝트를 빠르고 쉽게 배치하는 시스템이다.

Foliage Mode에서 원하는 Static Mesh Foliage를 추가하여 사용할 수 있다.

Foliage를 활성화 시킨 후 Single 또는 Paint 기능을 사용하여 맵에 Drag하여 추가할 수 있다.

Single은 활성화한 Foliage가 한 지점에 생성되는 것이고, Paint는 특정 범위 내에 활성화한 Foliage가 랜덤으로 배치된다.

각 Foliage의 속성 값을 통해 생성되는 밀도, 거리, 크기 등을 조절할 수 있다.

Grass Type


그렇다면 풀 밭을 만들고 싶다면 일일이 모든 맵에 Foliage를 Paint 해야하는가?

이는 Grass Type을 사용하여 해결할 수 있다.

Grass Type은 Landscape Material에 연동하여 특정 영역에 Foliage를 자동으로 배치해주는 Asset이다.

Landscape Material을 만들 때 Landscape Grass Output과 Landscape Layer Sample Node를 사용하여 Grass Type을 설정할 수 있다.

Layer Sample의 이름은 Layer Blend에서 설정했던 이름과 똑같이 설정해야한다.

이후 Landscape Grass Output에서 특정 Layer에 원하는 Grass Type을 설정하면 된다.

Grass Type을 열고 Index를 추가하여 내가 원하는 Static Mesh를 설정하면 된다.

하나의 Grass Type에 여러 개의 Index를 추가할 수 있다.

이렇게 Grass Type을 설정하고 나면 이 Grass Type이 설정된 Layer를 Landscape에 Paint 했을 때, 해당 Layer에 내가 설정한 Static Mesh들이 자동으로 배치된다.

위 영상을 보면 Paint 시 해당 Layer에 바로 Foliage들이 배치되는 것을 볼 수 있다.

Procedural Foliage Spawner


Procedural Foliage Spawner는 내가 설정한 Foliage들이 특정 범위 내에만 생성되도록 하는 Asset이다.

PFS를 만들고 열어보면 Foliage Type을 설정할 수 있는데, 원하는 Foliage를 추가하면 된다.

이후 PFS를 맵에 Drag하여 생성하면 Volume Box가 하나 생성된다.

이후 Resimulate를 누르면 범위 내에 내가 설정한 Foliage들이 생성된다.

단순히 생성되는 것뿐만 아니라 해당 범위 내에서 생성되는 밀도 감쇠, Foliage의 성장, Seed 등 다양한 속성을 조절할 수 있다.

예를 들어, PFS의 설정 중 Procedural - Clustering을 보면 Num Steps과 Seeds Per Step이라는 값이 있다.

Num Steps은 시뮬레이션의 반복 수, Seeds Per Step은 각 단계마다 기존에 배치된 Foliage 주변에 뿌릴 Seed의 최대 개수이다.

즉, Num Step이 3이고 Seeds Per Step이 3이라면 최초의 Foliage 주변에 최대 3개의 Seed를 뿌리고, 다음 Step에 각 Foliage들이 최대 3개의 Seed를 뿌리는 것을 총 3번을 반복한다는 의미이다.

이런 방식으로 여러 번 반복되어 군집을 만든다.

위 사진을 보면 Num Steps과 Seeds Per Step이 모두 0인 초기의 Cluster 모습이다.

여기서 Num Steps을 1로 증가시키면 다음 사진처럼 Foliage들이 자란다.

여기에 추가로 Seeds Per Step를 3으로 증가시키면 다음 사진처럼 된다.

최초 3개의 나무 주변에 새로운 나무가 생성된 것을 볼 수 있다.

Num Steps을 3으로 증가시키면 위 과정을 3번 반복하므로 더 많은 나무가 생성된다.

추가로 먼저 생성된 Foliage일수록 나중에 생성된 Foliage에 비해 크기와 너비가 더 크다.

위 사진을 보면 각 Foliage의 크기가 모두 다른 것을 볼 수 있다.

이 외에도 특정 Layer를 Inclusion, Exclusion 할 수도 있고, Collision, Growth 등 다양한 값들을 조절하여 마음에 드는 PFS를 만들 수 있다.

아래 영상은 내가 임의로 Light, Landscape, Foliage, PFS 등을 설정하여 간단하게 만들어 보았다.

profile
Github: https://github.com/dlalsrn

0개의 댓글