RPG Maker MV vs MZ 번역: 번역가에게 무엇이 달라지는가
두 엔진은 번역 대상 영역의 대부분을 공유하지만, 플러그인 파라미터, 제어 코드, 그리고 데이터 폴더 구조는 MZ에서 달라집니다. MV와 MZ 프로젝트를 오가는 번역가를 위한 실용 노트.
번역가의 관점에서 RPG Maker MV와 MZ는 90% 동일한 엔진입니다. 둘 다 대사, 선택지, 아이템, 스킬, 용어를 JSON으로 저장합니다. 둘 다 동일한 이벤트 명령 코드(401 대사, 102 선택지, 320/324/325 스크롤 텍스트)를 사용합니다. 둘 다 동일한 제어 코드(\C[1], \N[2], \V[3] 등)를 따릅니다. 남은 10% — 폴더 구조, 플러그인 파라미터 형식, 몇 가지 새로운 이벤트 코드 — 가 바로 번역가가 둘 사이를 오갈 때 발목을 잡는 부분입니다. 이 글은 간단한 참고 자료입니다.
폴더 구조: 가장 눈에 띄는 차이
- MV는 데이터 파일을
www/data/*.json에 저장합니다. 게임 에셋, 플러그인, 그리고 Node로 번들된 런타임이 그 옆에 함께 놓입니다. - MZ는
www/래퍼를 없애고 데이터를 곧바로data/*.json에 저장합니다. 런타임도 더 가볍습니다(기본적으로 Node 번들 래퍼가 없으며, MZ는 NW.js 스타일의 정적 웹 앱으로 배포됩니다).
RuneTranslate에서는 이것이 보이지 않습니다 — 엔진 감지가 두 경로를 모두 살펴보고 존재하는 쪽을 선택합니다. 하지만 무언가를 수동으로 한다면 — 게임 간에 번역을 복사하거나, 외부 편집기로 파일을 확인한다면 — 접두사를 기억하세요.
대사, 선택지, 스크롤 텍스트: 동일함
이벤트 명령 구조는 두 엔진에서 동일하며, 이는 번역 대상 영역이 동일하다는 뜻입니다:
401— Show Text 명령의 대사 줄.405— 동일한 Show Text 명령의 연속 줄(텍스트가 여러 표시 창에 걸칠 때).102— 선택지 옵션 텍스트.320,324,325— 스크롤 텍스트 블록(크레딧, 독백 장면에 사용).
RuneTranslate는 이 다섯 가지를 MV와 MZ에서 동일하게 파싱합니다. 유일하게 다른 것은 어떤 코드가 자주 나타나는가입니다: MZ 스크립트는 기본 템플릿에서 스크롤 텍스트 블록을 더 많이 사용하지만, 그것은 작성자의 취향이지 엔진 차이가 아닙니다.
46자 줄바꿈
MV와 MZ 모두 메시지 창 가장자리에서 대사 줄을 끊습니다. 기본 메시지 창은 기본 폰트 크기에서 한 줄에 약 46개의 싱글바이트 문자를 담으며, 더 긴 줄은 다음 표시 창으로 넘어갑니다. RuneTranslate는 내보내기 시 두 엔진 모두에서 대사를 46자에 맞춰 자동 줄바꿈하여 번역된 줄이 말풍선을 넘치지 않도록 합니다.
주의: 게임이 더 넓거나 좁은 커스텀 폰트를 사용한다면 줄바꿈을 조정해야 할 수도 있습니다. 현재 이것은 RPG Maker 어댑터의 전역 상수입니다. 어색해 보이는 게임을 발견하면, 내보내기 전에 편집기에서 긴 줄을 수동으로 짧게 줄이는 것이 해결책입니다.
플러그인 파라미터 문자열: MZ가 갈라지는 지점
두 엔진 모두 플러그인 설정을 js/plugins.js(MV) 또는 js/plugins.js(MZ — 같은 경로이며 단지 www/ 접두사가 없을 뿐)에 저장합니다. 형식의 구조는 동일합니다: 플러그인마다 PluginManager.parameters 블록을 선언하는 JS 파일입니다. 두 엔진 모두 표시되는 문자열을 그 블록 안에 인라인으로 저장합니다.
차이는 어떤 플러그인이 기본으로 제공되는가와 그것들이 파라미터를 선언하는 방식에 있습니다. MZ의 기본 Yanfly 스타일 플러그인은 구조화된 중첩 파라미터 스키마를 더 자주 사용하는데, 이는 JSON으로 인코딩된 문자열 안에 또 JSON으로 인코딩된 문자열을 만들어낼 수 있습니다. RuneTranslate는 일반적인 중첩 깊이를 처리하지만, 플러그인이 커스텀 인코딩(예를 들어 Base64로 감싼 JSON)을 사용한다면 그 플러그인의 문자열은 수동으로 번역해야 할 수도 있습니다.
실용적인 조언: 프로젝트에서 {"text":"こん..."} 처럼 보이는 문자열을 발견한다면 — 그것은 플러그인이 런타임에 파싱하는 JSON 인코딩 내부 블록입니다. 일본어는 여전히 그 안에 있으며 단지 감싸여 있을 뿐입니다. 번역 후에는 편집기의 찾기·바꾸기로 표본 점검을 하세요.
제어 코드: 동일함, 절대 잃어버리지 말 것
두 엔진은 동일한 제어 코드 계열을 지원합니다:
\C[n]— 텍스트 색상을 팔레트 인덱스n으로 바꿉니다.\N[n]— 액터n의 이름을 출력합니다.\V[n]— 게임 변수n의 값을 출력합니다.\.,\|,\^— 일시정지 / 대기 수정자.
이것들은 번역을 거치며 반드시 원문 그대로 살아남아야 합니다. 제공자가 \N[1]을 누락하거나 손상시키면, 게임은 플레이어 이름 대신 백슬래시로 된 날것의 쓰레기 문자를 출력합니다. RuneTranslate는 제공자에게 보내기 전에 모든 제어 코드를 불투명한 자리표시자로 가린 다음 정확히 복원합니다 — 그리고 어떤 자리표시자가 왕복에 실패하면 해당 유닛은 실패로 표시되어 원래 일본어가 유지됩니다.
실용적인 작업 흐름 팁
- JSON 파일을 수동으로 편집하지 마세요. 수동 수정에는 RuneTranslate의 내장 편집기를 사용하세요. 편집기는 어떤 유닛을 편집했는지 추적하므로 번역기를 다시 실행해도 작업 내용이 보존됩니다.
- 플러그인 파라미터는 마지막에 번역하세요. 대부분의 플러그인 문자열은 수동 편집이 거의 필요 없는 설정 / UI 텍스트입니다. 먼저 대사를 실행하고, 필요한 줄을 수동으로 수정한 다음, 저렴한 제공자로 별도의 패스에서 플러그인을 실행하세요.
- 재번역을 거쳐도 세이브를 유지하세요. 엔진 플레이어는 세이브를 문자열이 아니라 데이터 행 인덱스로 불러옵니다. 이벤트 순서만 바꾸지 않는다면, 플레이어는 영어 재번역을 거쳐도 세이브 파일을 유지할 수 있습니다.
RPG Maker 전체 안내는 RPG Maker 엔진 페이지를 참고하세요. RPG Maker 게임의 번역 제공자를 비교하려면 일본어 게임 번역에 가장 좋은 제공자를 확인하세요.
RuneTranslate를 써볼 준비가 되셨나요?
무료 등급에서 모든 엔진과 모든 번역 제공자가 열립니다. Supporter($3/mo)로 최고 속도가 열립니다.
Windows용 다운로드