오픈 월드 툴팁

오픈 월드 툴을 최대한 활용하는 방법에 대한 각종 팁과 트릭을 설명합니다.

Choose your operating system:

Windows

macOS

Linux

팁-트릭 헤더

다음 섹션에서는 오픈 월드(Open World) 툴을 십분 활용할 수 있는 여러 가지 팁과 트릭을 살펴봅니다. 에픽 개발자들은 오픈 월드 툴을 사용하여 카이트 데모(Kite Demo)를 제작한 후 2015년 게임 개발자 콘퍼런스에서 처음 선보였습니다. 이제 에픽 개발자들로부터 직접 입수한 팁과 트릭을 공개하겠습니다. 여기에서 소개하는 내용을 단순히 단계별 튜토리얼로 받아들이는 데 그치지 말고, 관련 기법을 프로젝트에 적용할 수 있는 방법과 작업 결과를 좀 더 고차원적으로 살펴보는 데 중점을 두어야 합니다.

프로시저럴 폴리지 퀵스타트그래스 툴 퀵스타트를 참조하면 오픈 월드 툴을 사용하는 방법에 대한 기초 지식을 보강할 수 있습니다.

그래스 툴 폴리지 메시 컬링

그래스 툴(Grass Tool)의 컬링을 조정하여 아주 멀리 떨어진 스태틱 메시를 렌더링할 수 있지만, 관련 옵션을 너무 높게 설정하면 비디오 카드 및/또는 UE5 에디터 세션이 충돌할 수 있으므로 주의하세요.

프로젝트에 그래스 툴을 사용하다 보면 특정 거리부터 스태틱 메시가 더 이상 표시되지 않는 현상이 나타날 수도 있습니다. 이는 오브젝트가 카메라로부터 특정 거리를 벗어나면 더 이상 렌더링되지 않도록 하여 프로젝트의 렌더링 용량을 줄이는 데 사용할 수 있는 최적화 방법의 일종인데, 전문 용어로 컬링이라고 합니다. UE5 에디터에서는 그래스 툴이 스태틱 메시 렌더링을 중단하는 거리를 다양한 방법으로 조정할 수 있습니다. 그래스 툴에서 스태틱 메시를 컬링하는 거리를 조정할 수 있는 첫 번째 방법은 그래스 다양성(Grass Varieties) 섹션의 랜드스케이프 그래스 타입(Landscape Grass Type) 액터에 있는 컬 디스턴스 시작(Start Cull Distance)컬 디스턴스 끝(End Cull Distance) 세팅을 설정하는 것입니다.

이미지를 클릭하면 전체 크기로 확대됩니다.

위의 이미지에서는 카이트 데모의 일부 그래스에 사용된 필드 그래스 스태틱 메시의 컬링 세팅을 확인할 수 있습니다. 아래의 이미지에서는 원래 세팅인 6,500을 유지했을 때와 그래스에 사용된 스태틱 메시가 더 멀리 렌더링되도록 세팅을 30,000으로 변경했을 때를 비교해볼 수 있습니다.

디폴트값 6,500

30,000으로 설정

위의 비교용 스크린샷을 자세히 보면 컬 디스턴스 끝 수치를 아무리 크게 설정해도 사용된 스태틱 메시가 특정 지점을 벗어나면 더 이상 렌더링되지 않는다는 것을 알 수 있습니다. 스태틱 메시의 렌더링 거리를 대폭 늘리려면 UE5 콘솔에 다음 명령과 십진수를 차례대로 입력해야 합니다.

Foliage.MinimumScreenSize 0.0001

Foliage.MinimumScreenSize 명령은 화면 공간에서 스태틱 메시가 컬링되는 크기를 늘리거나 줄이는 데 사용됩니다. 화면 공간의 크기가 카메라를 기점으로 한 거리와 함께 사용되는 이유는 카메라로부터 매우 멀리 떨어져 있는 아주 작은 오브젝트를 실수로 렌더링하지 않기 위해서입니다. 실수로 특정 메시 컬 디스턴스가 설정되지 않을 경우 프로젝트 퍼포먼스가 저하되지 않도록 하는 포괄적인 세팅이라고 간주하면 됩니다. 명령을 입력하려면 UE5 에디터에서 키보드의 물결표(~) 또는 역따옴표(`)를 눌러 언리얼 콘솔을 엽니다. 언리얼 콘솔이 열리면 아래의 이미지와 같은 부분이 UE5 에디터 하단에 나타납니다.

이미지를 클릭하면 전체 크기로 확대됩니다.

콘솔에 Foliage.MinimumScreenSize 0.0001 명령을 입력한 후 Enter 를 눌러 명령을 적용합니다. 그래스 맵이 리빌드되면 뷰포트 안에서 사용 중인 스태틱 메시가 전보다 멀리 렌더링되는 것을 볼 수 있습니다.

이미지를 클릭하면 전체 크기로 확대됩니다.

다음은 컬링 거리를 디폴트 세팅인 0.0001 로 설정했을 때와 0.00000001 로 설정했을 때의 차이를 알 수 있는 비교용 이미지입니다.

원래 세팅인 0.0001로 설정

최대 세팅인 0.00000001

디폴트값인 0.0001보다 큰 값으로 설정하면 퍼포먼스 문제가 발생할 수도 있으니 유의하세요. Foliage.MinimumScreenSize를 늘리려는 경우 퍼포먼스를 테스트하여 컬링 변경 사항이 프로젝트의 전체 퍼포먼스에 큰 영향을 미치지 않는지 확인하세요.

프로시저럴 폴리지 볼륨 기반 마스킹

나무로 이뤄진 숲 전체를 프로시저럴 방식으로 스폰하는 기능을 사용하면 시간을 엄청나게 절약할 수 있습니다. 그런데 특정 나무가 정해진 지역에만 스폰되도록 제한하려면 어떻게 해야 할까요? 이러한 목적으로 동원할 수 있는 방법은 여러 가지가 있습니다. 여러 개의 프로시저럴 폴리지 볼륨을 사용하거나 폴리지 툴을 사용하여 원하는 위치에 나무를 배치하는 것입니다. 그러나 이런 방법을 사용하면 프로젝트가 엄청나게 복잡해져 유지하기 매우 어려워집니다. 다행히 폴리지 타입(Foliage Types) 에는 랜드스케이프 머티리얼의 특정 레이어에 할당된 스태틱 메시의 배치 범위를 제한할 수 있는 옵션이 있습니다. 페인팅할 때 특정 레이어가 노출된 경우에만 해당 폴리지 타입의 스폰이 허용되어 범위가 제한될 수 있는 것입니다.

어떤 방법을 사용하든 레벨에서 프로시저럴 폴리지 볼륨(Procedural Foliage Volume) 을 선택한 후 다시 시뮬레이션(Resimulate) 버튼을 클릭해야만 변경 사항을 업데이트하고 확인할 수 있습니다.

이미지를 클릭하면 전체 크기로 확대됩니다.

아래의 이미지에는 세 가지 텍스처와 함께 세 가지 폴리지 타입을 사용할 수 있는 매우 간단한 랜드스케이프 머티리얼 세팅이 제시되어 있습니다. 여기에서 주목해야 할 부분은 레이어 블렌드(Layer Blend) 에 입력된 이름이 각기 다르다는 점입니다. 서로 다른 이름을 사용하는 것이 중요한 이유는 폴리지 타입을 어떤 랜드스케이프 지형 레이어에 연결하여 제한적으로 적용할 것인지 쉽게 결정할 수 있기 때문입니다.

이미지를 클릭하면 전체 크기로 확대됩니다.

랜드스케이프 머티리얼을 설정하고 나면 올바른 랜드스케이프 레이어와 연결되도록 폴리지 타입을 설정해야 합니다. 아래의 이미지에는 랜드스케이프 머티리얼의 특정 레이어에 할당된 스태틱 메시의 배치 범위를 제한하도록 폴리지 타입을 설정하는 방법이 예시로 제시되어 있습니다.

이미지를 클릭하면 전체 크기로 확대됩니다.

폴리지 타입을 직접 설정하려면 폴리지 타입 안에서 다음과 같은 작업을 수행해야 합니다.

  1. 랜드스케이프 레이어(Landscape Layers) 옵션이 나타나도록 고급 표시(Show Advanced) 화살표 아이콘을 눌러 펼칩니다.

  2. 요소(elements) 라는 단어의 오른쪽에 있는 더하기 부호 아이콘을 눌러 배열에 새 항목을 추가합니다.

  3. 이 폴리지 타입을 제한적으로 적용할 랜드스케이프 머티리얼의 레이어 이름을 입력합니다.

머티리얼과 폴리지 타입을 설정하고 나면 랜드스케이프 지형에 머티리얼을 할당하고 평소처럼 랜드스케이프 페인팅을 시작합니다. 페인팅을 마쳤거나 지금까지 진행한 작업을 확인하려면 레벨에서 프로시저럴 폴리지 볼륨을 선택한 다음 다시 시뮬레이션(Resimulate) 버튼을 눌러 변경 사항을 업데이트하고 적용합니다. 이 작업을 완료하면 다음 이미지에 보이는 것처럼 스폰된 폴리지가 연결된 랜드스케이프 텍스처로 한정됩니다.

이미지를 클릭하면 전체 크기로 확대됩니다.

위의 이미지를 자세히 살펴보면 예상했던 것처럼 모든 것이 프로시저럴 방식으로 배치되었지만, 스폰된 메시는 서로 섞여 있지 않은 상태임을 알 수 있습니다. 예를 들어 나뭇잎이 있는 나무는 그래스 텍스처가 랜드스케이프에 적용된 위치에만 스폰됩니다. 자세히 보면 덤불과 소나무도 동일한 상태임을 알 수 있습니다.

그래스 툴의 텍스처 기반 마스킹

폴리지 메시가 스폰되거나 스폰되지 않을 위치를 제한하는​또 다른 방법은 특정 영역에 폴리지 메시를 스폰하거나 스폰하지 않도록 오픈 월드 툴에 지시하는 일종의 마스크 구실을 하는 텍스처를 사용하는 것입니다. 다음 이미지는 텍스처 기반 마스킹이 적용된 매우 간단한 머티리얼을 보여줍니다.

이미지를 클릭하면 전체 크기로 확대됩니다.

이 이미지의 맨 왼쪽에는 월드 포지션 스케일링(World Position Scaling) 섹션이 있습니다. 이 섹션은 랜드스케이프 지형에 맞춰 넉넉하게 스케일링될 수 있도록 월드 스페이스에 마스크 텍스처를 스케일 조정하는 데 사용됩니다. 이 섹션 왼쪽에는 블렌딩한 두 개의 랜드스케이프 텍스처 외에도 폴리지가 배치될 위치를 지정하는 데 사용되는 마스크 텍스처가 있습니다. 각 마스크 텍스처 채널의 용도는 구체적으로 다음과 같습니다.

  • 빨강 채널(Red Channel): 이 채널은 랜드스케이프에서 그래스 메시의 스폰 위치를 지정하고 랜드스케이프 베이스 텍스처의 블렌딩 방법을 지정하는 데 사용됩니다.

  • 초록 채널(Green Channel): 이 채널은 랜드스케이프에서 암석 메시의 스폰 위치를 지정하는 데 사용됩니다.

마지막으로 이미지의 맨 오른쪽에는 메인 머티리얼(Main Material) 노드와 그래스 출력(Grass Output) 섹션이 있습니다. 메인 머티리얼 노드는 여타 표준 머티리얼과 동일한 방식으로 설정됩니다. 그래스 출력의 설정 방식은 텍스처 기반 마스킹과 유사하지만, 단순히 텍스처를 다르게 표현하는 것이 아니라 마스크의 적용 여부에 따라 스태틱 메시의 스폰 여부를 지정할 때 머티리얼의 영역을 사용한다는 점에서 큰 차이가 있습니다. UE5 에디터에서 랜드스케이프에 이 머티리얼을 적용하면 다음 이미지와 유사한 결과를 얻게 됩니다. 다만, 이 이미지에서는 랜드스케이프에 어떤 마스크 색상이 어떻게 적용되었는지 알 수 있도록 모서리에 배치된 마스크 텍스처를 제거한 상태입니다.

이미지를 클릭하면 전체 크기로 확대됩니다.

위의 이미지에서 그래스 스태틱 메시는 대체로 마스크 텍스처의 빨강 채널을 사용하는 영역에만 스폰되는 한편, 암석은 마스크 텍스처의 초록 채널을 사용하여 스폰됩니다. 이 이미지에 보이는 것처럼 약간의 풀과 암석은 마스크 텍스처 영역을 벗어난 곳에 스폰됩니다. 이는 사물이 더 자연스러워 보이도록 스태틱 메시의 배치 범위가 지터링되고 오프셋될 수 있기 때문에 나타나는 정상적인 현상입니다.

그래스 툴의 수학 기반 마스킹

마스킹에 텍스처를 사용하는 방법의 장점은 빠르고 간편하다는 것입니다. 그러나 배치 범위를 엄밀하게 제한할 필요가 없거나 퍼포먼스 문제로 인해 과도한 텍스처 데이터를 감당할 수 없는 경우도 있기 마련입니다. 이와 같은 경우 텍스처 대신 머티리얼 에디터에서 생성된 수학 함수를 사용하면 배치 효과를 높일 수 있습니다.

이미지를 클릭하면 전체 크기로 확대됩니다.

위의 이미지는 이전 예시의 머티리얼을 그대로 사용하되, 풀과 암석의 스폰 방법만 달리한 결과입니다. 이 예시에서 풀과 암석은 체커보드 패턴으로 스폰되었는데, 여기에서 배치 범위를 제한하는 데는 체커 패턴(Checker Pattern) 머티리얼 함수를 사용했습니다. 풀이 스폰되지 않는 부분에 암석이 스폰되도록 1-x(One Minus) 를 암석에 추가했습니다. 이를 랜드스케이프에 적용하면 다음 이미지와 같은 결과가 나타납니다.

이미지를 클릭하면 전체 크기로 확대됩니다.

그래스 툴의 비랜덤 배치

그래스 툴은 제대로 조정하기만 하면 밭에서 자라는 작물 등을 시뮬레이션하는 데도 사용할 수 있습니다. 아래의 이미지에는 이러한 유형의 시뮬레이션이 예시로 제시되어 있습니다.

이미지를 클릭하면 전체 크기로 확대됩니다.

그래스 툴을 이와 같은 용도로 사용하려면 그리드 사용(Use Grid) 을 선택해야 하며 배치 지터(Placement Jitter)0 으로, 그래스 밀도(Grass Density) 를 100 미만으로 설정해야 합니다. 다음 이미지에 보이는 것처럼 랜드스케이프 그래스 타입을 설정하면 첫 번째 이미지에 나타난 결과를 얻을 수 있습니다.

이미지를 클릭하면 전체 크기로 확대됩니다.