이번 포스팅은 언리얼4에서 Static Mesh에 사용하는 최적화 기법에대해 다루겠습니다.

 

Static Mesh는 이전에 소개한 Skeletal Mesh에서 본 정보만 없는 것으로 기본적으로 이전에 포스팅한 Skeletal Mesh 최적화와 중복되는 내용이 많습니다, Material Slot최소화, Tris(최소화)로 핵심 최적화 내용은 같습니다.

하지만 이번 포스팅에서 소개할 최적화 내용은 배경에 배치되는 Static Mesh 최적화 주제

1. Cull Distance

2. 액터 병합

3. HLOD(Hirerachy LOD)

4. Impostor Mesh

등을 이용한 최적화 주제로 소개하겠습니다.

 

 

Static Mesh 정보 & 기본 LOD 세팅

https://darkcatgame.tistory.com/33?category=795581

 

[UE4 최적화] Skeletal Mesh 최적화

Skeletal Mesh는 Mesh중에서 본 정보가 들어있는 Mesh입니다, 보통 애니메이션 동작하는 캐릭터나, 동물, 기계 모델은 Skeletal Mesh입니다. 이번 포스팅은 언리얼4에서 Skeletal Mesh의 기본적 사용방법과 최적..

darkcatgame.tistory.com

이전에 포스팅한 Skeletal Mesh게시글과 동일하게 Bone(본)정보만 없을뿐 똑같이 버텍스 수가 낮고 마테리얼 슬롯이 적어야 가벼운 오브젝트입니다.

LOD세팅도 동일하게 이전 게시글 확인하시고 작업하시면 되겠습니다.

 

 

Collision 세팅

만약 Static Mesh를 임포트 할때 옵션에서 위 Auto Generate Collision옵션을 켰다면 

위와 같이 기본 콜리전이 적용되어 있습니다.

 

상단의 콜리전탭에서 확인할 수 있습니다, 만약 콜리전이 없다면 초록색 콜리전이 뜨지 않습니다.

 

만약 배경에 설치할 이 Static Mesh가 콜리전이 섬세해야하거나, 콜리전이 필요없거나 해당 메쉬의 용도에 맞춰 최적화해야합니다.

 

상단 콜리전 메뉴에서 콜리전이 필요없으면 제거하거나 위 옵션에 맞춰 콜리전을 조절할 수 있습니다.

 

 

View Distance

레벨에 배치된 Static Mesh오브젝트들중 크기가 작고 멀리서 보면 안보여도 되거나, 게임에 영향이 가지 않는 오브젝트들을 위처럼 일정 거리 떨어지면 렌더링하지 않게하여 최적화할 수 있습니다.

 

레벨에 배치된 오브젝트를 선택 후 디테일 패널을 보면 Desired Max Draw Distance가 있습니다, 입력한 숫자는 거리값이고 해당 거리값이상 멀어지면 렌더링하지 않게 됩니다.

반대로 위의 Min Draw Distance는 해당 숫자만큼 가까워지면 렌더링하지 않습니다.

 

더 응용한 기술로 콘솔명령어중 r.ViewDistanceScale이라는 명령어가 있습니다. 해당 명령어의 기본값은 1이며 만약 0.5을 입력하면 위에서 입력한 Max Distance값을 300입력했다면 150으로 바뀌게 됩니다.

위 Distance값은 이 명령어 값과 곱해지는 것입니다.

이를 이용해서 멀티플랫폼 대응으로 값 조절이 가능합니다.

 

 

창->개발자 툴->디바이스 프로파일에서 해당 디바이스마다 콘솔명령어를 입력할 수 있습니다.

하지만 4.22버전에서 +버튼 눌러도 명령어가 나오지 않고 있어 다른 방법으로

 

프로젝트폴더->Config->DefaultDeviceProfiles.ini 파일에 직접 명령어를 넣어줘야합니다.

 

 

Actor Merge(액터 병합)

창->개발자툴->액터병합을 누르면 액터 병합 창이 뜨게 됩니다, 이 상태에서 뷰포트에 병합할 액터들을 선택한 후 옵션 설정 후 우측 아래 액터 병합을 누르면 병합된 Static Mesh가 새로 생성됩니다.

 

자세한 옵션 설명 : https://api.unrealengine.com/KOR/Engine/Actors/Merging/index.html

 

액터 병합

UE4 안에서 다수의 스태틱 메시를 하나의 메시로 합치는 데 사용되는 액터 병합 툴 개요입니다.

api.unrealengine.com

좌 : 기본 오브젝트들 ,  우 : 병합된 Static Mesh

 

 

HLOD(Hirerachy LOD)

HLOD는 액터 병합과 비슷하지만 더 유동성있는 기술입니다.

LOD값이 낮으면 일반 Static Mesh를 렌더링하고 카메라가 멀어지면 설정한 오브젝트들과 병합되어 최적화를 합니다.

 

HLOD를 사용하기 위해서는 세팅->월드세팅에서 HLOD를 활성화 시켜야합니다.

 

HLOD 아웃라이너 창을 엽니다.

 

뷰포트에서 HLOD적용할 오브젝트 선택후 LODLevel-0 우클릭하고 클러스터 생성합니다.

 

기둥이 총 4개있고 각 기둥마다 3개의 오브젝트를 묶어 놨습니다.

 

다음 해당 LOD에 대한 세부 설정을 해야합니다, 빨간 네모 표시한 Transition Screen Size값은 기존 Mesh들 Screen Size설정했던 것과 동일하게 해당 LOD가 동작하는 Screen Size를 설정합니다.

 

HLOD 설정이 완료되면 프록시 메시 생성 버튼을 눌러 HLOD를 적용합니다.

 

HLOD가 성공적으로 적용되었습니다.

 

다음 더 응용해보겠습니다.

 

우측 설정에서 LOD를 추가로 생성이 가능하며 추가된 LOD에 기존에 만든 LOD클러스터를 여러개 선택해서 드래그&드롭하면 해당 클러스터로 묶인 새 클러스터가 만들어집니다.

 

위 처럼 LOD를 여러개 만들고 클러스터끼리 합쳐서 위 처럼 HLOD를 만들수 있습니다.

 

 

Impostor Mesh + HLOD

2018 언리얼 서밋에서 발표된 내용중 포트나이트에서 Impostor + HLOD를 이용해서 최적화를 한것이 소개되었는데 방금 소개한 HLOD와 이전에 포스팅한 Impostor Mesh를 참고해서 적용하면 되겠습니다.

 

https://darkcatgame.tistory.com/35?category=795581

 

[UE4 최적화] Impostor Mesh

Impostor Mesh란? Impostor Mesh를 설명하기전에 쉬운 이해를 위해 Billboard(빌보드)의 개념에 대해 알필요가 있습니다. 빌보드는 고속도로 옆에 있는 옥외광고를 뜻합니다, 이와 똑같은 단어로 게임에도 사용..

darkcatgame.tistory.com

 

 

 

 

 

 

 

 

 


WRITTEN BY
CatDarkGame
Technical Artist dhwlgn12@gmail.com

,