Juwan Park :: RPG 2000/2003으로 간단한 액알 만들기 강좌 -1-

RPG 2000/2003으로 간단한 액알 만들기 강좌 -1-

◆게임 창작 관련/게임 창작 강좌 :: 2015. 12. 31. 00:01

RPG 만들기 시리즈의 전투라 하면 드래곤 퀘스트 시리즈와 같은 방식으로 한 턴마다 주인공과 몬스터가 한 번씩의 행동을 하면서 싸우는 '턴제 RPG'를 말합니다. 바로 위의 스크린샷이 RPG 만들기 2000의 기본 전투 화면의 예입니다.

하지만 이런 턴제 전투 방식만 고수하다 보면 금방 식상해지기 마련이지요. 그래서 게임의 재미를 주고자 RPG 만들기 시리즈의 기본 전투 방식이 아닌 독자적인 전투 방식을 도입하기도 합니다. 마치 액션게임과 같이 필드에서 실시간 전투를 벌이는 소위 '액션 RPG'(약칭 '액알')도 RPG 만들기 시리즈로 구현 가능합니다.

RPG 만들기 XP 이상에서는 스크립트를 이용하거나 스크립트를 편집하지 않더라도 다른 여러 방법으로 액알을 구현할 수 있습니다. 그렇다면 스크립트가 지원되지 않는 RPG 만들기 2000/2003에서도 액알을 만드는 게 가능할까요?

정답은 '가능하다'입니다.

이 스크린샷은 RPG 만들기 2003으로 만들어진 액션 RPG '트레즈터'의 실행 예입니다. 만약 스크립트가 지원되지 않는다고 액알을 만드는 게 불가능하다면 이 게임은 나올 수 없었겠지요.

자, 그러면 RPG 만들기 2000/2003으로 액알을 만드는 방법의 기초를 배워 보겠습니다. RPG 만들기 2000/2003으로 액알을 구현하는 방법은 여러가지가 있지만 여기서는 그 방법들 중 가장 간단한 방법을 이용해 보겠습니다.

설명은 RPG 만들기 2000으로 하지만, RPG 만들기 2003으로도 충분히 가능합니다.


자, 먼저 새 프로젝트를 만들어 봅시다.

만들었으면 아래 그림과 같이 통행 가능한 허허벌판을 만들고,

적당한 위치에 몬스터 역할을 할 이벤트를 하나 추가해 봅시다.

물론 이벤트 하나만 추가한다고 해서 그 이벤트가 몬스터 역할을 하지 않으므로, 몬스터 역할을 할 수 있도록 이벤트를 짜 봅시다.

여기에서 중요한 설정 사항을 보겠습니다.
- 그래픽: 몬스터 그래픽입니다. 적당한 그래픽을 찾아 정해 주시면 됩니다. 보시는 바와 같이 이 예제에서는 슬라임이 사용되었습니다.
- 이동 타입: 기본은 '이동 않음'으로 되어 있으므로 이를 '랜덤 이동'으로 고쳐 줍시다. 그렇지 않으면 몬스터가 그냥 그 자리에 있게 됩니다. 굳이 '랜덤 이동'이어야만 할 필요는 없고 주인공에게 가까이 가도록 설정하는 것과 주인공을 피하도록 설정하는 것도 가능하고 상하 왕복이나 좌우 왕복, 직접 이동경로 지정도 가능합니다.
- 이동 빈도: 말 그대로 이동하는 빈도입니다. 최대치인 8로 하면 쉼없이 이동하고 그 외의 값을 지정하면 일정한 간격으로 쉬면서 이동하는데, 숫자가 작을수록 쉬는 간격이 길어집니다.
- 이동 루트의 설정: 이동 경로를 지정할 때 사용합니다. 이동 타입을 '이동 루트 지정'으로 한 경우에만 가능하므로 이 예제처럼 랜덤 이동을 선택했다면 굳이 건드릴 필요가 없는 부분입니다.
- 이벤트 시작 조건: '이벤트쪽에서 닿았을 때'로 설정해 줍시다. 주인공이 '공격하는' 상황과 몬스터에게 '공격당하는' 상황으로 나눌 것인데, 결정 키를 눌러 이벤트를 실행시키는 상황을 '공격'으로, 이벤트가 접촉하는 상황을 '피격'으로 상정합니다.
- 우선 순위 타입: '통상 캐릭터와 겹치지 않음'으로 설정해 줍시다.
- 애니메이션 타입: 기본값은 '통상 / 다리동작 없음'으로 설정되어 있지만 이 예제에서는 '통상 / 다리동작 있음'으로 되어 있습니다. 이는 이벤트가 멈춰 있어도 마치 이동하는 것처럼 다리동작이 있다는 뜻입니다. 크게 중요한 설정은 아니고 단지 '몬스터'임을 암시할 수 있게 하기 위함입니다.
- 이동 속도: 말 그대로 이벤트가 이동하는 속도입니다. 숫자가 작을수록 속도가 느려집니다. 이동 속도를 '표준(4)'으로 하면 주인공의 기본 이동 속도와 같아집니다.

그리고 이벤트를 봅시다.

이와 같이 조건 분기를 설정해 줍시다. 여기서는 결정 키로 공격하는 시스템을 사용할 것이므로 '결정 키로 이 이벤트를 시작했다'를 선택해 줍니다. 그렇다면 앞서 말했듯이 결정 키로 이벤트를 시작한 것이 아닌 이벤트 접촉으로 시작되는 경우를 '피격'으로 간주해야 하므로 '조건에 들어맞지 않는 경우의 처리 내용도 설정한다'에 체크표시를 합니다.

다시 저 앞의 그림을 봅시다. 결정 키로 이벤트를 시작했다면, 즉 '공격'했다면 애니메이션으로 공격 모션을 넣어 줍시다. 이 예제에서는 칼로 베는 애니메이션을 공격 애니메이션으로 하였습니다. 이 경우 피격 대상은 몬스터이므로 애니메이션 대상을 '이 이벤트'로 지정하여 몬스터에게 피격 애니메이션이 표시되게 합니다. 그 외의 경우는, 즉 '피격'당했다면 마찬가지로 애니메이션으로 피격 모션을 넣어 줍시다. 이 예제에서는 일반타격 애니메이션을 피격 애니메이션으로 하였습니다. 이 경우 피격 대상은 당연히 주인공이므로 애니메이션 대상을 '주인공'으로 지정하여 주인공에게 피격 애니메이션이 표시되게 합니다.

자, 설정이 되었다면 한 번 실행해서 확인을 해 봅시다.

이와 같이 공격할 때마다 애니메이션이 표시됩니다. 이 스크린샷에서는 주인공이 슬라임에 접촉하지 않고 결정 키를 눌러 공격하는 모습입니다.

물론 이렇게만 해 놓으면 몬스터를 수백 수천 번을 때려도 죽지 않습니다. 마찬가지로 주인공도 수백 수천 번을 맞아도 죽지 않습니다. 그렇다면, 전투가 진행이 되도록 이벤트를 고쳐 봅시다.

먼저, 이와 같이 몬스터의 누적 대미지를 저장할 변수를 정해 놓습니다. 그리고,

위 스샷처럼 공격했을 때와 피격당했을 때를 처리할 커맨드를 추가해 줍니다.

먼저, 공격했을 때를 보겠습니다.

공격했을 때는 이와 같이 변수 대입을 이용해 몬스터 누적 대미지를 저장할 변수에 대미지를 누적합니다. 본래는 주인공의 공격력에 맞춰 누적 대미지를 가산하는 것이 일반적이지만 여기서는 간단히 예를 들기 위하여 고정값인 10을 이용했습니다.

피격당했을 때는 이와 같이 HP의 증감을 이용합니다. 마찬가지로 간단히 예를 들기 위하여 고정값인 3만큼의 대미지를 정해 놓았습니다. 중요한 것은 옵션을 보면 '전투 불능을 허가한다'가 있습니다. 이 항목에 체크 표시를 하면 HP가 바닥났을 때 전투불능이 되고(물론 파티원 전원 전투불능이면 게임오버) 체크 표시를 하지 않으면 HP가 바닥나더라도 전투불능이 되지 않습니다.(이 경우는 HP가 0이 될 상황이라면 0이 되지 않고 1이 됩니다.)
* HP의 증감 대신 '대미지의 처리' 커맨드를 이용해도 됩니다.

그리고 중요한 건 몬스터에게 대미지가 일정량 이상 누적되었을 때의 처리인데,

이와 같이 몬스터에게 대미지가 100 이상 쌓이면 몬스터가 죽는 것으로 처리하고자 한다면, '페이지의 신규 작성'을 통해 몬스터 대미지 누적 변수가 100 이상일 때 몬스터가 죽는 과정을 처리하는 커맨드를 넣어 줍니다.

중요한 건 이벤트 시작 조건을 '자동적으로 시작'으로 설정하는 것입니다. 그리고, 실행 내용에 먼저 몬스터의 죽음을 암시하는 적당한 애니메이션을 넣은 후

이와 같이 경험치 증감 커맨드를 넣어 몬스터의 죽음과 함께 받을 경험치를 설정합니다. 옵션의 '레벨업 메시지를 표시한다'는 체크하면 말 그대로 레벨이 올라갔을 때 메시지가 자동으로 표시됩니다.

그리고 중요한 건 맨 마지막에 '이벤트의 일시 삭제' 커맨드를 꼭 넣어 주셔야 합니다. 그렇지 않으면 무한루프에 빠져버리게 됩니다.

자, 그러면 다시 실행해서 전투를 벌여 봅시다.

이렇게 계속 공격했더니 몬스터가 죽고 경험치를 얻어 레벨이 올랐습니다.

메뉴를 열어 보면 이와 같이 전투를 진행한 결과로 피격된 만큼 HP가 소모되고 경험치가 올라 레벨업을 한 것을 확인할 수 있습니다.


여기서 RPG 2000/2003으로 간단한 액알 만들기 강좌 1편을 마칩니다.

2편에서는 이를 좀 더 응용해 보도록 하겠습니다.


Today    Yday    Tot
Juwan Park
Juwan Park's blog is powered by Daum and .
Contemporary Blue for .
Designed by Juwan Park. Creative Commons License
▲ TOP