본문 바로가기
Tips

기본 턴제 전투의 처리 - RPG Maker VX Ace

by biud436 2018. 5. 5.
요즘에 나오는 RPG들은 거의 모두 액션 전투 스타일을 실시간으로 지향하는 게임들입니다. 필드에서 실시간으로 전투를 진행하고 적을 처치하기 위해서 알아야 할 마법 스킬과 아이템들 그리고 그 응용 방법도 너무나 많습니다. 우리는 그런 게임들을 플레이하면서 자라왔으며 또 즐겨왔습니다. 지금 이 시간에도 누군가가 그 방식의 게임을 플레이 하고 있을 것입니다. 그런 환경에서 접하는 턴제 전투는 낯선 전투 방식으로 느껴질 수 밖에 없습니다. 

턴제 전투는 옛날 RPG의 전유물이 아닙니다. 현재 서비스되고 있는 게임들 중에서도 턴제 전투 방식의 게임들이 있습니다. 어떤 장점이 있길래 턴제 전투를 사용하는 것일까요? 턴제 전투 방식은 왜 사용하는 것이며 그 게임들의 특징은 무엇인지 그리고 턴제 이러한 전투 방식이 어디서 어떻게 왜 등장하게 되었는지 그 배경부터 알아보도록 하겠습니다.

그럴려면 RPG의 유래부터 알아봐야 합니다.


RPG는 서양에서 1970년대 최초의 TRPG인 던전 앤 드래곤 시리즈(이하 D&D)를 시작으로 시작된 게임 방식입니다. 영어로는 Role-Playing Game 이라고 부르고 한국어로 해석하면 역할 분담 놀이라는 뜻입니다. 

RPG는 우리가 아는 컴퓨터가 등장하기 이전에는 실제 사람들이 테이블에 둘러앉아 진행하는 일종의 보드게임과 같은 형태로 진행되는 게임이었습니다. 

게임의 규칙이 담겨있는 롤북을 보면서 진행하는 형태의 게임이며 플레이어들은 지속적으로 진행자와 대화를 나누게 됩니다. 플레이어는 그 책을 보고 캐릭터를 만들기도 하고, 진행자는 준비된 시나리오에 따라 게임 세계에서 벌어지고 있는 일들을 나레이션으로 설명합니다. 때로는 주사위를 굴려서 전투의 결과를 알려주기도 해야 했고, 아이템을 주거나 퀘스트를 주기도 해야 했습니다. 플레이어들은 게임 진행자의 설명에 따라 실제 영웅이 된 것처럼 대화하거나 전투를 하기도 했고 퀘스트 진행하거나 알맞는 행동을 해야 했습니다. 

진행자의 역량이 중요할 수 밖에 없었고 오프라인에서 매번 모여야 하기 때문에 단점이 있었습니다. 1970년대 북미에서 이런 던전 앤 드래곤 시리즈(TRPG)가 컴퓨터로 구현되기 시작하면서 울티마, 마이트 앤 매직, 위저드리 시리즈와 같은 RPG의 시초가 되는 게임들이 등장했습니다. 그러다가 위저드리 시리즈가 콘솔 게임이 주를 이루는 일본시장에 큰 히트를 치게 되면서 그 후에 탄생하는 많은 일본 RPG에 영향을 주게 되면서 드래곤 퀘스트 같은 일본식 RPG가 탄생합니다.


 
일본은 콘솔 게임 시장이 발달했고 우리나라와는 시장 환경이 다른 곳입니다. 이 때문에 게임도 서양과는 다른 방향으로 발전을 해왔습니다. 일본에서 만든 RPG들은 서양에서 만든 RPG들과는 큰 차이가 있습니다. 서양식 RPG는 자유도가 높고 NPC에게 말을 걸어서 퀘스트를 받거나 필드에서 바로 전투를 벌여 몬스터를 사냥하거나 진행 방향이 다양한데 반해 일본식 RPG는 스토리 중심의 어드벤쳐 식으로 진행이 되는 것이 많아 스토리가 일방향적이고 자유도가 상대적으로 떨어집니다. 또한 맵 상에서 적과 만나면 턴마다 명령을 지정하여 싸우는 방식이기 때문에 복잡한 전투 시스템이 필요하지 않아 전투 시스템 제작이 더 간편하며 이러한 전투 방식은 콘솔 기반의 게임에도 적합합니다. 대표적으로 드래곤 퀘스트, 파이널 판타지, 포켓몬스터 시리즈들과 같은 유명한 게임들이 있습니다. 이런 일본식 RPG들은 세계관도 매우 독특하며 인상적입니다.

RPG Maker 시리즈도 일본에서 제작된 게임제작툴입니다. 그래서 기본적으로 일본식 RPG의 기본 틀 위에서 시작합니다. 그래서 기본적으로 턴을 주고 받으며 전투를 진행하는 턴제 전투 시스템을 제공합니다. 미리 만들어진 시스템이 전투를 진행하고 조율합니다.

이 전투 시스템은 미리 만들어져있습니다. 그렇기 때문에 시스템 상으로 배경 그래픽을 그리는 명령을 내리거나 매 턴마다 플레이어에게 명령을 받거나 입력 받은 데이터를 계산하여 데미지를 줘야 하는 일을 할 필요가 없습니다. 

또한 그 데이터에 따라 마법 애니메이션이 발생하기도 하고 소리도 재생되기도 해야하고, 전투가 끝나면 보상도 줘야하며 경험치도 상승시켜야 하고 마법도 새로 배우게 해야 합니다. 그러나 이 모든 과정을 제작하기 위해 노력할 필요는 없습니다. 이미 모두 제작이 완료되어있기 때문입니다. 

하지만 여러분들이 원하는 이야기를 펼쳐나갈려면 이 전투 시스템을 어떻게 조작하는지 알아야 합니다. RPG Maker 툴에서는 전투 시스템 조작을 위해 '데이터베이스'라는 에디터를 제공하고 있습니다. 데이터베이스를 통해 전투 구동을 위해 사용되는 데이터값을 조작할 수 있습니다. 


RPG Maker 툴에선 기본 전투를 시작하는 방법도 매우 간단합니다. 전투 시스템이 스크립트로 이미 만들어져있기 때문에 복잡한 프로그래밍이나 이벤트가 필요하지 않습니다. 과정을 생각할 필요 없이 미리 준비된 데이터를 불러와서 전투를 바로 시작할 수 있습니다. 전투의 처리라는 이벤트를 통해서 전투를 시작할 수 있습니다. 이 인터페이스 창은 매우 단순하게 되어있습니다. 단지 적 그룹(Troop)을 골라주기만 하면 되기 때문입니다. 아래 스크린샷을 참조하면 슬라임이 등장하게끔 설정되어있다는 것을 알 수 있습니다. 이 인터페이스를 통해 전투가 시작되게끔 할 수 있습니다. 
 
▲ 전투의 처리 이벤트 커맨드
 
Battle Processing 은 이벤트 편집창에서 이벤트 커맨드 리스트들 둘러보시다보면 발견할 수 있습니다. 출현 대상 적그룹은 리스트박스나 변수를 통해 직접 설정할 수도 있고 맵의 엔카운터 설정을 따를 수도 있습니다. 

위 이벤트 커맨드를 만들게 되면 슬라임과의 전투가 시작될 것입니다. 이외에도 테스트 목적 차원으로 제공되는 기능도 있습니다. 데이터베이스의 적그룹 탭에 있는 배틀 테스트 버튼을 누르면 전투 테스트도 가능합니다. 

전투는 지난 맵 강좌 시간에서 배웠던 엔카운터 조건에 따라서 발생할 수도 있고 이벤트 커맨드를 통해 발생시킬 수도 있으며 데이터베이스에서 배틀 테스트를 하기 위해 의도적으로 발생시킬 수도 있습니다. 

전투를 테스트하는 목적은 밸런스가 잘 맞는지 확인을 하기 위해서입니다. 롤플레잉 게임에서의 전투는 굉장히 중요한 요소 중 하나입니다. 레벨 디자인이라고도 부르는데 전투가 너무 일정하고 특색없이 벌어진다면 플레이어들은 지루함을 느끼게 될 것입니다. 턴제 전투는 턴을 돌아가면서 전투가 진행되기 때문에 지루함을 쉽게 느낄 수 있습니다. 따라서 전략을 잘 짜지 않고 대충 진행하면 게임이 어렵게 느껴지게끔 밸런스를 잘 맞추는것도 중요합니다. 

여러분들 중엔 분명 기본적으로 설정되어있는 데이터베이스 능력치를 바꾸지 않고 그대로 사용하는 분들도 있을 것입니다. 그러나 기본적으로 설정되어있는 데이터베이스 능력치들로 전투를 진행하는 일은 없길 바랍니다. 이 경우에는 대부분 플레이어가 별 생각없이 어택을 해도 적이 금방 나가 떨어지게 되고 그 상황이 반복되고 이변이란 없어서 난이도가 쉽기 때문에 전투에서 지루함을 느끼게 됩니다. 턴제 전투라 상관없다고 생각할 수 있겠지만 지루한 전투는 게임의 재미를 떨어뜨리는 일이기도 합니다. 
 

전투 테스트(Battle Test)는 전투 구성에 필요한 최소한의 스크립트만 구성하여 로드하는 경량화된 전투 테스트 전용 모드입니다. 기존에 데이터베이스에서 설정한 값과 달리 사전에 레벨과 무기 데이터를 교체할 수 있습니다. 게임이 시작되기 전에 BT_라는 접두어가 붙은 Data/BT_Actors.rvdata2 과 같은 형태로 데이터베이스 스크립트를 복제하고 이 스크립트들을 전투 테스트에 이용합니다. 이는 원본 데이터베이스를 보존하고 전투 테스트에 필요한 레벨과 무기 조건을 충족시키기 위해서입니다.


파티원들의 능력치를 확인할 수 있고 장비를 원하는 것으로 바꿀 수 있습니다. OK 버튼을 누르면 전투가 시작되게 됩니다.

이외에도 전투의 시작 조건이 하나 더 있는데 바로 엔카운터라는 기능입니다. 자동으로 전투가 시작되는 엔카운터 설정이라는 기능에 의해서도 시작되기도 합니다. 이 기능은 이미 2강에서 배운적이 있기 때문에 잘 알고 있을 것입니다. 

포켓몬스터라는 게임에서는 몬스터가 없어도 필드에서 자동으로 전투가 발생합니다. 이런 방식의 전투 시작 방법은 엔카운터라고 부릅니다. 엔카운터 시스템은 자동으로 게임 무대가 전투 필드로 변하기 때문에 주인공들은 순식간에 게임 세계와는 동 떨어진 전투 필드로 툭 떨어지게 됩니다. 또한 이동 중에 갑자기 발생하기 때문에 게임의 맥이 끊기게 되고 게임 진행 속도가 늦춰진다는 단점이 있습니다. 동 떨어진 세계에서 전투를 하기 때문에 빨리 게임 세계로 돌아가고 싶다는 느낌이 생기지만 이러한 점을 잘 이용하면 오히려 긴장감을 줄 수도 있습니다. 그러나 잘못하면 지루함을 느끼게 될 수도 있으니 적당한 선을 맞춰줘야 합니다.


3가지 방법 중 하나로 전투가 되면 아래와 같은 화면이 뜨게 될 것입니다. 기본 전투 시스템은 아래와 같은 모습을 하고 있습니다. 상단에는 적 그룹이 스프라이트로 표시되고 하단에는 전투를 돕기 위한 커맨드 창이 나열되어있습니다. 커맨드 창을 통해서 파티원들에게 공격 명령이나 방어 명령을 내릴 수 있습니다. 이외에도 특수 능력 사용이나 마법 사용 그리고 아이템 사용등의 명령도 내릴 수 있습니다.
 
 
1번 윈도우에는 커맨드 버튼 2개가 나열되어있습니다. 커맨드는 한글로 명령이라는 뜻으로 결정키를 누르게 되면 반응하는 버튼기능입니다. 결정키는 키보드 상에서 Enter, Space Bar, Z 키를 뜻합니다. 결정키를 누르면 해당 버튼에 입력되어있는 내용이 수행됩니다. Fight 커맨드 버튼을 누르게 되면 1번 윈도우가 비활성화되고 3번 윈도우가 활성화되며 3번 윈도우에 있는 커맨드 버튼을 사용할 수 있게 됩니다. Escape 버튼은 탈출이라는 뜻으로 전투를 끝내고 맵으로 돌아가기 위한 기능입니다. 선제 공격을 받지 않았다면 100% 탈출이 가능하지만 몬스터로부터 선제 공격을 받았을 경우엔 탈출 확률에 의해 탈출할 수 있게 되어있습니다. 탈출 확률은 플레이어와 적 그룹 사이의 민첩력과 관계되어있습니다. 민첩력이 적보다 좋지 않으면 비율에 의해서 탈출 확률도 떨어지게 됩니다. 탈출 확률은 BattleManager 스크립트의 make_escape_ratio이라는 메소드에 정의되어있습니다. 탈출을 실패하면 탈출 성공 확률이 10% 상승합니다. 

 
2번 윈도우에서는 현재 파티의 상태를 확인할 수 있습니다. 이 윈도우에는 체력(HP)와 마력(MP) 그리고 기술력(TP)이 게이지바와 텍스트 형태로 표시됩니다. 또한 현재 걸려있는 버프 또는 디버프 상태도 아이콘으로 확인할 수 있습니다. 
 
HP는 Hit Points 와 Health Points의 약자입니다. 이 개념은 D&D 에서 유래된 개념으로 몬스터의 체력이나 아군의 체력을 나타내는 수치 입니다. 당연한 소리이지만 적에게 공격을 당하면 체력이 줄어드는 것을 표현해야 하므로 이 수치도 줄어듭니다. 체력이 0이 되면 사망 상태가 됩니다. 
 
MP는 Magic points의 약자입니다. Magic 은 마법이고 Points 는 힘을 뜻하는 말이기 때문에 한국어로는 마법력이라고 해석할 수 있습니다. 보통 줄여서 마력 또는 마나라고 불립니다. 마법력은 롤플레잉 게임에서 마법을 사용할 때 필요한 힘입니다. 메이지 같은 마법 계열의 클래스들은 더 높은 MP를 가지고 있습니다. 이들은 마법 공격력을 바탕으로 적에게 공격을 가합니다. 이런 직업들은 마법력을 바탕으로 강력한 마법을 사용하기 때문에 마력이 없으면 힘을 발휘할 수 없습니다. 그래서 마력을 항상 신경써줘야 하는 직업들입니다. 턴제 전투 시스템에서는 매 턴이 끝나면 일정량의 MP를 회복됩니다. 회복률은 MRG 라는 수치에 의해 결정됩니다. 그러나 이 수치가 낮으면 회복 속도도 더디기 때문에 MP를 회복시켜줄 수 있는 아이템으로 마나를 회복시켜줘야 할 수도 있습니다. 

TP는 Technical Points 의 약자입니다. 해석하면 기술력이라는 뜻입니다. 이 개념은 파이널 판타지라는 게임에서 유래되었습니다. 턴제 전투 시스템에서 마법을 사용하려면 MP 이외에도 일정량의 TP가 소비됩니다. 

따라서 전투 초반에 TP를 반드시 획득해놓아야 합니다. TP는 적을 가격하거나 적에게 피격을 당할 시에 바로 획득할 수 있으며 매 턴이 종료시에도 획득합니다. TP는 100이 최대값입니다. 

초기의 TP 수치는 0 ~ 25 이하의 난수로 결정되어지고 소비 TP값은 스킬탭에서 설정할 수 있습니다. 

강력한 마법을 쓰려면 많은 TP가 필요하기 때문에 초반에 TP 채울 수 있는 마법과 아이템들도 만들어놓을 수도 있습니다. TP의 충전값은 TCR이라는 비율값에 의해서 결정됩니다. TP는 매 턴이 끝나면 TRG(TP 회복률)이라는 수치에 의해 일정량이 채워집니다.

3번 윈도우는 공격 스킬을 선택하거나 방어를 하거나 아이템을 고를 수 있는 윈도우입니다. 마법을 사용할 수 있는 직업은 마법 커맨드가 추가로 주어집니다. 그러나 그 이외의 직업들은 Special 이라는 스킬 타입만 존재합니다. 스킬 타입은 데이터베이스 Terms 탭의 Skill Types 라는 리스트 박스에서 추가할 수 있습니다. Terms 탭엔 속성, 무기 타입, 방어구 타입을 추가하고 줄일 수 있는 기능이 있는 리스트박스도 있습니다. 

전투는 데이터베이스에 설정된 데이터를 바탕으로 만들어집니다. 실제로 확인해보면 아무것도 설정하지 않은 상태에서도 모든 것이 정상적으로 진행되는 것을 알 수 있습니다. 그 이유는 데이터베이스에 이미 입력된 데이터들이 있어서 그런 것입니다. 

이렇게 기본적으로 미리 입력된 데이터만으로도 게임을 만들 수 있습니다. 그러나 아무것도 조작하지 않은 상태의 주인공은 매우비범한 용사로 설정되어있습니다. 그야말로 판타지 세계의 몬스터들을 모두 도륙하고 다닐 수 있는 초능력자 용사로 설정되어있기 때문에 모든 전투가 매우 시시하게 끝나버릴 것입니다. 그렇게 되면 턴제 전투의 매력이 사라지게 되고 플레이어들은 쉽게 질려버리게 됩니다.


여러분들의 게임에 나와야 하는 주인공이 초능력자 용사라면 그냥 이용해도 되겠지만 그게 아니라면 아무래도 기본 데이터를 이용하는 것은 무리입니다. 그래서 전투를 만들기 전엔 사전 설정이 필요합니다. 기본적으로 플레이어의 기본 능력치, 적의 능력치, 스킬을 어떻게 설정하고 바꿀 수 있는지 정도는 알고 있어야 전투를 잘 다룰 수 있게 됩니다. 


이러한 일은 모두 데이터베이스에서 할 수 있습니다. 데이터베이스는 많은 탭들로 구성되어있는데 이러한 데이터들은 모두 전투 시스템과 관련되어있습니다. 전투 후에 아이템을 보상으로 주려고 해도 마찬가지입니다. 보상으로 받은 아이템과 골드는 추후 전투에도 영향을 끼치기 때문에 다음 전투를 붕괴시킬 위험이 있습니다. 


기본 데이터를 그대로 쓰게되면 게임 밸런스는 포기해야 될 지도 모릅니다. 게임 제작자는 플레이어가 전투를 통해 어떤 아이템을 받았는지도 모를 것입니다. 플레이어가 다음 던전을 클리어하기 위해 어떤 것을 준비해야 하는 지도 모를 것입니다. 플레이어는 던전 클리어에 필요한 물품을 미리 공수하기 위해 마을 상인들을 만나볼 것입니다. 그러나 그 물건을 판매하지 않을 수도 있겠죠. 판매한다해도 밸런스가 이미 붕괴되어있을 수도 있습니다. 


그래서 데이터베이스의 조작은 중요합니다. 데이터베이스에선 무엇을 할 수 있고 어떤 데이터를 바꿀 수 있는 지 그것도 잘 알아야 합니다. 아무래도 데이터베이스 기본 데이터를 그대로 쓰기에는 밸런스가 붕괴될 위험성이 크기 때문입니다. 


직접 데이터베이스를 조작해야 전투에서 필요한 적절한 데이터를 만들 수 있습니다. 


전투에 필요한 데이터는 대부분 플레이어의 현재 능력치 정보입니다. 전투 시스템에서는 현재 플레이어의 능력치를 종합해서 가져오게 됩니다. 능력치는 직업(Class) 탭에서 최초로 생성되는 정보이지만, 각 능력치들은 착용하고 있는 아이템이나 특성에 따라 유동적으로 달라집니다. 그래서 최종 능력치는 현재 플레이어의 상황에 따라 달라집니다. 그러나 쯔꾸르툴 답게 최종 능력치의 합산도 스크립트에서 대신 처리해줍니다. 


알만툴이 능력치 데이터를 간단하게 보거나 조작하는 기능을 제공하지 않았다면 우리들은 아마 지금도 엑셀을 공부하고 있었을 지도 모릅니다. 데이터베이스라는 기능이 없었다면 직접 온갖 계산식을 만들어야 하고 비율을 맞추기 위해 공식을 짜야하며 스크립트 파일들도 직접 만들어야 했을 겁니다. 또한 레벨 별로 수치를 다르게 하기 위해 온갖 비율을 만들어야 하는데 그것을 하는 데에 대부분 시간을 투자 했을 것입니다. 아마 전문가가 되었을 수도 있습니다.

하지만 RPG Maker VX Ace 에서는 데이터를 만들고 조작하는데 유용한 데이터베이스라는 에디터를 제공하기 때문에 굳이 위 과정의 전문가가 되기 위한 시간을 투자할 필요가 없습니다. 이미 복잡한 부분은 다 만들어져있기 때문에 데이터베이스에서 간단히 설정만 해주면 되는 것들이 많습니다.하지만 지금은 그것도 처음 보기 때문에 생소해서 어렵게 느껴질 뿐인 것입니다.

전투 시스템은 데이터베이스 활용의 끝판왕 격이라고 볼 수 있습니다. 모든 개념이 총 집합되어있습니다. 그래서 먼저 경험치 곡선 분석부터 들어가려고 합니다. 경험치 곡선은 자동 완성되는 부분이라 자세히 살펴보지 않으면 잘하는 분들도 그냥 넘어가는 부분입니다. 하지만 경험치 곡선에 적용되어있는 수식을 이해하면 다른 게임 제작툴을 이용하여 게임을 만들 때에도 같은 원리를 적용해 유용하게 사용할 수 있습니다. 


주인공이 가지고 있는 기본 능력치와 확장 능력치들은 Classes 탭에 정의되어있습니다. 경험치는 Classes 탭에서 설정할 수 있는 경험치 곡선(Exp Curve)에 따라 정해집니다. 최대 경험치는 기본값, 보정치, 증가율 A값과 증가율 B값에 의해 최종적으로 결정됩니다.

 

Classes 탭을 번역해서 직업 탭이라고 부르겠습니다. 우리가 알아볼 부분은 영어로 Exp Curve 라고 부르는 경험치 곡선 부분입니다. 전투 시스템을 다루지 않더라도, 경험치 곡선을 볼 줄을 알아야 합니다. 경험치 곡선도 벨런스를 맞추기 위해 중요한 개념 중 하나이기 때문입니다. 

 

세부 창으로 들어가보면 먼저 위와 같은 장면을 보실 수 있게 됩니다. 데이터가 도출되어있는 표와 표 뒤에 숨어있는 잿빛으로 빛나는 그래프를 보실 수 있습니다. 하단에는 경험치 곡선의 데이터 값인 기본값(Base Value)과 보정치(Extra Value) 그리고 증가율 A(Acceleration A)와 증가율 B(Acceleration B) 수치를 조절할 수 있는 스크롤바와 업다운 컨트롤 상자가 제공됩니다. 경험치 곡선이 그려지는 세부 공식은 도움말에 아래와 같이 나와있습니다.

▲ 도움말에 나와있는 최대 경험치 산출 공식

하지만 이를 해석하려면 루비 스크립트에서의 연산자 우선 순위와 결합 순서를 알아야 하고, 수식도 꽤 길고 알아보기가 힘들어서 눈으로 보고 판단하기에는 무리가 있다는 것을 알 수 있습니다. 그래서 스크립트에 정의되어있는 최대 경험치 산출 공식을 우리 인간이 알아볼 수 있는 수식으로 정리해보면 아래와 같은 수식으로 정리할 수 있습니다. 

 
▲ 인간이 알아볼 수 있는 수준으로 다시 정리한 수식

위 수식도 인간이 알아보기에는 너무 길어서 일부 수식은 알파라는 기호로 치환되어있는데 위 수식은 크게 나눠지는 수, 그리고 나누는 수, 그리고 보정치로 분리할 수 있습니다. 

먼저, 핵심 값으로 볼 수 있는 나눠지는 수를 보겠습니다. 나눠지는 수에서 알파값은 증가율(Acceleration) A 에 의해 결정되는 배율값입니다. 증가율 A 값에 따라 최소 0.94 에서 최대 1.1 범위 내로 결정됩니다. 증가율A 값이 1 올라갈 때 마다 최종 알파값은 0.004씩 증가하고, 현재 레벨 - 1이라는 값은 알파값에 의해 늘어나기도 하고 줄어들기도 합니다. 이렇게 만들어진 배율값에 기본값을 곱하면 최종적으로 나눠지는 수가 만들어지게 됩니다. 나눠지는 수는 배율에 의해 결정되는 값이기 때문에 레벨이 증가할 수록 배로 증가합니다. 

 
▲ 최대 경험치 산출 공식을 엑셀로 옮겨놓은 것


그러나 나눠지는 수는 나누는 수에 의해 일정한 수치로 나눠집니다. 나누는 수는 증가율 B의 값이 관건입니다. 증가율 B는 위 수식의 (6 + 현재 레벨의 제곱값) 조합에 얼마를 나눠야 하는 지를 결정하는 수치입니다. 이 증가율 B 값을 더 높은 값으로 나누면 나눌 수록 최종적으로 도출되는 나누는 수가 작아집니다. 반대로 증가율 B 수치가 낮으면 나누는 수가 증가하게 됩니다. 나누는 수가 증가한다면 최종 경험치의 값도 줄어들게 됩니다. 최종 경험치의 값이 높아지려면 나누는 수가 낮게 나와야 높은 최종 경험치 값을 얻을 수 있습니다. 

나눠지는 수가 레벨이 높을 수록 값이 배로 증가하는 형태이므로, 증가율 B값에 의해 만들어지는 값은 레벨이 낮으면 수치가 너무 미미하므로 별 다른 영향을 줄 수 없지만 주인공의 레벨이 커지면 증가율 B값도 커지게 됩니다. 

마지막에 더해주는 보정치는 단순히 현재 레벨에 1을 감산한 값에 보정치를 곱해준 값입니다. 

따라서, 최종적으로 스크린샷과 같은 결과가 도출됩니다.

▲ 1 ~ 99 레벨의 최대 경험치와 보정치

위 경험치 데이터들은 도움말에 있는 공식을 활용하여 엑셀로 결과를 구해본 것입니다. 내친김에 엑셀로 그래프를 그려보면 아래와 같이 완만한 곡선을 보실 수 있습니다. 별 다른 어려움 없이 레벨업을 할 수 있다는 증표이기도 합니다. 

▲ 경험치 곡선(빨간색)

사실 굳이 경험치 곡선까지 분석하면서 스스로 어려운 일을 만들 필요는 없습니다. 아직 알아야 할 것이 태산 같이 쌓여있어서 저처럼 강의를 해야 하는 강의자 입장이 아니라면 한가롭게 경험치 곡선이나 분석 할 시간은 없기 때문입니다. 



경험치 곡선 다음으로 보실 항목은 능력치 곡선(Parameter Curves)입니다. 우리가 눈으로 볼 수 있는 체력이나 마력 게이지는 게임이 시작되기 전까진 그저 숫자로만 되어있는 수치 데이터에 불과합니다. 다른 툴에서는 수치 데이터를 직접 엑셀 등으로 위 경험치 곡선 공식 같은 것을 만들어서 직접 만들어내야 하지만 RPG 만들기 툴에선 놀랍게도 능력치 곡선이라는 편리한 기능을 제공하고 있습니다. 

사실 이 능력치 곡선은 데이터베이스 직업 탭에서 가장 눈에 크게 들어오는 부분일 것입니다. 경험치 곡선과는 다르게 칙칙하지도 않고 알록달록한 색상으로 장식되어있기 때문입니다. 또한 그래프가 너무 직관적이라 이 기능을 모르는 사람도 몇 번 눌러보면 형태에 맞는 능력치를 짤 수 있습니다. 

 

그래프 총 8개가 놓여져있는데 그 이유는 메인 능력치가 8개이기 때문입니다. 메인 능력치는 게임을 많이 해본 사람이라면 누구나 알 수 있는 명칭으로 되어있습니다. 잘 알고 계시듯 MHP는 최대 체력입니다. MMP는 최대 마력을 뜻합니다. ATK 는 공격력이며 DEF 는 방어력입니다, MAT 는 마법 공격력의 약자고, MDF 는 마법 방어력의 약자입니다. 그리고 AGI 는 민첩력 수치를 나타냅니다. 마지막으로 LUK 는 행운 수치입니다. 이 수치들은 모두 전투 시스템과 깊은 관련이 있습니다. 또한 오른쪽에 Features 라는 부분을 보시면 알겠지만 전투 시스템과 메인 능력치 같은 데이터와 연관되어있는 부가 능력치들도 있습니다.

 
▲ Generate Curve

능력치 곡선을 더블 클릭하고 들어오면 위와 같은 창이 뜨게 됩니다. 직관적으로 알 수 있는 그래프가 보이는데 마우스 왼쪽 버튼으로 그래프를 클릭해서 수치를 조절할 수 있게 되어있어서 매우 편리합니다. 또한 마우스 오른쪽 버튼을 누르면 값도 말풍선으로 보여줍니다. 또한 클릭하는 것 조차 귀찮은 분들을 위해 빠른 설정(Quick Setting)과 능력치 곡선 생성(Generate Curve)과 같은 기능도 제공되고 있습니다. 그래프를 해석하는 일도 꽤 쉬운 편인데 Fast 는 말그대로 빠른 성장을 나타냅니다, 빠른 성장을 위해 데이터가 짜여지는 것입니다. 중간에 있는 글자는 약간 짤린 상태인데 Average 라고 해서 평균값을 나타내는 말입니다. 또한 Slow 는 느린 성장을 나타냅니다.  

 
▲ MHP의 빠른 성장 곡선

빠른 성장의 경우, 단 기간에 높은 능력치까지 도달하게 되는 것을 알 수 있고, 느린 성장의 경우 높은 능력치까지 도달하기 위해 많은 레벨업이 필요함을 그래프를 통해 알 수 있습니다. 상단에 8개의 탭이 있는 것도 보이는데 한 번 창을 띄우면 다른 능력치까지 조절할 수 있다는 것을 본능적으로 알 수 있습니다. 사실 능력치는 아래와 같은 공식을 채워서 만들어집니다.

▲ 메인 능력치의 할당 공식

이런 스크립트 코드 구문이 도움말에 나와있긴 하지만 초보자가 보기엔 인간이 알아볼 수 있는 수준이 아닌 것처럼 보일 수 있으므로 간단하게 인간이 알아볼 수 있는 수식으로 만들어보면 아래와 같습니다. 수식의 형태는 기본값에 레벨에 맞는 보정치를 더한 값으로 되어있습니다.

▲ 수식으로 정리된 공식

하지만 능력치 곡선의 빠른 성장과 느린 성장과 같은 곡선 형태에 따라 기본값과 보정치값이 달라지고 개발사에서 곡선의 형태에 따라 위 공식에 어떤 수치를 넣는지 자세하게 알 수 없기 때문에 당장은 위 공식을 중요하게 생각할 필요는 없으며 무엇보다 데이터베이스에서 손쉽게 만들어낼 수 있는 데이터들이기 때문에 신경을 쓸 필요가 전혀 없습니다. 

데이터베이스로 설정할 수 있는 능력치의 한계는 MHP 의 경우 1부터 9,999 까지입니다. (적군은 999,999 까지) MMP의 경우엔 9,999 이며 나머지 능력치들은 999 가 한계입니다. "이 한계를 돌파할 수 있나요?" 질문하고 싶으신 분들도 있을 겁니다. 물론 스크립트를 이용하여 레벨이나 능력치를 마음대로 확장할 수 있습니다. 그런 분들은 능력치 데이터를 더 만들기 위해 위 수식들을 참고를 해야 할 것입니다. 데이터베이스가 만들어낼 수 있는 데이터 범위를 넘어선 상태이기 때문입니다. 

그런데 문제는 데이터 범위의 한계입니다. RPG Maker VX Ace에서는 능력치를 저장하기 위해 테이블(Table)이라는 곳에 데이터를 저장합니다. 이 테이블이라는 구조는 데이터의 범위가 -32,767 부터 32,767 까지가 한계로 정해져있습니다. 이 한계와 능력치가 인플레이션되는 현상을 고려하여 제작해야 하기 때문에 능력치를 무작정 높이기 보다는 개발 단계에서 능력치를 작은 값으로 압축해서 표현하는 것이 더 좋은 습관이 될 것입니다. 


Classes 탭에서의 스킬 설정 부분은 눈으로 보면 누구나 알 수 있겠지만 해당 레벨이 되면 스킬을 자동 익힐 수 있게 설정하는 기능입니다. 스킬을 자동으로 익혀야 하는 게임에선 직업 탭에서 스킬을 설정하면 해당 레벨이 되면 자동으로 스킬을 습득하므로 매우 편리할 것입니다. 수동으로 익혀야 한다면 이벤트에서 Change Skills 라는 기능을 제공하고 있으므로 그 기능을 이용하면 해결될 것입니다. 

▲ Skill 창의 구조

내부적으로 Skill 창은 이런 구조로 되어있는데, 레벨 값은 1부터 99까지만 설정할 수 있고, 오른쪽은 배울 스킬을 선택할 수 있는 에디터 박스가 위치합니다. 하단에 Note 라는 부분은 메모라고 해석할 수 있는 부분인데 주로 스크립트에서 기능을 확장하기 위해 사용합니다. 이 부분에 있는 내용도 변수에 저장되는 데이터이기 때문에 스크립트 에디터에서 읽을 수 있습니다. 그래서 일부 스크립트에선 정규 표현식이라걸 사용해서 숫자값이나 문자열 데이터를 뽑아갑니다. 그래서 해당 스킬에 대한 특별한 설정이나 확장 기능을 사용 할 수 있게 도와줍니다. 이 부분의 구체적 사용 방법은 스크립트를 모른다면 외계어로 보일 수 있는 부분이기 때문에 생략하고 넘어가겠습니다.



RPG 를 하다보면 능력치가 항상 시시각각 바뀌는 상황에 있는 것을 알 수 있습니다. 파티 사냥 중에 다른 파티원이 버프를 걸어줘서 버프가 걸려서 모든 능력치 값이 상승해야 되는 경우도 있고 어그로를 끌다가 디버프 상태에 빠지게 되면서 모든 능력치 값이 저하돼 팀에 악영향을 끼치는 경우도 있습니다. 또한 던전에서 보스를 공략한 후에 보상으로 아이템을 얻을 수 있는데 툴팁(Tooltip) 정보에 나와있는 능력치 값들을 보니 같은 아이템이지만 어떤 아이템은 적중률을 높이고 어떤 아이템은 회피율을 높이고 두 가지 종류로 나뉘어 있기도 합니다. 그리고 얼음 동굴에 있는데 화염으로 공격을 하려고 하거나, 속성에 따라 공격력이 달라져야 할 경우도 있습니다. 게다가 도끼를 착용할 수 없는 직업도 있을 수 있고, 착용할 수 있는 직업군도 있을 겁니다. 그런 경우를 위해 존재하는 기능이 특성(Features) 기능입니다.

 
▲ 이미 많은 것이 미리 설정되어있는 것을 알 수 있습니다

이렇게 상황 별로 시시각각 바뀌는 능력치와 상황을 만들기 위해 특성(Features) 이라는 기능이 제공됩니다. 또한 메인 능력치 이외의 RPG 만들기 툴에 존재하는 명중률, 회피율 같은 부가 능력치들을 이 특성 창에서 설정할 수 있습니다. 위 스크린샷에 많은 것이 미리 설정되어있는데 위에서 보는 것과 같이 실제로 많은 기능이 있어서 할 이야기가 많습니다. 

특성(Features)이라는 기능은 직업(Classes) 탭 뿐만 아니라 액터(Actors)탭, 아이템(Item) 탭, 무기(Weapon)탭, 방어구(Armor)탭, 적(Enemies)탭 그리고 속성(States) 탭에도 존재합니다. 이렇게 능력치를 조작해야 하는 모든 탭에 존재합니다. 이렇게 능력치 변화에 직접적인 영향을 주는 기능이 바로 특성입니다. 무기나 방어구 탭의 부속 기능 정도로 생각하실 수도 있겠지만, 특성도 주인공이나 적 개인이 가지고 있는 일종의 능력치 변수 중 하나이며 최종적으로 누적, 합산된 결과가 전투에 반영됩니다.


목록을 더블 클릭하거나 엔터를 누르면 아래와 같은 창이 표시됩니다. 기본적으로 6개의 탭이 존재 합니다. Rate, Param, Attack, Skill, Equip, Other 순입니다. 첫번째 탭은 Rate 라고 되어있는데 일본어 판에서는 내성이라고 부르는 부분입니다. 

 


Element Rate 는 속성 유효도입니다. 속성 유효도는 최종 데미지 계산에 사용되는 비율입니다. 데이터베이스에서 무기(Weapon)와 적(Enemies)을 만들 때 공격 속성이라는 것을 추가로 지정해줘야 최종 데미지에서 속성 유효도라는 것이 적용됩니다. 

적(Enemies) 탭에서 Element Rate 옵션 지정을 통해 플레이어의 공격 속성에 따라 데미지를 변동시킬 수 있습니다. 예를 들면,특 정 서식지나 던전에서 주인공이 가지고 있는 신성 속성의 무기가 큰 위력을 발휘하도록 설정할 수도 있습니다. 마왕성 같은 어둠이 깔려있는 우중충한 곳에 살고 있는 마물을 상대해야 한다면 상식적으로 신성 계열의 무기와 마법이 더 큰 위력을 발휘해야 한다는 것을 본능적으로 알 수 있습니다. 그럴 땐 속성 유효도 특성을 활용해줘야 합니다. 

속성 유효도는 아래와 같이 Enemies 탭에서 활용됩니다. 

 


위 스크린샷에 강조된 부분을 보면, Element Rate [Holy] * 200% 이라고 되어있는 부분을 보실 수 있습니다. 속성 유효도가 생략되었거나 100 % 로 지정되어있는 경우엔 기본 데미지가 들어갑니다. 그런데 만일 여러분들이 위 좀비를 신성(Holy) 계열의 무기나 마법으로 공격을 가한다면 좀비에겐 평소보다 데미지를 2배 이상 줄 수 있을 것입니다.

예를 들면, Startlight 라는 신성 계열의 마법이 있습니다. 이 마법은 실질 데미지가 400 이며 좀비에게 큰 데미지를 줄 수 있습니다. 이 마법으로 좀비를 공격하게 될 땐 기본 데미지에 속성 유효도가 곱해져서 아래와 같이 데미지가 변동하게 됩니다. 사실 시전자의 마법 공격력과 적의 마법 방어력도 빼줘야 하지만 계산을 편하게 하기 위해 이해를 돕기 위해 아군의 마법 공격력과 적군의 마법 방어력이 0이라고 가정하면 결과는 아래와 같습니다.

최종 데미지 = Starlight의 데미지(400) * [속성 유효도 200%]
최종 데미지 = Starlight의 데미지(400) * (200% / 100.0)
최종 데미지 = 400 * 2.0
최종 데미지 = 800

[속성 유효도 200%] 는 (200 % / 100.0) 과 같습니다. 200 에서 100 을 나누면 2 가 됩니다. 따라서 최종 결과는 800 임을 알 수 있습니다. 마법 데미지가 Holy 속성인 경우에만 속성 유효도에 의해 데미지가 위와 같이 2배로 변동되는 것입니다. 참고로 속성 유효도는 최대 1000%까지 설정할 수 있게 되어있습니다. 1000% 는 평소 데미지 수치보다 10배 더 큰 데미지를 줄 수 있는 수치입니다. 10배라는 값은 10.0 이라는 실수로 반환되어 데미지에 곱해집니다. 곱해지게 되면 10배 이상의 데미지를 줄 수 있게 되는 것입니다. 

속성은 보통 무기 설정에서 속성 타입을 지정하거나 스킬의 데미지 부분에서도 속성을 설정할 수 있습니다. 마법 데미지는 Formula 라는 수식을 통해 결정되는데 내친김에 이것까지 곁들어 설명하겠습니다. 

  
▲ 데미지(Damage) 부분에 Holy 속성이 지정되어있는 것을 볼 수 있습니다

Formula 는 수식이라는 뜻입니다. 전투 스킬에 지정되어있는 위 데미지 공식에 의해서 최초로 데미지라는게 생성됩니다. 여기서 a 는 아군이며 b는 적 대상입니다. 최초 데미지가 이 수식에 의해 생성됩니다. 주의해야 할 점은 이 수식들은 실제 루비 스크립트의 코드로 인식되는 문자열들이라는 것입니다. 그래서 문법 검사도 실시됩니다. 실제 루비 스크립트의 문자열로 인식되기 때문에 실제 변수값도 가져올 수 있고 메시지박스로 메시지까지 띄울 수도 있습니다. 

  
▲ Formula 박스는 실제 루비 스크립트를 적는 공간입니다

Formula 박스는 한 칸 밖에 없습니다. 그래서 긴 스크립트를 작성할 순 없는데 프로그래밍 언어에서 많이 보던 세미 콜론(;) 으로 라인을 구분할 수 있습니다. 딱히 그렇게 까지 할 필요는 없지만, 이 좁쌀만한 공간을 활용해서 뭔가를 만들고 싶다면 필요할 수도 있을 것 같습니다. 그런 작업을 할 땐 루비 스크립트에서 마지막 라인을 반환한다는 사실을 기억하시기 바랍니다. 따라서 마지막에 수식만 반환하게 설정해주면 되는 것입니다. return 같은 키워드 필요없이 그냥 위 스크린샷과 같이 마지막에 수식을 적어주면 됩니다.

▲ 능력치 코드


Damage 부분 에서 Variance 는 수치 분산도를 나타냅니다. 기본값이 20인데 그냥 20의 수치 분산도를 적용하게 되면 데미지가 80% ~ 120% 사이로 분산됩니다. 분산된다라는 것은 데미지가 매 턴마다 항상 같지 않음을 나타냅니다. 항상 같은 100% 데미지로 공격을 가하는게 아니라 난수값이 적용돼 매 턴마다 달라집니다. 따라서 매 턴마다 데미지가 항상 달라지게 됩니다. 평소보다 적은 80%에 가까운 데미지를 입힐 수도 있고, 운이 좋으면 120%에 가까운 높은 데미지를 입힐 수도 있게 됩니다. 아래는 스크립트에 정의된 내용입니다. 인간이 알아볼 수 있는 수준으로 꾸며본 것입니다.  

▲ 수치 분산도의 스크립트 정의

수치 분산도는 사용자의 입맛에 맞게 0% 부터 100%까지 적용할 수 있습니다. 100% 를 적용하게 되면 최종 데미지는 0% ~ 200% 사이로 결정되는 것입니다. 아예 데미지가 발생하지 않을 수도 있는 것입니다. 수치 분산도가 적용되는 시기는 데미지 공식을 확인해야 알 수 있는데 데미지 공식은 아래와 같습니다. 이 공식도 인간이 알아볼 수 있는 수준으로 오른쪽에 주석을 달아봤습니다. 주석 이외의 코드는 굳이 해석 할 필요는 없습니다. 

 
▲ 데미지 공식의 스크립트 정의

일반적인 데미지 공식은 위와 같은데, 사실 이렇게 간단하진 않고 도와주는 메소드들이 잔뜩 있습니다. 그 메소드들까지 소개하기에는 인내심에 한계가 있기도 하고 강의를 읽다가 지쳐버릴 수도 있기 때문에 생략하겠습니다.

디버프 효과는 디버프 효과가 설정된 아이템이나 스킬을 사용할 때 일정 확률로 발동됩니다. Debuff Rate 값은 그 일정 확률에 관련된 값입니다. 이 값을 변경하면 디버프 효과의 성공 확률에 영향을 줄 수 있습니다. 


1000% 에 가까울 수록 디버프에 성공할 가능성이 높아집니다. 행운과 관련이 있는 luk_effect_rate 라는 비율도 디버프 확률에 반영되는데 이 비율값은 적군과 아군의 행운 수치에 따라 바뀌게 되며 아래와 같이 계산됩니다. 즉, luk_effect_rate 는 현재 파티원의 행운 수치에서 적군의 행운 수치를 뺀 값을 일정 비율(0.001 ~ 0.999)로 만든 값이라는 것을 알 수 있습니다. 


Debuff Rate 는 스크립트 내부에서는 실질적으로 0.0 ~ 10.0 로 환산되고 이 값이 행운 비율과 곱해지게 되면 rand 라는 난수와 값을 비교해 디버프 효과 적용 여부를 판단하게 됩니다. 따라서 디버프 효과가 적용되려면 아군의 행운 수치가 적군보다 높아야 하고 Debuff Rate 가 1000% 에 가까워야 한다는 것을 최종적으로 알 수 있습니다.


버프나 디버프 효과가 발동되면 아래 공식에 의해 능력치가 바뀌게 됩니다. 이때 능력치는 아래 공식에 의해 50% 이상 150% 사이의 값으로 변동하게 됩니다. 버프나 디버프는 최대 2번, 중첩 사용이 가능하기 때문에 공식은 아래와 같습니다.
 
 [디버프(-2 또는 -1) 또는 버프(1 또는 2) ] * 0.25 + 1 # 0.5 ~ 1.5 ( 50% ~ 150%)

예를 들어 스킬 목록에 있는 Berserker's Roar(버서커의 포효)란 스킬을 사용하면 5턴 동안 파티원의 공격력이 증가하게 됩니다.이때 버프 효과가 한 번 적용되었으므로 공격력은 5턴 간 기존 공격력보다 25% 만큼 증가하게 됩니다.


Nightmare (나이트메어) 라는 스킬을 쓰면 적에게 디버프를 걸 수 있게 되는데 그렇게 되면 적의 마법 방어력이 대폭 감소하게 됩니다. 이때 디버프가 두 번 걸리게 되므로 적군의 마법 방어력(MDF)은 반으로 줄어들게 됩니다.



아이템이나 스킬의 사용을 통해 적이나 아군의 상태를 바꿀 때 영향을 주는 상태 이상 관련 비율값입니다. State Rate 가 높으면 적에게 상태 이상 마법을 성공적으로 걸 수 있는 확률이 증가합니다. 이 값도 Debuff Rate와 마찬가지로 0% 이상 1000% 사의의 값을 지정할 수 있습니다. 아이템이나 스킬의 사용 대상이 적대적 관계일 경우 아이템이나 스킬의 성공 확률이 100%에 가까워야 하고, 적보다 행운 수치도 높아야 하고State Rate도 1000% 에 가까워야 성공 확률이 더 높아집니다. 하지만 사용 대상이 '적대적 관계'에 있지 않으면 이 확률과 관계 없이 아이템이나 스킬의 성공 확률만을 가지고 판단합니다.

▲ Game_Battler 스크립트에서 상태 추가와 관련된 부분

▲ 'Demon King' 은 'Death' 와 'Confusion' 상태에 빠지지 않습니다. 


특정 상태에 대해 저항력을 가질 수 있는 옵션입니다. 이 옵션을 가지고 있을 경우 특정 상태에 면역 상태가 됩니다. 상태 이상 마법에 당해도 상태 저항인지 체크하는 코드에 의해 상태가 바로 해제됩니다.  


데이터베이스에서는 MHP, MMP, ATK, DEF, MAT, MDF, AGI, LUK 등 8개의 능력치를 레벨 별로 결정할 수 있습니다. 가장 처음에 데이터베이스를 통해 정해놓은 능력치 값이 100% 라고 하고 기준이라고 본다면 기준으로부터 비율값을 높이면 능력치가 상승하고 줄이면 능력치가 데이터베이스에서 주어진 것보다 줄어들게 됩니다. 


비율값은 0% ~ 1000% 까지 조정할 수 있습니다. 기준 능력치를 기준으로 곱해지는데 100% 가 실질적으로 1.0 으로 처리되므로 1000% 면 수치적으로 기준 능력치의 10배가 됩니다.

부가 능력치(Ex-Parameter) 는 전투 진행에 있어 지대한 영향을 끼치는 능력치들이며 기본적으로 0% 로 설정되므로 새로운 직업을 만들거나 적을 설정할 때 반드시 특징 탭에서 퍼센트 값을 설정해줘야 합니다. 

Game_BattlerBase의 xparam 메소드는 Ex-Parameter 로 분류되어있는 값들을 무기나 방어구, 상태, 적 탭에 설정되어있는 모든 부가 능력치 설정값들은 모두 수집하여 최종적인 누적된 수치를 만들어냅니다. 이렇게 누적된 데이터들은 턴제 전투 시스템에서 어떤 전투 요소의 성공 여부를 판단할 때 판단값으로 요긴하게 사용됩니다. 

HIT rate (적중률) 과 EVAsion rate (회피율), Magic EVasion rate (마법 회피율) 은 스킬이나 아이템을 사용할 때 히트 판정에 영향을 주는 비율입니다. 스킬이나 아이템을 사용하려면 먼저 히트 판정이 나야 하는데 히트 판정은 적중률과 회피율 값을 검사해서 판정합니다. 적중률이 높아 적중에 성공해도 상대방의 회피율이 높으면 히트 판정이 나질 않게 되는 것이죠. 즉, 회피율이 높으면 스킬이나 아이템 사용에 실패할 확률이 높아집니다. (이 부분은 Game_Battler 클래스의 item_apply 메소드에 정의되어있습니다) 


그리고 히트 타입(Hit Type)이 '물리 공격'이라면 EVAsion rate (회피율)이 적용되고 마법 공격이라면 'Magic EVasion rate (마법 회피율)'이 적용됩니다. 적중률과 회피율은 난수적인 부분이 있어 예측하기 힘든 부분이 있긴 하지만 대부분은 데이터베이스에 설정되어있는 대로 작용하기 때문에 전투를 설계하기 전에 적중률과 회피율을 확인해 아이템이나 스킬로 영향을 줄 수 있는 지 확인해야 할 것입니다.

CRItical rate 과 Critical EVasion rate 은 결정적인 타격을 가할 수 있는 지와 결정적인 타격을 피할 수 있는지를 판단할 때 사용되는 비율값입니다. 크리티컬 비율이 크리티컬 회피율(CEV)보다 높아야 크리티컬 공격을 성공적으로 가할 수 있는 확률이 증가합니다. 이 판정은 Game_Battler의 item_cri 라는 메소드에서 관장합니다. 또한 크리티컬 확률은 기본적으로 일반 공격의 3배에 해당하는 공격력을 가집니다. 이 3배라는 수치를 고치고 싶다면 Game_Battler 스크립트에서 apply_critical 메소드의 값을 변경하면 됩니다.

Magic ReFlection rate (마법 반사)와 CouNTer attack rate (반격 확률) 은 아군이 아이템이나 스킬을 사용할 때 적군이 마법 반사나 반격을 취할 확률과 관계된 수치입니다. 아군이 물리 스킬 공격을 가했을 때 임의 난수값보다 CNT 비율이 높을 경우 적군은 반격을 하게 되고 아군이 마법 스킬 공격을 가했을 때 임의 난수값보다 MRF 비율이 더 높을 경우 마법 반사를 하게 됩니다. 위에서 말한 두 경우에 해당하지 않을 경우 성공적으로 아이템이나 스킬을 성공적으로 사용하게 됩니다.

HReGeneration rate (HP 재생 비율)과 MReGeneration rate (MP 재생 비율) 그리고 TReGeneration rate (TP 재생 비율) 은 매 턴이 끝나면 자동적으로 HP, MP, TP 가 일정량 상승하게 되는데 이 비율값들은 그 값과 관계되어있는 비율입니다. 재생값은 최대 HP, 최대 MP, 최대 TP(100) 에서 비율값을 곱해서 구하게 되며 이 수치값들은 Game_Battler 스크립트의 regenerate_hp, regenerate_mp, regenerate_tp 메소드에 정의되어있습니다.


Sp Parameter (특별 능력치)는 기본적으로 100% 로 설정되어있습니다. 하지만 특징(Features) 탭에서 게임 세계관과 캐릭터 특성에 맞게 비율값을 변경할 수 있습니다. 


TarGet Rate (타겟 비율) 은 적에게 타겟이 될 확률에 영향을 주는 비율입니다. Game_Unit 스크립트의 random_target 메소드에서 공격 타겟을 설정할 때 사용됩니다. 이 비율값이 낮으면 공격 타겟이 될 확률이 줄어듭니다. 예를 들면 Hide 상태에서는 적의 타겟으로 잘 설정되지 않으므로 공격 받을 확률이 줄어들게 됩니다.

GuaRD effect rate (기본 방어 효과율) 은 턴제 전투에서 방어 커맨드를 선택한 경우 적용되는 비율입니다. 적군에게 타겟이 되어 공격을 받게 될 때 방어 커맨드를 선택한 경우 방어 효과율이 적용되면서 적에게 받는 데미지가 감소하게 됩니다. 이 비율이 높으면 방어 시 적에게 조금 더 적은 데미지를 받게 됩니다. 이 비율은 Game_Battler의 apply_guard 메소드에 영향을 줍니다.

RECovery effect rate (기본 회복 효과율) 회복 효과율은 회복 계열의 마법이나 아이템을 사용했을 때 얻는 최초의 회복 수치에 곱해지는 비율값입니다. 쉽게 말하면 '기본 회복 수치에 영향을 주는 비율값'입니다. 영향을 준다는 것은 회복 스킬의 영향력을 크게 늘리거나 줄일 때 사용할 수 있다는 소리입니다. 기본 회복 효과율이므로 회복 스킬 마법, 포션 류 아이템의 회복 수치에 모두 영향을 주게 됩니다.

PHArmacology (약리학 = 약물로 체력이나 마력을 회복할 경우의 회복 효과율) 은 약리학은 간단히 말하면 체력 포션이나 마나 포션 등과 같은 아이템으로 HP나 MP 를 회복할 때 그 회복 수치에 영향을 주는 비율값입니다. 최초 회복 수치는 기본 회복 효과율과 데이터베이스에 적힌 값을 곱해서 만들어지게 되는데 그 최초 회복 수치 값에 pha 비율값이 곱해집니다. 이 비율값을 잘 이용하면 '아이템'을 사용하여 체력이나 마력을 회복할 때 더 많은 회복 효과를 누리게 만들 수 있습니다. 반대로 아이템을 이용하면 회복 효과를 덜 누리게 만들 수도 있습니다.

MCost Rate (MP 소비율) 은 스킬을 사용했을 때 스킬 소비량에 곱해지는 비율값으로 이 비율값이 높으면 스킬을 사용할 떄 드는 MP 소비량이 증가하게 되고 낮으면 MP 소비량이 감소하게 됩니다. 

TCharge Rate (TP 충전율) 은 아이템이나 스킬을 사용하여 TP 를 충전할 때 획득하는 최종 TP 값에 영향을 주는 비율값입니다. TP(테크니컬 포인트)는 일부 직업군에서 특수 마법을 사용할 때 필요한데 TCR 수치가 낮으면 아이템이나 스킬을 통해 획득할 수 있는 TP량이 낮아지게 되므로 전투 초기에 TP 회복 스킬을 써서 많은 TP를 확보한 후 강력한 스킬을 쓰게 되는 행동을 막을 수 있습니다. 즉, TP 충전율이 낮으면 많은 TP가 필요한 직업군에겐 치명적일 것이며 이는 전투 난이도로 이어질 수 있습니다.

Physical Damage Rate (물리 데미지 비율) 은 물리 공격을 가했을 때 곱해지는 비율 값으로 물리 공격량에 영향을 주는 비율입니다. 이 값이 높으면 물리 공격 시 더 높은 데미지를 줄 수 있게 됩니다.

Magical Damage Rate (마법 데미지 비율) 은 마법 공격을 가했을 때 영향을 주는 비율값으로 마법 공격력에 영향을 주게 됩니다. 이 비율값이 높으면 마법 스킬을 사용했을 때 더 높은 데미지를 가할 수 있습니다.

Floor Damage Rate (바닥 데미지 비율)은 데미지 바닥 타일(Damage Floor) 이 설정된 타일을 밟았을 때 플레이어에게 얼만큼의 데미지를 줘야 할 지를 결정하는 비율입니다. 기본 데미지 값 10 에 이 비율값(FDR)이 곱해지게 됩니다. 따라서 비율값이 높아지면 바닥 데미지 타일을 밟을 경우 데미지를 더 많이 받게 된다는 것을 알 수 있습니다.

EXperience Rate (경험치 획득 비율)은 전투 종료 후 획득 할 최종 경험치량에 영향을 주는 비율입니다. 이 비율값은 최종 획득 경험치 계산에 막대한 영향을 주므로 높을 경우 더 많은 경험치를 받게 되고 낮을 경우 더 적은 경험치를 얻게 할 수 있습니다. 


공격과 관련된 전투 요소를 설정할 수 있는 탭입니다.


Atk Element 는 공격 속성을 뜻합니다. 공격 속성을 부여하면 일부 몬스터에게 큰 데미지를 입힐 수 있게 됩니다. 이 개념은 속성 유효도를 설명할 때 이미 설명하였습니다.

Atk State 는 공격 시 상태를 부여할 수 있는 옵션입니다. (상태는 여러가지 특성에 영향을 줍니다)

Atk Speed 는 공격 속도와 관련되어있습니다. 턴제 전투에서 일반 공격을 선택하게 되면 민첩력이 높은 멤버순으로 정렬된 상태에서 순서대로 적에게 공격을 퍼붓게 됩니다. 민첩력이 높은 멤버가 먼저 공격을 하러 가게 되는 구조로 되어있는데 Atk Speed 를 설정하면 일반 공격 시 Atk Speed 에 설정된 값도 민첩력과 함께 더해지게 되므로 공격 행동을 취하게 되는 순서를 바꿀 수 있습니다. Atk Speed 는 -999 ~ 999 사이의 값을 설정할 수 있습니다.

Atk Time + 는 공격 기회를 나타냅니다. 기본적으로 타겟당 최소 한 번의 공격 기회를 가집니다. 하지만 Atk Time + 를 설정하면 추가 공격 기회를 가질 수 있게 됩니다. 9로 설정하면 최대 10번의 공격 기회를 가질 수 있기 때문에 최대 10번 반복 공격을 하게 됩니다.

특정 스킬을 추가하거나 사용하지 못하게 만들 수 있습니다. 이 탭을 통해 어떤 신체 부위에 장비를 착용하지 못하게 만들 수도 있습니다. 직관적으로 되어있기 때문에 이 부분은 사실상 추가 설명이 필요없을 것 같습니다.


보통 턴제 전투 시에는 파티원 한 명 당 한 번의 행동(일반 공격, 스킬 사용, 아이템 사용 등) 기회를 가집니다. 


Action TIme+ 를 설정하지 않으면 보통은 한 번만 선택할 수 있습니다. 하지만 Action Time+ 을 통해 확률을 설정하면 일정 확률로 추가 행동을 선택할 수 있습니다. 이렇게 되면 총 2번 선택할 수 있게 됩니다.



Auto Battle 플래그가 설정되어있으면 전투를 자동으로 진행하게 됩니다. 
Guard 플래그는 방어 커맨드를 선택한 것과 동일한 효과로 방어 커맨드를 설정했을 때 상태가 방어 상태로 바뀌면서 이 플래그가 자동으로 설정됩니다. Game_Battler 스크립트의 apply_guard 메소드에 적힌 내용대로 데미지가 줄어들게 됩니다. 
Substitute 플래그는 HP가 적은 아군 대신 피해를 받게 하는 플래그입니다. 정확히 말하면 '체력이 최대 체력의 4등분보다 작은 아군'을 대상으로 합니다.
Preserve TP 플래그는 TP를 유지하는 플래그로 원래 전투 시작 시, 0 ~ 25 사이의 TP를 난수값으로 받지만 이 플래그가 설정된 캐릭터는 이전 전투의 TP (테크티컬 포인트, 기술을 사용하려 할 때 필요한 값) 값을 그대로 이어받을 수 있게 됩니다.

적이 죽을 때 적군의 그래픽이 어떻게 사라져야 하는냐를 결정하는 옵션으로 주로 Enemy 탭에서 설정됩니다. 


Boss 방식은 적군의 그래픽이 땅으로 천천히 꺼지면서 사라지는 방식입니다.
Instant 방식은 적군의 그래픽을 즉시 제거하는 방식입니다.
Not Disappear 방식은 적군의 그래픽을 그대로 유지하는 방식입니다.

방식을 설정하지 않으면 투명도가 감소되면서 천천히 사라지게 됩니다.

전투 시작과 관련된 옵션과 보상과 관련되어있는 옵션입니다.


Encounter Half 와 Encounter None 은 엔카운터 시스템과 관련된 옵션입니다. 

Encounter Half (엔카운터 반감)은 전투 발생 빈도를 절반으로 줄이는 옵션입니다. 30 발자국에 한 번 전투가 발생하는 시스템에서 한 걸음 당 1번씩 카운팅된다면 이 옵션이 체크되어있으면 0.5 걸음씩 카운팅되면서 결과적으로 전투 발생 빈도가 줄어들게 됩니다. 

Encounter None (엔카운터 없음)은 엔카운터 시스템을 사용하지 않는 옵션이며 엔카운터가 설정되어있어도 전투가 발생하지 않습니다. 이 효과는 테스트 플레이에서 컨트롤(Ctrl) 키를 누르고 걷는 것과 동일한 효과입니다. 

Cancle Surprise (기습 공격 중지)는 턴제 전투에서 기습 공격을 당하지 않게 해주는 옵션입니다. 이 옵션이 참이라면 파티의 민첩력이 '확률 비교를 위한 난수값'보다 항상 낮기 때문에 기습 공격을 절대 당하지 않게 됩니다. (100% 확률)

Raise Preemptive (선제 공격 확률 올리기)는 선제 공격 확률을 높이는 옵션입니다. 해당 파티의 민첩력이 4배 상승하게 되면서 선제 공격권을 가지게 될 확률이 높아지게 됩니다. (12% ~ 20% 의 확률로 선제 공격권을 가지게 됩니다)

Gold Double 은 말 그대로 전투 보상금을 더블로 받는 옵션이며 Drop Item Double 도 마찬가지로 말 그대로 전투 보상 아이템을 더블로 받는 옵션입니다.