Unreal 게임 개발 과정 TIL

Today's I Learning

본캠프 TIL

06.26 Unreal 본캠프) 파티클과 사운드로 게임 효과 연출하기

Sunlight__ 2026. 6. 26. 11:54

 

오늘 배운 것

 

1. 파티클 시각 효과 추가하기

 1) 파티클 시스템 (Particle System) 기본 개념 이해하기

 - 파티클 시스템이란?

- 파티클 시스템 (Particle System)은 게임 내에서 불꽃, 연기, 폭발, 먼지 등 다양한 시각적 효과를 구현하기 위한 도구이다.
- 파티클은 다수의 작은 '입자' (Particle)들이 모여 움직이면서 특정한 모양, 색상, 혹은 애니메이션 효과를 만들어낸다.
- 언리얼 엔진에서는 파티클 시스템을 사용해 효과적인 VFX (Visual Effects)를 구현할 수 있도록 풍부한 기능을 제공한다.

 

- Cascade vs Niagara

- Cascade
 : 언리얼 엔진 3 시절부터 제공된 오래된 파티클 편집 툴이다.
   언리얼 엔진 4, 5에서도 여전히 호환되지만, 신규 기능 업데이트는 주로 Niagara 위주로 이루어지고 있다.
   - 초급자가 배우기에 상대적으로 간단하고 빠르게 결과를 볼 수 있다.
   - 레거시 프로젝트나 기존 아티스트 툴체인에서 많이 사용
   - 복잡하거나 고급스러운 VFX 연출에는 한계
- Niagara
 : 언리얼 엔진 4 후반부터 새롭게 도입된 차세대 파티클 시스템이다.
   언리얼 엔진 5에서는 Niagara가 공식적으로 권장되는 방식이다.
   - 모듈 단위로 다양한 파티클 동작을 정교하게 제어 가능
   - 블루프린트머티리얼, 스크립팅과 유기적으로 연동되어 고급 VFX를 쉽게 만들 수 있다.
   - GPU 파티클, 신규 기능 업데이트가 빠르게 적용
- 만약 언리얼 엔진을 처음 접하거나, 파티클 효과를 빠르게 만들어봐야 한다면 Cascade부터 익히는 것도 좋은 방법이다.
  하지만, 새 프로젝트를 계획 중이고 고급 이펙트를 구현하고 싶다면 Niagara 학습을 권장한다.

 

 2) 아이템 획득에 파티클 적용하기

 : 모든 아이템은 상호작용 시 ActivateItem 함수를 실행하도록 설계를 했다.

   여기에 파티클을 붙인다면 BaseItem을 상속받는 아이템들 모두에서 파티클을 설정할 수 있다.

BaseItem.h

Baseitem.cpp

- 빌드를 하고 에디터로 돌아가서, 파티클을 붙여줄 아이템 Blueprint를 (예를 들어, 지뢰 아이템) 열어본다.
  Details 창을 보면 Item 카테고리 아래에 Effects 라는 카테고리가 생겼고, 여기서 파티클 이펙트를 설정할 수 있다.
  리소스에 있는 파티클 중 맘에 드는 것으로 이펙트를 할당하고 컴파일 후 저장한다.

 

 3) 지뢰 아이템에 파티클 추가하기

 : 지뢰 아이템은 추가적으로 "폭발 파티클"도 추가해 아이템 발동 후 실제 폭발 이펙트를 보여줄 수 있도록 수정한다.

MineItem.h

MineItem.cpp

- 발동이 여러번 되는 것을 막기 위해, bHasExplode 설정을 한다.
- Explode() 함수에서 SpawnEmitterAtLocation() 사용해서 폭발 이펙트를 하나 더 배정해준다.
- 이제 빌드하고 에디터에서 디테일 패널에 ExplosionEffect라는 프로퍼티가 나타난다.
  여기에 폭발 파티클 에셋(P_Explosion)을 할당해주면, 상호작용 시 폭발 파티클이 재생된다.
- 이 외 파티클 활용 시 팁
   - 성능 고려
     : 파티클은 반복 생성 시 성능 부하가 커질 수 있다.
       불필요하게 많은 파티클이 생성되지 않도록 주의한다.
   - 파티클 라이프타임 (Lifetime) 조정
     : 폭발 파티클 등은 보통 짧은 시간에 끝나도록 Lifetime 설정이 되어 있다.
       필요에 따라 "Looping" 옵션을 끄거나 켜서 조절할 수 있다.
   - 부착 (Attach)
     : 아이템이 이동/회전하는 동안 파티클도 함께 움직여야 한다면 SpawnEmitterAttached()를 사용해 부착 대상 컴포넌트를 지정해줘야 한다.

 

2. 사운드 효과 추가하기

 1) 언리얼 엔진 사운드 효과의 종류

- 사운드 웨이브 (Sound Wave)
   - 한 개의 오디오 파일(일반적으로 .wav)을 뜻한다.
   - 게임에서 재생할 기본 오디오 데이터 그 자체라고 볼 수 있다.
   - 단일 음원(싱글 트랙) 재생용으로 주로 사용된다.
   - 엔진 내부적으로 Wave 탭 또는 사운드 웨이브 에셋으로 관리된다.
   - 재생 시 별도의 추가 효과(랜덤 재생, 믹싱, 블렌딩 등)를 넣기 어렵고, 순순히 "오디오 파일"을 재생하기만 하는 형태이다.
- 사운크 큐 (Sound Cue)
   - 언리얼 엔진의 오디오 편집 그래프 시스템이다.
   - 여러 개의 사운드 웨이브를 조합하거나, 랜덤/시퀀셜 재생, 믹싱, 페이드, 모듈레이션 등 다양한 처리를 시각적 노드 그래프로 설정할 수 있다.
   - Sound Cue Editor라는 전용 편집 창에서 다양한 노드를 배치해 복잡한 사운드 로직을 구성할 수 있다.
   - 사운드 에셋이 늘어나고, 상황에 따라 실시간으로 변화하는 사운드를 만들고 싶을 때 필수적이다.
   - 배경음악의 구간 전환(Intro-Loop-Outro)이라든가, 발걸음 소리의 무작위 재생, 총격 사운드의 재생 피치 랜덤화 같은 동적 사운드에 활용된다.
- 사운드 웨이브 vs 사운드 큐, 언제 사용할까?
   - 사운드 웨이브
   : 단일 오디오 파일을 그대로 재생하는 경우
     간단한 UI 사운드, 짧은 효과음(단일 음원) 등에 적합
   - 사운드 큐
   : 여러 사운드 웨이브를 조합하거나, 랜덤/페이드/모듈레이션고급 기능을 적용해야 할 때
     같은 이벤트라도 여러 가지 소리를 번갈아 재생하거나, 재생 로직노드 그래프로 구성하고 싶을 때 사용

 

 2) 아이템 획득에 사운드 적용하기

 : 시각적 이펙트에 사운드 효과까지 더해지면 게임의 몰입감이 훨씬 올라간다.

   언리얼 엔진에서는 사운드를 재생할 때 사운드 큐 (Sound Wave) 파일을 주로 사용한다.

BaseItem.h

BaseItem.cpp

- 빌드를 하고 에디터로 돌아가서, 사운드를 재생할 아이템 Blueprint를 열어본다.
  Details 창을 보면 Effects 카테고리 아래에서 사운드 이펙트를 설정할 수 있다.
  리소스에 있는 파티클 중 맘에 드는 것으로 할당하고 컴파일 후 저장해준다.

 

 2) 지뢰 아이템에 사운드 효과음 추가하기

MineItem.h

MineItem.cpp