모든 포트나이트 언리얼 에디터(Unreal Editor for Fortnite, UEFN) 섬은 고성능 PC부터 모바일 기기까지 다양한 하드웨어를 지원하지만, 모바일에서 성공적인 섬을 만들려면 처음부터 최적화와 메모리 효율성을 염두에 두고 섬을 제작해야 합니다.
이 페이지에서는 모바일용으로 디자인할 때 고려해야 할 주요 사항을 안내합니다.
모바일 디자인 모범 사례 요약
플레이어를 고려하여 디자인하기:
대상 플레이어를 이해하고 모바일 게이밍 경험에서 플레이어가 원하는 것이 무엇인지 파악하세요.
모바일 화면에서 단순하고 깔끔하며 탐색하기 쉬운 커스텀 UI를 만드세요.
다양한 화면에 맞춰 디자인하고, 여러 유형의 화면과 해상도에서 자주 플레이테스트하세요.
포트나이트의 기존 모바일 컨트롤을 활용하고 그에 따라 게임을 디자인하세요.
플레이어를 사로잡을 게임플레이 만들기:
짧지만 재미있는 게임플레이 루프를 만들어서 게임을 쉽게 시작하고 쉬었다 다시 할 수 있도록 하세요.
플레이어의 기대감을 높일 수 있도록 게임 메커니즘을 보여주는 빠르고 흥미로운 게임 소개를 만드세요.
반복해서 플레이하도록 진행상황, 퍼시스턴스, 보상이 어떻게 이뤄지는지 알려주세요.
모바일 게이머를 끌어들이는 게임 모드와 장르를 선택하세요.
프로젝트 최적화하기:
엔진 퀄리티 세팅
UEFN은 플랫폼 엔진 퀄리티에 대응할 수 있도록 설계되었습니다. 하드웨어 제한으로 인해 일부 기능이 비활성화되거나 낮은 퀄리티 레벨로 제공됩니다. 에디터 내 비주얼 엔진 퀄리티 툴을 사용하면 다양한 엔진 퀄리티 그룹에 따라 섬을 미리 볼 수 있으니, 여러 레벨에서 테스트할 것을 적극 권장합니다.
아래 표는 다양한 퀄리티 레벨에서 스케일 조절되거나 비활성화되는 주요 기능을 보여줍니다.
엔진 퀄리티를 고려하여 섬과 에셋을 만들면 디바이스에 관계없이 최상의 퍼포먼스와 비주얼을 보장할 수 있습니다. 고려할 주요 부분은 다음과 같습니다.
메시 LOD: 커스텀 스태틱 또는 스켈레탈 메시에 메시 LOD를 사용하여 폴리곤 수를 줄이고 초당 프레임(FPS)을 높이세요.
월드 파티션 HLOD: HLOD와 월드 파티션을 사용하여 맵을 스트리밍하면 렌더링 항목을 줄여, GPU 부담은 낮추고 FPS를 높일 수 있습니다.
텍스처 그룹 및 밉 매핑: 밉 매핑을 통해 런타임 머티리얼 스케일 조절을 활성화하세요. 매끄러운 스케일 조절과 비주얼 퀄리티를 위해 텍스처가 올바른 그룹에 있고, 2의 거듭제곱으로 생성되었는지 확인하세요. 2의 거듭제곱으로 생성되지 않은 텍스처는 스트리밍되지 않습니다.
머티리얼 퀄리티: 복잡한 머티리얼은 저사양 플랫폼에서 비용이 너무 많이 들 수 있습니다. 에픽은 다양한 플랫폼 사양에 맞춰 머티리얼의 다양한 측면을 세부적으로 커스터마이징할 수 있게 해 주는 머티리얼 함수 래퍼를 만들었습니다.
Fortnite > Materials > Functions로 이동하면
MF_QualitySwitch_MaterialAttributes,MF_QualitySwitch_Scalar,MF_QualitySwitch_Vector가 있습니다. 이러한 퀄리티 스위치 래퍼를 사용하면 낮은 퀄리티 세팅에서 머티리얼 함수를 간소화해 퍼포먼스를 향상할 수 있습니다. 자세한 내용은 머티리얼 함수 페이지를 참고하세요.
모바일용 아트와 에셋을 최적화하기 위한 팁
처음부터 모바일 제한을 고려해 제작하세요.
오버드로를 피하세요. 레이어를 평탄화하고, 투명도를 제한하고, 겹치는 부분을 잘라내세요.
텍스처를 단순화하세요. 최소화 툴을 사용하세요.
모바일 기기에서 섬을 꼼꼼히 테스트하여, UI가 서로 간섭하거나 게임플레이 컨트롤이 겹치는 엘리먼트를 찾으세요. Amazon Luna 또는 Xbox Cloud Gaming을 사용하여 모바일 경험을 플레이테스트할 수 있습니다.
메모리 계산 툴을 실행하여 레벨에서 가장 비싼 에셋이 나와 있는 자세한 목록을 확인하세요.
추가 최적화 팁
UEFN은 뛰어난 엔진 퀄리티를 제공하지만, 그래도 콘텐츠를 간소화하고 최적화해야 합니다. 하드웨어 오버로드가 발생하면 FPS가 낮아지고, 로딩 시간이 길어지며, 기대에 미치지 못하는 경험으로 이어집니다. 퍼포먼스 향상을 위해 다음 가이드라인을 활용하세요.
메시 최적화: 폴리곤 수를 최대한 적게 유지합니다. 폴리곤 수 예산에 대한 자세한 내용은 포트나이트 레디 에셋 제작하기를 참조하세요.
머티리얼 수: 최대한 적은 수의 머티리얼을 사용하세요. 메시당 하나의 머티리얼 섹션만 사용하는 것이 이상적입니다.
텍스처 해상도: 모바일 기기의 텍스처 메모리는 제한적입니다. 가능하면 512x512 픽셀 텍스처를 사용하고 더 큰 크기는 피하세요.
드로 콜 줄이기: 너무 많은 고유 오브젝트와 텍스처를 동시에 렌더링하지 마세요. 인스턴스와 계층형 인스턴스 스태틱 메시(Hierarchical Instanced Static Meshes, HISM)를 사용하고, 가능한 경우 작은 오브젝트를 더 큰 소품으로 그룹화합니다.
월드 파티션 및 데이터 레이어: 화면 상의 에셋과 로드 시간을 줄이세요. 메모리 관리 문서 페이지에서 월드 파티션에 대해 알아보세요.
라이팅 최적화: 가능한 한 작은 라이팅 반경을 사용하고 라이팅이 겹치지 않도록 하며, 라이팅의 모빌리티를 스테이셔너리로 설정하세요.
뚜렷한 섀도가 필요하지 않은 라이트에서 그림자 드리우기를 끄세요. 특히 스카이라이트가 충분한 앰비언트 라이팅을 제공하는 야외 공간에서 끄는 것이 좋습니다.
라이팅 엔진 퀄리티 매니저 사용하기: 각 ESS 레벨에 대해 서로 다른 라이팅 시나리오를 준비하세요. 낮음 및 중간 레벨(모바일 및 구형 콘솔)에 대해 더 간단하고 퍼포먼스가 뛰어난 라이팅 방식을 구성할 수 있습니다.
밉맵과 밉맵이 필요한 이유
밉맵은 텍스처의 LOD라고 생각하면 됩니다. 텍스처 해상도는 카메라 거리와 방향에 따라 바뀔 수 있습니다.
더 선명한 렌더링을 위해 밉맵이 없는 텍스처를 사용하고 싶겠지만, 이러한 텍스처는 디바이스 메모리에 남아 있어 UEFN 스트리밍 프로세스를 우회하게 됩니다.
아래 차트는 크기에 따른 텍스처 메모리 사용량을 보여줍니다. 예를 들어 1024x512 텍스처는 1024x1024 텍스처보다 메모리를 절반만 사용한다고 생각하면 됩니다.
개별적으로는 얼마 되지 않는 것처럼 보여도, 많은 텍스처가 한 번에 화면에 로드되면 카메라가 다른 곳을 향할 때 메모리에서 즉시 지워지지 않게 됩니다. 이러한 메모리가 누적되면 메모리 제한을 초과하여 디바이스 크래시를 일으킬 수 있습니다.
모바일 문제 해결하기
모바일용 섬을 최적화할 때 발생하는 몇 가지 일반적인 문제와 그 해결책은 다음과 같습니다.
모바일 기기의 초당 프레임(FPS)이 낮음
문제: 드로 콜이 너무 많고 그래픽 카드에서 오버로드가 발생합니다.
해결책: 한 번에 표시되는 콘텐츠를 줄입니다. 월드 파티션을 사용하여 레벨을 나누고 렌더링되는 내용을 줄입니다.
해결책: HLOD와 메시 LOD를 사용하여 에셋 복잡성과 폴리곤 수를 줄여, GPU가 오브젝트를 더 빠르게 렌더링하도록 합니다.
해결책: 낮은 퀄리티 설정에서 복잡한 머티리얼을 단순화하거나, 프레임당 더 많은 GPU 계산이 필요한 고유 머티리얼의 수를 줄입니다. 가능한 경우 머티리얼을 재사용합니다.
해결책: 가능한 경우 작은 오브젝트를 하나의 큰 에셋으로 그룹화합니다. 그러면 그래픽 카드에서 이를 단일 아이템이나 드로 콜로 렌더링할 수 있습니다.
문제: 한 번에 너무 많은 에셋이 로드됩니다.
해결책: 월드 파티션을 사용하여 레벨을 나누고 로드되는 콘텐츠의 양을 줄입니다.
해결책: HISM 및 인스턴스를 사용하여 고유 에셋 수를 줄입니다.
해결책: 가능한 경우 머티리얼을 재사용하여 프레임당 GPU 계산을 줄입니다.
섬 메모리 사용량이 너무 높음
문제: 콘텐츠가 최적화되지 않습니다.
해결책: 가능한 경우 512x512 텍스처를 사용하고, 올바른 텍스처 그룹을 할당하고, 스트리밍이 활성화되어 있는지 확인합니다.
해결책: 커스텀 메시의 경우 가장 작은 폴리곤 수를 사용하여 효과적인 LOD를 찾고 쿠킹 크기를 줄입니다.
문제: 고유 메시가 너무 많습니다.
해결책: 가능한 경우 HISM과 인스턴스를 사용합니다. 동일한 에셋을 다양한 방식으로 재사용하면 메모리에 저장되는 고유 에셋의 수가 줄어듭니다.
해결책: 가능한 경우 작은 오브젝트를 하나의 큰 에셋으로 그룹화합니다.
지원되는 모바일 디바이스
다음 표에는 모바일 경험을 테스트할 때 고려해야 하는 디바이스와 사양이 나와 있습니다.
Android
| 카테고리 | 최소 요구 사항 |
|---|---|
운영 체제 | Android OS 10.0 이상 |
아키텍처 | ARM64 프로세서에서 구동되는 64비트 Android |
RAM | 4GB RAM |
GPU | Adreno 530 이상, Mali-G71 MP20, Mali-G72 MP12 이상 |
Apple
| 장치 | 모델 |
|---|---|
iPhone | 11, 11 Pro, 11 Pro Max, 12, 12 mini, 12 Pro, 12 Pro Max, 13, 13 mini, 13 Pro, 13 Pro Max, 14, 14 Plus, 14 Pro, 14 Pro Max, 15, 15 Plus, 15 Pro, 15 Pro Max, 16, 16 Plus, 16 Pro, 16 Pro Max |
iPhone SE | 3세대(2022년형) |
iPad Pro | 12.9 2세대 이상, 11 1세대 이상, 10.5 |
iPad Air | 4세대(2020년형), 5세대(2022년형) |
iPad | 10세대(2022년형) |
iPad Mini | 6세대(2021년형) |
추가 리소스
다음 리소스에서 관련 내용을 자세히 알아보세요.
포트나이트 문서의 메모리 및 최적화 섹션
UEFN의 프로젝트 최적화 YouTube 비디오
UEFN의 메모리 관리 YouTube 비디오