본문으로 건너뛰기

안동민 개발노트

본문 시작

이미터의 개념과 설정

이미터가 파티클의 생성과 초기 속성을 담당하는 범위를 이해하고 Spawn·Update·Render 모듈 스택을 구성합니다.

이제 나이아가라 에디터의 기본 화면을 확인했으므로, 나이아가라 시스템의 주요 구성 요소인 이미터(Emitter)를 살펴봅니다.

이미터는 파티클을 생성하고 초기 속성을 지정하는 단위입니다.

나이아가라 이미터 구조

이미터는 파티클을 언제 만들고, 어떻게 갱신하고, 어떤 방식으로 그릴지 담당한다.

  1. Emitter Update

    루프, 지속 시간, 생성량

  2. Particle Spawn

    수명, 색, 크기 초기화

  3. Particle Update

    위치, 힘, 색상 변화

  4. Renderer

    Sprite, Mesh, Ribbon 출력

  5. System

    여러 이미터를 묶음

  6. Preview

    레이어 조합 확인


이미터란 무엇인가요?

이미터는 생성, 갱신, 표시 방식을 한 단위로 묶는다

하나의 시스템 안에서도 연기, 불꽃, 잔재처럼 성격이 다른 입자는 서로 다른 이미터가 맡는다.

구간정하는 값결과확인 포인트
Spawn생성 시점, 생성량, 초기 속성언제 몇 개의 파티클이 태어나는지 결정Rate와 Burst가 의도와 맞는가
Update위치, 속도, 색, 크기 변화시간에 따른 움직임과 수명 변화모듈 순서가 최종 값을 덮어쓰는가
RenderSprite, Mesh, Ribbon 등 표현 방식계산된 입자가 화면에 보임렌더러와 머티리얼 바인딩이 맞는가
System 조합여러 이미터의 시작과 종료복합 효과 완성이미터별 수명과 비용이 분리되는가

이미터는 나이아가라 시스템 내에서 특정 파티클의 종류와 그 파티클이 어떻게 생성되고, 존재하며, 사라지는지를 정의하는 독립적인 단위입니다.

하나의 나이아가라 시스템은 여러 개의 이미터를 포함할 수 있습니다.

예를 들어, 불꽃 효과를 만든다고 가정해봅시다.

불꽃 심지에서 올라오는 연기, 터져서 흩날리는 불꽃, 그리고 잔재로 남는 재.

이 세 가지는 모두 다른 특성을 가진 파티클이며, 각각의 효과를 하나의 이미터가 담당할 수 있습니다.

이미터는 크게 두 가지 유형으로 나눌 수 있습니다.

  • 독립적인 이미터(Stand-alone Emitter): 자체적으로 하나의 .uasset 파일로 존재하며, 여러 나이아가라 시스템에서 재사용될 수 있습니다. 이는 특정 효과(예: 폭발의 섬광, 연기 기둥)를 표준화하여 다양한 시스템에 적용할 때 매우 유용합니다.
  • 시스템 내장 이미터(Embedded Emitter): 특정 나이아가라 시스템 내에 종속되어 생성되는 이미터입니다. 해당 시스템에서만 사용되며, 주로 시스템의 특정 부분을 구성할 때 사용합니다.

이 장에서는 주로 시스템 내에 포함된 이미터를 기준으로 설명하겠지만, 독립적인 이미터도 동일한 원리로 작동합니다.


이미터의 주요 설정과 모듈

이미터는 크게 네 가지 핵심 섹션으로 구성되며, 각 섹션에 다양한 모듈(Module)을 추가하여 파티클의 동작을 정의합니다.

나이아가라 에디터의 개요(Overview) 패널에서 이미터를 클릭하면 이 섹션들을 확인할 수 있습니다.

아래 다이어그램은 이미터 스택을 설정할 때 어떤 항목을 먼저 점검하면 좋은지 수명 주기와 모듈 실행 흐름 중심으로 정리한 것입니다.

이미터 스택은 실행 주체와 빈도로 읽는다

위에서 아래로 내려갈수록 이미터 설정에서 파티클 계산, 화면 출력으로 책임이 좁아진다.

  1. Emitter

    생성 시 / 매 틱 Emitter State 와 Spawn Rate/Burst로 수명과 발생 조건을 정한다.

  2. Particle Spawn

    파티클마다 1회 Initialize Particle 에서 수명·색·크기·속도의 출발값을 만든다.

  3. Particle Update

    살아있는 동안 매 프레임 힘·색·크기를 바꾸고 Solve Forces and Velocity 로 위치를 계산한다.

  4. Renderer

    계산 뒤 출력 Sprite·Mesh·Ribbon으로 결과를 그린다. 모양과 머티리얼 비용의 소유자다.

  5. 안 나옴 Emitter 상태

    Spawn을 확인

  6. 출발값 오류 Particle Spawn

    확인

  7. 움직임 오류 Particle Update 순서

    확인

  8. 모양 오류 Renderer

    Material을 확인

아래 보드는 처음 이미터를 만들 때 어떤 섹션에서 무엇을 결정해야 하는지 제작 순서로 압축한 것입니다.

이미터 역할 분리

하나의 이미터 안에서도 각 섹션은 실행 시점이 다릅니다. 처음 만들 때는 “언제 실행되는가”를 기준으로 모듈을 놓으면 스폰 문제와 렌더 문제를 빠르게 구분할 수 있습니다.

  1. Emitter Update

    루프, 지속 시간, Spawn Rate와 Burst처럼 이미터 단위의 생성 조건을 먼저 정합니다.

  2. Particle Spawn

    Initialize Particle에서 Lifetime, Color, Size, 초기 속도를 부여해 탄생 상태를 만듭니다.

  3. Particle Update

    살아있는 동안 매 프레임 힘, 색 변화, 크기 변화, Solve Forces 순서를 점검합니다.

  4. Render

    Sprite, Mesh, Ribbon, Light 중 결과물에 필요한 렌더러만 남겨 비용을 통제합니다.

  5. 아무것도 안 보임

    문제 추적표 아무것도 안 보임 Spawn 조건, Lifetime, 위치, Renderer 존재 여부를 순서대로 확인합니다. 너무 많음 Spawn Rate와 Lifetime의 곱으로 평균 개수를 계산하고 Max Particles를 둡니다. 움직임이 이상함 초기 속도와 Update 힘을 분리해 보고 Solve Forces가 마지막에 있는지 봅니다. 재사용 필요 다른 시스템에서도 쓸 패턴이면 독립 이미터로 빼고 파라미터 이름을 고정합니다.

  6. 고정 순서 Empty Emitter

    시작해 필요한 섹션만 채웁니다. 먼저 사각형 파티클이 보이게 만든 뒤 움직임을 추가합니다. 모듈을 추가할 때 실행 시점과 비용을 같이 적어둡니다.

이미터 업데이트 (Emitter Update)
  • 이 섹션의 모듈들은 이미터 자체에 영향을 미치며, 파티클이 생성되기 전에 또는 이미터의 수명 주기 동안 한 번 실행되거나 매 프레임 업데이트됩니다.
  • Emitter State: 이미터의 루핑(Looping) 방식, 지속 시간, 활성화/비활성화 시점 등을 설정합니다. 예를 들어, 이미터가 계속해서 파티클을 생성할지, 아니면 일정 시간만 생성하고 멈출지 등을 여기서 결정합니다.
  • Spawn Rate 또는 Spawn Burst: 파티클이 얼마나 자주, 또는 한 번에 몇 개씩 생성될지를 정의합니다.
    • Spawn Rate: 초당 몇 개의 파티클을 생성할지 지정합니다. 지속적으로 파티클을 뿜어내는 연기나 물줄기 같은 효과에 사용됩니다.
    • Spawn Burst Instantaneous: 한 번에 지정된 수의 파티클을 생성합니다. 폭발처럼 짧은 순간에 많은 파티클이 필요한 효과에 적합합니다.
스폰 (Spawn)
  • 이 섹션의 모듈들은 각 파티클이 생성되는 순간에 단 한 번만 실행됩니다.
  • Initialize Particle: 생성되는 파티클의 기본적인 속성(예: 수명, 초기 색상, 초기 크기)을 정의합니다. 이 모듈은 대부분의 이미터에 필수적으로 포함됩니다.
  • Set New or Existing Parameter Randomly: 파티클의 특정 속성(예: 초기 속도, 초기 회전)에 무작위 값을 부여하여 파티클마다 미묘한 차이를 줄 때 사용합니다. 이는 효과를 더욱 자연스럽고 다채롭게 만듭니다.
  • Add Velocity: 파티클이 생성될 때 초기 속도를 부여하여 특정 방향으로 움직이도록 합니다.
파티클 업데이트 (Particle Update)
  • 이 섹션의 모듈들은 파티클이 살아있는 동안 매 프레임 실행됩니다. 파티클의 움직임, 색상 변화, 크기 변화 등 동적인 요소를 제어하는 핵심적인 부분입니다.
  • Add Velocity / Force: 중력(Gravity Force), 바람(Wind Force) 등 외부 힘을 적용하여 파티클의 움직임을 변화시킵니다.
  • Scale Color: 파티클의 수명에 따라 색상이 변하도록 설정합니다. (예: 뜨거울 때는 붉은색, 식을수록 푸른색으로 변화하는 불꽃)
  • Scale Sprite Size: 파티클의 수명에 따라 크기가 변하도록 설정합니다. (예: 사라질수록 점점 작아지는 연기)
  • Solve Forces and Velocity: 이전에 적용된 모든 힘과 속도 변화를 통합하여 최종 파티클의 위치를 계산합니다. 이 모듈은 보통 파티클 업데이트 섹션의 마지막에 위치합니다.
렌더 (Render)
  • 이 섹션의 모듈들은 파티클이 최종적으로 화면에 어떻게 그려질지를 정의합니다.
  • Sprite Renderer: 파티클을 2D 이미지(스프라이트) 형태로 렌더링합니다. 가장 일반적으로 사용되는 렌더러입니다.
  • Mesh Renderer: 파티클을 3D 메시(Mesh) 형태로 렌더링합니다. 예를 들어, 파티클 하나하나를 작은 돌멩이나 캐릭터 모델로 표현할 때 사용합니다.
  • Ribbon Renderer: 파티클의 경로를 따라 연속적인 선(리본) 형태로 렌더링합니다. 마법 주문의 궤적이나 물줄기 같은 효과에 적합합니다.
  • Light Renderer: 파티클이 주변 환경에 빛을 방출하도록 합니다.

이미터 추가 및 제거

나이아가라 시스템에 새로운 이미터를 추가하거나 기존 이미터를 제거하는 것은 매우 간단합니다.

  • 추가: 개요 패널에서 System 항목 아래의 + 버튼을 클릭하거나, 이미터 목록의 하단에 있는 + 버튼을 클릭하여 원하는 이미터(독립적인 이미터 에셋 또는 템플릿 이미터)를 추가할 수 있습니다.
  • 제거: 제거하고 싶은 이미터를 선택한 후 Delete 키를 누르면 됩니다.

이미터를 추가할지, 복제할지, 독립 에셋으로 분리할지, 제거할지는 역할과 재사용성을 기준으로 판단하면 정리가 쉽습니다.

Emitter 역할 분리

이미터를 늘리면 표현은 또렷해지지만 관리 지점도 늘어납니다. 추가, 복제, 독립 에셋화, 제거를 같은 기준으로 보면 시스템 안의 파티클 역할을 깔끔하게 유지할 수 있습니다.

  1. Add
    새 역할이 필요함

    Add 새 역할이 필요함 연기, 불꽃, 잔재처럼 수명과 렌더 방식이 다르면 별도 이미터로 나눕니다.

  2. Duplicate
    비슷하지만 변형됨

    Duplicate 비슷하지만 변형됨 같은 구조에서 색, 생성량, 방향만 다르면 복제 후 차이값만 정리합니다.

  3. Asset
    여러 시스템에서 재사용

    Asset 여러 시스템에서 재사용 폭발 섬광이나 먼지처럼 반복해서 쓰는 패턴은 독립 이미터로 빼둡니다.

  4. Remove
    역할이 겹치거나 비용이 큼

    Remove 역할이 겹치거나 비용이 큼 비슷한 렌더러가 중복되거나 화면 기여가 작으면 먼저 비활성화해 비교합니다.

  5. 새 시각 요소

    작업 판단표 상황 선택 확인할 결과 새 시각 요소 Empty Emitter 추가 다른 입자와 독립적으로 켜고 끌 수 있는가 같은 패턴 반복 복제 후 파라미터만 변경 공통 구조와 변형 값이 분리되는가 여러 효과에 필요 Stand-alone Emitter 저장 이름과 입력 파라미터가 재사용 기준에 맞는가 화면 기여 낮음 비활성화 후 비교 품질 차이보다 비용 절감이 더 큰가

  6. 정리 순서 이미터 이름

    역할 중심으로 붙입니다. 각 이미터의 생성량, 수명, 렌더러를 한 번에 확인합니다. 삭제 전에는 비활성화로 결과 차이를 먼저 비교합니다. 재사용할 값은 시스템 파라미터 이름을 고정합니다.


이미터는 나이아가라 시스템의 설계에서 가장 중요한 단위입니다.

각 이미터가 어떤 파티클을, 어떻게 생성하고, 어떤 방식으로 움직이며, 최종적으로 어떻게 보이는지를 정의하는가를 이해하는 것이 나이아가라를 마스터하는 첫걸음입니다.

앞으로 다양한 예제를 통해 이미터의 각 섹션과 모듈들을 심도 있게 다루어 볼 예정입니다.

이미터는 한 파티클 집단의 책임 단위다

여러 현상을 한 이미터에 섞지 말고, 수명과 렌더 형태가 다른 요소는 역할별로 나누어 관리한다.

열 구성 · 책임 · 확인 질문 · 관련 설정 · 분리 기준
책임확인 질문관련 설정분리 기준
역할 무엇을 표현하는가이 이미터의 시각 요소를 이름으로 설명할 수 있는가.이미터 이름과 시스템 안의 배치역할이 겹치면 끄고 비용과 결과 변화를 본다.
생성 언제 얼마나 태어나는가밀도와 시작 상태가 어느 구간에서 정해지는가.Emitter Spawn, Particle Spawn특정 시스템 전용이면 Embedded로 빠르게 조립한다.
변화 살아 있는 동안 바뀌는가속도, 색, 크기, 물리 반응을 누가 갱신하는가.Particle Update 모듈반복될 움직임이면 독립 이미터나 모듈 후보로 본다.
표시 어떤 형태로 보이는가Sprite, Mesh, Ribbon 중 무엇이 실제 형태를 만드는가.Renderer와 Material렌더 형태가 다르면 다른 이미터로 나눈다.