캐릭터가 움직이면, 해당 캐릭터의 뒷부분에 Trail 효과를 주고 싶어서 관련 기술을 찾아보던 도중 나이아가라 시스템을 알게 되었고 간단히 사용해 본 내용을 정리해 볼 것이다.
1. 나이아가라 시스템 생성
- FX -> 나이아가라 시스템으로 생성을 한다.

- 이후 어떤 이미터나 시스템을 사용할 것인지 나오는데, 이유는 잘 모르지만 참고한 많은 곳에서 Empty로 설정을 한다고 하였다.
- 그런데, 엔진 버전 차이인지 Completely Empty가 아닌 Minimal로 만들어야 참고한 자료들과 같은 모습으로 생성할 수 있었다.

2. 이미터 값 수정하기
- 아래 사진과 같이 두가지 노드가 뜨는데,
- 좌측은 사용자 파라미터에 skeletal mesh를 추가하는 등의 작업을 할 때 사용해보았고,
- 우측 노드를 주로 사용해서 값을 변경하고 추가하는 작업을 하였다.

2 - 1. 파티클 스폰
Initialize Partilce
- 생성시 default로 존재하며, 랜더에서 지정한 값들이나 lifetime 등을 수정할 수 있다.

Add Velocity
- 파티클이 이동하는 속도를 지정할 수 있다.

Initialize Mesh Reproduction Sprite
- 우리가 사용자 파라메터에서 만든 Skeletal Mesh를 가져와서 넣을 수 있다.

- 추가한 직후 디테일 창을 보면, 아래와 같이 나타는데,

- 사용자 파라메터 Skeletal Mesh를 드래그해서 Mesh에 가져다 두면 다음과 같이 변한다

2 - 2. 랜더
- 어떤 모습의 파티클로 랜더할 지 정하는 부분이다.
- 다음과 같이 여러개의 랜더러가 있다. (default는 스프라이트 렌더러이다)

2 - 3. 이미터 업데이트
Spawn Rate
- 1초에 몇개의 파티클을 스폰할 지 정하는 부분이다.
- 아래 사진처럼 5000의 값을 넣은 결과 빛나는 것을 볼 수 있다.
- 위로 길게 보이는 것은 위에서 언급한 Add Velocity값에서 Z값을 50을 넣어주었기 때문이다.


2 - 4. 파티클 업데이트
Color
- 파티클의 색상을 지정할 수 있다.
- 이때 Color에서 Color from Curve를 지정해서 그래디언트를 줄 수 도 있다.

Jitter Position
- 파티클이 흔들리는 효과를 줄 수 있다.
Scale Velocity
- 속도값이 너무 클 때 속도값을 적절한 비율로 줄여주기 위해서 사용하는 것 같다.
- 속도값이 너무 크면 파티클이 너무 빠르게 움직이는 것을 방지
- 캐릭터 뒤를 따라가는 것 구현할 때 사용했다.
Update Mesh Reproduction Sprite
- skeletal mesh를 기반으로 효과를 구현할 때 넣어주어야 하는 모듈이다.
- 위에서 한 것 처럼 사용자 파라메터 skeletal mesh를 넣어주고 Overwrite Intrinsic Variables를 꺼주어야 한다. (캐릭터 뒤를 따라오는 효과를 내기 위해서는 꺼주어야함)

3. Skeletal Mesh 사용할 때 주의점
- 프로퍼티를 CPU에서 GPU로 바꿔주어야 한다. (그래야지 프리뷰가 보인다)
- 파티클 스폰에 Initialize Mesh Reproduction Sprite를 추가하고,
- 파티클 업데이트에 Update Mesh Reproduction Sprite를 추가해야 한다.
- 완성 이미터 모습

- 영상
4. C++로 적용하기
- Build.cs 파일에서 아래처럼 Niagara를 추가해 주어야 한다.
- 이후에 빌드를 실행하고 모든 에디터와 VS를 꺼야한다.
- 프로젝트가 있는 폴더로 가서 .uproject 파일 우클릭 후 generate visual studio project files를 해주면 된다.
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "EnhancedInput", "Niagara" });
- 사용하기 위해서 필요한 라이브러리는 아래와 같다.
#include "NiagaraFunctionLibrary.h"
#include "NiagaraComponent.h"
- 사용시 주의 점
- 액터에 컴포넌트로 붙이기 위해서 필요한 타입은 UNiagaraComponent 이다.
- 우리가 만든 나이아가라 시스템의 타입은 UNiagaraSystem이다.
- 나이아가라 컴포넌트를 Root나 Scene 컴포넌트에 붙여주어야 한다.
- 예제 코드
//Character.h
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Player|Components")
TObjectPtr<UNiagaraComponent> NiagaraComp;
NiagaraComp = CreateDefaultSubobject<UNiagaraComponent>(TEXT("Niagara Particle"));
NiagaraComp->SetupAttachment(SceneComp);
static ConstructorHelpers::FObjectFinder<UNiagaraSystem> NiagaraAsset(TEXT("/Game/Effects/NS_Line.NS_Line"));
if (NiagaraAsset.Succeeded())
{
NiagaraComp->SetAsset(NiagaraAsset.Object);
}
NiagaraComp->AddRelativeLocation(FVector(0.f, -40.f, -20.f));
- 영상
5. 참고 영상과 자료
- 참고 영상
https://www.youtube.com/watch?v=lXPSNIak64Y&list=LL&index=1
https://www.youtube.com/watch?v=SmSuhARlYqI&list=LL&index=2&t=80s
- 참고 자료
[Unreal Engine C++] C++에서 Niagara System 스폰
필자가 프로젝트를 진행하면서 사용하였던 나이아가라 시스템을 C++로 스폰시키고 사용 후 디스폰시키는 방법, 나이아가라 시스템을 패키징 할 때 발생할 수 있는 문제를 수정하는 방식을 확인
zeniff.tistory.com
https://dev.epicgames.com/community/learning/tutorials/Gx5j/using-niagara-in-c
'Unreal Engine' 카테고리의 다른 글
| Unreal Engine - 아이템 스폰 및 캐릭터와 연동 (1) | 2025.02.07 |
|---|---|
| Unreal Engine - 아이템 만들기 (+충돌 처리) (2) | 2025.02.06 |
| Unreal Engine - Data Table (0) | 2025.02.03 |
| UE5 Issues : C++ 충돌 처리 (3) | 2025.01.27 |
| UE5 Issues : Additive Animation (animation sequence 색깔) (0) | 2025.01.26 |