안동민 개발노트

본문 시작

파티클 생성 및 기본 속성 설정

Spawn Rate와 Burst로 생성 시점과 수량을 정하고 초기 위치·속도·수명·색상·크기를 설정해 기본 효과를 만듭니다.

이미터는 파티클 생성 규칙을 담는 단위입니다.

이번 절에서는 파티클이 언제 생성되고, 생성 직후 어떤 위치·속도·수명 값을 갖는지 확인합니다.


파티클 생성: 스폰(Spawn) 모듈

Emitter Update의 Spawn Rate·Spawn Burst Instantaneous가 생성 시점과 개수를 정합니다. Particle Spawn은 그렇게 생성되는 각 입자의 초기 속성을 채우는 그룹입니다.

주로 사용되는 두 가지 스폰 방식이 있습니다.

Spawn Rate

Spawn Rate 모듈은 파티클을 지속적으로, 초당 지정된 개수만큼 생성할 때 사용합니다.

마치 수도꼭지를 틀면 물이 계속해서 흘러나오는 것과 비슷합니다.

  • 사용 예시: 연기, 불꽃, 비, 눈처럼 끊임없이 이어지는 효과
  • 설정: Spawn Rate 모듈을 추가한 후, Spawn Rate 속성의 값을 변경하여 초당 생성될 파티클의 수를 조절합니다. 값이 높을수록 더 많은 파티클이 빠르게 생성됩니다.

Spawn Burst Instantaneous

Spawn Burst Instantaneous 모듈은 파티클을 특정 시점에 한 번에, 지정된 개수만큼 생성할 때 사용합니다.

폭죽이 터지면서 한 번에 불꽃이 펑 하고 터져 나오는 것과 같습니다.

  • 사용 예시: 폭발, 충격파, 짧은 섬광처럼 순간적으로 많은 파티클이 필요한 효과
  • 설정: Spawn Burst Instantaneous 모듈을 추가한 후, Spawn Count 속성의 값을 변경하여 한 번에 생성될 파티클의 총 개수를 조절합니다.

대부분의 나이아가라 효과는 이 두 가지 스폰 방식 중 하나를 사용하거나, 혹은 두 가지를 조합하여 사용하기도 합니다.

예를 들어, 지속적으로 타오르는 불꽃(Spawn Rate)과 함께 가끔 크게 터져 오르는 불씨(Spawn Burst)를 표현할 수 있습니다.


파티클의 기본 속성 설정

Initialize Particle은 Particle Spawn에서 수명·색·크기 등의 초기값을 설정합니다. 실제 실행 순서는 스택 위에서 아래로 정해지며, 초기값을 읽는 모듈보다 앞에 배치합니다.

Initialize Particle 모듈에서 설정할 수 있는 주요 기본 속성들은 다음과 같습니다.

  • Lifetime (수명): 파티클이 생성된 후 얼마나 오랫동안 존재할지를 초 단위로 정의합니다. 이 값은 단일 값으로 설정할 수도 있고, 최소/최대 값을 지정하여 무작위 범위 내에서 수명이 결정되도록 할 수도 있습니다.

    • Tip: 파티클의 수명을 길게 설정하면 효과가 더 오래 지속되고, 짧게 설정하면 빠르게 사라집니다.
  • Color (색상): 파티클이 생성될 때 가질 초기 색상을 정의합니다. RGBA(Red, Green, Blue, Alpha) 값을 조절하여 원하는 색상을 선택할 수 있습니다. Alpha 값은 파티클의 불투명도를 나타냅니다.

    • Tip: 일반적으로 파티클의 색상은 Color 모듈이나 Scale Color 모듈을 통해 수명에 따라 변화시키는 경우가 많습니다.
  • Sprite Size (스프라이트 크기): 파티클이 2D 스프라이트 형태로 렌더링될 때의 초기 크기를 정의합니다. X, Y 값을 개별적으로 설정하여 타원형 파티클을 만들 수도 있습니다.

    • Tip: 스프라이트 크기 역시 Scale Sprite Size 모듈을 통해 수명에 따라 변화시키는 것이 일반적입니다.
  • Sprite Rotation (스프라이트 회전): 파티클 스프라이트의 초기 회전 각도를 설정합니다.

  • Mesh Scale (메시 스케일): 파티클이 3D 메시 형태로 렌더링될 때의 초기 크기를 정의합니다.

충돌 반경은 충돌 모듈의 설정과 입력을 확인합니다. 렌더 크기나 Initialize Particle의 공통 입력과 항상 같은 항목은 아닙니다.

초기 위치는 Shape Location 같은 위치 모듈, 초기 속도는 Add Velocity 등으로 설정할 수 있습니다. Initialize Particle에 표시되는 입력은 모듈 버전과 모드에 따라 달라집니다.

하지만 이 모듈의 주요 목적은 최초의 상태를 정의하는 것이고, 이후의 동적인 변화는 Particle Update 섹션의 모듈들이 담당하게 됩니다.

직접 해보기: 간단한 생성 효과 만들기

간단한 연습을 통해 파티클 생성과 기본 속성 설정을 직접 경험해 봅시다.

새로운 나이아가라 시스템 생성: 생성 창에서 빈 시스템을 선택해 NS_BasicSpawn을 만듭니다. 구버전에서는 New system with empty system 경로를 사용할 수 있습니다.

이미터 추가: System Overview를 우클릭해 Add Emitter에서 Empty Emitter를 선택합니다. 템플릿에 이미 들어 있는 모듈은 중복 추가하지 않습니다. Emitter Update의 Emitter State와 시스템 수명 설정이 지속 생성을 허용하는지 확인합니다.

Initialize Particle 모듈 추가: 새로 추가된 Emitter를 선택하고, Particle Spawn 그룹 아래의 + 버튼을 클릭한 후 Initialize Particle을 검색하여 추가합니다.

  • 이 모듈을 추가하지 않으면 파티클이 정상적으로 렌더링되지 않거나 오류가 발생할 수 있습니다.

Spawn Rate 모듈 추가: Emitter Update의 + 버튼에서 Spawn Rate를 추가합니다.

값 조정
  • Spawn Rate 모듈의 Spawn Rate 값을 50 정도로 설정합니다. (초당 50개의 파티클 생성)
  • Initialize Particle 모듈의 Lifetime을 1.0으로 설정합니다.
  • Initialize Particle 모듈의 Sprite Size를 50.0으로 설정합니다.
  • Initialize Particle 모듈의 Color를 원하는 색상으로 변경해 보세요.

수명 종료와 출력 확인: Particle Update에 Particle State가 있는지 확인하고 수명 경과 시 죽이기 설정을 사용합니다. Render에 Sprite Renderer를 추가하고 Particle Color의 RGB·Alpha를 읽는 파티클 머티리얼을 지정합니다. 이미 있는 모듈과 렌더러는 설정만 확인합니다.

위 설정과 정상 재생을 전제로 초당 50개가 생성되고 각 입자는 1초 후 소멸합니다. 안정된 상태의 살아 있는 수는 약 50개지만, 아직 위치 분포나 움직임을 주지 않아 같은 자리에 겹칠 수 있습니다. 화면의 모양은 머티리얼에 따라 달라지므로 반드시 흰 사각형이어야 하는 것은 아닙니다.

입자가 늘기만 한다면 Particle State의 나이·소멸 설정을 확인합니다. 색이 반영되지 않으면 머티리얼의 Particle Color 연결을, 살아 있는데 안 보이면 크기·알파·위치·Bounds·렌더러를 확인합니다. 생성 수는 디버거에서도 확인하고, 다음 실습에서 속도를 더해 입자들을 구별해 봅니다.

수명 값만 설정하는 것과 실제 소멸 처리는 다릅니다. Particle Update의 Particle State가 이 역할을 맡습니다.