GAME MAKER 강좌
KAYAN
이전 강좌에서 알아본 함수를 응용하여 아래와 같은 눈 모양 파티클을 만들어 봅시다.
(▲ 파티클)
◈ 파티클 응용
이번 강좌에서는 아래와 같은 눈이 내리는 형태의 파티클을 만들거에요.
(▲ 눈 파티클)
물론 이것은 오브젝트를 통해 만들 수 있습니만, 강좌에서는 파티클을 사용해 구현 할 것입니다.
눈 파티클은 아래와 같은 형식으로 생성됩니다.
(▲ 눈 파티클 생성)
보시다시피 눈이 생성되어 흔들흔들 거리며 떨어지지요.
파티클이 이동할 때 방향을 좌우로 약간씩 회전하면서 이동하기 때문에 흔들 거리며 떨어지는 것입니다.
이제 파티클을 만들어 볼까요.
파티클을 설정하는 순서는 이전 강좌의 응용편과 같습니다.
처음에 해야 할 것은 파티클을 관리할 파티클 시스템을 만드는 것이지요.
두번째는 파티클 타입의 모양과, 이동에 대해 설정을 하게 됩니다.
세번째는 파티클을 생성하기 위해 파티클 이미터를 만드는 겁니다.
먼저 파티클을 설정할 오브젝트를 하나 만듭니다.
(▲ 파티클을 설정할 오브젝트)
다음은 파티클 시스템을 만들어야 겠지요. Create 이벤트를 추가하고, 파티클 시스템을 만듭니다.
★ Create 이벤트 |
다음은 파티클 타입을 설정해야 합니다.
(▲ 파티클 종류)
강좌에서는 눈 모양으로 pt_shape_flare 를 사용하도록 하겠습니다.
Create 이벤트에 파티클 타입의 기본 모양 및 수명을 설정을 추가하도록 해요.
★ Create 이벤트 |
파티클의 수명은 룸 아래까지 내려와야하니 떨어지는 속도와 룸 크기에 맞게 설정해야합니다.
기본 파티클의 크기는 바로 사용하기에는 크기가 조금 크기 때문에 모양은 게임 화면에 맞게 적당히
축소하여 설정하도록 해요.
이제 이동을 추가해야겠지요.
눈이 내리는 형태는 다음과 같습니다.
(▲ 파티클이 이동하는 원리)
눈 파티클은 생성되어 이동시에 방향을 약간 회전시킨후 이동합니다.
그리고 다음 이동시에 또 반대로 회전시키고 이동하지요.
이것을 계속 반복시키는 거에요.
그림을 보면 어떻게 이동하는지 알겠지만, 파티클은 어떻게 설정해야할지 난감하게 생각하실 수 있을
겁니다.
하지만, part_type_direction 함수를 사용하면 파티클의 방향을 좌우로 회전시키는 것이 가능해요.
part_type_direction(ind,dir_min,dir_max,dir_incr,dir_wiggle)
dir_min : 파티클 생성시 적용할 이동 방향 최소 범위
dir_max : 파티클 생성시 적용할 이동 방향 최대 범위
dir_incr : 방향 증감치
dir_wiggle : 이동할때 흔들거림을 지정함
여기에서 dir_wiggle 에 값을 입력하면 지정한 값만큼 좌우로 회전시켜 흔들 거리게 할 수 있습니다.
이것을 이용하여 눈 파티클의 이동을 설정해보도록 해요.
★ Create 이벤트 |
이것은 파티클의 방향을 스텝마다 본래 방향인 270에서 20도씩 좌우로 회전시키면서 흔들 거리게
하는 것입니다.
그러면 이동할때 마다 좌우로 흔들거리며 떨어지는 효과를 줄 수 있는 것이지요.
간단하죠.
이제 이 파티클을 파티클 이미터를 통해 생성하는 겁니다.
★ Create 이벤트 |
파티클은 룸 상단에서 떨어져야 하니, 파티클 생성 범위의 y좌표를 0이하로 설정 하고, x 좌표는
0~룸의 가로 너비(room_width) 만큼 설정하면 됩니다. 그러면 화면 상단에서 임의의 위치에 눈이 생성
될 거에요.
part_emitter_stream(ps,ind,parttype,number)
여기에서 생성 수(number)를 음수로 설정하면, 지정한 값 내(0~number)에 랜덤 수만큼 파티클을
생성하게 됩니다.
강좌의 설정대로 한다면, 매 스텝마다 0~2 사이의 랜덤 수만큼 파티클을 생성하게 되는 것이지요.
물론 지정한 수만큼 일정하게 많이 생성하게 하고 싶다면, 음수가 아닌 양수로 설정해주면 됩니다.
다만, 룸내에 파티클이 많이 생성되면 게임이 느려질 수 있기 때문에 그것을 감안해서 설정해야합니다.
드디어 완성되었습니다.
복잡해 보였지만, 원리는 단순했죠.
제대로 생성되는지 룸에 파티클이 설정된 오브젝트를 배치하고 테스트 해봅시다.
(▲ 테스트 화면)
여러분이라면 이를 응용해 더 멋진 파티클 이펙트를 만드실 수 있을 거라 생각합니다.
------- 예 제 -------
'GameMaker강좌[GM8] > 파티클강좌' 카테고리의 다른 글
[게임메이커강좌-파티클]파티클 시스템과 이미터-액션기능 (1) | 2014.02.13 |
---|---|
[게임메이커강좌-파티클]파티클 타입-액션기능 (2) | 2014.02.13 |
[게임메이커강좌-파티클]파티클 응용편2 (0) | 2014.02.09 |
[게임메이커강좌-파티클]파티클 응용편1 (0) | 2014.02.09 |
[게임메이커강좌-파티클]파티클 이미터 (2) | 2014.01.29 |
댓글