본문 바로가기
이펙트 (FX)/이펙트 팁 : Unreal

[Unreal/Niagara] 나이아가라 스켈레탈 메시를 활용한 번개 제작법 소개 (SKM Lightning Part 1)

by Minkyu Lee 2026. 7. 26.

개요

나이아가라 스켈레탈 메시 정보를 활용한 번개 제작법 영상을 소개한다.

 

영상 정보

 

핵심 요약 (Conclusion)

  • 언리얼 엔진 5(UE5)의 나이아가라(Niagara) 시스템을 활용하여 캐릭터 몸 전체에 번개가 튀며 감전되는 효과(Electrocuting Lightning Effect)를 제작하는 실전 가이드입니다.
  • 스켈레탈 메시 위치 샘플링: Sample Skeletal Mesh 모듈을 사용해 캐릭터 표면의 무작위 두 지점을 실시간으로 추출하고, 이를 빔(Beam)의 시작점(Beam Start)과 끝점(Beam End)으로 지정하여 캐릭터 몸 위에서 번개가 연결되는 구조를 구축합니다.
  • 디테일한 변형과 왜곡: 커브(Curve) 기반의 Beam Width 및 Jitter Position 모듈을 활용해 번개의 굵기 테이퍼링(Tapering)과 위치 파형(Distortion)을 구현하고, Sampled Normal 속성을 연결하여 자연스러운 곡률(Tangent)을 부여합니다.
  • 다층 레이어링 및 발광: 마스터 번개 이미터 외에 두께가 얇은 2차 빔 레이어, 번개 위치에서 터져 나가는 스파크 이미터(Spawn Particles from Other Emitter), 표면에서 피어오르는 연기 이미터(SubUV Animation)를 추가하여 복합적인 효과를 연출합니다.
  • 몽타주 연동 및 제어: 애니메이션 몽타주(Animation Montage)에 Timed Niagara Effect 노티파이 상태를 적용하고, 이미터의 루프 주기(Loop Duration)와 횟수(Loop Count)를 상호 계산하여 애니메이션 재생 시간에 맞춰 감전 효과가 정확히 지속되도록 맞춥니다.

 

타임라인별 상세 정리

1. 개요 및 캐릭터 애니메이션 몽타주 설정 (00:00:00 ~ 00:01:05)

  • 씬 기본 구조 구성 [00:09]: 언리얼 엔진의 서드퍼슨 템플릿(Third Person Template)을 기반으로 설정합니다. 특정 키 입력 시 캐릭터가 감전되어 사망하는 애니메이션이 재생되도록 블루프린트를 구성합니다.
  • 애니메이션 몽타주 생성 [00:24]: 감전 시퀀스를 제어하기 위해 애니메이션 우클릭 메뉴에서 '애니메이션 몽타주 생성(Create Animation Montage)'을 실행합니다. 몽타주 내부의 애니메이션 노티파이(Anim Notify)를 통해 나이아가라 이펙트를 자동으로 트리거하는 방식을 사용합니다. [00:32]
  • 나이아가라 시스템 생성 [00:47]: 콘텐츠 브라우저에서 Minimal 템플릿 기반의 나이아가라 시스템을 생성하고 이름을 NS_Electrocute로 지정합니다. [00:57]

2. 스켈레탈 메시 표면 샘플링 및 빔(Beam) 연결 기초 (00:01:06 ~ 00:03:55)

  • 첫 번째 이미터 설정 [01:06]: 이미터 이름을 Lightning1으로 변경합니다.
  • Sample Skeletal Mesh 모듈 추가 [01:15]:
    • Attach Parent 옵션을 활성화하여 시스템이 부착된 캐릭터의 메시를 샘플링 소스로 자동 사용하도록 설정합니다. [01:25]
    • 프리뷰용 메시로 SK_M_Queen을 선택하고, 블루프린트 변수처럼 외부 제어가 가능하도록 유저 파라미터(Read from new user parameter)로 전환합니다. [01:34]
    • Sampling Mode를 Surface로, Random Evolution을 Every Frame으로 지정하여 매 프레임마다 표면 위치를 무작위로 새로 갱신합니다. [01:44]
  • 시작점과 끝점 파라미터 추출 [02:01]: Sample Skeletal Mesh 모듈을 그대로 복사/붙여넣기하여 2개를 만듭니다. 각 모듈이 내보내는 Sampled Position 파라미터를 각각 번개의 시작점(Start)과 끝점(End) 좌표로 사용합니다. [02:18]
  • 빔 파티클 구성 [02:27]:
    • Spawn Burst Instantaneous 모듈을 추가하고 버스트 수량을 10으로 설정합니다. [02:37]
    • Particle Spawn 단계에 Beam Emitter Setup 및 Spawn Beam 모듈을 추가하고, Render 단계에 Ribbon Renderer를 활성화(기존 Sprite Renderer는 비활성화)하여 빔 형태로 보이게 만듭니다. [02:48]
    • Beam Start 좌표에는 첫 번째 표면 샘플링 위치를, Absolute Beam End를 활성화한 후 Beam End 좌표에는 두 번째 표면 샘플링 위치를 할당합니다. [03:14]
    • 이로써 스켈레탈 메시 표면의 무작위 두 지점을 연결하는 기초 빔 구조가 완공됩니다. [03:32]

3. 나이아가라 이미터 주기 설정 및 애니메이션 몽타주 노티파이 연결 (00:03:56 ~ 00:06:10)

  • 타이밍 및 생사 주기 제어 [03:56]:
    • Emitter State의 Loop Duration을 0.1초로 설정하여 빔이 매우 빠른 속도로 생성/소멸을 반복하도록 만듭니다. [04:05]
    • Initialize Particle 모듈에서 Particle Lifetime을 0.25초로 설정합니다. [04:15]
    • Spawn Burst Instantaneous 수량을 Random Range Int (10 ~ 15)로 지정하여 프레임마다 불규칙한 분쇄 노이즈를 유도합니다. [04:25]
  • 색상 및 라이트 발광 [04:49]: Initialize Particle에서 Color를 Direct Set 기반의 푸른색 계열로 설정하고, Emissive 강도 값을 100으로 높여 강력한 인텐시티를 부여합니다. [04:57]
  • 몽타주 노티파이 연결 [05:06]:
    • 단순 일회성 발생이 아닌 지속 제어를 위해 애니메이션 몽타주 트랙에서 Timed Niagara Effect 노티파이 스테이트를 추가합니다. [05:22]
    • 노티파이 세부 정보(Details) 창에서 앞서 만든 NS_Electrocute를 할당합니다. [05:30]
    • 필수 주의사항: 나이아가라 이펙트가 제대로 동작하려면 반드시 Socket Name 필드에 애니메이션 루트 본(예: root)이나 특정 소켓을 할당해주어야 정상 추적됩니다. [05:38]

4. 빔 테이퍼(Taper) 제어 및 Jitter Position을 이용한 왜곡(Distortion) 구현 (00:06:11 ~ 00:08:02)

  • Beam Width 테이퍼 설정 [06:11]:
    • Beam Width 모듈을 추가하고 형태를 Float from Curve로 지정합니다. [06:20]
    • Curve Index를 Ribbon Link Order로 설정하여 빔의 시작점부터 끝점까지의 경로를 따라 양 끝단이 가늘어지도록 커브 핸들을 조정합니다. [06:27]
    • 완전한 뾰족함을 방지하기 위해 최소 오프셋 값(0.02)을 남겨 두께를 유지시킵니다. [06:42]
  • Jitter Position 노이즈 왜곡 [06:59]:
    • Particle Update 단계에 Jitter Position 모듈을 추가하여 번개 줄기에 거친 파형 노이즈를 부여합니다. [07:07]
    • Jitter 수치를 Float from Curve 및 Ribbon Link Order로 변경하여 번개 중앙부는 강한 노이즈가 발생하고, 양 끝단(캐릭터 메시 접촉점)은 노이즈 없이 깔끔하게 고정되도록 커브를 만듭니다. [07:24]
    • 시간이 지남에 따라 왜곡이 점진적으로 심해지도록 시간 기반 커브(Float from Curve)를 추가 중첩합니다. [07:43]
  • 테셀레이션 제어 [08:04]: Ribbon Renderer에서 Tessellation을 해제(Disable)하거나 수동 조절하여 곡선의 완화 현상을 줄이고 꺾임이 부각되는 날카로운 번개 형태를 완성합니다. [08:13]

5. 스켈레탈 메시 노멀을 활용한 번개 곡률(Curvature) 추가 및 Light Renderer 적용 (00:08:03 ~ 00:09:43)

  • Sampled Normal을 이용한 굴곡 표현 [08:21]:
    • Sample Skeletal Mesh 모듈이 자동으로 출력하는 Sampled Normal 파라미터를 사용합니다. [08:32]
    • Beam Emitter Setup에서 Use Beam Tangent를 활성화합니다. [08:38]
    • Beam Start Tangent 및 End Tangent에 Multiply Vector by Float 노드를 적용하고, Vector 항목에는 표면 노멀(Normal) 파라미터를, Float 항목에는 무작위 수치를 지정하여 번개 줄기가 캐릭터 몸 밖으로 둥글게 부풀어 오르는 자연스러운 탄젠트 곡률을 생성합니다. [09:05]
  • Light Renderer 배치 [09:44]: 나이아가라 랜더러에 Light Renderer를 추가함으로써 번개가 칠 때마다 주변 캐릭터 피부와 배경 지오메트리에 실시간 조명이 투영되도록 설정합니다. [09:57]

6. 디테일 레이어 추가 및 커스텀 번개 머티리얼(M_Lightning) 제작 (00:09:44 ~ 00:11:27)

  • 2차 메인 빔 레이어 생성 [10:11]:
    • Lightning1 이미터를 복사(Ctrl + D)하여 Lightning2 이미터를 만듭니다. [10:18]
    • Spawn Count를 25 ~ 40으로 대폭 늘리고, Beam Width 및 Jitter Strength 수치를 줄여 메인 줄기 주변에 얽히는 가는 잔가지 번개들을 표현합니다. [10:25]
  • 커스텀 언릿 머티리얼 제작 [10:33]:
    • 언리얼 기본 리본 머티리얼의 끝부분 페이드 현상을 제거하기 위해 신규 머티리얼 M_Lightning을 생성합니다. [10:48]
    • Shading Model을 Unlit으로 바꾸고, Two-Sided 옵션을 활성화합니다. [10:58]
    • Particle Color 노드의 RGB 출력단을 Emissive Color 항목에 연결하고 머티리얼을 저장 후 나이아가라 이미터의 Ribbon Renderer 머티리얼 슬롯에 할당합니다. [11:09]

7. 파티클 연동 스파크(Sparks) 이미터 및 충돌/반사(Collision) 설정 (00:11:28 ~ 00:13:51)

  • 이벤트 기반 파티클 스폰 [11:28]:
    • 새 이미터(Sparks)를 생성하고 Spawn Particles from Other Emitter 모듈을 적용합니다. [11:40]
    • 소스 이미터로 Lightning1을 지정하여 번개가 생성되는 위치에서 작은 불꽃 파티클들이 터져 나오도록 구성합니다. [11:50]
  • 방사형 속도 및 오프셋 [12:16]:
    • Add Velocity 모듈의 Mode를 Point로 변경하여 파티클들이 외곽으로 사방 분사되게 만듭니다. [12:24]
    • Z축 오프셋(+100)을 주어 파티클 분사 중심점을 캐릭터의 상체 중앙으로 이동시킵니다. [12:31]
  • 충돌 및 라이트 연동 [13:03]:
    • Collision 모듈을 추가하여 지면 및 주변 벽에 스파크가 튀도록 설정하고 Bounce(2.0), Friction(0.1) 값을 조정합니다. [13:03]
    • Scale Color 모듈로 시간에 따른 Alpha 감쇄 커브를 만들고, Light Renderer의 Alpha Scales Brightness 옵션을 키워 파티클이 사라짐에 따라 불꽃 조명도 자연스럽게 어두워지도록 마무리합니다. [13:20]

8. 스타터 콘텐츠 연기(Smoke) 이미터 구성 및 SubUV 애니메이션 적용 (00:13:52 ~ 00:16:44)

  • 스타터 콘텐츠 텍스처 활용 [13:52]: 프로젝트에 스타터 콘텐츠를 추가하고, Particles 폴더에 포함된 8x8 스프라이트 시트 텍스처인 Smoke_SubUV1을 활용합니다. [14:02]
  • 연기 이미터 설정 [14:18]:
    • Fountain 템플릿 이미터를 추가하고, Skeletal Mesh Location 모듈을 연결하여 연기가 캐릭터 몸 표면 전체(Surface Triangles)에서 피어오르도록 만듭니다. [14:48]
    • Gravity를 제거하고 Linear Velocity Z축 수치를 40 ~ 70으로 부여하여 연기가 캐릭터 위로 천천히 피어오르게 세팅합니다. [15:07]
  • SubUV 스프라이트 애니메이션 [15:27]:
    • Sprite Renderer 머티리얼에 M_Smoke_SubUV를 할당하고, SubUV Blending을 활성화한 뒤 Grid Size를 8 x 8로 설정합니다. [15:37]
    • SubUV Animation 모듈을 추가하여 연기 프레임 텍스처가 자연스럽게 재생되도록 만듭니다. [15:54]
  • 스케일 및 회전 변형 [16:03]: Scale Sprite Size 및 Sprite Rotation Rate 모듈을 통해 피어오를수록 크기가 2배로 확산되고 무작위 회전이 들어가도록 세부 연출을 다듬습니다. [16:18]

9. 전체 나이아가라 시스템 루프 수(Loop Count) 조정 및 최종 연출 완성 (00:16:45 ~ 00:18:28)

  • 몽타주 시간과 이미터 루프 동기화 [16:45]:
    • 애니메이션 몽타주의 감전 연출 구간(약 6.5초) 동안 번개 이펙트가 끊기지 않고 계속 재생되어야 합니다. [17:01]
    • 각 이미터의 Emitter State 항목에서 Loop Behavior를 Multiple로 변경합니다. [17:11]
    • 1회 루프 주기(Loop Duration)가 0.1초이므로, 6.5초 동안 지속되려면 루프 횟수(Loop Count)를 65회로 입력합니다. (Lightning1, Lightning2 이미터 동일 적용) [17:21]
  • 최종 시뮬레이션 확인 [17:57]: 설정 완료 후 게임을 실행하면 버튼 입력 시 캐릭터가 비틀거리며 감전되는 동안 완벽하게 동기화된 전기 번개, 잔가지 이펙트, 스파크 튐, 지면 반사 조명, 그리고 상승하는 연기 이펙트가 종합적으로 구현됩니다. [18:05]

댓글