게임메이커/액션

1 들어가기 전에

  • 게임메이커: 스튜디오 기준으로 작성되었다.
  • 액션의 이름은 액션을 갖다 놓았을 때의 창 이름으로 한다.
  • '현재 기준'(Relative)이라는 것은 그 변수에 추가로 더한다는 의미이다. 예를 들어 변수 a에 1이라고 쓰고 현재 기준을 체크하면, a라는 변수에 1을 더한다. 빼려고 한다면 -1을 넣어주면 된다.
  • if문 액션의 '아닐 경우'(NOT)이라는 것은 조건이 참이 아니라 거짓일 때 실행된다는 의미이다.
  • 액션별로 아이콘의 모양과 색상이 다르다.
파일:/20150614 62/nov701 1434234697411EsDnM PNG/normal.png일반 액션. (이벤트의 조건이 충족됐을 경우) 아무 이벤트에서나 작동한다. 검은색 글씨로 표기한다.
파일:/20150614 65/nov701 1434234697645Wwa7e PNG/question.pngif문 액션. 이 액션을 쓰고 바로 아래에실행시킬 액션을 스타트/엔드 블록으로 감싸면 조건이 참일 때 작동한다. Else 액션으로 '바로 위의 조건이 거짓일 경우'도 넣을 수 있다. 파란색 글씨로 표기한다.
파일:/20150614 222/nov701 1434234697184DkYb0 PNG/drawing.png드로우 액션. 대부분 드로우 이벤트에서만 작동한다. 게임메이커: 스튜디오에서는 초록색 테두리로 드로우 액션을 구분할 수 있다. 주황색 글씨로 표기한다.

2 Move 탭

2.1 Move

아래 액션은 인스턴스의 속도 자체에 관여하므로 특별한 일이 없다면 한 번만 실행시켜도 계속 이동한다. 즉, 따로 멈추는 설정을 해주어야 한다는 얘기이다.

  • action_move1.gif Move Fixed 9개의 방향과 속도를 설정해 특정한 방향으로 이동시킨다.
  • action_move2.gif Move Free 자유롭게 방향과 속도를 설정해 이동시킨다. 다만, 위와 달리 방향을 숫자로 지정하는데, 각도기의 방향을 생각하면 된다. 0은 오른쪽, 90은 위쪽, 180은 왼쪽, 270은 아래쪽으로, 이는 게임메이커의 다른 각도에도 똑같이 적용된다.
  • action_movepoint.gif Move towards 특정 좌표를 향해 이동시킨다.
  • action_hspeed.gif Speed Horizontal 가로 속도를 지정한다.
  • action_vspeed.gif Speed Vertical 세로 속도를 지정한다.
  • action_gravity.gif Set Gravity 중력을 설정한다. 방향은 270, 중력은 0.2~0.3 정도가 무난하다.
  • action_hreverse.gif Reverse Horizontal 가로 속도를 반전시킨다. 세로로 된 벽에 튕겨나가는 것을 생각하면 쉽다
  • action_vreverse.gif Reverse Vertical 세로 속도를 반전시킨다. 가로로 된 벽에 튕겨나가는 것을 생각하면 쉽다
  • action_friction.gif Set Friction 마찰력을 설정한다. 속도가 서서히 떨어지게 할 수 있다. 보통 1 미만으로 설정한다.

2.2 Jump

여기서 Jump는 말 그대로 점프를 의미하는 것이 아니라 '특정 좌표로 순간이동'을 의미한다. 인스턴스의 위치에만 관여하므로 계속 이동시키려면 계속 실행시켜야 한다. 이는 아래의 Steps에도 동일하게 적용된다.

  • action_jumpposition.gif Jump to Position 특정 좌표로 이동한다.
  • action_jumpstart.gif Jump to Start 인스턴스가 처음 생성되었을 때의 좌표로 돌아간다.
  • action_jumprandom.gif Jump to Random 룸 안에 특정한 간격대로 무작위 좌표를 찍어 이동한다.
  • action_grid.gif Align to Grid 인스턴스의 위치를 특정한 간격에 맞춘다.
  • action_wrap.gif Wrap Screen 인스턴스가 화면 밖으로 나갔을 경우 반대쪽에서 등장시킨다.
  • action_contact.gif Move to Contact 특정한 방향으로 대상 오브젝트와 충돌하기 직전의 위치까지 자동 이동시킨다. 이미 충돌했을 경우 움직이지 않는다. 최대치를 설정하면 그 이상 움직이지 않으며, -1(무제한)로 두는 것을 권장한다.
  • action_bounce.gif Bounce 오브젝트와 충돌 시 튕기게끔 한다.

2.3 Paths

  • action_path.gif Set Path 패스를 설정한다. 종료 후의 행동을 선택할 수 있는데 종류는 정지/처음부터 다시/여기서 다시/역재생 이 있다
  • action_pathend.gif End Path 진행 중인 패스를 강제로 끝낸다.
  • action_pathposition.gif Path Position 패스의 진행도를 변경한다. 예를 들어 0.5로 설정하면 패스의 정확히 중간부터 진행한다.
  • action_pathspeed.gif Path Speed 패스의 속도를 재설정한다. 0을 입력하면 임시로 멈출 수 있으며, 음수를 입력하면 역재생할 수 있다.

2.4 Steps

  • action_steplinear.gif Step Towards 특정한 좌표를 향해 특정한 속도대로 가다가 오브젝트와 충돌하면 멈춘다.
  • action_steppotential.gif Step Avoiding 특정 오브젝트를 피해 특정한 좌표로 이동한다. 스타크래프트처럼 길 찾을 때 쓰는 거라고 생각하면 편하다.

3 Main1 탭

3.1 Objects

이름인자설명
Create Instance오브젝트(object)
x
y
현재 기준
특정한 좌표에 인스턴스를 생성한다.
Create Moving오브젝트(object)
x
y
속도(speed)
방향(direction)
현재 기준
특정한 좌표에 특정한 방향과 속도로 움직이는 인스턴스를 생성한다.
Create Random오브젝트 1~4(object 1~4)
x
y
현재 기준
특정한 좌표에 오브젝트 1~4 중 하나를 무작위로 생성한다.
Change Instance바꿀 오브젝트(change into)
이벤트 실행(perform events): 하지 않기/하기
인스턴스를 다른 오브젝트의 인스턴스로 바꾼다. '이벤트 실행'은 해당 오브젝트의 Destroy 이벤트와 바꿀 오브젝트의 Create 이벤트를 실행할지, 즉 오브젝트를 지우고 새로 만드는 것처럼 작동시킬지를 결정한다.
Instance Destroy-자기 자신을 제거한다. 다른 인스턴스를 지우려면 위의 Applies to에서 Self(기본값, 자기 자신), Other(충돌 이벤트에서 자신과 충돌한 인스턴스), Object(특정한 오브젝트) 중 하나를 선택해야 하며, 이는 다른 액션에서도 사용할 수 있다.
Destroy at Positionx
y
현재 기준
특정한 좌표 위에 있는 인스턴스를 모두 제거한다. 존나좋군?

3.2 Sprite

이름인자설명
Change Sprite스프라이트(sprite)
서브이미지(subimage)[1]
속도(speed)
인스턴스의 스프라이트를 다른 스프라이트로 바꾼다. 서브이미지를 -1로 설정하면 애니메이션을 나타내며, 그렇지 않으면 특정한 서브이미지만 보여진다. 속도는 애니메이션의 속도를 의미하며, 기본값은 1이다.
Transform Spritex 비율(xscale)[2]
y 비율(yscale)
각도(angle)
대칭이동(mirror): 하지 않기/가로/세로/가로세로
스프라이트를 늘리거나 돌린다. 각도는 0이 기본값이고, 시계 반대 방향으로 회전한다. 대칭이동은 x/y 비율에 음수를 넣는 것으로 해결할 수 있으므로 필요는 없다.
Color Sprite색상(color), 투명도(alpha)[3]스프라이트에 색상을 입힌다. 내부적으로는 곱연산으로 처리되며, 원래 색으로 돌리려면 흰색으로 설정하면 된다.

3.3 Sounds

이름인자설명
Play Sound사운드(sound)
반복(loop): 하지 않기/하기
사운드를 재생한다.
Stop Sound사운드(sound)해당 사운드를 정지한다.
Check Sound사운드(sound)
아닐 경우
해당 사운드가 실행 중인지 확인한다. 사운드가 실제 스피커로 재생 중인지가 판정 기준이기 때문에 게임 내에서 사운드를 껐더라도 잠시 동안 켜진 것처럼 실행될 수 있다.

3.4 Rooms

게임메이커: 스튜디오에서는 룸 전환 효과를 사용할 수 없다.

이름인자설명
Previous Room전환 효과(translation)이전 룸으로 이동한다. 전환 효과는 하나씩 쓰면서 마음에 드는 것으로 정하면 된다.
Next Room전환 효과(translation)다음 룸으로 이동한다.
Restart Room전환 효과(translation)해당 룸을 재시작한다.
Different Room이동할 룸(new room)
전환 효과(translation)
특정한 룸으로 이동한다.
Check Previous-이전 룸이 있는지 확인한다. 이전 룸이 없을 때 Previous Room 액션을 쓰면 오류가 나기 때문에 꼭 필요하다.
Check Next-다음 룸이 있는지 확인한다.

4 Main2 탭

4.1 Timing

이름인자설명
Set Alarm스텝 수(number of steps)
알람 번호(in alarm no): 알람 0~11
현재 기준
특정한 알람을 특정한 시간 뒤에 실행한다. 1초의 단위가 룸의 스텝 설정에 따라 다르며, 기본값인 30스텝으로 설정했을 경우 30이 1초가 된다.
Sleep밀리초(milliseconds)[4]
프레임 갱신(redraw): 하기/하지 않기
특정한 시간 동안 게임을 강제로 멈춘다. 프레임 갱신에 체크했을 경우 멈추기 직전에 프레임을 한 번 갱신하고 멈춘다.
Set Time Line타임라인(time line)
위치(position)
시작 여부(start): 바로 시작/시작하지 않기
반복(loop): 하지 않기/하기
타임라인을 설정한다. 위치는 해당 타임라인의 몇 스텝 위치부터 시작할지를 결정한다.
Time Line Position위치(position)
현재 기준
타임라인의 진행도를 변경한다.
Time Line Speed속도(speed)
현재 기준
타임라인의 실행 속도를 변경한다. 기본값은 1(배속)이다.
Start Time Line-설정된 타임라인을 시작한다.
Pause Time Line-타임라인을 일시정지한다.
Stop Time Line-타임라인을 종료한다.

4.2 Info

이름인자설명
Display Message메세지(message)새 창에 메시지를 띄운다.
Open URLURL웹 브라우저로 웹 페이지를 연다.

4.3 Game

이름인자설명
Restart Game-게임을 재시작한다.
End Game-게임을 종료한다.
Save Game파일명(file name)게임을 저장한다. 버전 간(게임메이커 자체든, 그걸로 만든 게임이든) 호환성이 매우 떨어지는 등 여러 문제 때문에 웬만하면 코드를 배워서 직접 세이브 파일을 만드는 것을 추천한다.
Load Game파일명(file name)위 액션에서 저장한 게임을 불러온다.

4.4 Resources

이름인자설명
Replace Sprite스프라이트(sprite)
불러올 파일명(filename)
이미지 수(images)
특정 스프라이트를 다른 이미지 파일로 갈아치운다. 텍스처 팩 등을 구현할 때 유용하다.
Replace Background백그라운드(background)
불러올 파일명(filename)
특정 백그라운드를 다른 이미지 파일로 갈아치운다.

5 Control 탭

5.1 Questions

이름인자설명
Check Emptyx
y
판정 범위(objects): 솔리드/모든 오브젝트
현재 기준
아닐 경우
특정한 좌표에서 인스턴스와 충돌하지 않는지 확인할 수 있다. 충돌하는지 확인하려면 '아닐 경우'에 체크하면 된다. 그냥 Check Collision 쓰면 된다.
Check Collisionx
y
판정 범위(objects): 솔리드/모든 오브젝트
현재 기준
아닐 경우
특정한 좌표에서 다른 인스턴스와 충돌하는지 확인한다. 역시 '아닐 경우'에 체크하면 충돌하지 않는지 확인할 수 있다.
Check Object오브젝트(object)
x
y
현재 기준
아닐 경우
특정한 좌표에 특정한 오브젝트가 있는지 확인한다.
Test Instance Count오브젝트(object)
개수(number)
조건(operation): 동일/미만/초과
아닐 경우
특정한 오브젝트가 룸 안에 몇 개 있는지 확인한다. n개 이상인지 확인하려면 미만 + 아닐 경우의 조합을 사용하자.
Test Chance확률(sides)
아닐 경우
n번 중 1번의 확률로 그 다음 액션을 실행한다. 예를 들어 6을 입력하면 1/6의 확률이 된다.
Check Question질문(question)
아닐 경우
새 창에 메세지를 띄우고 Yes, No 버튼을 만들어, 플레이어가 Yes를 눌렀는지 확인한다.
Test Expression수식(expression)
아닐 경우
특정한 수식이 참인지 확인한다. 즉 if문. GML의 문법을 사용한다.
Check Mouse마우스 버튼(button): 누르지 않음/왼쪽/오른쪽/마우스 휠
아닐 경우
특정한 마우스 버튼이 눌려 있는지 확인한다.
Check Grid가로 간격(snap hor)
세로 간격(snap vert)
아닐 경우
가로세로 격자가 맞는지 확인한다. Jump to Random/Align to Grid를 생각하면 쉽다.

5.2 Other

이름인자설명
Start Block-if 액션이 참일 때 실행할 액션을 묶는다. 한마디로 코드에서의 { . 액션 1개만 실행할 때는 생략할 수 있다.
Else-if 액션에서 참을 반환하지 않을 경우를 작성할 때 쓴다. 엔드 블록 아래에 넣으면 된다.
Exit Event-해당 이벤트를 강제 종료한다. 이 액션이 실행되었을 경우 이 아래의 액션은 실행되지 않는다.
End Block-스타트 블록과 짝을 이룬다. 코드에서의 } 와 같은 역할을 한다. 스타트 블록을 생략했다면 이 역시 생략해야 한다.
Repeat횟수(times)특정한 횟수만큼 반복한다. 이 액션 아래에도 스타트 블록과 엔드 블록으로 묶을 수 있다.
Call Parant Event-부모 오브젝트의 동일한 이벤트를 상속받는다.

5.3 Code

이름인자설명
Excute Code-GML 코드 에디터를 연다. 코드를 배우면 이것밖에 안 쓰게 된다.
Excute Script스크립트(script), 인자 0~4(argument0~4)[5]스크립트를 호출한다. 코드로 불러오자 그게 더 쉽다.
Comment주석(comment)주석을 작성한다. 대다수 프로그래밍 언어의 //주석, 나무위키에서의 ##주석과 같다.

5.4 Variables

이름인자설명
Set Variable변수명(variable)
값(value)
현재 기준
변수를 선언하거나 값을 대입한다.
Test Variable변수명(variable)
값(value)
조건(operation): 동일/미만/초과
아닐 경우
변수의 값과 주어진 값을 비교한다. 위의 Test Instance Count와 같이 이상을 체크하고 싶다면 미만 + 아닐 경우를 체크하면 된다.
Draw Variable변수명(variable)
x
y
현재 기준
특정한 변수를 특정한 좌표에 출력한다.

6 Score 탭

6.1 Score

게임 내 점수는 전역 변수 score에 저장된다.

이름인자설명
Set Score점수(new score)
현재 기준
게임 내 점수를 설정한다. 점수를 추가로 얻으려면 현재 기준에 체크하면 된다.
Test Score값(value)
조건(operation): 동일/미만/초과
아닐 경우
현재 점수와 주어진 값을 비교한다.
Draw Scorex
y
표제(caption)
현재 기준
현재 점수를 특정한 좌표에 출력한다.
Clear Highscore-하이스코어 목록을 초기화한다. 액션으로 하이스코어를 등록할 수 없기 때문에 사실상 무용지물

6.2 Lives

남은 생명은 전역 변수 lives에 저장된다.

이름인자설명
Set Lives생명(new lives)
현재 기준
남은 생명을 설정한다. 1UP은 1 + 현재 기준, 캐릭터 사망은 -1 + 현재 기준의 조합을 사용하자.
Test Lives값(value)
조건(operation): 동일/미만/초과
아닐 경우
현재 남은 생명과 주어진 값을 비교한다.
Draw Livesx
y
표제(caption)
현재 기준
현재 남은 생명을 특정한 좌표에 출력한다.
Draw Life Imagesx
y
이미지(image)
현재 기준
현재 남은 생명을 스프라이트의 형태로 출력한다. 예를 들어 남은 생명이 3일 경우 ♥♥♥와 같이 출력된다.

6.3 Health

남은 체력은 전역 변수 health에 저장된다. 최대 체력은 무조건 100으로 고정된다.

이름인자설명
Set Health값(value (0-100))
현재 기준
남은 체력을 설정한다. 피격 판정은 -(피해량) + 현재 기준에 체크하면 된다.
Test Health값(value)
조건(operation): 동일/미만/초과
아닐 경우
현재 남은 체력과 주어진 값을 비교한다.
Draw Healthx1
y1
x2
y2
배경색(back color)[6]
바 색(bar color)[7]
현재 기준
남은 체력을 체력 바의 형태로 출력한다.

7 Extra 탭

7.1 Particles

게임메이커의 파티클 체계에 대한 자세한 설명은 문서 상단의 도움말 참조.

이름인자설명
Create Part System깊이(depth)파티클 시스템을 만든다.
Destroy Part System-파티클 시스템을 없앤다.
Clear Part System-모든 파티클 시스템을 없앤다.
Create Particle타입 id(type id): 타입 0~15
모양(shape)
스프라이트(sprite)
최소 크기(min size)
최대 크기(max size)
크기 증가량(size increment)
지정된 타입으로 특정한 모양과 크기의 파티클 타입을 생성한다. 파티클 소환이 아니다!
Particle Color타입 id(type id)
모양(Color Mix): mixed/changing[8]
색 1(color1)
색 2(color2)
시작 투명도(start alpha)
끝 투명도(end alpha)
특정한 파티클 타입에 어떤 색을 입힐 것인지, 즉 색상 속성을 부여한다.
Particle Life타입 id(type id)
최소 수명(min life)
최대 수명(max life)
특정한 파티클 타입에 얼마 후 사라질 것인지, 즉 수명 속성을 부여한다.
Particle Speed타입 id(type id)
최저 속도(min speed)
최고 속도(max speed)
최소 방향(min dir)
최대 방향(max dir)
마찰력(friction)
특정한 파티클 타입에 어느 정도의 속도와 방향으로 운동할지, 즉 속력 및 마찰력 속성을 부여한다.
Particle Gravity타입 id(type id)
중력(amount)
방향(direction)
특정한 파티클 타입에 중력 속성을 부여한다.
Particle Secondary타입 id(type id)
지속 생성 타입(step type)
지속 생성 개수(step count)
순간 생성 타입(death type)
순간 생성 개수(death count)
파티클이 떨어지는 동안, 또는 없어지는 순간에 어떤 파티클을 얼마나 떨굴지를 결정한다.

* 지속 생성: 파티클이 떨어지는 동안에 지속적으로 파티클을 떨군다. 양수를 쓰면 1스텝에 n개, 음수를 쓰면 n스텝에 1개 꼴[9]로 떨어뜨린다.

* 순간 생성: 파티클이 없어지는 순간에 순간적으로 파티클을 떨군다.
Create Emitter이미터 id(emitter id): 이미터 0~7
모양(shape)
x 최소(xmin)
x 최대(xmax)
y 최소(ymin)
x 최대(ymax)
특정한 영역에 파티클을 소환하는 파티클 이미터를 생성한다.
Destroy Emitter이미터 id(emitter id)만들어진 파티클 이미터를 제거한다.
Burst from Emitter이미터 id(emitter id)
파티클 타입(particle type)
개수(number)
파티클 이미터에서 특정한 타입과 개수의 파티클을 순간적으로 생성한다.
Stream from Emitter이미터 id(emitter id)
파티클 타입(particle type)
개수(number)
파티클 이미터에서 특정한 타입과 개수의 파티클을 지속적으로 생성한다. 특별한 일이 없는 한 한 번만 써주면 된다.

7.2 Other

이름인자설명
Set Cursor스프라이트(sprite)
기존 커서(cursor): 숨기기/보이기
게임 내에서 마우스 커서를 특정한 스프라이트로 변경한다.

8 Draw 탭

8.1 Drawing

이름인자설명
Draw Self-자기 자신을 출력한다. Draw 이벤트를 추가하면 자기 자신이 출력되지 않기 때문에 이 액션을 넣어 주어야 한다.
Draw Sprite스프라이트(sprite)
x
y
서브이미지(subimage)
현재 기준
특정한 스프라이트를 출력한다. 서브이미지에 -1을 넣으면 애니메이션을 나타낸다.
Draw Background백그라운드(background)
x
y
바둑판식 배열(tiled): 하지 않기/하기
현재 기준
특정한 백그라운드를 출력한다. 바둑판식 배열에 체크하면 백그라운드가 가로, 세로로 반복되어 화면을 가득 채운다.
Draw Text문자열(text)
x
y
현재 기준
특정한 문자열을 출력한다.
Draw Scaled Text문자열(text)
x
y
x 비율(xscale)
y 비율(yscale)
각도(angle)
현재 기준
특정한 문자열을 가로, 세로로 늘리거나 돌려서 출력한다.
Draw Rectanglex1
y1
x2
y2
채우기(filled): 채우기/테두리
현재 기준
사각형을 출력한다.
Horizontal Gradientx1
y1
x2
y2
색상 1(color1)
색상 2(color2)
현재 기준
가로로 그라디언트가 적용된 사각형을 출력한다.
Vertical Gradientx1
y1
x2
y2
색상 1(color1)
색상 2(color2)
현재 기준
세로로 그라디언트가 적용된 사각형을 출력한다.
Draw Ellipsex1
y1
x2
y2
채우기(filled): 채우기/테두리
현재 기준
타원형을 출력한다. 너비와 높이가 같으면 원형이 된다.
Gradient Ellipsex1
y1
x2
y2
색상 1(color1)
색상 2(color2)
현재 기준
그라디언트가 적용된 타원형을 출력한다. 안쪽 색이 색상 1, 바깥쪽 색이 색상 2이다.
Draw Linex1
y1
x2
y2
현재 기준
(x1, y1)과 (x2, y2)를 잇는 선분을 출력한다.
Draw Arrowx1
y1
x2
y2
화살표 크기(tip size)
현재 기준
(x1, y1)에서 (x2, y2)로 뻗어나가는 화살표를 출력한다.

8.2 Settings

위의 Drawing 탭에서 그리는 대부분의 도형은 이 탭에서 설정한 색상과 글꼴의 영향을 받는다. Draw 이벤트가 아닌 다른 곳에서도 사용할 수 있다.

이름인자설명
Set Color색상(Color)그리기에 사용할 색상을 설정한다.
Set Font폰트(Font)[10]
정렬(align): 왼쪽/가운데/오른쪽
텍스트 출력에 사용할 글꼴을 설정한다.
Set Full Screen설정(action): 창-전체 전환/창 모드/전체화면 모드게임을 전체화면 모드나 창 모드로 바꾼다.

8.3 Other

이름인자설명
Take Snapshot파일명(filename)게임의 스크린샷을 찍어서 특정한 파일명으로 저장한다.
Create Effect타입(type)
x
y
크기(size): 소/중/대
색상(color)
위치(where): 오브젝트 아래에/위에
현재 기준
게임 상에 특수효과를 생성한다.
  1. 해당 스프라이트 내의 여러 이미지들.
  2. 기본값은 1(배)이다.
  3. 1이 불투명, 0이 투명이다.
  4. 1000이 1초이다.
  5. 스크립트 자체는 인자를 0번부터 15번까지 16개 받을 수 있다.
  6. 17종류의 색 중 하나를 골라야 하며, 사용자 지정 색 기능은 없다.
  7. 초록색-빨간색, 흰색-검은색과 16종류의 단색 중 하나를 골라야 하며, 역시 사용자 지정 그런 거 없다.
  8. 전자는 두 색상을 섞은 것을 골라서 단색으로 사용하고, 후자는 색 1에서 시작해서 색 2로 바뀌어 간다.
  9. 내부적으로는 랜덤으로 처리되기 때문에 정확히 n스텝에 1개는 아니다.
  10. 게임메이커 프로젝트 내에 생성한 폰트를 의미한다.