본문 바로가기

로블록스 개발 중급

로블록스 파티클 시스템의 기본

게임에서 흔히 사용되는 효과로 파티클을 이용한 효과를 많이 사용한다. 물론 로블록스 게임 엔진에서도 기본 제공하고 있다. 파티클의 사용법은 게임 엔진별로 그렇게 크게 다르지 않기 때문에 용어나 개념을 한번 익혀두면 다른 곳에서도 금방 사용할 수 있을 것이다. 로블록스에서는 ParticleEmitter 라는 오브젝트를 사용하여 파티클을 이용할 수 있다. 

Particle Emitters

ParticleEmitter 는 파티클들을 Emit(방출)시키는 특별한 타입의 오브젝트이다. 보통 파트에 붙혀서 혹은, Attachment에 붙혀서 사용하게 된다. 

파티클 그 자체는 2D 이미지이다. 이 2D 이미지가 항상 카메라만 바라보게 된다. 즉 동그란 모양의 이미지의 파티클이 있으면 항상 카메라를 바라보기 때문에 언제나 동그랗게만 보인다. 아무리 카메라를 이리저리 움직이면서 보아도 자동으로 카메라를 향하고 있기 때문에 사용자 입장에서는 항상 동그랗게만 보인다.

Particle Emitter 는 파티클을 방출시키는 역할과 더불어 색을 바꾼다거나 이동을 시키거나하는 역할을 한다. 여러 속성을 조합하여 변경시키면서 원하는 효과를 만들어 낼 수 있다. 바로 한번 사용해보자. 마치 황금이 빛이 나는 듯한 효과를 만들어 보겠다.

 

우선 워크스페이스를 MeshPart를 만든다. 이름은 GoldNugget. MeshId는 rbxassetid://2903918852. 메터리얼 속성은 Neon으로 변경하여 반짝거림을 주자. 색상은 골드와 가깝게255, 180, 0.

 

이 GoldNugget 오브젝트에 ParticleEmitter를 추가한다.

 

일단 파티클에밋터를 추가하면 바로 효과가 작동하게 된다. 에밋터에서 미리 정해둔 기본 파티클이 막 방출되는데, 그 모양은 아래의 이미지와 비슷할 것이다.

파티클에밋터의 기본 파티클 방출 모습

로블록스에서는 미리 제작된 Fire와 Smoke가 존재한다. 이 화이어와 스모크를 쓰면 변경필요없이 바로 불과 연기를 표현할 수 있다. 약간의 변경도 가능하니 사용하기 편리하다. 대신 파티클 에밋터를 직접 사용하는 것에 비해 활용도는 떨어질 수 있다.

파티클 Emission( 방사, 방출)

파트의 볼륨만큼의 범위에서 랜덤하게 파티클이 뿜어져 나온다. 에밋터의 EmissionDirection 속성에 의해서 파티클의 방출되는 방향이 정해지는데 기본값으로 위쪽이다. 파트의 자체를 회전시키면 회전된 만큼 파티클의 방출방향도 바뀌게 된다.

 

이번에는 메쉬파트 자체를 리사이즈 해보자. 파트를 크게 늘려보면 그 사이즈가 커진만큼 더 넓은 범위에서 파티클이 생성된다.

색상

제일 처음 변경할 속성은 색상이다. 회색빛의 파티클을 같은 황금색으로 바꾸자. Color 속성을 255, 200, 50 변경.

Lifetime(파티클의 생명주기)

파티클의 생명주기는 디폴트값으로 5초에서 10초로 랜덤하다. 이 생명주기를 변경하려면 Lifetime 속성을 줄여줘야한다. Min과 Max값이 있으므로 원하는 범위의 시간으로 변경하자. 여기서는 0.5, 1 으로 생명주기를 보다 짧게 하였다.

Rate(파티클 생성 속도)

Rate 속성은 얼마나 많은 수의 파티클을 생성하나를 담당한다. 초당 만들어지는 파티클의 값이다. 여기서는 Rate속성을 7로 한다. 초당 7개

Speed(파티클 이동속도)

Speed 속성은 파티클의 이동속도를 결정한다. 초당 stud(로블록스 기본 유닛) 단일 값이나 범위로 지정이 가능하다. 여기서는 2 to 3 으로 정한다.

SpreadAngle(파티클이 펼쳐지는 각도)

여기서는 황금이 빛나는 모습을 만들 것이기 때문에 SpreadAngle 속성은 사방으로 퍼져나가야 한다. X축과 Y축으로 나눠서 변경할 수 있다. 다르게 설정은 할 수 있지만, 보통은 같은 값으로 설정한다. 0, 0 인 상태이면 원통형의 모습으로 파티클이 뻗어 나간다고 생각하면 되고, 각각 X, Y축에 대해서 원뿔의 각이 된다고 생각하면 된다. 즉 원뿔의 각이 45도이면 딱 정삼각형을 돌렸을때 나오는 원뿔 모양으로 파티클이 뻗어 나간다. 예를 들어 90도이면 원뿔의 각이 90이기 때문에 반원의 모양으로 뻗어나간다. 180도의 원뿔각도 이면 그냥 원이기 때문에 사방으로 뻗어나가는 모습을 볼 수있다. 

여기서는 X축, Y축 구별없이 모든 방향으로 뻗어나기를 원하므로 180, 180으로 설정한다.

만약에 X축, Y축 한 쪽만 설정을 하고 싶다면 축의 방향을 잘 파악하고 설정하자.

추가적인 소속

중요하진 않지만, 좀 더 속성으로 변경해주면 더 멋진 효과를 얻을 수 있다.

  • Size(파티클 사이즈) : 디폴트는 1, 좀더 작은 파티클을 원하므로 0.3으로 변경
  • LightEmission(파티클에 빛방출) : Neon 느낌으로 빛나길 원하면 1로 변경
  • Transparency(파티클 투명도) : 0.5 로 약간 불투명하게
  • Drag(저항) : 파티클의 속도가 아님. 속도를 느리게 만드는 공기저항에 가깝다. drag를 높이면 첨에는 빠르다가 점점 느려진다. 여기서는 1.5 정도로 설정

 

이것으로 기본적인 파티클 시스템에 대한 내용은 끝났다. 여기서 광원 효과를 더 하면 더 멋있는 효과를 기대할 수 있을 것이다. PointLight로 주변을 밝게 비춰주는 방식을 사용하자.

'로블록스 개발 중급' 카테고리의 다른 글

Beam 오브젝트로 레이저 효과  (0) 2021.05.11
로블록스 파티클 이펙트 활용  (0) 2021.05.10
Player Tools 사용하기  (0) 2021.05.04
관람차 만들기  (0) 2021.05.04
자연스럽게 열리는 문 만들기(2)  (0) 2021.05.03