안동민 개발노트

본문 시작

스폰 모듈의 기본 사용법

Spawn Rate·Burst·Per Unit의 생성 기준을 비교하고 효과의 시간·이동 거리 요구에 맞춰 생성 수량과 위치를 설정합니다.

나이아가라 시스템의 핵심은 바로 모듈(Module)입니다.

모듈은 파티클의 생성, 업데이트, 렌더링 등 모든 동작을 정의하는 작은 기능 단위입니다.

2장에서 이미 Initialize Particle, Spawn Rate, Add Velocity 등의 모듈을 사용해보셨을 겁니다.

이제 3장에서는 이러한 모듈들을 더 깊이 이해하고, 효과적으로 사용하는 방법을 배우게 될 것입니다.

그 첫 번째 순서로, 파티클의 탄생을 담당하는 스폰(Spawn) 모듈에 대해 자세히 알아보겠습니다.

여기서 다루는 생성량 모듈은 Emitter Update에 배치합니다. 언제 몇 개를 생성할지 정하는 일과, Particle Spawn에서 입자의 위치·속성 초깃값을 정하는 일을 구분합니다.


스폰 모듈의 역할과 종류

스폰 모듈은 파티클이 처음 세상에 나타나는 방식을 정의합니다.

어떤 효과를 만들고 싶으냐에 따라 적절한 스폰 모듈을 선택하는 것이 중요합니다.

Spawn Rate

가장 기본적이고 널리 사용되는 스폰 모듈입니다.

초당 지정된 수의 파티클을 지속적으로 생성합니다.

  • 주요 속성
    • Spawn Rate: 초당 생성될 파티클의 개수를 지정합니다. 값이 높을수록 파티클이 더 조밀하게 생성됩니다.
  • 사용 예시
    • 연기: 낮은 Spawn Rate로 부드럽게 피어오르는 연기.
    • 비/눈: 적절한 Spawn Rate로 지속적으로 내리는 비나 눈.
    • 물줄기: 높은 Spawn Rate로 뿜어져 나오는 물줄기.
  • 팁: Spawn Rate의 값을 시간에 따라 변화시키고 싶다면, 이 값을 동적으로 제어하는 방법을 나중에 배우게 될 것입니다. (예: 그래프 에디터 사용)

Spawn Burst Instantaneous

특정 시점에 한 번에 지정된 수의 파티클을 폭발적으로 생성합니다.

주로 짧고 강렬한 효과에 사용됩니다.

  • 주요 속성
    • Spawn Count: 한 번에 생성될 파티클의 총 개수를 지정합니다.
  • 사용 예시
    • 폭발: 폭발 순간에 파편이나 불꽃을 한 번에 흩뿌릴 때.
    • 충격파: 땅에 닿는 순간 발생하는 먼지나 파동.
    • 총알 피격 효과: 벽에 총알이 맞았을 때 튀는 스파크.
  • 팁: 이미터의 Loop Behavior를 Once로 설정하고 Spawn Burst Instantaneous를 사용하면, 한 번 터지고 사라지는 일회성 효과를 쉽게 만들 수 있습니다.

Spawn Per Unit

이미터가 이동하는 거리에 비례하여 파티클을 생성합니다.

같은 시간 동안 더 멀리 움직이면 더 많이 생성하며, 같은 이동 거리에서는 속도와 관계없이 비슷한 수를 목표로 합니다. 측정하는 위치 입력과 텔레포트 처리 설정을 확인해야 합니다.

  • 주요 속성
    • 거리 기준 수량: 모듈 버전의 입력이 거리당 입자 수인지 입자당 거리인지 먼저 확인합니다. 두 값은 역수 관계입니다. 예를 들어 10cm마다 한 개는 1cm당 0.1개에 해당합니다.
  • 사용 예시
    • 자동차 타이어 자국: 자동차가 움직일 때만 바퀴에서 먼지가 발생하는 효과.
    • 마법사의 이동 궤적: 캐릭터가 이동할 때 뒤에 남는 잔상 효과.
    • 총알 궤적: 빠르게 날아가는 총알 뒤에 남는 연기 꼬리.

스폰 모듈 추가 및 설정 과정

스폰 모듈을 이미터에 추가하고 설정하는 과정은 매우 간단합니다.

나이아가라 에디터 열기: 작업할 나이아가라 시스템 에셋을 더블 클릭하여 엽니다.

이미터 선택: 개요(Overview) 패널에서 파티클을 생성하고 싶은 이미터를 선택합니다.

생성량 그룹으로 이동: 선택된 이미터의 Emitter Update 그룹을 찾습니다.

모듈 추가: Emitter Update 그룹 옆에 있는 + 버튼을 클릭합니다.

모듈 검색창이 나타나면 원하는 스폰 모듈(예: Spawn Rate 또는 Spawn Burst Instantaneous)의 이름을 입력하여 검색합니다.

모듈 선택 및 추가: 검색된 모듈을 클릭하여 추가합니다.

속성 조정: 추가된 모듈을 선택하면 디테일(Details) 패널에 해당 모듈의 속성들이 나타납니다.

여기서 Spawn Rate 또는 Spawn Count와 같은 주요 속성 값을 원하는 대로 조정합니다.

중요: 파티클이 실제로 보이려면 Initialize Particle 모듈과 Sprite Renderer (또는 다른 렌더러) 모듈이 이미터에 추가되어 있어야 합니다.

Particle Spawn의 Initialize Particle은 초기 속성을, Particle Update의 Particle State는 수명 경과와 소멸을, 렌더러는 출력 형태를 담당합니다. Emitter State의 실행·루프 조건도 생성량 모듈이 작동하도록 설정되어야 합니다.


스폰 모듈 활용 팁

  • 조합하여 사용: Spawn Rate와 Spawn Burst Instantaneous를 함께 사용하여 복합적인 효과를 만들 수 있습니다. 예를 들어, 지속적으로 연기가 피어오르면서(Spawn Rate) 가끔씩 불꽃이 터져 나오는(Spawn Burst) 효과를 구현할 수 있습니다.
  • 랜덤 값 활용: 입력 자료형에 맞는 Random Range나 Curve를 사용합니다. 정수인 Burst 개수에 Float 입력을 그대로 연결하지 않습니다. 평가 시점이 매 틱인지 루프 시작인지에 따라 생성 패턴이 달라집니다.
  • 성능 고려: Spawn Rate나 Spawn Burst의 값을 너무 높게 설정하면 성능에 큰 부담을 줄 수 있습니다. 특히 모바일 플랫폼이나 저사양 환경에서는 적절한 파티클 수를 유지하는 것이 중요합니다. 임의의 Max Particles 입력이 모든 이미터에 있다고 가정하지 말고 생성률·Burst 개수·수명·Kill 조건과 해당 버전의 Scalability 제한을 조합합니다. 할당량 설정을 곧바로 생성 상한으로 해석하지 않습니다.

생성 기준 비교

기준모듈과 점검할 값
시간Spawn Rate: 초당량과 수명, 정상 상태의 살아 있는 개수
특정 시점Spawn Burst Instantaneous: Spawn Count·Spawn Time·루프 반복
이동 거리Spawn Per Unit: 거리 단위·측정 위치·갑작스러운 위치 변경

Rate와 Burst를 함께 사용하면 총 생성량으로 예산을 계산합니다. 순간 끊김은 Burst 피크를, 시간에 따른 누적은 수명을, 적은 입자로도 무거운 장면은 화면 면적·머티리얼·오버드로우를 확인합니다.