Programming/UE5

[Niagara] 대충 정리 03 - 언리얼 제공 나이아가라 모듈 (Module)

Dorasima 2023. 8. 29. 11:25

0. 이제 System 을 구성하는 Niagara Module에 대해 정리해야한다.

- 어째서인지 여기서 (대충 정리 01)  나이아가라 System은 Emitter들이 모여있고. Emitter는 Module이 모여있다고 정리해놨다...(왜 기억이 안나지)

- 그럼 이제 모듈이 뭔지, 어떤게 있는지 정리할 차례인듯?

 

1. 사실... Docs에 다 있다.

- 다른데서 튜토리얼 찾아볼 필요 없다.

- 나이아가라 시스템 및 이미터 모듈 레퍼런스 | 언리얼 엔진 문서 (unrealengine.com)

 

나이아가라 시스템 및 이미터 모듈 레퍼런스

이 페이지는 나이아가라 시스템과 이미터 모듈 레퍼런스를 다루는 문서로 링크됩니다.

docs.unrealengine.com

- 딱 시작만 어떻게 하는지 알아낸 다음 그냥 공식 문서 보면서 하자.

 

2. 강의에서 사용한 나이아가라 모듈 대충 모음

2_1. Property 관련

- Color / Scale Color :

3개 혹은 4개의 float을 가지고 Particle의 색을 결정해주는 친구이다.

 

- Scale Sprite Size / Scale Mesh Size:

얘는 Sprite 혹은 Mesh의 Size를 결정해주는 친구. Sprite는 xy, Mesh 는 xyz를 가진다.

 

- Scale Sprite Size by Speed :

얘는 Sprite의 Speed를 측정해서 크기를 결정해주는 친구이다. 0이면 최소 크기, Threshold 값 이상이면 최대 크기 이다.

'Solve Forces and Velocity' 모듈이 파티클 업데이트에 있어야 작동한다.

 

- Update Mesh Orientation:

메시 렌더러에서 나온 파티클 들을 회전시켜준다.

 

- Beam Width : 

Ribbon Render와 함께 사용한다. 레이저 빔 고런거의 넓이를 지정할 수 있게 해준다.

Spawn Beam 모듈이 선행 되어야 한다.

 

- Dynamic Material Parameters : 

Material에서 Dynamic Parameter 모듈을 사용하면, 저렇게 나이아가라 시스템에서 모듈을 이용해서 머테리얼을 제어 할 수 있게 해주는 것이다.

- Sprite Facing and Alignment : 

Sprite의 방향과 바라보는 방향을 지정해주는 친구이다.

설명을 보면 Sprite Render 에서 alignment를 Custom 으로 쓰라고 한다.

- Sprite Facing : 

얘도 비슷한 친구이다.

- ShapeLocation : 

Sprite를 여러개 Spawn 할 때, 기초적인 몇가지 도형 내에서 규칙을 가지고 스폰을 시켜주는 친구이다.

- Grid Location : 

Particle을 grid로 소환시켜주는 친구이다.  Spawn Particles in Grid 와 함께 써야한다.

- Sample Texture : 

Texture를 입력 받아서, UV와 Color를 받아주는 친구이다.

- Static Mesh Location : 

Static Mesh를 입력 받으면, 그것을 기반으로 파라미터 값을 써주는 친구이다.

 

- Initialize Mesh Reproduction Sprite / Update Mesh Reproduction Sprite

얘는 Skeletal Mesh에 쓰이는 친구이다. Animation에 따라서 로직을 구성할 수도 있다.

요로콤 모듈 설명서가 잘 되어있으니, 꼭 해보자.

2_2. Force 관련

- AddVelocity :

Particle Spawn 섹션에서 실행하는 친구로, 스폰이 된 이후 속도를 한번 더 해준다.

 

- Curl Noise :

Curl Noise 모양의 힘을 Particle에 더해주는 것이다.

 

- Drag :

약간의 방해되는 힘을 원래 Velocity에 적용시키는 것이다.

 

- Point Attraction:

지정된 Position으로 인력이 작용하도록 하는 힘을 적용시킨다.

(Curl Noise, Drag, Point Attraction은 Transient 네임스페이스를 가진 변수에 저장이 되었다가 한번에 적용이 된다고 한다.)

 

- Vertex Velocity :

각속도를 가진 소용돌이 모양의 힘을 Paritcle 들에게 적용을 시킨다.

(위 4개를 다 적용시킨 모습)

- Wind Force :

바람의 힘을 더해주는 친구이다. 방향 + 소용돌이 + 마찰 등 이것저것 세팅할 수 있다.

Aerodynamic Drag와 함께 사용해야 한다.

- Gravity Force :

 중력의 힘(가속도)을 더해주는 친구. 별거 없다. 

 

- Vortex Force :

Vortex 모양으로 힘을 주는 친구이다. 만약 Particle Spawn 섹션에서 쓰고 싶다면.

Apply Initial Forces 모듈과 함께 사용해야 한다.

 

2_3. Trigger 관련

- Kill Particles in Volume :

Particles이 Volume 안 에 들어오면, 없애는 모듈이다. Volume은 Origin 과 Offset을 지정하고, Shape과 그에 맞는 Property

를 가진다.

요러면 System 이 Level에 시뮬레이션 되는 위치에 Plane 모양을 하고 위쪽을 바라보는 Volume에 Particle이 닿으면 없어지는 것이다.

- Generate Location Event / Receive Location Event

Particle의 Location을 Event로 넘겨주는 모듈과, 그 값을 Event로 받아서 쓰는 모듈이다.

Emitter 끼리 통신이 가능하게 하고, 받는 쪽에서 Event handler 모듈을 이용하여 받을 준비를 한다.

- Kill Particles : 

bool 값으로 Particle이 없어질지 결정하는 친구다. 매우 간단하다.

 

- Generate Collision Event /  Receive Collision Event

Collision Event를 생성하고, 받는 모듈이다. Generator 쪽에서는 Collision 모듈이 있어야 사용할 수 있다.

Generator 쪽에서 write 하는 여러 parameter를 가지고 receiver 쪽에서 사용한다.

2_4. 애니메이션 관련

- SuvUVAnimation

Material을 SubUV image로 만들어서 애니메이션을 표현하고 싶을 때 사용 한다.

8곱8 Texture를 가지는 Material이기에 Renderer에 서브 이미지 크기를 88로 지정해준다.