이펙트아카데미 특강/외주/커뮤니티
언리얼 - 유성우 효과 제작과정(한글자막) part2파트 1. VFX 기술 심층 요약
1. 영상 주제 및 학습 목표
- 주제는 Unreal Engine의 Niagara 파티클 시스템을 활용해 Sphere 객체에 공기 흐름, 충격파, 부유 입자 등의 다층 VFX 효과를 구현하는 실전 튜토리얼이다. 구현 목적은 단일 Sphere 메쉬를 기반으로 내부 코어 입자부터 외부 공기 흐름, 충격파 오버레이, 주변 부유 입자까지 계층적 입자 상호작용을 통해 현실적인 동적 효과를 창출하는 데 있으며, 이는 게임이나 시네마틱에서 Sphere 기반 에너지 볼이나 폭발 효과로 활용 가능하다.
- 학습 목표는 Niagara의 기본 에미터 생성부터 고급 스크립팅(Scratch Pad)까지 마스터하여 입자 위치 동기화, Local Space 물리 상호작용, 랜덤 변형을 통해 안정적이고 유동적인 VFX를 독립적으로 제작할 수 있도록 하는 것이다. 특히 입자 간 의존성(부모-자식 에미터 연동)과 힘 균형(Gravity vs Disturbance)을 이해해 프리뷰 버그를 넘어 실시간 씬 적용이 가능해진다.
2. 전체 제작 프로세스 상세 단계
- Niagara System 생성 후 빈 Emitter(N101)로 Sphere 메쉬 임포트, Mesh Renderer 적용, 기본 마테리얼 무시하고 M01 할당.
- Emitter를 Immitter 모드로 전환, Lifetime 4초 ONCE Burst(1회 발사) 설정으로 단발 입자 생성, Initialize Particle에서 Color(2212 RGB), Size(2) 조정해 코어 구체 형성.
- Local Space 체크와 Jet Position 노드 추가로 공기 저항에 의한 좌우 진동 효과 구현(Intensity Random Vector XYZ 3, Delay 0).
- 첫 번째 Emitter(101) 복사해 102 생성, HS 반구 메쉬 임포트(M02 마테리얼), Mesh Render Layer 1로 외부 오버레이 우선순위 부여.
- 102의 초기화 랜덤화(Scale Random 0.75~1.9, Color 그라데이션, Size Random 2.6~8), Shape Random(-1~0)으로 불규칙 공기 흐름 형성, Lifetime 1.75초 단축.
- Particle Update에 Scratch Pad 스크립트 삽입: new Particle Reader로 부모(101) Position Get Vector by Index 추출, Vector 변환 후 Z Offset(110) 더해 자식 위치 동기화.
- 세 번째 Emitter(103) 102 복사, Burst 2회, Color/DY(3,5,1,5) 변경으로 강한 충격파 레이어 생성, Rotation 0으로 평면화.
- 네 번째 Emitter(104) 신규 생성, M03 Sprite 마테리얼, Infinite Spawn Rate 200으로 연속 부유 입자, Speed Align to Camera, Add Velocity(원뿔 형태 Inner 200), Local Gravity(Negative Z -566)와 Disturbance Force/Curve Noise 균형으로 안정적 부양 효과.
- 모든 에미터 Local Space 통합, 프리뷰 대신 씬 적용으로 검증, 후속 2개 에미터 예고.
-------------------------
파트 2. 시간대별 주요 흐름 요약
- [00:02] Niagara System 생성, 빈 Emitter(N01) 더블클릭 저장 후 첫 에미터(101) 빈 객체로 시작, Mesh Renderer로 Sphere 임포트.
- [00:36] 101을 Mesh로 변경, Sphere Import 후 기본 마테리얼 무시, M01 할당 시도(없음 무시), Immitter ONCE Lifetime 4초 설정.
- [01:36] Burst 1회 발사로 입자 생성 유도, 크기 문제 해결 위해 Initialize Size 2, Color 2212 입력해 코어 구체 시각화.
- [02:42] 마테리얼 불투명/양면 해제 설정 팁(투명 버그 회피), Local Space 체크 후 Kill Particle 무시, Jet Position 노드 추가로 진동 효과.
- [04:17] Jet Position Intensity Random Vector XYZ 3, Delay 0으로 즉시 공기 저항 흔들림 구현, 101 완료 후 102 복사(Position 제거).
- [05:58] 102에 HS 반구 메쉬(M02) 임포트, Mesh Render Layer 조정(0/1/10)으로 오버레이 우선, 초기화 Random Scale/Color/Size로 공기 흐름 변형.
- [08:26] 102 Shape Random(-1~0), Lifetime 1.75, Power Random 5~20, Use Guide 1~5로 유동성 강화, 위치 동기화 위해 Scratch Pad 필요성 설명.
- [10:40] Particle Update에 Scratch Pad 생성(Sc 검색), new Particle Reader(Parent 101)로 Position Get Vector by Index 스크립트 작성.
- [15:01] 스크립트 완성: Position 추출 -> Vector 변환 -> Z Offset 110 더하기 -> Emitter Position 반환, Apply/Save로 101 따라 움직이는 102 완성.
- [18:18] 103(102 복사) Burst 2, Color/DY(3,5,1,5), Rotation 0으로 충격파, 104 신규 Infinite Spawn 200, Sprite Length/Width 조정.
- [21:32] 104 Color Random Hue/Sat, Velocity 원뿔(496, Inner 200), Local Gravity(Neg Z -566), Disturbance/Curve Noise로 힘 균형 부양 효과.
- [25:42] Local Space 필수 강조(세계 좌표 시 아래 낙하), Curve Noise Perlin 1.25로 미세 난기류, 4개 에미터 완료 후 다음 강의 예고.
-------------------------
파트 3. AI 기술 첨언 및 피드백
- 기술적 보완 제안: 프리뷰 창 투명/위치 버그를 넘어 GPU Compute 스케줄러 활성화로 실시간 성능 최적화, LOD 시스템 추가(거리별 Spawn Rate 감소)로 모바일 적용, Dynamic Material Instance로 런타임 Color 파라미터화해 재사용성 강화, Collision 모듈로 Sphere 표면 반사 입자 추가해 물리 현실성 업그레이드.
- 학습 포인트 피드백: 입자 간 Scratch Pad 스크립팅과 Local Space 힘 균형(Gravity vs Disturbance)이 핵심 역량으로, 무작위 랜덤 값이 아닌 상호작용 인과(주파수 불일치 시 위치 어긋남)를 이해해야 실무에서 안정적 VFX를 제작할 수 있다. Burst vs Infinite Spawn 선택 기준과 Offset 스크립트 정확 입력(대문자/공백 없음)을 반복 연습해 에러 최소화.
-------------------------
파트 4. 핵심 기술 용어 및 파라미터 사전
- 주요 기술 용어 해설
1. Niagara Emitter - Niagara System 내 독립 입자 발생/제어 유닛으로, 영상에서 101~104로 계층화되어 Sphere 코어(101)부터 공기 흐름(102), 충격파(103), 부유(104)까지 다층 효과를 분리 관리하며 각 에미터의 Lifetime/Burst가 전체 지속성 결정.
2. Scratch Pad - Particle Update 모듈 내 스크립팅 환경으로, new Particle Reader/Get Vector by Index를 통해 부모 에미터(101) Position을 자식(102)에 동기화, 랜덤 불일치로 인한 위치 어긋남을 스크립트로 보정해 Sphere 회전 시 일괄 움직임 구현.
3. Local Space - 에미터 좌표계를 월드 대신 부모 객체(Sphere)에 고정, Gravity/Disturbance가 Sphere 반대 방향(Neg Z)으로 작용해 부양 효과 안정화, World Space 시 항상 아래 낙하로 효과 붕괴 방지.
4. Jet Position - Initialize 모듈 노드로 공기 저항 진동 시뮬레이션, Intensity Random Vector XYZ 3/Delay 0으로 즉시 좌우 흔들림 생성해 코어 입자 생동감 부여.
5. Burst - 지정 시점(ONCE) 단발 다량 입자 발사, 101은 1회 코어 생성, 103은 2회로 강한 충격파 강조, Infinite 대안으로 에너지 펄스 효과 의도.
- 파라미터 수치 설정 이유
1. Lifetime 4초(101)/1.75초(102) - 101은 코어 지속 노출 위해 길게, 102는 공기 흐름 빠른 소멸 위해 단축, Power/Translation과 연동해 페이드아웃 사라짐으로 자연스러운 주기 재생 유도.
2. Z Offset 110(Scratch Pad) - 반구 메쉬(102)가 Sphere(101) 꼭대기 오버레이 위해 수동 Vector 더하기, 실시간 Position 변화 추종으로 회전 시 동시 이동 보장, 위치 불일치(랜덤 주파수 차이) 완전 해결.
3. Gravity -566.195(Neg Z, Local) - Sphere 반대 방향 부양력으로 Disturbance/Curve Noise와 균형 맞춰 안정적 부유, 음의 값 과다 시 과속 낙하/부족 시 떠오름 방지, 힘 상호작용 물리학 기반.
4. Spawn Rate 200(Infinite,104) - 연속 부유 입자 밀도 유지 위해 높게, Random Hue/Sat/Velocity 원뿔(Inner 200)과 결합해 주변 산포 효과, 10(101 Burst 대조)로 계층 밀도 차별화.
5. Mesh Render Layer 0/1/10 - 101 코어(0) 뒤로, 102 공기(1) 오버레이 우선, 투명 겹침 가림 방지하며 Z-depth 충돌 최소화, 외부 충격파(103) 위 순서로 시각 계층화.
에반 언리얼5 이펙트 그룹과정[26년초 시작] : https://cafe.naver.com/unrealfx/20727
KUPAFX Stylized 유니티 이펙트 취업과정 : https://cafe.naver.com/unrealfx/21249
트리키 언리얼+후디니 활용 게임 VFX 연출과정 : https://cafe.naver.com/unrealfx/25629
max님의 쌩기초 메쉬활용 이펙트과정 1달특강 : https://cafe.naver.com/unrealfx/24469
eVan텍스쳐 단품과정 : https://cafe.naver.com/unrealfx/24468
rak 유니티 UI연출이펙트 : https://gamefx.co.kr/bbs/page.php?hid=Rak_intro
나이아가라, 언리얼엔진, 파티클이미터, 스크래치패드, 로컬스페이스, 버스트이펙트, 메쉬렌더러, 제트포지션, 충격파VFX, 부유입자