PART 7 · 강의 1/3

Scalability 설정

Effect Type, Budget, Significance Handler를 활용한 플랫폼별 이펙트 품질 관리를 학습합니다.

01

Effect Type 에셋

재사용 가능한 스케일러빌리티 프리셋

Effect Type은 Niagara System의 스케일러빌리티와 성능 설정을 재사용 가능한 에셋으로 묶어 관리하는 도구입니다. 여러 System이 동일한 Effect Type을 공유하여 일관된 품질 관리를 할 수 있습니다.

Effect Type 생성 및 설정
// 콘텐츠 브라우저에서 Effect Type 생성 우클릭FXNiagara Effect Type ET_GameplayVFX (Effect Type Asset): { Performance Baseline: Max System Instances: 30 // 동시에 활성화될 수 있는 최대 System 수 Update Frequency: Continuous // 매 프레임 업데이트 // 또는 SpawnOnly: 스폰 후 업데이트 중단 Cull Proxy Mode: None // 일반 이펙트 // Instanced: 여러 인스턴스를 하나로 병합 Significance Handler: Distance // Budget 초과 시 어떤 이펙트를 우선 유지할지 결정 } // System에 Effect Type 적용 Niagara SystemEffect Type: ET_GameplayVFX
02

Scalability 오버라이드

Low/Medium/High/Epic 품질별 설정

Niagara는 System, Emitter, Renderer 레벨에서 Scalability 오버라이드를 제공합니다. UE5의 품질 설정(Low, Medium, High, Epic)에 따라 자동으로 다른 설정이 적용됩니다.

오버라이드 레벨 제어 가능 항목 사용 사례
System 시스템 활성화/비활성화, 컬링 거리 Low에서 일부 이펙트 완전 비활성화
Emitter Emitter 비활성화, Spawn Rate 스케일 Low에서 연기 Emitter 제거
Renderer 렌더러 비활성화 Low에서 Light/Ribbon Renderer 제거
Scalability 설정 예시
NS_Explosion Scalability Overrides: System Level: Low: Max Distance = 3000 // 30m 이후 컬링 Medium: Max Distance = 5000 High: Max Distance = 10000 Epic: Max Distance = 0 // 0 = 무제한 Emitter "Smoke" Level: Low: Disabled // 연기 완전 제거 Medium: Spawn Rate Scale = 0.5 // 스폰율 50% High: Spawn Rate Scale = 0.8 Epic: Spawn Rate Scale = 1.0 Emitter "Sparks" - Light Renderer: Low: Disabled // 라이트 제거 Medium: Disabled High: Enabled Epic: Enabled
03

Budget과 Significance

실행 예산과 우선순위 관리

Budget은 동시에 활성화될 수 있는 Niagara System의 최대 수를 제한합니다. Budget을 초과하면 Significance Handler가 가장 덜 중요한 이펙트를 컬링합니다.

Significance Handler 기준 설명
Distance 카메라 거리 먼 이펙트부터 제거. 가장 일반적.
Age 이펙트 나이 오래된 이펙트부터 제거.
Custom 사용자 정의 게임 로직에 따른 커스텀 중요도.
Budget 설정
Effect Type - Budget 설정: { Max System Instances: 20 // 이 Effect Type을 사용하는 System이 20개 초과 시 // Significance가 가장 낮은 것부터 컬링 Significance Handler: Distance // 카메라에서 가장 먼 이펙트부터 컬링 Budget Adjustment: Scale Spawn Rate // 예산 부족 시 스폰율 감소 Reduce Systems // 시스템 수 자체를 줄임 }
흔한 실수: 이펙트가 사라지지 않음

이펙트가 완료되지 않고 계속 활성 상태로 남아있으면 Budget을 소모합니다. Loop Behavior가 Infinite인 이펙트는 반드시 게임 로직에서 Deactivate()를 호출해야 합니다. 이를 방치하면 시간이 지남에 따라 이펙트가 쌓여 성능이 급격히 저하됩니다.

04

플랫폼별 최적화 전략

PC, 콘솔, 모바일 대응

전략 PC (Epic) 콘솔 (High) 모바일 (Low)
최대 파티클 수 제한 없음 50% 스케일 20% 스케일
GPU Sim 사용 사용 CPU Sim으로 대체
Light Renderer 사용 제한적 비활성화
Ribbon 사용 Tessellation 감소 비활성화 또는 Sprite 대체
Fluids 128~256 해상도 64 해상도 비활성화
컬링 거리 10000+ 5000 2000
SUMMARY

핵심 요약

  • Effect Type은 스케일러빌리티 설정을 재사용 가능한 에셋으로 관리합니다.
  • Scalability 오버라이드로 Low/Medium/High/Epic 품질별 다른 설정을 적용합니다.
  • BudgetSignificance Handler로 동시 활성 이펙트 수를 제한하고 우선순위를 관리합니다.
  • System, Emitter, Renderer 각 레벨에서 독립적으로 비활성화/스케일 조절이 가능합니다.
  • Infinite Loop 이펙트를 반드시 Deactivate()하여 Budget 누수를 방지하세요.
  • 플랫폼(PC/콘솔/모바일)에 따라 파티클 수, GPU Sim, 렌더러를 차등 적용하세요.
PRACTICE

도전 과제

배운 내용을 직접 실습해보세요

실습 1: 이펙트 퀄리티 스케일 설정

Niagara System의 Scalability 설정에서 Distance, Spawn Count Scale, Instance Count 제한을 설정하세요. sg.EffectsQuality 0~3 레벨별로 파티클 수와 가시 거리를 다르게 구성하세요.

실습 2: 플랫폼별 Scalability 프로파일

모바일(Low), 콘솔(Medium), PC(High)용 Scalability 프로파일을 만들어 하나의 이펙트가 플랫폼에 따라 자동 조절되도록 하세요. GPU 파티클을 모바일에서는 CPU로 폴백시키세요.

심화 과제: Budget 기반 자동 스케일링

FX Budget Allocator를 설정하여 화면의 전체 파티클 비용이 예산을 초과하면 자동으로 이펙트 품질을 낮추는 시스템을 구현하세요. Significance Handler 우선순위를 설정하세요.