GAME MAKER 강좌
KAYAN
이번 강좌에서는 파티클의 핵심인 파티클 타입에 대해 알아보도록 합시다.
(▲ 입자를 구성하는 파티클 타입)
◈파티클 타입
파티클 타입은 아래와 같이 파티클을 구성하는 입자를 나타냅니다.
(▲ 파티클 구성)
먼저 생성에 관련된 함수부터 알아보도록 합시다.
part_type_create() : 파티클 타입을 생성합니다.
|
파티클 타입을 생성할 때는 part_type_create()를 사용하여 변수에 할당하게 됩니다.
예를 들면,
partcle0=part_type_create(); |
이런 식으로 생성할 수 있지요.
그러면 파티클 타입의 ID를 할당한 particle0 변수로 파티클 속성을 설정(ind 인자에 들어감)할 수 있는
것입니다.
◈파티클 모양
다음은 파티클의 기본 모양에 대해 알아봅시다.
part_type_shape(ind,shape) : ind 파티클 타입의 모양(shape)을 지정합니다. |
shape 에 지정할 수 있는 기본 모양은 다음과 같습니다.
pt_shape_pixel |
어떠한 모양인지 감이 안 오시죠?
아래는 이 기본 모양의 1:1비율의 모습입니다.
(▲파티클의 모양)
어디선가 본 모습일 겁니다.
이것은 Draw탭 ▶ other ▶ Create Effect 액션의 기본 이펙트로도 있는 모양이지요.
파티클에서도 이 모양을 기본 모양으로 사용합니다.
기본 모양이 맘에 들지 않는다면 직접 제작한 스프라이트 이미지로 파티클의 모양에 적용할 수도
있습니다.
part_type_sprite(ind,sprite,animat,stretch,random) |
sprite : 파티클 이미지로 사용할 스프라이트.
animat : 애니메이션으로 재생 할것인지 지정. 1 재생, 0 안함.
strech : 파티클의 수명을 애니메이션으로 할 것인지 지정.
random : 서브이미지를 랜덤으로 정할것 인지 지정. 1 랜덤, 0 안함
이 함수는 파티클의 모양을 스프라이트 이미지로 표시하는 것입니다.
스프라이트 애니메이션을 재생할 수도 있으며, 애니메이션 수만큼 수명을 지정할 수도 있습니다.
다음과 같은 함수를 사용하면 파티클의 크기를 조절할수 있습니다.
part_type_size(ind,size_min,size_max,size_incr,size_wiggle) |
size_min : 최소 크기를 지정
size_max : 최대 크기를 지정
size_incr : 크기 증감을 지정
size_wiggle : 흔들 거림을 지정함
여기서 size_min과 size_max의 범위를 지정하면 그 범위 내에서 크기가 랜덤으로 정해지게 됩니다.
size_incr는 소멸할 때까지의 크기(기본값은 1)를 점점 확대 또는 축소 시킬 수 있는 스케일링값을
지정하면 됩니다. size_wiggle은 크기가 줄어들었다 늘어났다 하는 흔들 거림을 지정합니다.
흔들거리지 않게 하려면 0값을 지정하세요.
파티클의 크기를 확대 또는 축소 시킬수도 있습니니다.
part_type_scale(ind,xscale,yscale) |
xscale : x축 확대/축소치. 기본값은 1
yscale : y축 확대/축소치. 기본값은 1
다음과 같은 함수를 사용하면 파티클이 회전하도록 설정할 수 있습니다.
part_type_orientation(ind,ang_min,ang_max,ang_incr,ang_wiggle,ang_relative) |
ang_max : 회전 시작 각도 최대 랜덤 범위
ang_incr : 회전 속도
ang_wiggle : 회전시 흔들거림을 지정
ang_relative : 종속된 각도에서 시작할지 지정. 1 또는 0.
이것은 파티클이 생생될때 ang_min ~ ang_max 범위내에 랜덤의 각도로 회전한 후, 소멸 할 때까지
ang_incr 값의 속도로 추가 회전하게 됩니다. ang_relative 는 파티클의 현재 이동 방향을
파티클 이미지 회전에 적용할것인지 지정합니다.
◈파티클의 색 혼합
다음과 같은 함수를 사용하면 파티클에 색을 지정하거나 혼합시킬 수 있습니다.
색의 기본값으로 c_white(흰색)를 사용합니다.
part_type_color1(ind,color1) |
color1에는 파티클의 색을 지정합니다.
그리고 파티클이 소멸할 때까지의 분기별로 색을 지정하여 서서히 변하게 할 수도 있습니다.
part_type_color2(ind,color1,color2) |
color1 : 파티클이 생성되었을 때의 색
color2 : 파티클이 소멸되기 전의 색
이것은 소멸하기 전에 color1 ~ color2 색이 서서히 혼합되어 표시되게 하는 것입니다.
마찬가지로 소멸하기전에 3개의 분기별로 색을 혼합시킬 수 있습니다.
part_type_color3(ind,color1,color2,color3) |
color1 : 파티클이 생성되었을 때의 색
color2 : 중간 분기의 색
color3 : 파티클이 소멸되기 전의 색
이것은 파티클이 소멸할 때까지 3가지 색으로 서서히 변하게 할 때 사용합니다.
그 외에 두 색을 혼합하거나 rgb 색과 hsv 색을 랜덤으로 혼합시킬 수 있습니다.
part_type_color_mix(ind,color1,color2) : 2색을 혼합
|
다음과 같은 함수를 사용하면 파티클이 소멸할때까지의 투명도 변화를 지정할 수 있습니다.
part_type_alpha1(ind,alpha1) : 투명도 설정 |
part_type_alpha1 는 소멸할 때까지의 일정하게 알파값을 유지 시키고, part_type_alpha2 는
생성했을 때(alpha1) 알파값부터 소멸하기 전(alpha2)의 알파값으로 서서히 변화시키게 합니다.
part_type_alpha3 은 생성되었을 때(alpha1), 소멸하기 전(alpha3), 그리고 중간 과정(alpha2)이 추가된
3가지의 알파값으로 변화시키게 합니다.
◈ 파티클의 수명과 소멸
파티클을 생성했을 때 소멸할 때까지의 수명을 가집니다.
이것은 룸에 파티클의 수명시간에 따라 게임에 지대한 영향을 미치기 때문에 매우 중요한 부분이라 할 수
있습니다. 수명이 긴 파티클은 게임 상에 누적될 때 마다 연산처리가 필요하므로 수명 시간을 적당하게
설정해야합니다.
part_type_life(ind,life_min,life_max) : 파티클이 소멸되기까지의 수명을 지정 |
life_min : 최소 수명값
life_max : 최대 수명값
이것은 life_min ~ life_max 사이의 랜덤 값으로 파티클의 수명이 설정됩니다.
그리고 파티클이 소멸할때까지 다른 파티클을 반복적으로 생성시킬 수도 있습니다.
part_type_step(ind,step_number,step_type) |
step_number : 스텝당 파티클을 얼마만큼 생성시킬지 지정
step_type : 생성시킬 파티클 타입
이 함수는 스텝마다 지정한 파티클을 지정한 수만큼 생성시킵니다.
스텝마다 파티클을 계속 생성하기 때문에 너무 많은 수를 생성시키면 게임이 멈추거나 느려질 수
있으므로 이 함수를 사용할 때는 주의해야합니다.
다음과 같은 함수를 사용하면 파티클이 소멸될때 다른 파티클을 생성시킬 수 있습니다.
part_type_death(ind,death_number,death_type) |
death_number : 파티클 생성 수
death_type : 생성시킬 파티클 타입
이 함수는 파티클이 소멸되었을 때 또 다른 타입의 파티클을 생성할 때 사용합니다.
이와 같은 기능은 주로 연쇄 폭발하는 폭죽같이 불꽃 효과에 쓰이기도 합니다.
◈ 파티클의 모션
파티클을 이동시키거나 중력을 적용할 수도 있습니다.
part_type_speed(ind,speed_min,speed_max,speed_incr,speed_wiggle) |
speed_min : 파티클 생성시 적용할 최소 속도
speed_max : 파티클 생성시 적용할 최대 속도
speed_incr : 파티클의 이동할때 속도의 증감치
speed_wiggle : 파티클이 이동할때 흔들 거림을 지정함. 0은 흔들거리지 않음.
이것은 파티클이 생성될때 speed_min ~ speed_max 사이의 랜덤 속도를 가지고 이동하게 합니다.
이동하는 와중에 speed_incr 값의 속도를 더해 속도를 증감시킬 수 있고, speed_wiggle값만큼
흔들거리게 만들 수도 있습니다.
다음과 같은 함수를 사용하면 파티클의 이동 방향을 지정할 수 있습니다.
part_type_direction(ind,dir_min,dir_max,dir_incr,dir_wiggle) |
dir_min : 파티클 생성시 적용할 이동 방향 최소 범위
dir_max : 파티클 생성시 적용할 이동 방향 최대 범위
dir_incr : 방향 증감치
dir_wiggle : 이동할때 흔들거림을 지정함
마찬가지로 dir_min ~ dir_max 사이의 랜덤 방향을 파티클에 적용할 수 있습니다.
그리고 파티클에 중력을 적용할 수도 있습니다.
part_type_gravity(ind,grav_amount,grav_dir) |
grav_amount : 중력치
grav_dir : 중력 방향
이것은 중력방향을 지정하고, 그 방향으로 파티클이 중력에 이끌려 이동하게 만들 때 사용합니다.
이번 강좌에서는 파티클 타입의 속성 대해 알아보았습니다.
하지만 이것만 가지고 파티클을 생성할 수는 없습니다.
총알이 있다면 총알을 발사시키기 위한 도구가 있어야 겠지요.
다음 강좌에서는 이 파티클을 생성시키기 위한 파티클 시스템에 대해 알아보도록 합시다.
'GameMaker강좌[GM8] > 파티클강좌' 카테고리의 다른 글
[게임메이커강좌-파티클]파티클 응용편2 (0) | 2014.02.09 |
---|---|
[게임메이커강좌-파티클]파티클 응용편1 (0) | 2014.02.09 |
[게임메이커강좌-파티클]파티클 이미터 (2) | 2014.01.29 |
[게임메이커강좌-파티클]파티클 시스템 (0) | 2014.01.28 |
[게임메이커강좌-파티클]파티클에 대하여 (1) | 2014.01.26 |
댓글