Scalability 설정
Effect Type, Budget, Significance Handler를 활용한 플랫폼별 이펙트 품질 관리를 학습합니다.
Effect Type 에셋
재사용 가능한 스케일러빌리티 프리셋
Effect Type은 Niagara System의 스케일러빌리티와 성능 설정을 재사용 가능한 에셋으로 묶어 관리하는 도구입니다. 여러 System이 동일한 Effect Type을 공유하여 일관된 품질 관리를 할 수 있습니다.
// 콘텐츠 브라우저에서 Effect Type 생성
우클릭 → FX → Niagara 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 System → Effect Type: ET_GameplayVFX
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 제거 |
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
Budget과 Significance
실행 예산과 우선순위 관리
Budget은 동시에 활성화될 수 있는 Niagara System의 최대 수를 제한합니다. Budget을 초과하면 Significance Handler가 가장 덜 중요한 이펙트를 컬링합니다.
| Significance Handler | 기준 | 설명 |
|---|---|---|
Distance |
카메라 거리 | 먼 이펙트부터 제거. 가장 일반적. |
Age |
이펙트 나이 | 오래된 이펙트부터 제거. |
Custom |
사용자 정의 | 게임 로직에 따른 커스텀 중요도. |
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()를 호출해야 합니다. 이를 방치하면 시간이 지남에 따라 이펙트가 쌓여 성능이 급격히 저하됩니다.
플랫폼별 최적화 전략
PC, 콘솔, 모바일 대응
| 전략 | PC (Epic) | 콘솔 (High) | 모바일 (Low) |
|---|---|---|---|
| 최대 파티클 수 | 제한 없음 | 50% 스케일 | 20% 스케일 |
| GPU Sim | 사용 | 사용 | CPU Sim으로 대체 |
| Light Renderer | 사용 | 제한적 | 비활성화 |
| Ribbon | 사용 | Tessellation 감소 | 비활성화 또는 Sprite 대체 |
| Fluids | 128~256 해상도 | 64 해상도 | 비활성화 |
| 컬링 거리 | 10000+ | 5000 | 2000 |
핵심 요약
- Effect Type은 스케일러빌리티 설정을 재사용 가능한 에셋으로 관리합니다.
- Scalability 오버라이드로 Low/Medium/High/Epic 품질별 다른 설정을 적용합니다.
- Budget과 Significance Handler로 동시 활성 이펙트 수를 제한하고 우선순위를 관리합니다.
- System, Emitter, Renderer 각 레벨에서 독립적으로 비활성화/스케일 조절이 가능합니다.
- Infinite Loop 이펙트를 반드시
Deactivate()하여 Budget 누수를 방지하세요. - 플랫폼(PC/콘솔/모바일)에 따라 파티클 수, GPU Sim, 렌더러를 차등 적용하세요.
도전 과제
배운 내용을 직접 실습해보세요
Niagara System의 Scalability 설정에서 Distance, Spawn Count Scale, Instance Count 제한을 설정하세요. sg.EffectsQuality 0~3 레벨별로 파티클 수와 가시 거리를 다르게 구성하세요.
모바일(Low), 콘솔(Medium), PC(High)용 Scalability 프로파일을 만들어 하나의 이펙트가 플랫폼에 따라 자동 조절되도록 하세요. GPU 파티클을 모바일에서는 CPU로 폴백시키세요.
FX Budget Allocator를 설정하여 화면의 전체 파티클 비용이 예산을 초과하면 자동으로 이펙트 품질을 낮추는 시스템을 구현하세요. Significance Handler 우선순위를 설정하세요.