본문 바로가기
메타버스기반게임콘텐츠기획/그날의 강의

(6-2) RPG메이커 툴을 이용한 프로젝트 만들기-연습편2

by Queenut 2021. 11. 30.

어제 만들어진 RPG에 이어서 제작해보자.

 

 

 * 스위치

셀프 스위치는 자기 아이콘/이벤트만 적용되는 것이고

그냥 스위치는 게임 전체에 영향을 줄 수 있다.

프로그래밍의 변수와 비슷하며, bool 자료형과도 비슷하다 볼 수 있다.

 

강사님 왈.

 

맵을 하나 더 만들어보자.

맵 이름은 성문이다.

 

성문에 문과 스위치를 만든다(not 맵, 이벤트 이미지로!).

그리고 스위치에 

이벤트 커맨드1 → Game Progression → Control Switches → Single

설정할 스위치들이 겹치지 않게 / 구분하기 위해 이름을 잘 넣어주고 ON.

 

 

이후 만들어둔 문 이벤트에

적용!

주의할 점

1. 1페이지에는 문이 닫혔을 때의 모습을 만들어둬야 문이 여닫는 모션으로 바뀐다.

2. 스위치는 2페이지에!!

 

 

그러면 스위치를 누를 때 문이 열리게 된다.

그리고 사진에는 없지만 문 이벤트에 Transfer를 넣어준다면 이동할 수 있다!

 

플레이테스트 중 F9를 누르면 스위치의 ON/OFF가 보인다.

 

 

 

어? 그런데....

Q. 들어가기 위해 버튼을 누르니 성문이 닫히는데?

원래 열려있는 이미지였음.

 

A. 이벤트 레이어는 세 가지가 있다.

맨 위에 above, 중간에 same as character, 아래에 below 레이어

이벤트 에디터에 있음.

below : 캐릭터보다 아래의 레이어. 밟고 지나갈 수 있다.

same : 캐릭터와 같은 위치의 레이어. 통과할 순 없다.

above : 캐릭터가 이벤트 아래를 지나간다. 캐릭터에게 가려지지 않는다.

 

즉, 객체의 높낮이를 바꿀 수 있다는 것.

 

 

여기에 더해서, 이벤트 작동 방식을 선택할 수 있는데

이벤트 에디터에 있음.

action button : 버튼을 누르면 이벤트 작동

player touch : 플레이어가 터치=이벤트에 닿으면 작동

event touch : 이벤트가 터치 = 이벤트가 이벤트에 닿으면 작동

autorun : 자동으로 재생. 써봤는데 끝나는 트리거를 넣지 않으면 무한 반복하더라...

parallel : 병렬로 / 평행한 그런 뜻이라는데 써봐도 잘 모르겠다. 나중에!

 

 

플레이어 터치 방식으로 변경하면 마치 문에 들어가자 이동하는 것 처럼 보인다.

 

문이 열린 후인 2페이지 이벤트를 below로 바꾼 결과. 바로 설정된 맵으로 이동한다.

 

 

Q. 그래도 통과를 못 합니다 ㅠㅠ!

 

A. 맵의 타일셋을 잘못 넣은 것이다!

아트적으로 통과할 수 있는 타일이 있고 아닌 타일이 있기 때문에 문 뒤에 뚫린 공간을 만들어줘야 한다.

즉, 이벤트로 문을 만들기 전에 아트적으로도 문을 같이 만들어야 한다는 뜻.

이걸 실수하면 벽이 뚫린다. 조금 꾸며보려고 타일을 칠해놨더니 통과가 가능해져서 몬스터가 벽을 뚫고 오더라...

 

데이터베이스 - 타일셋에서 각 타일의 속성을 알 수있다. (뚫렸는지 막혔는지 + 설정변경도.)

 

 

 * 타일셋

RPG메이커의 캐릭터 타일셋을 보면 

한 캐릭터가 총 12개의 모습을 갖고 있다. 쬐그매서 잘 모르겠지만 잘 구분해보면

정면 왼발 오른발
왼쪽    
오른쪽    
위(뒤)    

행은 0=가만히 서있을 때, 1=왼발을 움직일 때, 2=오른발을 움직일 때의 모습을 나타내며

열은 0=정면↓, 1=왼쪽방향←, 2=오른쪽방향→, 3=후면방향↑의 모습을 나타낸다..

 

즉, 캐릭터의 모션은 왼발→가만히→오른발→가만히→왼발→.... 로 이루어진다. 이게 스프라이트 애니.

 

 

여기에 한 페이지에 캐릭터 8개가 들어갈 수 있기 때문에 총 픽셀, 576*384의 규격을 맞춘다면 어디서 주워온 그림도 툴이 인식할 수 있다!

 

 

Q. 그럼 캐릭터를 무조건 한 번에 8개를 만들어야 인식하나?

A. 걍 비워도 됨. 컴퓨터가 인식한다? 그럼 그냥 하얗게 비워놓고 안 쓰면 되지!

 

A. ! 가 있고 $ 가 있는데 달러 넣으면 사이즈가.....?? 암튼 규격 무시 가능.

 

A. 인터넷 리소스 이용 가능. 근데 저작권같은 이용 규정은 보고 써봐야겠지.. 그리고 규격이 다를 경우 포토샵으로 알아서 만지도록^^ 그리고 배경이 트랜스 처리된 이미지여야 된다(흰색회색 체크무니 말하는건가?)

파일 넣는 곳은 프로젝트>img>characters

 

 

 

이벤트 에디터에서 남은 옵션이 하나 있는데 짚고 넘어가자.

event editor → option 

walking : 걷는 모션을 말한다. 해제하면 움직임을 넣어도 슬라이드 타는 것처럼 이미지가 고정된다.

stepping : 제자리에서 걷는다.

direction fix : 방향 고정. 사람보단 물체같은 것의 이벤트를 실행시켰을 때, 방향에 따라 다른 이미지가 출력되는 것을 막기 위해 체크한다.

through : 이벤트를 통과할 수 있는 옵션이다. 원래 이벤트는 통과할 수 없다.

 

 

 

 * 던전에서의 퍼즐-전투

맵을 먼저 만든다.

이것 저것 만든 것이 많아 화살표로 설명하려 한다.

 

1. 불로 막혀있는 길. 버튼에 정답을 입력하면 불이 꺼지고 지나갈 수 있게 된다!

먼저 불 이벤트와 스위치 이벤트를 만든 후에 시작한다.

 

이벤트 페이지1에 if문과 스위치문을 통해 조건을 만든다.

참고로 input number 는 event commands → massage에 있다. 여기서 설정할 수 있는 것은 숫자의 자리수 뿐이기 때문에 '정답'을 설정하려면

이벤트 커맨드1 - 플로우 컨트롤

스위치의 이름을 설정하고 어떤 수치로 할 건지도 설정하면 된다.

이벤트 페이지2에는 스위치가 눌린 이미지 뿐이다.

스위치 ON 시, 이미지가 변하며 자동으로 "....?"라는 말풍선이 뜬다.

 

 

 

 * 번외, 이걸 코딩으로 한다면?

내가 아니라 강사님 제작.

 

 

2. 길을 뭔가가 막고 있으니 치워보자. 돌 굴러가유!

 

돌 이미지의 이벤트를 만들고

event commands1 → conditional branch 4 → button

각각 어떤 키를 누르면 / 어떤 작동이 되는지 를 설정한다.

 

 

그리고

event commands2 → set movement route 

주의!! skip if cannot move 꼭 체크해야 이후 이벤트가 벽에 막혀 진행이 안될 때, 프로그램이 작동 오류나는 것을 막을 수 있다(연습편1 마지막 참고).

 

wait for completion : 이벤트가 끝날 때까지 기다린다. 체크 해제 시 속도가 좀 더 한국인처럼 된다.

 

 

완성.

돌이 사방으로 움직이게 하고싶다면 네 방향의 이벤트를 모두 넣어줘야 한다.

 

 

이제 라스트, 바닥을 밟으면 여우가 튀어나오고, 보스 몬스터가 생기며

여우를 물리치면 문이

보스를 물리치면 보물상자와 탈출구가 나오게 만드려고 한다.

 

 

 

3. 길이 끊겼다? 순간이동!

밟으면 이동하는 것은 사실 매우 쉽다.

앞에 나왔던 레이어를 below로 해두고, 작동 방식을 player touch로 한 채 반대쪽 포탈이벤트에 transfer 하면 끝.

 

다만 빙글빙글 도는 모션을 추가해보자면

일일이 넣어주면 된다.... 90도 돌고 딜레이 주고(너무 빠르면 눈 깜짝할 새에 끝남) 90도 돌고 딜레이 주고...

이벤트는 저것과 이동이 다이다.

 

 

 

4. 바닥을 밟으니 야생의 여우가 나타났다! 해치워야 길이 열린다.

과정이 조금 복잡한데,

1. 해골 덫을 밟는다.

2. 야생의 여우(a)와 보스(A)가 나타난다.

3-1. 여우를 모두 해치우면 길을 막고 있던 파란 불이 사라진다.

3-2. 보스를 해치우면 출구를 막고 있던 상자가 사라진다.

4. 탈출!

전투는 편의상 원클릭으로 끝낸다.

 

 

해골덫부터 만들자면, 앞서 배운 스위치 ON/OFF를 통해 쉽게 여우가 나타나게 만들 수 있다.

다만 주의할 것이 있는데

 1) options → through 를 반드시 체크해야 한다는 점!

  : 밟고 지나가야 길이기 때문이지... + below character 도 잊지 말자.

 2) 밟을 때마다 스위치가 켜지면 안 된다. 여우 스위치 후에 셀프 스위치도 넣어주자.

당연히 이벤트페이지2에도 셀프 스위치를 입력해준다. contents와 conditions를 제외하면 앞과 동일.

 

 

 

여우는 해골덫과 연결하는 스위치를 넣어주고, 때리면(누르면) 사라지도록 셀프스위치도 넣어준다.

다만, 새로운 것이 몇개 등장했는데

1) 효과음

2) 처음 사용하는 조건문

이다.

 

효과음은 event commands2 → audio & video 에 있는데 들어보고 맘에 드는 것으로 선택해보자.

 

 

새로운 조건문은 위 사진에 있는데

여우킬이라는 새로운 조건을 만들어주고 이것이 하나씩 추가되도록 만든다.

그럼, 여우를 잡을 때마다 카운트가 1씩 늘어난다.

여우 듀금

 

 

여우와 연결되는 파란 불을 먼저 설정하자면,

텍스트는 맘대로 설정하고 1페이지에 본래 모습, 2페이지에 Conditions → Variable 에 넣는다.

여우가 총 4마리이니 카운트도 4이상.

여우가 죽으면 불이 사라진다.

 

 

 

보스는 앞선 과정과 비슷하므로 사진으로 대체한다.

 

보물상자는 페이지가 3개이다.

보스를 잡기 전, 이벤트 페이지.

보스를 잡은 후, 이벤트 페이지.

가로막은 길에서 사라지는 이벤트 페이지.

 

 

 

 

 

 

 * 탈것 타보기

또 다시 새로운 맵

((잠깐! 만들기 전에 맵의 크기를 기본으로 하자!!! 이유는 이후에.))

 

진행과정은, 오른쪽 포탈을 타고 나타난 캐릭터가

1) 자동차를 누르자 마치 안에 탄 듯 사라진다.

2) 자동차는 길을 따라 움직이고

3) 끝에 도달하자 맵이 이동되며 나타난다.

 

 

자동차를 누르며 탄 것 같은 텍스트를 출력하고, 캐릭터를 투명하게 만든다.

event commands2 → character → change transparency ON

 

 

이제 차가 움직이는 것은....

노동..

움직여야 하는 길의 수에 맞춰 왼쪽, 오른쪽, 위 등을 설정한다. 참고로 Turn 을 이용하면 이미지가 해당 방향으로 변해서 진짜 움직이는 것 처럼 볼 수 있다.

 

이후 캐릭터를 이동시키며 투명화를 풀면 끝!

 

 

그런데 아까 맵의 크기를 키우지 말라고 했는데 이유가,

맵의 크기가 게임창보다 크면 당연히 이동할 때 카메라도 같이 이동해야 보일 것 아닌가?

그런데 위에서 한 것은 캐릭터 투명화일 뿐, 사실 캐릭터는 처음 자동차가 있던 자리 옆에 그대로 있다.

그래서 자동차가 카메라 바깥으로 나가는데도 화면은 제자리이다...

 

이걸 해결하려면 위에 한 개의 movement route에 입력한 방향을 다 쪼개서

왼쪽 4번 이동→카메라 이동(movement→scroll map)→왼쪽 2번 이동→카메라 이동→위로 방향 바꾸고 3번 이동→카메라 이동→.... 이렇게 정말 쌩 노가다를 해야한다.

아니면 똑같은 함수를 사용해서 캐릭터를 움직이던가.

 

어차피 연습인데 굳이 그렇게 할 필요가.... 시간이 남아돌 때 해보자.

오? 탈것을 맵 바깥으로 움직이게 하고 화면을 페이드아웃 시키면 꼭 영화의 씬이 변하는 연출처럼 보이겠는걸?

 

 

 

 

 * 데이터베이스

간단 설명.

 

Actor는 내가 움직일 수 있는 캐릭터.

Classes는 직업으로 캐릭터마다 직업에 따라 다른 성장곡선을 보여줄 수 있다는데 최근 잘 안 쓴다고...

Skill은 이벤트 조건으로 쓸 수도 있다.

   스킬을 얻고 npc이벤트-컨텐츠-액터-체인지 스킬. 조건문으로 스킬을 가졌는지 유무에 따라 다르게.

 

이 중간은 거의 전투 시스템 관련 부분이고..

 

Tilesets이 중요한데, 위의 캐릭터처럼 외부에서 가져올 수 있다. 규격을 맞추고, 배경을 날려야 좋다! (+PNG파일)

그리고 잘 보면 이미지 위에 O / X 가 있는데 이게 통과 가능 / 불가능 여부이다. 클릭 한 번으로 쉽게 변경 가능하다.

 

 

System1, System2은 타이틀의 BGM, 제목, 화면, 메뉴 등 기본적인 시스템 변경이 가능하고

Type에는 속성?이, Terms에는 각종 용어를 내 게임만의 설정으로 변경할 수 있다.