728x90
이 글은 Class 101 - 러셀 강의를 듣고 정리한 글입니다.

 

목차.

  1. 개요
  2. 나이아가라 시스템 추가
  3. 나이아가라 시스템 설정
  4. 파티클 이동 구현
  5. 결과

 

개요

 

언리얼 엔진 4에서 나이아가라 시스템은 효율적이면서 간단한 파티클 시스템을 제공합니다.

이 글에서는 나이아가라 시스템을 활용하여 눈 파티클을 생성하고, 플레이어의 이동에 따라 눈 파티클을 자연스럽게 이동시키는 방법을 알아보겠습니다.

이를 통해 게임 환경을 더욱 생동감 있게 만들 수 있습니다.

 

나이아가라 시스템 추가

 

먼저 나이아가라 시스템을 생성합니다.

 

FX -> 나이아가라 시스템 선택

나이아가라-시스템-추가
나이아가라 시스템 추가하기

 

생성된 나이아가라 시스템의 이름을 NS_Snow로 이름을 지어줍니다.

 

나이아가라 시스템 설정

 

나이아가라 시스템을 클릭해서 새로운 창에 들어오면 

두개의 노드가 보입니다.

 

그중 Empty 노드에서 이미터 업데이트 -> Spawn Rate을 선택해 줍니다.

Spawn Rate는 이름에서 유추할 수 있듯 파티클이 생성되는 정도를 나타내는 것으로 보입니다.

 

Spawn-Rate-추가
Spawn Rate 추가

 

Spawn Rate는 3000으로 설정해 줍니다.

 

그러면 파티클이 바닥으로 떨어지지 않고 한 곳에 뭉쳐있습니다.

 

눈은 중력에 영향을 받아 바닥으로 떨어지기 때문에 중력을 추가해 줍니다.

 

파티클 업데이트 -> Gravity Force를 선택합니다.

Gravity Force는 중력 가속도를 나타냅니다.

 

Gravity-Force-추가
Z -300 으로 설정

 

Z 값을 -300으로 설정해 줍니다.

 

그러면 이제 파티클이 바닥으로 떨어지지만 한 곳에 뭉친 상태로 떨어지기 때문에 선으로 보일 것입니다.

 

파티클이 넓은 범위로 골고루 생성되고 떨어져야 하기 때문에

파티클 스폰 ->  Box Location를 선택합니다.

 

Box Location을 통해서 파티클이 생성되는 범위를 지정할 수 있습니다.

 

Box-Location-추가
Box Location 추가

 

Box Size는 x, y, z 모두 1000으로 설정합니다.

만약 더 넓은 범위로 설정한다면 Spawn Rate를 더 큰 값으로 변경하면 됩니다.

 

하지만 너무 많은 파티클은 최적화에 영향을 주기 때문에 적당히 생성하는 게 좋습니다.

 

이제 어느 정도 자연스럽게 파티클이 생성되고 사라지는 것을 볼 수 있습니다.

 

하지만 파티클이 가속도를 받아서 마치 비처럼 떨어지기 때문에 속도에 제한을 줘야 합니다.

 

Solve Forces and Velocity -> Speed Limit 300으로 설정

 

Speed-Limit-설정
Speed Limit 설정

 

중력 가속도와 같은 값인 300으로 설정했습니다.

이제 눈이 낙하해도 300이라는 속도를 넘지 않습니다.

 

파티클의 크기가 눈이라고 하기에는 조금 부자연스럽습니다.

 

Initialize Particle -> Sprite Size Mode(Non-Uniform) -> x y 각각 2.0으로 설정

 

Initialize-Particle-설정
Initialize Particle 설정

 

사이즈를 더 작게 해도 괜찮고 Mode를 변경해서 랜덤으로 해줘도 괜찮습니다.

 

이렇게 생성한 나이아가라 시스템을 레벨에 배치해 줍니다.

 

배치했을 때의 발생하는 문제로 플레이어가 이동을 했을 때,

 파티클은 고정된 위치에 있기 때문에  특정 범위에서 벗어난다면 눈이 내리지 않게 됩니다.

 

물론 파티클의 범위를 광범위하게 해서 레벨의 모든 부분에 눈이 내리도록 할 수 있지만,

성능 부분에서 엄청난 손해입니다.

 

이를 해결하기 위해 플레이어가 이동하면 나이아가라 시스템도 함께 이동하도록 하겠습니다.

 

파티클 이동 구현

 

레벨 블루프린트를 활용하여 이동 구현을 할 것입니다.

 

레벨 블루프린트의 이벤트 그래프에서 월드 아웃라이너에 있는 나이아가라 시스템 드래그 & 드롭

 

그런 다음 아래와 같이 블루프린트를 작성하면 됩니다.

 

블루-프린트-파티클-이동-구현
파티클 이동구현

 

간단하게 설명하자면 Tick 이벤트를 통해서 플레이어의 위치를 프레임 단위로 받아오고 플레이어의 위치(x, y)를 나이아가라 시스템의 위치로 적용시켜 주는 노드입니다.

 

물론 파티클이 생성되는 위치는 항상 하늘에 떠있어야 하기 때문에 z 값은 특정 값으로 설정했습니다.

 

결과

 

플레이어를 따라다니면서 눈이 이쁘게 내리는 모습을 볼 수 있습니다.

 

나이아가라-시스템을-활용한-눈-생성
나이아가라 시스템을 활용해서 눈을 생성한 모습

 

이제 나이아가라 시스템을 활용하여 언리얼 엔진 4에서 눈 파티클을 생성하고, 플레이어의 이동에 따라 눈 파티클을 자연스럽게 이동시키는 시스템을 구현할 수 있습니다.

이를 통해 게임 환경을 더욱 생동감 있게 만들 수 있으며, 플레이어에게 더욱 몰입감 있는 경험을 제공할 수 있습니다.

 

728x90

+ Recent posts