Unreal Engine 5.7 프로젝트에서의 PC 최적화
Unreal Engine

Unreal Engine 5.7 프로젝트에서의 PC 최적화

저자GameDev Base
날짜2026년 10월 17일
14분 읽기

Unreal Engine 5.7 프로젝트 PC 최적화: 하드웨어 타겟, 에셋 관리 및 전문 프로파일링 전략

Unreal Engine 5.7 프로젝트에서 PC 최적화를 위한 전문적인 워크플로우와 인디 개발자를 위한 실용적인 전략을 제공합니다. 타겟 하드웨어 범위(저사양/중사양/고사양/울트라), 성능 예산(FPS, 프레임 타임, CPU/GPU 점유율), 에셋 최적화(메시, LOD, 텍스처, Nanite, 버추얼 텍스처 등), 렌더링 설정(Lumen, 레이 트레이싱, 그림자, 반사, 포스트 프로세스), 품질 및 확장성 설정, 프로파일링 도구(Unreal Insights, GPU Profiler, RenderDoc, PIX 등) 및 워크플로우, 패키징/빌드 파이프라인(패키징, 쿡, 셰이더 컴파일, 레벨 로딩), 자동 및 수동 테스트 전략, CI/CD를 통한 성능 회귀 테스트, 하드웨어/드라이버 전용 최적화, 메모리 및 스트리밍 관리, 멀티플레이어/네트워크 주제를 다룹니다. 각 단계별로 구체적인 워크플로우, 권장 설정/범위, 장단점, 일반적인 실수, 소요 시간/노력 추정치가 제공됩니다. 또한 품질 프리셋과 설정, 프로파일 도구와 사용 시나리오, 에셋 최적화 기법과 예상 이득이 비교 표로 제시됩니다. 예시 명령줄, Unreal 콘솔 명령어 및 간단한 CI 테스트 케이스가 포함되어 있습니다.

하드웨어 타겟 및 성능 예산

PC 플랫폼은 다양한 하드웨어를 포함하므로 타겟 시스템을 분류하는 것이 중요합니다. 예를 들어 "저사양"은 내장 GPU 또는 구형 GPU가 탑재된 시스템; "중사양"은 최신 중급형 GPU(예: GTX 1660) 및 CPU; "고사양"은 모던 하이엔드 GPU(예: RTX 3070); "울트라"는 최고급 하드웨어(RTX 4080 등)로 간주할 수 있습니다. 1080p, 중간 설정에서 30 FPS는 최소 성능이며, 1440p, 높은 설정에서 60 FPS는 권장 타겟입니다. 60 FPS의 프레임 예산은 약 16.66 ms, 30 FPS는 약 33 ms입니다. 성능 타겟을 설정할 때는 해상도, 그래픽 설정, 최소/권장 시스템(CPU, GPU, RAM, VRAM)을 고려해야 하며, 프로파일링 작업은 일관된 하드웨어 및 드라이버 환경에서 수행되어야 합니다.

프레임 예산: 60 FPS ≈ 16.7 ms; 30 FPS ≈ 33.3 ms (예: 모바일 또는 저사양 기기의 경우). 144 FPS ≈ 6.9 ms와 같은 높은 수치도 VR/고주사율 모니터용으로 사용할 수 있습니다. 프레임 예산의 할당은 일반적으로 CPU와 GPU에 동등하게 배분되거나 타겟 기기 부하에 따라 조정됩니다. 예를 들어 CPU를 10~20%, GPU를 80~90% 정도 사용하는 시스템은 GPU 바운드일 수 있습니다. >95% GPU 사용량은 GPU 바운드임을 나타내며, 낮은 GPU 사용량과 높은 GameThread 시간은 CPU 바운드임을 나타냅니다.

하드웨어 프로파일: Intel Arc와 같은 신규 iGPU도 고려해야 하며, Steam 하드웨어 통계와 GPU 프로파일 점수를 시작점으로 활용할 수 있습니다. 프로파일링 시에는 항상 가장 최신 GPU 드라이버를 사용하고, 백그라운드의 불필요한 애플리케이션을 종료하며, 필요시 GPU 오버클럭 설정을 초기화해야 합니다. 정확한 GPU/CPU 사용량 정보를 얻기 위해 Windows에서 하드웨어 가속 GPU 스케줄링을 끄는 것이 권장됩니다.

에셋(Asset) 최적화

메시 및 LOD 관리: 복잡한 모델을 LOD(Level of Detail) 단계로 나눕니다. 각 스태틱 메시마다 3~5개의 LOD를 생성하면 원거리 디테일 부하를 완화할 수 있습니다. 저사양 LOD는 폴리곤(삼각형) 수를 50~90%까지 줄일 수 있습니다. 예를 들어 나무가 LOD0에서 LOD3으로 전환되면 셰이딩 및 드로우 비용이 크게 낮아집니다. Nanite 사용은 고폴리곤, 불투명 오브젝트에만 권장됩니다. Nanite는 볼륨감 있는 나무나 바위 군락 같은 오브젝트의 폴리곤 스트리밍을 자동으로 관리하여 수동 LOD의 필요성을 없애주며, 이를 통해 훨씬 더 많은 식생 배치(예: 250K 나무에서 Nanite 사용 시 58 FPS vs 전통적인 방식 1 2 3 21 • 45 • 6 7 8 1

41 FPS)에서 타겟 FPS를 유지할 수 있습니다. 그러나 Nanite가 항상 유리한 것은 아닙니다: 단일 표면 풀잎 카드와 같은 매우 단순한 지형은 전통적인 방식이 더 빠르게 렌더링됩니다. Nanite는 추가 VRAM 비용이 발생할 수 있으므로 stat RHI로 메모리 사용량을 모니터링하세요. 가능하면 복잡한 머티리얼을 단순화하거나 통합하세요(예: 여러 머티리얼 대신 단일 텍스처 아틀라스 사용). HLOD(High-Level LOD)를 생성하면 원거리 건물을 결합하여 단일 폴리곤으로 변환함으로써 드로우 콜 수를 줄일 수 있습니다. 고폴리곤을 단일 폴리곤으로 나타내는 섀도 프록시(merge actors / Geometry Script 사용)도 그림자 비용을 줄여줍니다.

텍스처 및 버추얼 텍스처(VT): 타겟 VRAM에 따라 텍스처 크기를 결정하세요: 저사양 기기에는 최대 1K~2K, 고사양 기기에는 4K+. 밉맵(Mipmap)을 사용하여 불필요한 메모리 및 대역폭 소비를 방지하세요. 버추얼 텍스처(Virtual Textures)는 매우 큰 월드 텍스처에 대해 VRAM을 절약해주지만 셰이더 복잡성을 높이고 추가 연산 비용을 유발할 수 있습니다. 예를 들어 대규모 오픈 월드 프로젝트에서 개별 컬러 및 노멀 텍스처에 8K를 사용하면 성능 향상 대신 메모리 부하가 증가합니다. 일반적인 규칙으로, 버추얼 텍스처는 복잡한 디테일과 메모리 제약이 있는 프로젝트에서 선호되며, 단순한 씬에서는 기본값으로 돌아가는 것이 좋습니다. 텍스처 압축(예: Oodle Texture)은 패키지 크기를 50% 이상 줄이고 로딩 시간을 단축합니다.

머티리얼 최적화: 가능한 한 단순한 머티리얼을 사용하세요. 씬에서 사용되는 고유 머티리얼의 개수를 제한하고, 머티리얼을 아틀라스화하여 드로우 콜을 줄이세요. 다중 레이어 머티리얼, 마스크, 동적 변형이 포함된 머티리얼(WPO, 버텍스 디스플레이스먼트)은 GPU 비용을 증가시키므로, 꼭 필요한 경우와 원거리에 있지 않은 오브젝트에만 사용하세요. 마찬가지로 마스크가 있는 텍스처 역시 투명 픽셀 수를 늘려 효율을 떨어뜨립니다. 시야 최적화(culling)를 위해 오브젝트에 적절한 컬링 거리(cull distance)를 설정하세요; 예를 들어 작은 수풀은 300~500m를 초과하면 끄는 것이 합리적입니다.

렌더링 설정 및 라이팅

Lumen 및 레이 트레이싱: Lumen 동적 GI는 고품질 조명을 제공하지만 무겁습니다. 저사양을 타겟팅하는 경우 Lumen 디테일 수준을 낮추거나 끄세요. r.LumenSceneDetail 및 r.LumenReflections.Quality 같은 CVar를 확인하세요. 스태틱 레이 트레이싱 대신 Lumen을 사용하여 CPU 비용을 절감하세요. 그림자를 위해 Virtual Shadow Maps (VSM)을 사용하는 경우, 저사양에서는 그림자 LOD를 낮추세요: r.Shadow.NaniteLODBias로 Nanite 그림자에서 더 낮은 디테일(LOD)을 사용하도록 설정할 수 있습니다. 다중 레이어 레이 반사가 필요한데 메모리가 제한된 시스템인 경우 스크린 스페이스 반사(SSR)로 전환하세요.

그림자 및 반사: 동적 그림자는 대개 가장 비용이 많이 드는 작업 중 하나입니다. 저품질을 위해 디렉셔널(CSM) 그림자를 낮은 텍스처 해상도로 설정하세요(r.ShadowQuality, r.CascadeDistributionExponent). 모바일 또는 내장 GPU에서는 그림자를 유휴 상태로 두기 위해 완전히 끄거나 r.Shadow.DistanceScale을 줄이는 전술을 사용하세요. 반사 캡처 수를 최소화하세요; 과도한 큐브맵은 GPU 부하를 증가시킵니다. 구형/중급형 사양의 경우 플래너(수면 등용) 또는 스크린 스페이스 반사(r.SSR.Quality)를 선호하세요.

포스트 프로세스 및 시각 효과: 포스트 프로세스 효과(피드백 블러, 블룸, 톤 매핑 등)는 성능에 영향을 줍니다. 불필요한 경우 뎁스 오브 필드와 모션 블러를 끄세요(r.DepthOfFieldQuality=0, r.MotionBlurQuality=0). 블룸, 렌즈 플레어, 볼류메트릭 포그 같은 효과는 낮추거나 끄세요. 타겟 설정에 따라 화면 스케일링(r.ScreenPercentage)을 70~150% 사이로 미세 조정하세요; 백분율을 낮추면 화질 저하와 함께 GPU 부하가 크게 감소합니다. 예를 들어 울트라 설정에서는 100% 화면 스케일을 사용할 수 있지만, 저사양 시스템에서는 70~80%로 충분할 수 있습니다. 실시간 조명 연산이 필요한 경우 저해상도 레이 트레이싱 기반 89 10 11 12 13 14 15 16 11 2

효과(레이 그림자, 반사)를 테스트해보세요; 성능이 저하되면 일반 그림자와 SSR로 돌아가야 합니다.

확장성 및 품질 설정

Unreal Engine 5는 하드웨어에 따라 품질 설정을 쉽게 조절할 수 있도록 Engine Scalability 프리셋을 제공합니다. 표준 품질 레벨은 Low, Medium, High, Epic, Cinematic입니다. 이 프리셋들은 한 번에 많은 CVar를 변경합니다(AA, 그림자, 텍스처 해상도, 포스트 프로세스 디테일, 효과 레벨 등). 예를 들어 Low 레벨에서는 그림자 품질과 텍스처 디테일이 최하로 낮아지고, Epic 레벨에서는 가장 높은 품질과 디테일한 설정이 활성화됩니다. 타겟 하드웨어 범위에 따라 종합적인 벤치마크 테스트(synthbenchmark)를 통해 초기에 적절한 확장성 프리셋을 선택하는 것이 중요합니다. 필요한 경우 각 품질 레벨에 맞춘 Device Profile 또는 DefaultScalability.ini를 통해 CVar를 세부 조정할 수 있습니다. 개발 과정에서 ~ 키를 통한 설정 패널이나 r.DefaultFeature.* 및 r.Scalability.* 콘솔 명령어(예: r.ViewDistanceQuality 2)로 동적 변경이 가능합니다. 예시 품질 프리셋과 대응 관계:

품질 레벨화면 스케일 (%)시야 거리 품질그림자 품질텍스처 품질효과 품질Low70낮음낮음 (0)낮음 (0)낮음 (0)Medium85중간중간 (1)중간 (1)중간 (1)High100높음높음 (2)높음 (2)높음 (2)Epic120최고Epic (3)Epic (3)Epic (3)Cinematic150울트라 (있는 경우)울트라 (4)울트라 (4)울트라 (4)

이 프리셋들은 게임 시작 시 또는 설정 메뉴에서 ScalabilityQuality 명령어를 통해(예: r.ScalabilityQuality 3은 High) 적용할 수 있습니다. 또한 Significance Manager를 사용하여 씬 내의 다양한 오브젝트에 거리에 따른 중요도를 부여함으로써 더 스마트한 레벨링을 수행할 수 있습니다.

프로파일링 도구 및 워크플로우

최적화의 기본 단계는 프로파일링입니다. UE5.7에서 사용할 주요 도구와 명령어는 다음과 같습니다:

Unreal Insights: 여러 프레임 동안의 CPU/GPU/스레드 활동을 상세히 기록합니다. 에디터에서 UnrealInsights.exe를 실행하고 게임을 시작하거나, 게임 내에서 Trace.Send 127.0.0.1 명령어를 사용하여 연결을 트리거합니다. Trace.Pause 및 Trace.Resume으로 기록을 시작하고 중지합니다. Insights는 수백 가지 메트릭을 그래픽으로 제공하여 병목 현상을 명확히 보여줍니다.

Stat 명령어: 게임 내에서 실시간 데이터를 모니터링하는 데 빠릅니다. 예를 들어 stat fps, stat unit, stat unitgraph는 FPS와 주요 스레드 처리 시간을 보여줍니다. stat gpu는 GPU 부하(프레임 타임, 드로우 콜, 폴리곤 수)를 요약합니다. stat scenerendering은 씬 렌더링 세부 정보를, stat nanite는 Nanite 폴리곤/인스턴스 통계를 제공합니다. stat RHI는 메모리 카운터를 표시합니다. 이 명령어로 초기 분석을 수행합니다; 예를 들어 DrawTime이 FrameTime에 가까우면 GPU 바운드, GameTime에 가까우면 CPU 바운드임을 파악할 수 있습니다.

ProfileGPU: r.ProfileGPU=1을 입력하면 매 프레임 끝에 GPU 타임라인이 Log에 기록됩니다. 이는 간단한 GPU 병목 현상을 찾는 데 유용합니다. 1717 18 19 • 20 21 • 2223 23 23 24 • 3

RenderDoc: 단일 프레임 GPU(DirectX12/Vulkan)를 캡처하고 셰이더 단계를 검사합니다. 심층 그래픽 파이프라인 분석에 사용됩니다.

PIX (Windows): 마이크로소프트의 DX12 GPU 분석 도구. 인라인 그래픽 타이밍, 가드 등에 선호됩니다. -AttachPix 파라미터로 게임에 연결됩니다(UE5.5+).

PresentMon: GPU/CPU 사용률을 시계열로 리포트합니다. 실시간 그래프에서 병목 현상 유형을 파악하는 데 이상적입니다.

GPUView: Windows Performance Toolkit과 함께 GPU/CPU 하위 시스템을 상세히 분석합니다. 특히 D3D 작업 큐, 충돌 및 GPU 렌더링 세부 사항을 확인하는 데 사용됩니다(프로파일링 시 화면 주사율 타이밍은 꺼야 합니다).

VTune / uProf: Intel VTune 또는 AMD uProf와 같은 심층 CPU 프로파일러는 게임 내 코드 섹션, 메모리 패턴 및 분기 예측 효율성을 검사하는 데 사용됩니다.

비교 표 예시:

도구사용 분야 / 목적Unreal Insights다중 프레임 CPU/GPU 실행 분석 (프로그램 흐름)Stat 명령어실시간 인게임 메트릭 (FPS, 스레드 시간)ProfileGPU프레임 기반 GPU 타이밍 (드로우 이벤트 세부 정보)RenderDoc단일 프레임 GPU 캡처 및 상세 드로우콜 분석PIX (Windows)GPU 타이밍/DX API 분석, 성능 브리지PresentMon실시간 GPU/CPU 사용량 그래프GPUView저수준 GPU/CPU 파이프라인 및 상호작용 분석VTune / uProfCPU 핫스팟, 메모리 대역폭 등 상세 분석

프로파일링 워크플로우: 일반적으로 stat 명령어로 빠른 점검을 먼저 수행합니다. 문제가 식별되면 Unreal Insights를 이용해 종합적인 기록을 시작합니다. CPU 워크로드 집약적인 경우 VTune 같은 도구로 코드 단계를 검사하며, GPU 병목이 있는 경우 RenderDoc/PIX/RGP로 단일 프레임을 캡처합니다. 예를 들어, 게임을 테스트(Test) 빌드로 시작하고 카메라 투어(아래 참조)를 통해 Trace.Pause/Resume으로 출력 데이터를 수집할 수 있습니다. 확인된 병목 지점에서 설정을 변경한 뒤 다시 프로파일링을 수행합니다. 프로파일링에는 항상 Test 또는 Shipping 빌드가 권장됩니다(Test 빌드는 Insights를 지원합니다). Development 빌드를 사용하는 경우 성능 저하를 유발하는 DRED를 제거할 수 있습니다(-dpcvars=r.D3D12.DRED=0,r.D3D12.LightweightDRED=0).

패키징 및 빌드 파이프라인

다중 빌드 및 패키징: 최종 빌드를 위해 UAT(Unreal Automation Tool)를 사용하여 Cook & Package 프로세스를 실행합니다. 명령어 예시:

RunUAT.batBuildCookRun-project="MyGame.uproject"-noP4-platform=Win64-clientconfig=Shipping-cook-allmaps-archive-archivedirectory="Build"-pak -prereqs

이 명령어는 모든 맵을 패키징하고 Oodle로 압축된 pak 파일을 생성합니다. 또한 셰이더 프리캐싱(-BuildAllShaderFiles) 및 PSO 캐싱(-CacheShaders) 작업을 수행해야 합니다. GUI를 통해 패키징하는 경우 프로젝트의 Project Settings > Packaging 옵션에서 “Pak 파일 포함” 및 “Shipping” 같은 설정을 확인합니다. 셰이더 컴파일 시간을 줄이기 위해 PSO Bundle Precache를 사용하여 콘솔에서 게임을 시작하기 전에 셰이더를 미리 캐싱할 수 있습니다.

빌드 설정: 앞서 언급했듯이 Test 빌드는 프로파일링에 가까운 성능을 제공합니다. CI/CD에서는 주로 Commandlet(예: UnrealEditor-Cmd.exe) 또는 UAT가 사용됩니다. CI 스크립트 예시:

UE4Editor-Cmd.exeMyGame.uproject-run=Cook-targetplatform=Win64-CrashForUAT-unattended

그 후 UnrealPak.exe로 출력물이 패키징됩니다. 프로세스에는 자동화된 서버/클라이언트 빌드(예: 멀티플레이어용)도 포함될 수 있습니다. 증분 쿠킹(Incremental Cooking) 및 셰이더\Pak 내보내기 같은 옵션은 개발 과정의 반복 작업을 가속화합니다.

수동 및 자동 테스트 전략

수동 테스트: 고정된 위치나 카메라 투어를 통해 크리티컬한 씬을 반복해서 실행하며 분석합니다. UE의 BugIt 콘솔 명령어를 사용하면 특정 좌표로 순간 이동할 수 있습니다(예: BugItGo x y z). 이를 통해 모든 테스트가 동일한 위치에서 시작됩니다. FPS 및 프레임 타임 변화는 `stat fps` 및 `stat unit`으로 모니터링합니다. 프로젝트가 진행됨에 따라 때때로 다른 PC에서 스트레스 테스트(고속 프레임 이동, Multiplayer 상황 등)를 수행하여 실시간 성능을 확인합니다.

자동 테스트: Unreal 5의 실험적 성능 자동화 기능(Automated Performance Tests)을 사용할 수 있습니다. 이는 특정 레벨에서 사전 정의된 카메라 경로로 FPS를 기록하고 비교하는 데 유용합니다. 현재로서는 커뮤니티 플러그인 또는 C++/Blueprint 스크립트로 간단한 테스트 자동화 도구를 개발할 수 있습니다. 예를 들어 게임이 특정 게임 모드에서 특정 뷰에 도달할 때까지 기다렸다가 `stat fps` 데이터를 로그에 기록할 수 있습니다. 또한 모든 워크플로 또는 CI 단계에서 벤치마크 세션을 구성할 수 있으며, 이 기간 동안 다양한 품질 설정(Low/High 등)에서 게임이 자동으로 플레이되고 결과가 비교됩니다. 요약하자면, 자동 테스트를 위해 간단한 레벨을 설계하고(씬 또는 시퀀서 사용) 입출력 FPS 값을 기록하는 스크립트를 작성하는 것이 좋습니다. 이를 통해 성능 저하를 조기에 감지할 수 있습니다.

CI/CD 및 성능 회귀 테스트

CI/CD 파이프라인(Jenkins, GitHub Actions 등)에 성능 테스트를 추가하는 것이 중요합니다. 예를 들어 각 커밋 이후 또는 매일 BuildCookRun을 트리거하여 안정적인 씬에서 벤치마크를 실행할 수 있습니다. 수집된 데이터는 각 빌드에서 비교되며, 갑작스러운 FPS 저하가 발생하면 경고가 표시됩니다. Unreal Insights를 사용하여 CSV 출력을 가져오고 일괄 분석을 수행할 수 있습니다. 간단한 예시 테스트 흐름:

  1. 자동화 명령어: 명령 프롬프트를 사용하여 다음과 같은 형식으로 테스트를 실행할 수 있습니다:

UE4Editor-Cmd.exe MyGame.uproject -run=Automation.RunTests PerfBenchmark.TestSuite -log=PerfTest.log

이 예제에서는 PerfBenchmark라는 테스트 모음이 호출됩니다. 테스트 전반에 걸쳐 `stat fps` 명령어로 프레임 시간이 기록됩니다.

  1. 비교: CI 스크립트는 출력 로그에서 평균 FPS를 추출하여 미리 저장된 기준 값과 비교합니다. grep, Python 또는 사용자 정의 도구를 사용하여 간단한 검사를 수행합니다.

  2. 그래프 보고: 수집된 통계(프레임 타임, CPU/GPU 사용량 그래프)는 시각적 보고서로 유지되며 Jenkins/Git에 그래프가 표시됩니다.

Epic의 새로운 성능 자동화 플러그인이나 PowerShell 기반 도구를 사용하여 이 프로세스를 자동화할 수도 있습니다(Unreal Fest 발표에서 언급된 방법과 유사함). CI/CD 프로세스에서는 프로파일 결과의 신뢰성을 위해 항상 Shipping/Test 구성 패키지를 사용하는 것이 좋습니다.

플랫폼 및 드라이버 고려 사항

Windows PC에서는 그래픽 API로 DirectX 12를 선호해야 합니다(UE5 기본값). 멀티코어 처리와 고급 설정을 지원하기 때문입니다. NVIDIA GPU의 경우 적절한 소프트웨어 개발 키트(NVIDIA Nsight), AMD GPU의 경우 Radeon Profiler가 설치되어 있어야 합니다. GPU 드라이버는 항상 최신 상태로 유지해야 하며, 때로는 특수 개발자 드라이버에 필요한 최적화가 포함되어 있을 수 있습니다. 그럼에도 불구하고 프로파일링 시 드라이버 안정성을 위해 표준 드라이버가 권장됩니다. Windows 설정에서 고성능 전원 계획을 선택해야 하며, 화면 수직 동기화(VSync)는 비활성화해야 합니다. 콘솔 시작 파라미터 중 `-novsync`로 수직 동기화를, `-noverifygc`와 같은 GC 보안 검사를 비활성화할 수 있습니다. 그래픽 드라이버 콘텐츠를 과도하게 최적화하는 "GPU 가속"과 같은 기능은 프로파일 결과를 왜곡할 수 있으므로 테스트 중에는 꺼두어야 합니다.

메모리 및 스트리밍 관리

텍스처 및 메시 스트리밍: 텍스처 스트리밍은 기본적으로 켜져 있으며, `r.Streaming.PoolSize`로 VRAM 상한선을 지정합니다. 한계를 초과하면 저급 밉맵이 강제 적용됩니다. 대규모 오픈 월드 프로젝트에서 버추얼 텍스처를 사용하는 경우, 활성 텍스처 풀을 관리하기 위해 엔진 CVar(`r.VT.*`)을 조정하세요.

레벨 스트리밍: 초기 설계 단계에서 레벨 스트리밍을 계획하십시오. 맵을 하위 섹션으로 나누어 메모리 부하를 줄이고 로딩 시간을 제어하세요. 예를 들어, World Partition 또는 Streamed Levels를 사용하여 도시의 여러 구역을 분할합니다. 프로파일링을 위해 `stat levels`, `Loadtimes.dumpreport` 명령어를 사용합니다. 느린 씬 로딩이나 로딩 히치 현상을 이러한 명령어로 기록하고 분석할 수 있습니다. 불필요한 참조를 제거하기 위해 SizeMap 도구로 Blueprint 및 에셋 종속성 체인을 검사하세요. 불필요한 에셋은 메모리 사용량을 크게 증가시킬 수 있습니다.

동적 메모리: 플레이 가능한 씬이 커짐에 따라 시스템 메모리와 VRAM이 중요해집니다. `stat Memory` 및 `stat Streaming` 명령어로 메모리 사용량을 모니터링하세요. UE5에서는 저수준 메모리 추적(LLM)을 활성화하여 어떤 에셋이 메모리를 소모하고 있는지 확인할 수 있습니다. 대형 물리 객체, 다수의 SFX 또는 동시에 처리되는 멀티플레이어 데이터는 메모리를 빠르게 소모할 수 있으므로 이를 프로파일링하고 필요한 경우 제한하세요.

멀티플레이어 및 네트워크 (Multiplayer/Network)

멀티플레이어 모드는 CPU 부하를 증가시킵니다(서버/틱 부하, 리플리케이트된 객체, 물리 연산). 각 플레이어에 대한 별도의 스레드가 아니더라도 서버 스레드는 추가적인 부하를 가져옵니다. 네트워크를 통해 전송되는 다중 데이터를 다룰 때는 리플리케이션 설정을 최적화하십시오. Update Rate와 Net Relevancy를 사용하여 불필요한 객체의 전송을 방지합니다. 가능하면 자주 사용되는 RPC를 압축하고(예: Fast TArray 사용) 실제로 필요한 게임 데이터만 전송하십시오. 프레임 타임 제한 외에도 네트워크 업데이트를 특정 예산으로 제한해야 할 수 있습니다. 성능을 분석할 때 `stat net` 명령어나 Net Profiler(UE 데이터 프로파일 플러그인)를 사용하여 데이터 패킷 크기와 지연 시간을 검사하세요. 네트워크로 인한 지연은 주로 로드 밸런싱(틱) 문제라기보다는 데이터 전송의 문제인 경우가 많으므로 프로파일 우선순위는 대개 CPU/GPU에 있습니다.

인디 친화적 서드파티 도구 및 플러그인

인디 팀을 위해 무료 또는 저렴한 비용의 도구를 선택해야 합니다:

  • Unreal Insights, RenderDoc, PIX, PresentMon, GPUView와 같은 무료 프로파일링 도구.

  • Unreal의 내장 Oodle Data 및 Oodle Texture 압축(Epic 제공)으로 패키지 크기 축소.

  • ACL(Animation Compression Library) 플러그인은 Unreal Engine 5.3+에 기본 포함되어 있으며 애니메이션 메모리 소비량을 절반으로 줄여줍니다.

  • 네메시스 생태계: NVIDIA Nsight(무료), AMD uProf/RGP(무료), Intel GPA/VTune(Intel 프로세서 – 간헐적 기간 한정 무료)과 같은 GPU/CPU 분석 도구.

  • 메시 및 텍스처 도구: Simplygon 또는 UE Geometry Tools(에셋 병합, HLOD 생성), Quixel Bridge(무료 Megascans 에셋)와 같은 에셋 최적화 도구.

  • CI/CD 지원: Jenkins/GitHub Actions(오픈 소스), Perforce Helix(소스 관리), Trello/Jira(작업 추적)와 같은 프로젝트 지원 소프트웨어.

  • 개발자 플러그인: PerfTrack 또는 Frame Trim과 유사한 커뮤니티 플러그인을 자동 FPS 테스트에 사용할 수 있습니다.

예시 워크플로 (Mermaid 다이어그램)

flowchart LR
    A[성능 목표 설정] --> B[대상 하드웨어 프로파일]
    B --> C[품질/스케일 설정 구성]
    C --> D[초기 프로파일 및 측정: Baseline]
    D --> E[병목 현상 감지 (CPU vs GPU)]
    E --> F[에셋/텍스처 최적화]
    E --> G[렌더링/라이팅 설정]
    E --> H[네트워크 및 멀티플레이어 설정]
    F & G & H --> I[재프로파일 및 비교]
    I --> J[CI 자동화 및 회귀 테스트]
    J --> K[최종 패키징 및 출시]

최적화 단계 타임라인

gantt
    title 최적화 타임라인 (예시)
    dateFormat  YYYY-MM-DD
    section 계획
    목표 정의        :done,    a1, 2025-06-01, 7d
    section 인프라 및 준비
    프로파일 도구 설치   :a2, after a1, 5d
    벤치마크 준비        :a3, after a2, 10d
    section 개발 및 테스트
    콘텐츠/그래픽 제작      :a4, after a3, 180d
    정기 프로파일 및 수정 :a5, after a4, 90d
    section 최종 최적화
    미세 조정 및 밸런싱     :a6, after a5, 30d

작업 최종 테스트 :a7, after a6, 14d 출시 준비 :a8, after a7, 7d 위의 다이어그램은 일반적인 프로젝트의 초기 계획부터 최종 출시 전까지의 최적화 단계를 보여줍니다(기간은 예시입니다).

  • 모든 제안은 공식 Unreal Engine 문서, Epic Games 및 주요 업계 리소스를 고려하여 작성되었습니다. 성능 데이터는 실제 테스트 및 스튜디오 노트를 기반으로 하며, 불확실한 부분은 명시되어 있습니다.

  • 정보 : 이미지는 Google Gemini에 의해 생성되었습니다.

OptimizationUE5PCOptimizationNaniteFoliageCIDCPipeline
딥 리서치 도구
ChatGPT
ChatGPT
번역 도구
Google Gemini
Google Gemini

공유