본문 바로가기
GameMaker강좌[GMS2]/DnD강좌-파티클

[게임메이커 강좌-DnD][GMS2] 파티클-5 : 간단하게 파티클 만들어 보기

by 타락카얀 2021. 10. 3.
728x90

 

 

 

 

 

◈ 간단하게 파티클 만들어 보기

 

 

이번에는 DnD 액션을 사용하여 아래와 같은 파티클을 만들어 봅시다.

 

(▲ 강좌에서 만들어볼 예제)

 

음. 보기에는 복잡해보이죠.

파티클 자체는 복잡해보이지만, 색감만 얼추 맞춰도 멋진 효과를 줄 수 있는 것이 파티클입니다.

이제 만들어 봅시다.

 

(▲ 파티클 DnD 액션)

 

강좌의 파티클 구성 순서는 아래와 같이 할 거에요.

 

   1. 파티클 시스템 생성

   2. 파티클 타입 생성 및 설정

   3. 파티클 이미터 생성 및 범위 설정

   4. 게임 종료 또는 파티클이 필요 없을 떄 파티클 시스템 파기

 

먼저 파티클을 실행시킬 오브젝트를 추가합니다.

그리고 Create 이벤트[Create Particle System] 액션을 사용하여 파티클 시스템을 생성하고,

변수(Target)에 할당합니다.

이 변수는 이후에 파티클 시스템을 제어, 또는 파기할 떄 사용할 거에요.

 

(▲ 파티클 시스템 생성)

 

Layer는 파티클을 생성할 룸의 레이어 이름을 지정하면 됩니다. 이것은 파티클의 깊이와 관련있습니다.

 

이제 파티클 타입이 있어야겠죠.

[Create Particle Type] 액션을 사용하여 파티클 타입을 생성합니다.

 

(▲ 파티클 타입 생성)

 

파티클의 모양을 설정해야겠지요.

아래의 모양중 하나를 선택하면 됩니다.

 

(▲ 파티클 기본 모양)

 

현재 우리가 원하는 모양은 별모양이죠.

[Set Particle Shape] 액션을 사용하여 모양을 설정합니다.

 

(▲ 파티클 모양과 크기 설정)

 

예제는 별 모양이므로 pt_shape_star 를 설정합시다.

 

[Set Particle Size] 액션을 사용하여 파티클의 크기를 설정합니다.

Size 가 1이면 원본 크기입니다.

Increase 가 음수이면 파티클 크기를 점점 작아지게 할 수 있고, 양수면 점점 크게 설정할 수 있습니다.

참고로 파티클의 크기가 0이면 보이지 않게 됩니다.

 

Wiggle 은 위글값으로 수치만큼 커졌다 작아졌다를 반복하게 됩니다.

 

다음은 색상과 투명도 설정입니다.

 

(▲ 파티클 색상과 투명도 설정)

 

[Set Particle Colour] 액션을 사용하여 파티클의 색상을 설정합니다.

색상은 총 3단계로 파티클의 수명을 3단계로 표현할 수 있습니다.

강좌에는 위 그림과 같이 설정하겠습니다.

그리고 [Set Particle Alpha] 액션을 사용하여 투명도를 설정합니다.

파티클의 색상과 마찬가지로 총 3단계를 설정할 수 있습니다.

 

보통 파티클의 소멸시기가 자연스럽게 되도록 설정하려면 파티클의 크기를 점점 작아지게하여

마지막엔 보이지 않게 설정하거나, 또는 투명도 설정을 사용하여 마지막 단계에 0으로 투명하게

만들면 파티클의 형태가 부드럽게 소멸하도록 할 수 있습니다.

강좌에서는 파티클의 크기를 줄이면서 소멸하는 것처럼 보이도록했기 때문에 투명도는 1로

설정하겠습니다.

 

파티클의 이동에 대해 설정해봅시다.

 

(▲ 파티클 이동 방향 및 속도 설정)

 

[Set Particle Direction] 액션을 사용하여 파티클의 이동 방향을 설정합니다.

이동 방향은 파티클이 생성되었을 때 Min Dir ~ Max Dir 범위 내에 랜덤 값이 적용됩니다.

 

[Set Particle Speed] 액션을 사용하여 파티클의 이동 속도를 설정합니다.

이동 속도는 파티클이 생성되었을 때 Min Speed ~ Max Speed 범위 내에 랜덤 값이 적용됩니다.

 

[Set Particle Orientation] 액션은 파티클 이미지 방향을 설정하게 됩니다.

이 액션은 이동 방향과는 다르게 이미지의 방향을 Min Angle ~ Max Angle 범위 내의 방향으로

설정하거나, 이동 방향으로 이미지를 향하게(Relative To Direction 체크) 할 수 있습니다.

 

다음은 파티클의 수명을 설정합시다.

 

(▲ 파티클 수명 설정)

 

[Set Particle Life] 액션을 사용하여 파티클의 수명을 설정합니다.

파티클의 수명은 Min Life ~ Max Life 범위 내에 랜덤으로 결정됩니다.

 

파티클 타입의 설정은 끝났습니다.

 

이제 파티클을 생성하는 파티클 이미터의 설정 차례입니다.

 

(▲ 파티클 이미터 생성)

 

먼저 [Create Particle Emitter]액션을 사용하여 파티클 이미터를 생성하고 ID를 변수에 할당합니다.

 

이제 생성하고자 하는 파티클을 파티클 이미터에 설정하고, 생성 범위를 설정해야겠죠.

 

(▲ 생성할 파티클을 지정하고, 생성 범위를 설정)

 

[Emit Particles] 액션을 사용하여 생성할 파티클을 지정하고, 수량을 정합니다.

파티클을 생성하는 방식은 2가지 방식이 있었죠.

Stream 은 파티클을 계속 방출할 수 있고, Burst 는 액션이 실행할 때 1회 수량만큼 방출합니다.

 

[Set Emitter Region] 액션으로 파티클의 생성 범위를 지정합니다.

(Left, Top)은 사각형 범위의 좌측 상단의 첫번째 좌표이고, (Right, Bottom)는 우측 하단의 두번째

좌표입니다. 이 두 좌표가 같으면 지정 좌표를 중심으로 파티클이 생성됩니다.

 

여기까지 내용을 테스트 해보면 아래과 같이 파티클이 생성되는 것을 볼 수 있을 거에요.

 

(▲ 파티클 생성)

 

이것은 파티클이 새로 생성될 때 다른 파티클보다 전면에서 시작하여 마지막엔 후면으로 들어가게 됩니다.

이 순서를 역순으로 변경할 수 있습니다.

DnD 액션에는 기능이 없기 때문에 함수를 사용해야 합니다.

 

   ◎ part_system_draw_order(ind, oldtonew)

 

      - ind : 파티클 시스템 ID

      - oldtonew : 값 true(1)은 새파티클이 전면에서 후면으로, false(0)은 새 파티클이 후면에서 전면으로

 

함수는 [Function Call] 액션으로 호출 할 수 있습니다.

Common[Function Call] 액션을 사용하여 part_system_draw_order 함수를 호출합니다.

 

(▲ 함수 호출 액션)

 

입력 인자는 2개이므로 액션 앞에 [+]버튼을 눌러 인자를 추가고, 해당 값을 입력합니다.

 

다시 테스트 해보면 아래와 같이 파티클이 생성됩니다.

 

(▲ 파티클 생성)

 

넵! 우리가 원하던 파티클이죠!

 

 

이제 파티클 설정의 마무리입니다.

 

파티클이 더이상 필요 없을 때 파티클을 파기하거나 클리어하는 이벤트가 필요합니다.

룸을 이동해도 파티클은 계속 동작할 수 있기 때문이죠.

일반적으로 파티클을 실행하는 인스턴스가 파기되었을 때Destroy 이벤트, 룸 이동하기 전인

Room End 이벤트에서 작성합니다.

강좌에서는 테스트로 작성하는 것이기 때문에 그냥 게임종료 했을 때 파기하도록 Game End 이벤트

추가하도록 하겠습니다.

 

(▲ 파티클 시스템 파기 및 파티클 타입 파기)

 

[Destroy Particle System] 액션을 사용하여 파티클 시스템을 파기하도록 합니다.

시스템을 파기하면 이 파티클 시스템에 종속된 파티클 이미터도 파기됩니다.

 

단순히 파티클을 클리어하고 싶을 때는 [Destroy Particle System] 액션대신

[Clear Particle System] 액션을 추가하시면 됩니다.

 

그리고 [Destroy Particle Type] 액션을 사용하여 파티클 타입을 파기하도록 합니다.

 

와우! 강좌가 끝났어요.

지금까지 구성한 이벤트가 잘 작동하는지 테스트해봅시다.

 

 

 

 

 

300x250

댓글