Unrea Engine Graphic/Niagara

Niagara - Rain Effect (2) Splash, NiagaraModuleSystem, Enum

DB51 2025. 6. 4. 12:27

 

 

 

 

NS_RainFX  -  Rain Splash Small

Particle Spawn

Initialize Particle

Lifetime : 0.1 ~ 0.5

Color : Random Alpha (0.1 ~ 0.2)

 

 

Particle Update

Sub UV Animation

Start Frame Range Override : 0

End Frame Range Override : 3

 

 

 

 

 

Texture

 

Rain Splash Small에 사용한 Material Instance 복제 ( Rain Splash Big, Rain Splash Variations)

 

 

 

 

 

 

 

 

Rain Splash Small 이미터 복제

NS_RainFX  -  Rain Splash Big

Render

Sprite Renderer

제작한 머티리얼 적용

Sub UV : 1.0, 1.0

 

Particle Update

Sub UV Animation 삭제

 

 

Particle Spawn

Initialize Particle

Lifetime : 0.05 ~ 0.08

Sprite Size Mode : Random Uniform

Uniform Sprite Size : 25 ~ 55

 

 

Particle Update

Scale Sprite Size

 

Dynamic Material Parameters

 

 

Event Handler - SourceL CollisionEvent

Event Handler Properties

Max Event Per Frame : 2 (파티클 수 조절)

 

 

 

 

 

 

 

 

Rain Splash Small 이미터 복제

NS_RainFX  -  Rain Splash Variations

Render

Sprite Renderer

제작한 머티리얼 적용

Sub UV : 4.0, 4.0

 

 

Particle Spawn

Initialize Particle

Lifetime : 0.2 ~ 0.5

Sprite Size Mode : Random Uniform

Uniform Sprite Size : 35 ~ 55

 

 

Particle Update

Sub UV Animation

Start Frame Range Override : 0

End Frame Range Override : 15

 

 

Dynamic Material Parameters

 

 

 

 

 

 

 

 

 

 

 

 

 

Texture 파일 (Ripple)

 

 

 

 

 

Rain Splash Big 이미터 복제

NS_RainFX  -  Rain Ripples

Render

Sprite Renderer

제작한 머티리얼 적용

Sub UV : 1.0, 1.0

 

 

Particle Spawn

Initialize Particle

Lifetime : 0.5 ~ 1.0

Sprite Size Mode : Random Uniform

Uniform Sprite Size : 200 ~ 210

Color : White, Alpha (0.1)

 

 

Render

Sprite Renderer

Facing Mode : 카메라를 향하는 방향 (Automatic - 카메라 방향으로 정면을 보여준다.)

 

 

Particle Spawn

Sprite Facing and Alignment

Sprite Facing : Sprite가 향하는 방향을 커스텀할 수 있다.

 

 

Particle Update

Scale Sprite Size

 

 

 

 

 

NS_RainFX  -  Main Rain Drops

Particle Update

Collision

Particle Radius Scale (콜리전이 발생하는 영역의 스케일 값) : 0.4

 

 

 

 

 

 

 

 

 

 

 

 

 

경사면에서의 파티클

1. 파티클 없애기 (커스텀 이미터)

 

 

Event Handler - Source: CollisionEvent

Receive Collision Event

Collision Normal : 충돌되는 면에 대한 값 (Float)

-> 이 값을 이용. 수직일 때 1, 거짓의 경우 0

 

 

 

Niagara Module Script 생성

NMS_CheckCollisionNormal

Details

Category : Custom

Library Visibility : Exposed

Keywords : CheckCollisionNormal

 

Map Get : Vector (Input.CollisionNormalToCheck)

Make Vector : Z - 1.0

Dot : 곱셈

Make Float : 0.99

-> Vector에 곱한 값이 0.99보다 큰 경우, 또는 크지 않은 경우

 

DataInstance.Alive : 파티클을 없애기 위해 값을 설정하는 Map Set의 경우, 바로 사용할 수 있는 기존 파라미터. (참의 경우, 파티클 유지하고, 거짓의 경우, 파티클 삭제)

 

 

 

NS_RainFX  -  Rain Splash Small

Event Handler - Source: CollisionEvent

NMS Check Collision Normal 추가

 

Receive Collision Event

Collision Normal (Vector 3) : Output (Vector 3 안에 값을 저장하기 위함)

 

NMS Check Collision Normal

CollisionNormalToCheck : ReceiveCollsionEvent.Vector_3

 

 

 

 

Main Rain Drop을 제외한 모든 이미터에 적용

Receive Collision Event

Collision Normal (Vector 3) : Output

 

NMS Check Collision Normal -> 복제하기

CollisionNormalToCheck : ReceiveCollsionEvent.Vector_3

 

 

 

 

 

 

 

 

 

 

 

 

 

2. 파티클 정렬 변경하여 충돌하는 표면과 정렬하게 만들기 (커스텀 이미터)

(모듈의 입력에 드롭 다운을 추가하는 방식)

 

Enum (Enumeration, 열거형)

 : 다양한 옵션을 제공하고 선택에 따라 다른 결과를 줌. 

ex) Shape Location - Shape Primitive에서 Sphere, Box / Plane 등을 선택하면 선택에 따라 설정창이 변화한다.

 

Enum 사용 예시

Collision Check Mode : 

 Normal Input -> Dot Product -> Kill Particles On Slope -> Switch

  : Dot Product (내적)을 사용, Dot Product Map Set이 최종 출력.

 Normal Input -> Set Sprite Alignment -> Align Particles With Slope -> Switch

  : 나이아가라 모듈로 스프라이트 정렬을 설정 - 한 가지 파라미터 Map Set만 최종 출력.

 

 

 

Custom Enum Niagara

나이아가라에서 사용하는 열거형(Enum)의 이름은 ENiagara로 시작한다.

 

Blueprint - Enumeration

 

+ Add Enumeration

 

 

 

 

Edit - Project Settings

Plugins-Niagara - Additional Parameter Enums에 제작한 Enum 추가

Project Settings 설정 시, 프로젝트를 재시작 해야한다.

 

 

 

 

NMS_CheckCollisionNormal

Static Switch의 Details

 

Static switch type : 방금 제작한 Enum으로 변경

 

Niagara Parameter Map으로 적용 (Map Get, Map Set은 여러개 제작 가능)

 

 

Static Switch의 NiagaraParameterMap을 Output Module에 연결

If Kill Particles On Slope에 기존 Map Set (파티클 삭제) 연결

새 Map Set 생성 + 기존에 있는 값인 Particle.SetAlignment

Map Get의 CollisionNormalToCheck를 Particle.SetAlignment에 연결

If Align Particles With Slope에 새로 생성한 Map Set (파티클 정렬) 연결



 

 

NS_RainFX

NMS Check Collision Normal에서 Collision Check Mode가 생성된 것을 확인할 수 있다.

 

 

 

Main Rain Drop을 제외한 모든 이미터에 적용

 

Event Handler - Source: CollisionEvent

NMS Check Collision Normal 

Collision Check Mode : Align Particles With Slope

 

 

Render

Sprite Renderer

Alignment : Custom Alignment

 

 

 

NS_RainFX  -  Rain Ripples

경사면에 닿는 것이기 때문에 물결 생성을 삭제

Event Handler - Source: CollisionEvent

NMS Check Collision Normal 

Collision Check Mode : Kill Particles On Slope