본문으로 건너뛰기

안동민 개발노트

본문 시작

기본적인 이펙트 제작 방법

불꽃·연기·폭발 효과의 이미터 구성과 Spawn·색상·크기·힘·SubUV 설정을 공통 제작 순서에 따라 조합합니다.

이전 챕터들에서는 나이아가라 시스템의 각 모듈과 기능, 그리고 블루프린트 연동에 대한 이론적인 지식들을 배웠습니다.

이제는 이러한 지식들을 바탕으로 실제 게임에서 활용될 수 있는 기본적인 파티클 이펙트들을 직접 제작해보는 실전 단계에 접어들 시간입니다.

이 절에서는 가장 흔하게 사용되는 몇 가지 기본 이펙트(불, 연기, 폭발, 물방울 등)를 만드는 일반적인 접근 방식과 필요한 주요 모듈 및 설정에 대해 알아보겠습니다.

파티클 이펙트 제작은 모듈과 파라미터를 조합해 원하는 시각 결과를 만드는 과정입니다.

이 절에서는 기본 제작 순서와 조정 기준을 중심으로 살펴봅니다.

불꽃과 연기는 같은 시간축에서 다른 수명을 가진다

한 emitter에 모든 역할을 넣지 않고 핵, 외곽광, 불씨, 연기를 분리해 수명과 비용을 조정한다.

  1. Spawn Lifetime Fade out
  2. Flame core

    밝고 짧음

  3. Outer glow

    핵보다 넓음

  4. Embers

    burst 후 흩어짐

  5. Smoke

    느리고 오래 남음


파티클 이펙트 제작의 일반적인 워크플로우

파티클 이펙트 제작은 목표, 생성, 움직임, 표현, 검증 순서로 잡는다

효과를 만들 때 모듈을 먼저 쌓기보다 어떤 느낌을 만들지와 어떤 비용 안에 둘지부터 고정한다.

순서정하는 것Niagara 작업검증 질문
01 목표효과의 역할과 지속 시간레퍼런스와 성공 기준 작성무엇을 보여 주려는가
02 생성Spawn Rate, Burst, Lifetime초기 위치·색·속도 설정입자가 언제 얼마나 태어나는가
03 움직임Force, Velocity, CollisionUpdate 모듈 배치움직임이 의도와 맞는가
04 표현Renderer, Material, BlendSprite/Mesh/Ribbon 선택실루엣과 비용이 맞는가
05 검증성능과 재사용성Debugger, LOD, Parameter 정리다른 상황에서도 쓸 수 있는가

대부분의 나이아가라 파티클 이펙트는 다음 단계를 거쳐 제작됩니다.

아이디어 구상 및 레퍼런스 수집
  • 어떤 이펙트를 만들 것인지 명확히 정의합니다. (예: 작은 불꽃, 짙은 연기, 물이 튀는 효과)
  • 실제 사진, 영상, 다른 게임의 이펙트 등 레퍼런스(Reference)를 충분히 수집합니다. 어떤 요소들이 이펙트를 구성하고 있는지 분석합니다. (색상, 형태, 움직임, 수명, 발광 여부 등)
나이아가라 시스템 생성
  • 새로운 나이아가라 시스템을 생성하고, 가장 적합한 기본 템플릿(Template)을 선택하여 시작합니다. (Fountain, Explosion, Smoke, Water 등이 유용)
핵심 스폰/초기화 설정
  • Spawn Rate 또는 Spawn Burst를 통해 파티클이 얼마나 자주/많이 생성될지 설정합니다.
  • Initialize Particle 모듈에서 파티클의 초기 수명(Lifetime), 크기(Sprite Size/Mesh Scale), 색상(Color), 초기 속도(Velocity)를 설정합니다. 이 값들은 이펙트의 전반적인 형태와 움직임을 결정합니다.
물리 및 힘 적용
  • Add Gravity Force (중력), Drag (공기 저항), Noise Force (난류), Add Force (특정 방향의 힘) 등을 사용하여 파티클에 물리적인 움직임을 부여합니다.
  • 필요에 따라 Collision 모듈을 추가하여 월드와의 상호작용을 구현합니다.
시간에 따른 속성 변화
  • Scale Color, Scale Sprite Size, Scale VelocityScale 모듈Float from Curve, Color from Curve를 사용하여 파티클의 수명(NormalizedAge)에 따라 색상, 크기, 속도 등을 자연스럽게 변화시킵니다.
  • 예시: 연기는 시간이 지나면서 흐려지고 커지며, 불꽃은 밝게 타오르다 사라집니다.
렌더링 설정
  • Sprite Renderer 또는 Mesh Renderer를 선택하고, 이펙트의 특성에 맞는 머티리얼(Material)을 할당합니다.
  • 머티리얼의 블렌드 모드(Blend Mode)셰이딩 모델(Shading Model)을 올바르게 설정합니다. (대부분의 시각 효과는 Unlit & Translucent 또는 Additive를 사용합니다.)
  • Soft Particle, Motion Blur 등의 렌더러 옵션을 조절하여 시각적 품질을 높입니다.
최적화 및 디버깅
  • 파티클 수, Lifetime, 복잡한 연산 등을 조절하여 성능을 최적화합니다.
  • 나이아가라 디버거와 stat Niagara 명령어를 활용하여 성능 병목 지점을 찾고 개선합니다.
반복 및 개선
  • 이펙트를 게임 레벨에 배치하고 다양한 각도와 조명 환경에서 확인합니다.
  • 레퍼런스와 비교하며 부족한 점을 찾고, 1단계부터 7단계까지의 과정을 반복하여 만족스러운 결과가 나올 때까지 개선합니다.

기본적인 이펙트별 주요 설정 가이드

아래 표는 불꽃/연기/폭발 이펙트에서 자주 헷갈리는 파라미터를 한 화면에서 비교해, 초기 세팅 방향을 빠르게 잡도록 돕습니다.

기본 이펙트의 초기값은 이름보다 역할로 비교하는 편이 안전합니다.

수명, 스폰 방식, 힘, 렌더러를 같은 축에 놓고 보면 불꽃과 폭발처럼 비슷해 보이는 효과도 어느 값을 먼저 조절해야 하는지 분명해집니다.

기본 이펙트 초기값 비교표

불꽃, 연기, 폭발은 모두 파티클 조합이지만 수명, 스폰 방식, 힘, 렌더러의 우선순위가 다릅니다. 같은 축에서 비교하면 첫 세팅이 빨라집니다.

  1. 역할별 튜닝 카드

    layers 짧은 수명, 높은 Spawn Rate, 위쪽 속도와 Noise로 흔들림을 만듭니다. 긴 수명, 큰 Sprite Size, 강한 Drag로 천천히 퍼지는 밀도를 만듭니다. Spawn Burst, Sphere Velocity, 짧은 Light Renderer로 순간성을 강조합니다. Mesh Renderer와 Collision은 필요한 파편 수만 남겨 비용을 제한합니다.

  2. Flame Core

    짧은 수명, 높은 Spawn Rate, 위쪽 속도와 Noise로 흔들림을 만듭니다.

  3. Smoke Volume

    긴 수명, 큰 Sprite Size, 강한 Drag로 천천히 퍼지는 밀도를 만듭니다.

  4. Explosion Burst

    Spawn Burst, Sphere Velocity, 짧은 Light Renderer로 순간성을 강조합니다.

  5. Debris Detail

    Mesh Renderer와 Collision은 필요한 파편 수만 남겨 비용을 제한합니다.

  6. 이펙트별 초기값

    matrix 효과 스폰 수명 힘 색/크기 렌더러 Flame Rate 높음 0.5~1.5초 Noise 중심 밝게 시작 후 투명 Additive Sprite Smoke Rate 중간 2~5초 Drag 강함 커지며 희미해짐 Translucent Sprite Explosion Burst 높음 0.5~1초 Sphere 속도 빠른 확장 Sprite + Mesh

불꽃 (Flame) 효과

  • 스폰/초기화
    • Spawn Rate: 비교적 높게 (지속적으로 타오르는 효과)
    • Lifetime: 짧게 (0.5 ~ 1.5초)
    • Sprite Size: 작게 시작하여 크게 (10 ~ 30)
    • Color: 밝은 주황색, 노란색, 빨간색
    • Initial Velocity: Z축으로 약간 위로 (불꽃이 위로 솟아오름)
  • 물리/힘
    • Add Gravity Force: 매우 약하게 적용하거나 제거 (Z 축 상승을 방해하지 않도록)
    • Noise Force: 필수. 불꽃의 흔들림과 불규칙한 형태를 만듭니다. StrengthFrequency를 조절하여 원하는 느낌을 찾습니다.
    • Drag: 약하게 적용하여 너무 빠르게 감속되지 않도록 합니다.
  • 시간에 따른 변화
    • Scale Color: NormalizedAge에 따라 색상을 노랑 -> 주황 -> 빨강 -> 검정으로, 알파를 1.0 -> 0.0으로 변화시켜 타오르다 사라지게 합니다.
    • Scale Sprite Size: NormalizedAge에 따라 크기를 작게 -> 크게 -> 작게 변화시켜 불꽃이 커졌다가 줄어들며 사라지게 합니다.
  • 렌더링
    • Sprite Renderer
    • Material: 불꽃 텍스처(주로 SubUV 애니메이션)를 포함하고 Additive 블렌드 모드, Unlit 셰이딩 모델을 사용합니다.
    • Light Renderer: 필요에 따라 추가하여 주변을 밝히는 효과를 줍니다. (성능 주의)

연기 (Smoke) 효과

  • 스폰/초기화
    • Spawn Rate: 적당히 (연기의 밀도에 따라)
    • Lifetime: 길게 (2.0 ~ 5.0초)
    • Sprite Size: 작게 시작하여 매우 크게 (20 ~ 100 이상)
    • Color: 회색 계열 (검정 -> 회색 -> 흰색)
    • Initial Velocity: Z축으로 천천히 위로 (연기가 피어오름)
  • 물리/힘
    • Add Gravity Force: 매우 약하게 적용하거나 제거 (부유하는 느낌)
    • Noise Force: 필수. 연기의 불규칙한 형태와 흐름을 만듭니다. Strength는 약하게, Frequency는 불꽃보다 낮게 조절하여 뭉게뭉게 퍼지는 느낌을 줍니다.
    • Drag: 강하게 적용하여 연기가 빠르게 감속하고 퍼지도록 합니다.
  • 시간에 따른 변화
    • Scale Color: NormalizedAge에 따라 색상을 어두운 회색 -> 밝은 회색 -> 투명으로 변화시켜 연기가 희미해지며 사라지게 합니다.
    • Scale Sprite Size: NormalizedAge에 따라 크기를 작게 -> 매우 크게 변화시켜 연기가 퍼지는 느낌을 줍니다.
  • 렌더링
    • Sprite Renderer
    • Material: 연기 텍스처(주로 Softness가 있는)를 포함하고 Translucent 블렌드 모드, Unlit 셰이딩 모델을 사용합니다.
    • Soft Particle: 활성화하여 다른 오브젝트와의 교차 시 부드럽게 보이도록 합니다.

폭발 (Explosion) 효과

  • 스폰/초기화
    • Spawn Burst Instantaneous: 필수. 한 번에 많은 파티클을 스폰합니다. Spawn Count를 매우 높게 (100 ~ 500 이상)
    • Lifetime: 매우 짧게 (0.5 ~ 1.0초)
    • Sprite Size: 작게 시작하여 매우 크게 폭발하듯이
    • Color: 밝은 주황/빨강/노랑
    • Initial Velocity: Sphere 형태로 매우 강하게 (사방으로 튀어나가도록)
  • 물리/힘
    • Add Gravity Force: 강하게 적용하여 파편이 빠르게 떨어지도록 합니다.
    • Drag: 강하게 적용하여 폭발 범위 밖으로 나가지 않고 빠르게 감속되도록 합니다.
    • Noise Force: 약하게 적용하여 폭발 잔해에 미세한 불규칙성을 줍니다.
    • Collision: 필수. RestitutionFriction을 조절하여 파편이 지면에 튕기거나 멈추도록 합니다.
  • 시간에 따른 변화
    • Scale Color: NormalizedAge에 따라 색상을 밝게 -> 어둡게 -> 투명으로 변화시켜 폭발의 섬광이 사라지도록 합니다.
    • Scale Sprite Size: NormalizedAge에 따라 크기를 매우 빠르게 작게 -> 크게 -> 작게 변화시켜 폭발의 확장과 수축을 표현합니다.
  • 렌더링
    • Sprite RendererMesh Renderer (파편).
    • Material: 불꽃, 연기, 파편 텍스처를 포함하고 Additive / Translucent 블렌드 모드, Unlit / Default Lit 셰이딩 모델을 조합하여 사용합니다.
    • Light Renderer: 짧은 시간 동안 폭발 지점을 밝히는 데 사용합니다. (성능 주의)

SubUV 애니메이션 머티리얼 활용

불꽃, 폭발, 연기 등 시간에 따라 형태가 변하는 효과에는 SubUV 애니메이션이 적용된 머티리얼이 매우 효과적입니다.

  • 개념: 하나의 텍스처 내에 여러 프레임의 이미지를 타일 형태로 배치하고, 나이아가라의 SubUV 모듈이 각 프레임을 순차적으로 재생하여 애니메이션처럼 보이게 합니다.
  • 활용: Sprite RendererSubUV BlendingLinearSmooth로 설정하고, SubUV 모듈을 Particle Update 섹션에 추가하여 SubUV Animation 속성을 조절합니다. LoopingStart Frame 등을 통해 애니메이션을 제어합니다.

기본 이펙트는 하나의 큰 그래프가 아니라, 역할이 다른 이미터와 모듈을 조합해 읽기 쉬운 레시피로 만드는 편이 좋습니다.

기본 이펙트 레시피는 생성량, 수명, 움직임, 표현을 고정한다

연기, 불꽃, 충격파처럼 자주 쓰는 효과는 같은 기준표로 값의 범위와 수정 지점을 정해 두면 반복 제작이 빨라진다.

효과 요소결정할 값주요 모듈수정 신호
생성량지속 생성 또는 BurstSpawn Rate, Spawn Burst밀도가 과하거나 부족함
수명얼마나 오래 남을지Lifetime, Kill잔상이 남거나 너무 빨리 사라짐
움직임방향, 속도, 감쇠Velocity, Force, Drag정적이거나 폭주함
표현Sprite/Mesh/Ribbon, MaterialRenderer, Blend Mode모양과 비용이 의도와 다름
튜닝User Parameter와 LODCurve, Scalability상황별 조절이 어려움

기본적인 파티클 이펙트 제작은 나이아가라의 핵심 모듈과 기능을 이해하고, 이를 조합하여 원하는 시각적 결과를 만들어내는 연습의 과정입니다.

레퍼런스를 통해 이펙트의 구성 요소를 분석하고, 각 요소에 어떤 나이아가라 모듈과 속성이 사용될 수 있을지 고민하는 것이 중요합니다.

첫 결과가 나온 뒤에는 레퍼런스와 비교하며 실루엣, 움직임, 렌더링, 비용을 같은 순서로 다시 좁혀 가는 반복 점검이 필요합니다.

기본 이펙트는 네 가지 기준으로 반복 조정한다

불꽃, 연기, 폭발은 첫 결과를 만든 뒤 레퍼런스와 비교하며 실루엣, 움직임, 렌더링, 비용을 차례로 보정할 때 완성도가 올라갑니다.

  1. Shape
    실루엣

    Shape Sprite Size, Spawn Count, 이미터 위치로 전체 덩어리를 먼저 맞춥니다.

  2. Motion
    움직임

    Motion Velocity, Gravity, Drag, Noise가 레퍼런스의 속도감과 맞는지 봅니다.

  3. Render
    렌더링

    Render 머티리얼 블렌드, 알파 커브, SubUV가 형태 변화를 받쳐 주는지 봅니다.

  4. Budget
    성능

    Budget 동시에 보이는 수, 큰 반투명 면적, Light Renderer 비용을 제한합니다.

기본 이펙트를 만들 때는 레퍼런스, 핵심 이미터, 머티리얼, 최적화를 같은 순서로 반복하면 결과가 안정적입니다.

기본 이펙트 제작 루틴

불꽃, 연기, 폭발은 모두 레퍼런스 분석에서 시작해 실루엣, 수명, 렌더링 레이어를 순서대로 쌓을 때 안정적입니다.

  1. 레퍼런스

    Ref 불꽃은 중심 밝기, 연기는 팽창, 폭발은 충격파와 잔상을 나눠 봅니다.

  2. 핵심 이미터

    Core 하나의 Emitter로 Spawn, Lifetime, Velocity를 먼저 맞춥니다.

  3. 머티리얼과 SubUV

    Render 텍스처 애니메이션은 움직임이 맞은 뒤 디테일로 추가합니다.

  4. 마감 조정

    Polish 색, 크기, 노이즈, 보조 입자를 더하고 예산 안에 넣습니다.

  5. 실루엣

    멀리서 봐도 불꽃, 연기, 폭발의 역할이 구분되는지 확인합니다.

  6. 타이밍

    스폰, 팽창, 소멸 곡선이 레퍼런스와 맞는지 봅니다.

  7. 예산

    보조 이미터를 추가할 때마다 입자 수와 오버드로를 다시 잽니다.

기본적인 이펙트 제작 방법은 데이터 입력, 이미터 책임, 렌더 비용, 재현 기준으로 점검합니다.