본문 바로가기

교재 목차

나이아가라의 시스템·이미터·모듈·매개변수·렌더러·충돌을 익히고 블루프린트와 연동한 파티클 효과를 제작합니다.

나이아가라는 값을 바꾸면 결과가 바로 눈에 보여서 배우는 재미가 있지만, 원리를 모르면 값을 고르는 일이 감에 기대게 됩니다. 입자가 왜 갑자기 사라졌는지, 블루프린트에서 넣은 값이 왜 반영되지 않는지, 프레임이 왜 떨어졌는지를 설명할 수 없기 때문입니다. 그래서 이 교재는 완성된 효과를 따라 만드는 데서 그치지 않고, 값을 바꾸면 어떤 결과가 나올지 미리 예상할 수 있도록 구성했습니다. 앞의 장에서 파티클 시스템과 모듈의 구조를 익힌 뒤, 데이터와 스크립트, 렌더링, 충돌과 물리, 블루프린트 연동으로 넓혀 가고, 마지막에는 실전 효과를 만들고 프로젝트를 꾸려 가는 방법을 다룹니다.

각 글은 화면을 보지 않고도 따라갈 수 있도록 메뉴의 경로와 입력 값, 기대하는 결과, 그리고 결과가 다를 때 확인할 순서를 글로 적었습니다. 생성 수와 수명, CPU와 GPU의 부담을 성능 예산과 이어서 설명하므로, 효과를 만들면서 실전의 품질 기준도 함께 익힐 수 있습니다. 입문 단계에서 자주 겪는 지나친 입자 생성이나, 같은 설정인데 결과가 달라지는 문제도 사례로 다룹니다.

이 교재의 패널과 모듈, 렌더러, 설정의 이름은 2026년 11월 기준 최신 정식 버전인 언리얼 엔진 5.8(핫픽스 5.8.4)의 공식 문서를 따릅니다. 이 교재의 예제는 직접 실행해 옮긴 것이 아니라, Epic Games의 공식 문서에 적힌 모듈과 동작을 기준으로 확인해 쓴 것입니다. 본문에 나오는 입자 수와 시간, 크기 같은 수치는 예제의 조건에서 손으로 계산한 예상이므로, 에디터에서 직접 만들어 보고 결과가 다르면 어느 모듈에서 갈라졌는지 따라가 보세요. 에디터 버전에 따라 메뉴의 위치나 표시 이름이 조금 다를 수 있습니다.


첫 목표: 효과 하나를 저장해 레벨에 놓기

첫 목표는 나이아가라 시스템 하나를 저장해 레벨에 배치하고, 생성 수와 수명, 화면에 보이는 것을 서로 구분하며 값을 조절하는 것입니다. 첫 번째 나이아가라 이펙트에서 템플릿으로 시스템을 만들고, 버스트의 개수와 수명을 바꿔 살아 있는 입자의 수를 예상과 비교한 뒤 레벨에 놓아 보세요. 그다음에는 같은 효과를 블루프린트에서 제어하고, 필요한 표현과 비용을 다듬어 갑니다.

Sprite Renderer에 템플릿의 머티리얼이 이미 있다면 그것을 그대로 씁니다. 머티리얼이 없을 때만 기본 머티리얼 설정과 적용에서 M_SimpleFire를 만들어, Particle Color의 RGB를 Emissive Color에, Alpha를 Opacity에 바로 연결하고 저장합니다. 선택 사항인 텍스처 단계나 6장 전체를 먼저 마칠 필요는 없으며, 지금 만드는 나이아가라 시스템에 그 머티리얼을 지정한 뒤 읽던 글로 돌아오면 됩니다.


시작하기 전에 준비할 것

일반적인 나이아가라 입문에는 C++이 필요하지 않습니다. 에셋과 레벨을 저장하는 일이 낯설다면, 언리얼 기본 교재의 기본적인 설정 및 프로젝트 생성과 첫 번째 프로젝트 실행을 먼저 읽습니다. 이미 프로젝트가 있다면 그대로 쓰면 됩니다.

교재 전체를 처음부터 읽지 않더라도, 목표에 따라 다음 세 경로 가운데 하나를 골라 시작할 수 있습니다.

경로읽을 범위마친 뒤 확인할 것
첫 효과1~3장, 특히 첫 번째 나이아가라 이펙트와 파티클 생성 및 기본 속성 설정저장한 시스템에서 생성과 수명, 렌더러, 머티리얼을 구분할 수 있음
값과 게임 연결필요한 만큼 기본 수학 함수와 벡터 연산, 동적 매개변수 시스템의 기초, 블루프린트 제어같은 컴포넌트에 넣은 값을 어느 모듈의 어느 단계에서 읽는지 설명할 수 있음
표현과 심화6장 머티리얼, 7장 충돌, 9~10장 제작과 관리, 사용자 정의 데이터 인터페이스목표에 필요한 표현만 넓히고, 지원 조건과 비용을 따로 확인함

블루프린트로 효과를 바꿀 때는 같은 나이아가라 컴포넌트를 참조하고, 바깥에서 넘기는 사용자 파라미터의 이름과 타입을 맞춥니다. 이름을 만들거나 값을 넣는 함수만 불러서는 효과가 바뀌지 않으며, 그 값을 읽는 모듈에 연결해야 합니다. 또 입자가 생길 때 실행되는 Particle Spawn에서만 읽는 값은, 이미 살아 있는 입자에는 다시 반영되지 않습니다.

이 교재를 읽을 때는 기준 값 하나와 바꿀 값 하나를 정하고, 결과를 먼저 예상해 적어 보세요. 예를 들어 이 사용자 파라미터는 어느 컴포넌트의 어느 단계에서 읽힐까요? 값을 바꾸면 새 입자와 기존 입자 가운데 어느 쪽이 달라질까요? 결과가 예상과 다르면 이름과 타입, 모듈의 연결, 같은 값을 나중에 덮어쓰는 모듈을 확인하고 기준 값으로 돌아가 다시 비교합니다.

몇 가지 흔한 오해도 미리 짚어 둡니다. 블루프린트의 Is Active는 살아 있는 입자 수나 화면에 보이는지와 같지 않고, Deactivate도 모든 입자를 곧바로 지운다는 뜻이 아닙니다. 생성 수와 수명, 화면 표시, 비용을 나누어 살피고, 화면에 잘 보인다는 이유만으로 비용도 적다고 판단하지 않습니다. 7장의 충돌은 게임의 명중이나 피해 판정을 대신하지 않으며, CPU의 월드 충돌 조회와 GPU의 화면 깊이, 카메라 주변의 거리 필드는 읽는 범위와 지원 조건이 다르므로 목표와 환경에 맞는 경로를 고릅니다. C++로 만드는 사용자 정의 데이터 인터페이스는 C++ 모듈과 CPU, GPU에서 실행되는 방식을 알아야 하는 선택적인 심화이며, 그 글은 완성된 구현을 제공하지 않고 CPU 함수가 GPU 코드로 저절로 바뀌지도 않습니다.


학습 경로

교재 전체를 차례로 읽는다면 다음 다섯 단계로 따라가세요.

1단계 · 나이아가라의 기초(1–3장)에서는 파티클이 생성되고 갱신되고 소멸하는 원리에서 시작해, 예전 도구인 캐스케이드와 나이아가라의 차이, 나이아가라의 주요 기능과 에디터의 패널을 살펴보고 첫 효과를 만듭니다. 이어 이미터의 실행 그룹과 생성량, 초기 속성, 렌더러의 종류, 시스템과 이미터의 속성을 익히고, 스폰과 업데이트 모듈, 이미터 사이의 이벤트 핸들러, 스프라이트의 렌더링 설정, 직접 만드는 모듈까지 모듈을 다루는 방법을 배웁니다.

2단계 · 데이터와 스크립트(4–5장)에서는 데이터 인터페이스로 메시와 스플라인 같은 바깥 데이터를 읽고, 사용자 파라미터로 게임 중에 값을 넘기며, 커브와 그래디언트로 수명에 따라 값을 바꿉니다. 그리고 파라미터 맵으로 값을 읽고 쓰는 나이아가라 스크립트의 구조와 수학, 벡터 연산, 조건과 반복, 속성의 읽기와 쓰기, 스크립트의 비용을 줄이는 방법을 익힙니다.

3단계 · 렌더링과 물리(6–7장)에서는 파티클용 머티리얼과 동적 머티리얼 파라미터, 렌더러의 조합, 조명과 글로벌 일루미네이션과 입자의 관계를 다룹니다. 이어 움직이지 않는 표면과 움직이는 액터와의 충돌, 힘과 질량을 구분한 물리 시뮬레이션, 스프라이트와 격자로 만드는 유체 효과, 그리고 그 비용을 줄이는 방법을 살펴봅니다.

4단계 · 블루프린트 연동(8장)에서는 블루프린트로 나이아가라 컴포넌트를 켜고 끄며, 플레이 중에 값을 갱신하는 주기, 사건이 일어난 순간에 효과를 만드는 순서, 게임플레이 요소와 효과를 연결하는 방법, 시퀀서의 시간축에서 효과를 제어하는 방법을 익힙니다.

5단계 · 실전 제작과 프로젝트 관리(9–10장)에서는 불꽃과 연기, 폭발의 시작 값에서 출발해 발자국과 물 튀김, 마법과 발사체, 캐릭터와 무기의 효과를 만들고 예산에 맞춥니다. 마지막으로 프로젝트 설정과 에셋 규칙, 버전 관리, 디버깅, 에셋 정리, 여러 플랫폼에 맞춘 예산까지 나이아가라 프로젝트를 꾸려 가는 방법을 다룹니다.

장마다 예제와 시작 상태가 다르므로, 하나의 효과를 10장 내내 이어서 완성하는 과정으로 보지는 마세요. 관심 있는 기능부터 읽을 때도 그 글에서 필요한 준비물과 앞선 글을 먼저 확인합니다.

다른 교재로 이어 가기

에디터 사용법과 레벨, 조명, 날씨처럼 나이아가라 밖의 기초는 언리얼 기본에서 다룹니다. 8장의 블루프린트 연동을 더 깊이 이해하고 싶다면 언리얼 블루프린트를, 4장의 사용자 정의 데이터 인터페이스처럼 C++로 기능을 넓히고 싶다면 언리얼 C++을 참고하세요.


장별 목차


만든 효과를 돌아볼 때

다음 장으로 넘어가기 전에, 지금 만든 효과에서 네 가지를 짚어 보세요. 첫째는 시스템의 구조로, 이 효과는 어떤 이미터들로 이루어져 있고 각 이미터가 어떤 입자 무리를 맡는가입니다. 둘째는 이미터 안의 역할로, 생성량과 초기값, 살아 있는 동안의 변화, 그리기가 각각 어느 그룹의 어느 모듈에서 정해지는가입니다. 셋째는 렌더링의 비용으로, 입자 수와 화면 면적, 겹침, 머티리얼 가운데 무엇이 비용을 가장 많이 쓰는가입니다. 넷째는 게임과의 연결로, 바깥에서 넣는 값이 어느 컴포넌트의 어느 단계에서 읽히고 언제 효과가 켜지고 끝나는가입니다.

교재 전체를 마친 뒤에도 같은 네 질문으로 자신의 효과를 설명할 수 있다면, 값을 빨리 맞추는 것보다 중요한 효과의 구조와 실행 순서, 비용, 게임과의 연결을 함께 잡은 것입니다.