이미터의 개념과 설정
이미터가 파티클의 생성·갱신·표현을 담당하는 범위를 이해하고 Spawn·Update·Render 모듈 스택을 구성합니다.
이제 나이아가라 에디터의 기본 화면을 확인했으므로, 나이아가라 시스템의 주요 구성 요소인 이미터(Emitter)를 살펴봅니다.
이미터는 한 파티클 집단의 생성, 갱신, 렌더링을 묶는 단위입니다.
이미터란 무엇인가요?
이미터는 나이아가라 시스템 내에서 특정 파티클의 종류와 그 파티클이 어떻게 생성되고, 존재하며, 사라지는지를 정의하는 독립적인 단위입니다.
하나의 나이아가라 시스템은 여러 개의 이미터를 포함할 수 있습니다.
예를 들어, 불꽃 효과를 만든다고 가정해봅시다.
불꽃 심지에서 올라오는 연기, 터져서 흩날리는 불꽃, 그리고 잔재로 남는 재.
이 세 가지는 모두 다른 특성을 가진 파티클이며, 각각의 효과를 하나의 이미터가 담당할 수 있습니다.
이미터 에셋과 시스템 안에서 사용하는 이미터를 구분해 봅시다. 아래는 저장·사용 범위의 구분이며, 모든 이미터의 공식 유형을 둘로 분류한 것은 아닙니다.
- 독립적인 이미터(Stand-alone Emitter): 자체적으로 하나의
.uasset파일로 존재하며, 여러 나이아가라 시스템에서 재사용될 수 있습니다. 이는 특정 효과(예: 폭발의 섬광, 연기 기둥)를 표준화하여 다양한 시스템에 적용할 때 매우 유용합니다. - 시스템 내장 이미터(Embedded Emitter): 특정 나이아가라 시스템 내에 종속되어 생성되는 이미터입니다. 해당 시스템에서만 사용되며, 주로 시스템의 특정 부분을 구성할 때 사용합니다.
이 장에서는 주로 시스템 내에 포함된 이미터를 기준으로 설명하겠지만, 독립적인 이미터도 동일한 원리로 작동합니다.
이미터의 주요 설정과 모듈
기본 이미터 스택에는 Emitter Spawn, Emitter Update, Particle Spawn, Particle Update와 Render 그룹이 있습니다. 설정에 따라 Event Handler나 Simulation Stage도 추가됩니다.
나이아가라 에디터의 개요(Overview) 패널에서 이미터를 클릭하면 이 섹션들을 확인할 수 있습니다.
Rate와 Burst는 이미터 단위에서 개수를 정하고, Particle Spawn은 생성되는 입자마다 초기값을 채웁니다. Render는 계산된 속성을 읽습니다.
이미터가 생성될 때 한 번 실행되는 그룹으로, 이미터 단위의 초기값을 설정합니다. 파티클마다 실행되는 Particle Spawn과 다릅니다.
- 이 그룹은 이미터 단위로 시뮬레이션 틱마다 실행됩니다. 이미터 상태와 그 틱에 생성할 입자 수를 계산합니다.
Emitter State: 이미터의 루핑(Looping) 방식, 지속 시간, 활성화/비활성화 시점 등을 설정합니다. 예를 들어, 이미터가 계속해서 파티클을 생성할지, 아니면 일정 시간만 생성하고 멈출지 등을 여기서 결정합니다.Spawn Rate또는Spawn Burst: 파티클이 얼마나 자주, 또는 한 번에 몇 개씩 생성될지를 정의합니다.Spawn Rate: 초당 몇 개의 파티클을 생성할지 지정합니다. 지속적으로 파티클을 뿜어내는 연기나 물줄기 같은 효과에 사용됩니다.Spawn Burst Instantaneous: 한 번에 지정된 수의 파티클을 생성합니다. 폭발처럼 짧은 순간에 많은 파티클이 필요한 효과에 적합합니다.
- 이 섹션의 모듈들은 각 파티클이 생성되는 순간에 단 한 번만 실행됩니다.
Initialize Particle: 생성되는 파티클의 기본적인 속성(예: 수명, 초기 색상, 초기 크기)을 정의합니다. 이 모듈은 대부분의 이미터에 필수적으로 포함됩니다.- 무작위 초기값: 수명이나 속도 입력에 해당 자료형의 Random Range 동적 입력을 연결하면 파티클마다 값을 다르게 줄 수 있습니다.
Add Velocity: 파티클이 생성될 때 초기 속도를 부여하여 특정 방향으로 움직이도록 합니다.
- 이 섹션의 모듈들은 살아 있는 파티클마다 시뮬레이션 틱마다 실행됩니다. 파티클의 움직임, 색상 변화, 크기 변화 등 동적인 요소를 제어하는 핵심적인 부분입니다.
- 힘(Force): 중력(Gravity Force), 바람(Wind Force) 등 외부 힘을 적용하여 파티클의 움직임을 변화시킵니다.
Particle State: 나이와 수명 종료에 따른 소멸을 관리합니다.Scale Color: 파티클의 수명에 따라 색상이 변하도록 설정합니다. (예: 뜨거울 때는 붉은색, 식을수록 푸른색으로 변화하는 불꽃)Scale Sprite Size: 파티클의 수명에 따라 크기가 변하도록 설정합니다. (예: 사라질수록 점점 작아지는 연기)Solve Forces and Velocity: 이전에 적용된 모든 힘과 속도 변화를 통합하여 최종 파티클의 위치를 계산합니다. 힘을 누적하는 모듈 다음에 두되, 후처리 모듈이 뒤에 올 수 있으므로 무조건 마지막으로 옮기지는 않습니다. 각 모듈의 의존성과 에디터 오류 표시를 따릅니다.
- 이 섹션의 모듈들은 파티클이 최종적으로 화면에 어떻게 그려질지를 정의합니다.
Sprite Renderer: 파티클을 2D 이미지(스프라이트) 형태로 렌더링합니다. 가장 일반적으로 사용되는 렌더러입니다.Mesh Renderer: 파티클을 3D 메시(Mesh) 형태로 렌더링합니다. 예를 들어, 파티클 하나하나를 작은 돌멩이나 캐릭터 모델로 표현할 때 사용합니다.Ribbon Renderer: 같은 Ribbon ID의 파티클들을 연결 순서에 따라 띠로 그립니다. 파티클 하나의 과거 위치가 자동으로 모두 저장되는 것은 아닙니다. 마법 주문의 궤적이나 물줄기 같은 효과에 적합합니다.Light Renderer: 파티클이 주변 환경에 빛을 방출하도록 합니다.
이미터 추가 및 제거
나이아가라 시스템에 새로운 이미터를 추가하거나 기존 이미터를 제거하는 것은 매우 간단합니다.
- 추가: System Overview의 빈 곳을 우클릭해
Add Emitter에서 에셋이나 템플릿을 고릅니다. 엔진 버전에 따라 메뉴 위치와 필터가 다를 수 있습니다. - 제거: 제거하고 싶은 이미터를 선택한 후
Delete키를 누르면 됩니다.
이미터의 역할이 달라지면 추가하고, 같은 구조에서 색·생성량만 달라지면 복제와 파라미터 공유를 비교합니다. 여러 시스템에서 반복하는 패턴은 이미터 에셋으로 관리하고 상속·버전 관계를 확인합니다. 역할이 겹치는 이미터는 먼저 비활성화해 화면 기여와 비용을 비교한 뒤 제거합니다.