이미터의 개념과 설정
이미터가 파티클의 생성과 초기 속성을 담당하는 범위를 이해하고 Spawn·Update·Render 모듈 스택을 구성합니다.
이제 나이아가라 에디터의 기본 화면을 확인했으므로, 나이아가라 시스템의 주요 구성 요소인 이미터(Emitter)를 살펴봅니다.
이미터는 파티클을 생성하고 초기 속성을 지정하는 단위입니다.
이미터는 파티클을 언제 만들고, 어떻게 갱신하고, 어떤 방식으로 그릴지 담당한다.
- Emitter Update
루프, 지속 시간, 생성량
- Particle Spawn
수명, 색, 크기 초기화
- Particle Update
위치, 힘, 색상 변화
- Renderer
Sprite, Mesh, Ribbon 출력
- System
여러 이미터를 묶음
- Preview
레이어 조합 확인
이미터란 무엇인가요?
하나의 시스템 안에서도 연기, 불꽃, 잔재처럼 성격이 다른 입자는 서로 다른 이미터가 맡는다.
| 구간 | 정하는 값 | 결과 | 확인 포인트 |
|---|---|---|---|
| Spawn | 생성 시점, 생성량, 초기 속성 | 언제 몇 개의 파티클이 태어나는지 결정 | Rate와 Burst가 의도와 맞는가 |
| Update | 위치, 속도, 색, 크기 변화 | 시간에 따른 움직임과 수명 변화 | 모듈 순서가 최종 값을 덮어쓰는가 |
| Render | Sprite, Mesh, Ribbon 등 표현 방식 | 계산된 입자가 화면에 보임 | 렌더러와 머티리얼 바인딩이 맞는가 |
| System 조합 | 여러 이미터의 시작과 종료 | 복합 효과 완성 | 이미터별 수명과 비용이 분리되는가 |
이미터는 나이아가라 시스템 내에서 특정 파티클의 종류와 그 파티클이 어떻게 생성되고, 존재하며, 사라지는지를 정의하는 독립적인 단위입니다.
하나의 나이아가라 시스템은 여러 개의 이미터를 포함할 수 있습니다.
예를 들어, 불꽃 효과를 만든다고 가정해봅시다.
불꽃 심지에서 올라오는 연기, 터져서 흩날리는 불꽃, 그리고 잔재로 남는 재.
이 세 가지는 모두 다른 특성을 가진 파티클이며, 각각의 효과를 하나의 이미터가 담당할 수 있습니다.
이미터는 크게 두 가지 유형으로 나눌 수 있습니다.
- 독립적인 이미터(Stand-alone Emitter): 자체적으로 하나의
.uasset파일로 존재하며, 여러 나이아가라 시스템에서 재사용될 수 있습니다. 이는 특정 효과(예: 폭발의 섬광, 연기 기둥)를 표준화하여 다양한 시스템에 적용할 때 매우 유용합니다. - 시스템 내장 이미터(Embedded Emitter): 특정 나이아가라 시스템 내에 종속되어 생성되는 이미터입니다. 해당 시스템에서만 사용되며, 주로 시스템의 특정 부분을 구성할 때 사용합니다.
이 장에서는 주로 시스템 내에 포함된 이미터를 기준으로 설명하겠지만, 독립적인 이미터도 동일한 원리로 작동합니다.
이미터의 주요 설정과 모듈
이미터는 크게 네 가지 핵심 섹션으로 구성되며, 각 섹션에 다양한 모듈(Module)을 추가하여 파티클의 동작을 정의합니다.
나이아가라 에디터의 개요(Overview) 패널에서 이미터를 클릭하면 이 섹션들을 확인할 수 있습니다.
아래 다이어그램은 이미터 스택을 설정할 때 어떤 항목을 먼저 점검하면 좋은지 수명 주기와 모듈 실행 흐름 중심으로 정리한 것입니다.
위에서 아래로 내려갈수록 이미터 설정에서 파티클 계산, 화면 출력으로 책임이 좁아진다.
- Emitter
생성 시 / 매 틱 Emitter State 와 Spawn Rate/Burst로 수명과 발생 조건을 정한다.
- Particle Spawn
파티클마다 1회 Initialize Particle 에서 수명·색·크기·속도의 출발값을 만든다.
- Particle Update
살아있는 동안 매 프레임 힘·색·크기를 바꾸고 Solve Forces and Velocity 로 위치를 계산한다.
- Renderer
계산 뒤 출력 Sprite·Mesh·Ribbon으로 결과를 그린다. 모양과 머티리얼 비용의 소유자다.
- 안 나옴 Emitter 상태
Spawn을 확인
- 출발값 오류 Particle Spawn
확인
- 움직임 오류 Particle Update 순서
확인
- 모양 오류 Renderer
Material을 확인
아래 보드는 처음 이미터를 만들 때 어떤 섹션에서 무엇을 결정해야 하는지 제작 순서로 압축한 것입니다.
하나의 이미터 안에서도 각 섹션은 실행 시점이 다릅니다. 처음 만들 때는 “언제 실행되는가”를 기준으로 모듈을 놓으면 스폰 문제와 렌더 문제를 빠르게 구분할 수 있습니다.
- Emitter Update
루프, 지속 시간, Spawn Rate와 Burst처럼 이미터 단위의 생성 조건을 먼저 정합니다.
- Particle Spawn
Initialize Particle에서 Lifetime, Color, Size, 초기 속도를 부여해 탄생 상태를 만듭니다.
- Particle Update
살아있는 동안 매 프레임 힘, 색 변화, 크기 변화, Solve Forces 순서를 점검합니다.
- Render
Sprite, Mesh, Ribbon, Light 중 결과물에 필요한 렌더러만 남겨 비용을 통제합니다.
- 아무것도 안 보임
문제 추적표 아무것도 안 보임 Spawn 조건, Lifetime, 위치, Renderer 존재 여부를 순서대로 확인합니다. 너무 많음 Spawn Rate와 Lifetime의 곱으로 평균 개수를 계산하고 Max Particles를 둡니다. 움직임이 이상함 초기 속도와 Update 힘을 분리해 보고 Solve Forces가 마지막에 있는지 봅니다. 재사용 필요 다른 시스템에서도 쓸 패턴이면 독립 이미터로 빼고 파라미터 이름을 고정합니다.
- 고정 순서 Empty Emitter
시작해 필요한 섹션만 채웁니다. 먼저 사각형 파티클이 보이게 만든 뒤 움직임을 추가합니다. 모듈을 추가할 때 실행 시점과 비용을 같이 적어둡니다.
- 이 섹션의 모듈들은 이미터 자체에 영향을 미치며, 파티클이 생성되기 전에 또는 이미터의 수명 주기 동안 한 번 실행되거나 매 프레임 업데이트됩니다.
Emitter State: 이미터의 루핑(Looping) 방식, 지속 시간, 활성화/비활성화 시점 등을 설정합니다. 예를 들어, 이미터가 계속해서 파티클을 생성할지, 아니면 일정 시간만 생성하고 멈출지 등을 여기서 결정합니다.Spawn Rate또는Spawn Burst: 파티클이 얼마나 자주, 또는 한 번에 몇 개씩 생성될지를 정의합니다.Spawn Rate: 초당 몇 개의 파티클을 생성할지 지정합니다. 지속적으로 파티클을 뿜어내는 연기나 물줄기 같은 효과에 사용됩니다.Spawn Burst Instantaneous: 한 번에 지정된 수의 파티클을 생성합니다. 폭발처럼 짧은 순간에 많은 파티클이 필요한 효과에 적합합니다.
- 이 섹션의 모듈들은 각 파티클이 생성되는 순간에 단 한 번만 실행됩니다.
Initialize Particle: 생성되는 파티클의 기본적인 속성(예: 수명, 초기 색상, 초기 크기)을 정의합니다. 이 모듈은 대부분의 이미터에 필수적으로 포함됩니다.Set New or Existing Parameter Randomly: 파티클의 특정 속성(예: 초기 속도, 초기 회전)에 무작위 값을 부여하여 파티클마다 미묘한 차이를 줄 때 사용합니다. 이는 효과를 더욱 자연스럽고 다채롭게 만듭니다.Add Velocity: 파티클이 생성될 때 초기 속도를 부여하여 특정 방향으로 움직이도록 합니다.
- 이 섹션의 모듈들은 파티클이 살아있는 동안 매 프레임 실행됩니다. 파티클의 움직임, 색상 변화, 크기 변화 등 동적인 요소를 제어하는 핵심적인 부분입니다.
Add Velocity/Force: 중력(Gravity Force), 바람(Wind Force) 등 외부 힘을 적용하여 파티클의 움직임을 변화시킵니다.Scale Color: 파티클의 수명에 따라 색상이 변하도록 설정합니다. (예: 뜨거울 때는 붉은색, 식을수록 푸른색으로 변화하는 불꽃)Scale Sprite Size: 파티클의 수명에 따라 크기가 변하도록 설정합니다. (예: 사라질수록 점점 작아지는 연기)Solve Forces and Velocity: 이전에 적용된 모든 힘과 속도 변화를 통합하여 최종 파티클의 위치를 계산합니다. 이 모듈은 보통 파티클 업데이트 섹션의 마지막에 위치합니다.
- 이 섹션의 모듈들은 파티클이 최종적으로 화면에 어떻게 그려질지를 정의합니다.
Sprite Renderer: 파티클을 2D 이미지(스프라이트) 형태로 렌더링합니다. 가장 일반적으로 사용되는 렌더러입니다.Mesh Renderer: 파티클을 3D 메시(Mesh) 형태로 렌더링합니다. 예를 들어, 파티클 하나하나를 작은 돌멩이나 캐릭터 모델로 표현할 때 사용합니다.Ribbon Renderer: 파티클의 경로를 따라 연속적인 선(리본) 형태로 렌더링합니다. 마법 주문의 궤적이나 물줄기 같은 효과에 적합합니다.Light Renderer: 파티클이 주변 환경에 빛을 방출하도록 합니다.
이미터 추가 및 제거
나이아가라 시스템에 새로운 이미터를 추가하거나 기존 이미터를 제거하는 것은 매우 간단합니다.
- 추가: 개요 패널에서
System항목 아래의+버튼을 클릭하거나, 이미터 목록의 하단에 있는+버튼을 클릭하여 원하는 이미터(독립적인 이미터 에셋 또는 템플릿 이미터)를 추가할 수 있습니다. - 제거: 제거하고 싶은 이미터를 선택한 후
Delete키를 누르면 됩니다.
이미터를 추가할지, 복제할지, 독립 에셋으로 분리할지, 제거할지는 역할과 재사용성을 기준으로 판단하면 정리가 쉽습니다.
이미터를 늘리면 표현은 또렷해지지만 관리 지점도 늘어납니다. 추가, 복제, 독립 에셋화, 제거를 같은 기준으로 보면 시스템 안의 파티클 역할을 깔끔하게 유지할 수 있습니다.
- Add새 역할이 필요함
Add 새 역할이 필요함 연기, 불꽃, 잔재처럼 수명과 렌더 방식이 다르면 별도 이미터로 나눕니다.
- Duplicate비슷하지만 변형됨
Duplicate 비슷하지만 변형됨 같은 구조에서 색, 생성량, 방향만 다르면 복제 후 차이값만 정리합니다.
- Asset여러 시스템에서 재사용
Asset 여러 시스템에서 재사용 폭발 섬광이나 먼지처럼 반복해서 쓰는 패턴은 독립 이미터로 빼둡니다.
- Remove역할이 겹치거나 비용이 큼
Remove 역할이 겹치거나 비용이 큼 비슷한 렌더러가 중복되거나 화면 기여가 작으면 먼저 비활성화해 비교합니다.
- 새 시각 요소
작업 판단표 상황 선택 확인할 결과 새 시각 요소 Empty Emitter 추가 다른 입자와 독립적으로 켜고 끌 수 있는가 같은 패턴 반복 복제 후 파라미터만 변경 공통 구조와 변형 값이 분리되는가 여러 효과에 필요 Stand-alone Emitter 저장 이름과 입력 파라미터가 재사용 기준에 맞는가 화면 기여 낮음 비활성화 후 비교 품질 차이보다 비용 절감이 더 큰가
- 정리 순서 이미터 이름
역할 중심으로 붙입니다. 각 이미터의 생성량, 수명, 렌더러를 한 번에 확인합니다. 삭제 전에는 비활성화로 결과 차이를 먼저 비교합니다. 재사용할 값은 시스템 파라미터 이름을 고정합니다.
이미터는 나이아가라 시스템의 설계에서 가장 중요한 단위입니다.
각 이미터가 어떤 파티클을, 어떻게 생성하고, 어떤 방식으로 움직이며, 최종적으로 어떻게 보이는지를 정의하는가를 이해하는 것이 나이아가라를 마스터하는 첫걸음입니다.
앞으로 다양한 예제를 통해 이미터의 각 섹션과 모듈들을 심도 있게 다루어 볼 예정입니다.
여러 현상을 한 이미터에 섞지 말고, 수명과 렌더 형태가 다른 요소는 역할별로 나누어 관리한다.
| 책임 | 확인 질문 | 관련 설정 | 분리 기준 |
|---|---|---|---|
| 역할 무엇을 표현하는가 | 이 이미터의 시각 요소를 이름으로 설명할 수 있는가. | 이미터 이름과 시스템 안의 배치 | 역할이 겹치면 끄고 비용과 결과 변화를 본다. |
| 생성 언제 얼마나 태어나는가 | 밀도와 시작 상태가 어느 구간에서 정해지는가. | Emitter Spawn, Particle Spawn | 특정 시스템 전용이면 Embedded로 빠르게 조립한다. |
| 변화 살아 있는 동안 바뀌는가 | 속도, 색, 크기, 물리 반응을 누가 갱신하는가. | Particle Update 모듈 | 반복될 움직임이면 독립 이미터나 모듈 후보로 본다. |
| 표시 어떤 형태로 보이는가 | Sprite, Mesh, Ribbon 중 무엇이 실제 형태를 만드는가. | Renderer와 Material | 렌더 형태가 다르면 다른 이미터로 나눈다. |