◈ 간단하게 파티클 만들어 보기
이번에는 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] 액션을 사용하여 파티클 타입을 파기하도록 합니다.
와우! 강좌가 끝났어요.
지금까지 구성한 이벤트가 잘 작동하는지 테스트해봅시다.
'GameMaker강좌[GMS2] > DnD강좌-파티클' 카테고리의 다른 글
[게임메이커 강좌-DnD][GMS2] 파티클-4 : 파티클 이미터 (0) | 2021.10.03 |
---|---|
[게임메이커 강좌-DnD][GMS2] 파티클-3 : 파티클 타입 (0) | 2021.10.03 |
[게임메이커 강좌-DnD][GMS2] 파티클-2 : 파티클 시스템 (0) | 2021.10.03 |
[게임메이커 강좌-DnD][GMS2] 파티클-1 : 드래그 앤 드롭 파티클 (0) | 2021.10.03 |
댓글