Niagara 시스템 개요
UE5의 차세대 VFX 시스템인 Niagara의 전체 아키텍처와 핵심 개념을 이해합니다.
Niagara란 무엇인가
UE5의 유일한 공식 파티클/VFX 시스템
Niagara는 Unreal Engine 5의 차세대 비주얼 이펙트(VFX) 시스템입니다. 기존 Cascade 파티클 시스템을 완전히 대체하며, 아티스트와 테크니컬 아티스트가 프로그래머의 도움 없이 복잡한 이펙트를 제작할 수 있도록 설계되었습니다.
UE5에서 Cascade는 Deprecated(지원 중단) 상태입니다. 새 프로젝트에서는 반드시 Niagara를 사용해야 하며, 기존 Cascade 이펙트는 마이그레이션이 권장됩니다. UE5.5+에서는 Cascade 관련 기능이 점진적으로 제거되고 있습니다.
Niagara의 핵심 설계 철학
- 프로그래머 불필요 - 테크니컬 아티스트가 직접 커스텀 모듈과 동작을 제작 가능
- 완전한 커스터마이징 - 모든 동작이 모듈화되어 교체/수정 가능
- 데이터 기반 설계 - 파라미터 맵을 통한 유연한 데이터 흐름
- 시뮬레이션/렌더링 분리 - 하나의 시뮬레이션에 여러 렌더러를 연결 가능
- CPU/GPU 시뮬레이션 - 상황에 따라 CPU 또는 GPU 선택 가능
4계층 아키텍처
System > Emitter > Module > Renderer 구조
Niagara는 4가지 핵심 계층으로 구성됩니다. 각 계층은 명확한 역할을 가지며, 상위 계층이 하위 계층을 포함하는 구조입니다.
| 계층 | 에셋 타입 | 역할 | 편집기 |
|---|---|---|---|
| System | UNiagaraSystem |
여러 Emitter를 조합, 타임라인 관리 | System Editor |
| Emitter | UNiagaraEmitter |
파티클 스폰, 업데이트, 소멸 로직 | Emitter Editor |
| Module | UNiagaraScript |
개별 동작 정의 (HLSL 기반) | Module Graph Editor |
| Renderer | UNiagaraRendererProperties |
시뮬레이션 데이터 시각화 | Renderer Properties |
하나의 System에 여러 Emitter를 배치하면 이펙트 간 타이밍을 동기화할 수 있습니다. 예를 들어 폭발 이펙트는 불꽃 Emitter + 연기 Emitter + 파편 Emitter + 빛 Emitter로 구성할 수 있습니다.
Niagara 에디터 UI 구성
System Overview, Selection, Parameters, Timeline 패널
Niagara 에디터는 여러 패널로 구성되어 있으며, 각 패널은 이펙트 제작의 특정 측면을 담당합니다.
| 패널 | 위치 | 기능 |
|---|---|---|
| System Overview | 좌측 상단 | 전체 System과 Emitter 목록을 트리 형태로 표시. 모듈 스택 확인 및 추가/제거 |
| Selection | 우측 | 선택한 모듈/이미터의 프로퍼티와 파라미터를 편집 |
| Parameters | 좌측 하단 | System/Emitter/Particle 스코프의 모든 파라미터를 관리 |
| Timeline | 하단 | Emitter 시작/종료 시점과 시간 기반 이벤트를 관리 |
| Preview | 중앙 | 실시간 이펙트 미리보기, 카메라 조작, 배경 설정 |
| Scratch Pad | 하단 탭 | 로컬 커스텀 모듈 제작을 위한 노드 그래프 편집기 |
// 콘텐츠 브라우저에서 생성
우클릭 → Niagara System → 템플릿 또는 빈 System 선택
// 또는 기존 에셋에서
우클릭 → FX → Niagara System
// 프로젝트 설정에서 Niagara 플러그인 확인
Edit → Plugins → "Niagara" (기본 활성화됨)
새 System을 생성할 때 템플릿을 선택하면 기본 모듈이 미리 구성된 상태로 시작할 수 있습니다. Empty, Fountain, Sprite Burst 등 다양한 템플릿이 제공됩니다. 학습 초기에는 템플릿을 기반으로 모듈을 분석하는 것이 효과적입니다.
Cascade vs Niagara 비교
왜 Niagara로 전환해야 하는가
Cascade (Deprecated)
- 고정된 모듈 세트 - 커스터마이징 제한적
- CPU 전용 시뮬레이션
- 프로그래머 의존적 확장
- 단일 렌더러만 지원
- 파티클 간 상호작용 불가
- 이벤트 시스템 없음
- Data Interface 없음
Niagara (현재)
- 완전한 커스텀 모듈 제작 가능
- CPU/GPU 시뮬레이션 선택 가능
- 아티스트가 직접 로직 제작
- 다중 렌더러 동시 사용
- Neighbor Grid로 파티클 간 인터랙션
- 이벤트/Data Channel 시스템
- 외부 데이터 소스 연동 (Data Interface)
| 기능 | Cascade | Niagara |
|---|---|---|
| 아키텍처 | 고정 모듈 세트 | 스택 기반 커스텀 모듈 |
| 시뮬레이션 | CPU만 가능 | CPU + GPU Compute |
| 최대 파티클 수 | 수천 개 | 수백만 개 (GPU) |
| 커스텀 동작 | C++ 필요 | HLSL/그래프 에디터 |
| Data Interface | 없음 | Skeletal Mesh, Audio, Landscape 등 |
| 유체 시뮬레이션 | 불가 | Niagara Fluids 플러그인 |
| 디버깅 도구 | 제한적 | Debugger HUD, Attribute Spreadsheet |
Cascade 이펙트를 Niagara로 자동 변환하는 도구는 제공되지 않습니다. 각 이펙트를 Niagara로 재제작해야 하며, 이 과정에서 Niagara의 더 강력한 기능을 활용하여 품질을 향상시킬 수 있습니다.
첫 번째 Niagara System 만들기
간단한 분수(Fountain) 이펙트 구성
간단한 분수 이펙트를 만들며 Niagara의 기본 워크플로를 익혀봅시다.
Step 1: System 생성
// 콘텐츠 브라우저에서
우클릭 → Niagara System
→ New system from selected emitter(s)
→ Fountain 템플릿 선택
Step 2: 기본 모듈 스택 확인
Emitter Spawn
// 이미터가 처음 생성될 때 1회 실행
Emitter Update
└ Emitter State // 이미터 활성/비활성 상태 관리
└ Spawn Rate // 초당 파티클 생성 수 (기본: 20)
Particle Spawn
└ Initialize Particle // 위치, 크기, 색상 초기값
└ Add Velocity // 초기 속도 (위쪽으로)
└ Sphere Location // 구 형태의 스폰 위치
Particle Update
└ Particle State // 파티클 수명 관리
└ Gravity Force // 중력 적용
└ Drag // 공기 저항
└ Scale Color // 수명에 따른 색상 변화
└ Scale Sprite Size // 수명에 따른 크기 변화
Render
└ Sprite Renderer // 2D 스프라이트로 렌더링
Step 3: 파라미터 수정 실습
| 모듈 | 파라미터 | 기본값 | 수정 제안 |
|---|---|---|---|
| Spawn Rate | SpawnRate |
20 | 100으로 증가 (더 밀도 있는 이펙트) |
| Add Velocity | Velocity |
(0, 0, 500) | Z를 800으로 (더 높이 솟구침) |
| Initialize Particle | Lifetime |
5.0 | 3.0으로 감소 (빠른 소멸) |
| Gravity Force | Gravity |
(0, 0, -981) | 기본값 유지 (현실적 중력) |
핵심 요약
- Niagara는 UE5의 유일한 공식 VFX 시스템이며, Cascade는 Deprecated 상태입니다.
- 4계층 구조: System(컨테이너) > Emitter(파티클 생성) > Module(동작 정의) > Renderer(시각화)
- 시뮬레이션과 렌더링이 분리되어 하나의 시뮬레이션에 여러 렌더러를 연결할 수 있습니다.
- 모듈은 HLSL 기반으로 작성되며, 노드 그래프 또는 직접 코드로 커스텀 모듈을 제작할 수 있습니다.
- CPU와 GPU 시뮬레이션 모두 지원하며, GPU 시뮬레이션으로 수백만 개의 파티클을 처리할 수 있습니다.
- Data Interface를 통해 외부 데이터(Skeletal Mesh, Audio, Landscape 등)에 접근할 수 있습니다.
도전 과제
배운 내용을 직접 실습해보세요
Fountain 템플릿으로 Niagara System을 생성하고, System Overview 패널에서 모든 모듈을 하나씩 비활성화하며 각 모듈의 역할을 파악하세요. Spawn Rate, Gravity Force, Scale Color의 효과를 기록하세요.
하나의 Niagara System에 Sprite Emitter(불꽃) + Mesh Emitter(파편) + Light Renderer Emitter(발광)를 추가하여 간단한 폭발 이펙트를 조합하세요. Timeline으로 각 이미터의 시작 타이밍을 조절하세요.
기존 Cascade 파티클 시스템이 있다면 동일한 이펙트를 Niagara로 재제작하세요. 없다면 Fountain + Gravity + Color Over Life + Scale Over Life로 불꽃놀이 이펙트를 만드세요.