자주 묻는 질문

0. 들어가며


※ 게시물 최신 수정일 - 2012.09.01


  RPG Maker XP 이후로 Ruby 스크립트의 지원은 많은 것을 가능하게 해주었습니다. 덕분에 많은 능력자 분들께서 쉽게 가져다 사용할 수 있는 형태로 스크립트 코드를 작성하여 배포하였습니다. 하지만, 애초에 프로그래밍을 모르는 일반인을 대상으로 했던 제작툴이었기 때문에 친절하게 배포된 스크립트를 사용만 하는 것임에도 사용이 미숙한 초심자들에게는 많은 문제와 골칫거리를 가져다 주었습니다.


  여기서는 질문/답변 게시판에 스크립트 관련해서 도움 요청 게시물을 작성하기 전에 스스로 가볍게 자가진단을 할 수 있는 방법을 소개해드리도록 하겠습니다.


  * 본 게시물은 VX 새 프로젝트의 스크립트 오류 관련된 내용에서 수정되었습니다.



1. 기본 점검 사항


  간간히 질문/답변 게시판에서 다뤄지는 사항들입니다. 매우 기본적인 내용들입니다만, 해당 사항들에 대해서 잘 모르시는 분들도 계시기 때문입니다.


1. 스크립트를 제대로 추가했는가?

· 스크립트 에디터의 아무 위치에나 아무렇게 추가해도 스크립트가 정상작동하는 것은 아닙니다.

· 간혹 일어판이나 영문판에서 작업하시는 분들께서 어디에 추가해야 하는지 몰라 발생하는 문제이기도 합니다.

· [▼ 소재]와 [▼ 메인] 사이에 추가해주시면 됩니다.

· [main] 보다 아래쪽의 경우 작동하지 않고, [▼ 소재]보다 위쪽은 오작동이 있을 수 있습니다.

· 추가하는 스크립트 섹션이 여럿일 경우라면 사용법에서 안내하고 있는 순서를 지켜야 합니다.

· 더불어 스크립트 코드를 복사할 때 일부만 복사하거나, 스크립트 코드가 아닌 부분을 복사하는 것을 주의해야 합니다.

· 관련링크 : http://avangs.info/help_faq/437576

· 관련링크2 : http://avangs.info/study_rpg/450971


2. 필요한 리소스를 모두 추가하였는가?

· 스크립트에서 별도의 폰트/그래픽/사운드/데이터베이스/맵 등의 추가 소재를 필요로 하는 경우가 있습니다.

· 주로 스크립트가 적용된 데모파일에 함께 있거나, 스크립트가 게시된 원본 게시물에 같이 있는 경우가 많습니다.

· 스크립트 코드만 추가하고 필요한 소재를 추가하지 않은 경우 정상작동하지 않을 수 있습니다.


3. 사용 툴에 맞는 스크립트인가?

· XP, VX, VX Ace 중 어느 툴을 위해 작성된 스크립트인지 확인해야 합니다.

· RGSS는 XP, RGSS2는 VX, RGSS3는 VX Ace입니다.

· RGSS, RGSS2, RGSS3 모두를 지원하는 스크립트도 일부 있습니다만, 아래처럼 특수한 경우에 한정됩니다.

- RGSS, RGSS2, RGSS3 와 무관하게 작성된 경우.

- 각 버전별로 모두 작성한 다음 통합하여 객체 정의 여부로 작동을 달리하는 경우.


4. 스크립트 사용법에 충실히 따랐는가?

· 모든 스크립트가 추가하기만 하면 알아서 작동되지 않습니다.

· 추가적인 설정이 필요하거나 별도의 사용법이 필요한 스크립트들이 존재합니다.

· 대부분의 배포된 스크립트들은 스크립트의 주석이나 게시된 게시물에서 해당 스크립트 사용법을 안내하고 있습니다.


5. 원본 스크립트를 사용 중인가?

· 간혹 게시판에 스크립트 코드를 작성해 올릴 경우 코드가 변경되는 경우가 있습니다.

· 외부 스크립트를 퍼오다 보면 생기는 문제로 첨부파일이나 원본 게시물의 스크립트를 사용하시기 바랍니다.

· 또한 한글화를 한답시고 번역기에 그냥 돌려서 코드가 변경되는 경우도 있습니다.



2. 각 툴별 점검 사항


  새로이 추가한 스크립트 이전의 문제들에 대한 내용입니다. 위의 기본 점검 사항을 모두 체크해 보아도 문제가 없었지만, 당장 스크립트를 추가해보니 오류창이 뜨고 해당 사항에 대해서 질문해 보지만, 실상은 새로 추가한 스크립트는 정상인 경우에 해당합니다.


※ XP : 

· RMXP Standard Development Kit 전용 스크립트

- 스크립트 코더의 입장에서 XP(RGSS)의 스크립트 구조가 번거롭기 때문에 나온 것이 SDK입니다.

- SDK에 기반하고 있는 스크립트는 먼저 SDK를 추가해야지 정상 작동합니다.


※ VX : 

· 한글판(1.02버전 이하) 새프로젝트 오류

- VX 한글화 과정에서 생긴 오류로 한글판을 사용하는 유저라면 반드시 체크해야 하는 사항입니다.

- 새 프로젝트 작성시마다 발생하기 때문에 매번 조치해야 합니다.

- 아래의 허걱님 게시물에서 한글판 오류 수정본 파일을 받아 재작업하거나, 해당 사항들을 직접 수정해주세요.

- 관련 링크 : http://avangs.info/study_VX/187558

· 영문판 새프로젝트 오류

- VX 영문화 과정에서 생긴 오류로 영문판을 사용하는 유저라면 반드시 체크해야 하는 사항입니다.

- 해외 스크립트 데모파일을 받아 그 위에 바로 작업하는 경우도 체크해야 합니다.

- 일문판이나 한글판 오류 수정본에는 정상적으로 코딩되어 있으니, Game_Interpreter 섹션을 교체 해주세요.

- 관련 링크 : http://avangs.info/kin/703002


※ Ace : 

· 번역기 한글화 데이터 베이스 사용 오류

- 데이터 베이스를 한글화 하는 과정에서 스크립트 코드까지 번역기로 돌려버려 생긴 오류입니다.

- 데이터 베이스 한글화 파일 중 Scripts.rvdata2 파일이 있었는지 확인하십시오.

- 새 프로젝트를 작성하고 원본의 Scripts.rvdata2 로 되돌리시면 됩니다.



3. 스크립트간 충돌


  스크립트 사용과 관련하여 가장 많이 경험하는 것이 스크립트 충돌입니다. 사용하는 스크립트 중에서 서로 건드리는 부분이 같거나 서로 영향을 주는 경우가 있을 경우 스크립트의 처리가 이상하게 되면서 에러메세지를 팝업하게 됩니다. 서로 연관된 기능의 스크립트를 사용하지 않거나, 동일한 스크립트 코더의 스크립트를 사용하는 것도 이를 회피하는 하나의 방법입니다. 스크립트를 추가하기 전에 백업을 해두는 습관을 통해서 예방할 수 있습니다.


1. 스크립트의 위치를 수정

· 가장 많이 쓰이는 임시방편으로 의료에 빗대자면 민간요법에 해당하는 방법입니다.(그리 좋은 방법이 아닙니다.)

· 해결되는 것 같더라도 겉으로 크게 드러나지 않을뿐 오히려 병(오류)을 키우는 방법이 될 수도 있습니다.

· 이 방법으로 문제가 해결되는 경우도 있지만, 조삼모사인 경우가 많습니다.

  (A스크립트의 오류에서 B스크립트의 오류로 전환)

· 이 방법으로 해결될 문제라면 앞서 소개한 기본 점검 사항중 4번 항목에 해당하는 경우도 많습니다.


2. 문제를 일으키는 스크립트를 제거

· 실질적인 문제 해결 방법 중 하나입니다.

· 추가한 스크립트 중에서 서로 동일한 class나 module을 사용하는 경우 의심해 봐야 합니다.

· 위의 내용을 만족하면서 같은 함수를(def ~) 재정의하는 경우라면 십중팔구는 문제 관련 스크립트입니다.

· 미리 백업한 파일이 있다면 과감하게 되돌려줍시다.


3. 서로 문제가 되는 부분을 직접 수정

· 가장 이상적인 방법이자 가장 어려운 방법입니다.

· 이 글을 읽는 독자라면 혼자서 해결하기 어려운 부분이므로 질문/답변 게시판에서 다른 분들의 도움을 받도록 합시다.

· 질문/답변 게시판에 위 문제로 문의할 경우 스샷 몇 장, 질문 몇 줄로 때우려는 안일한 생각을 지녀서는 안됩니다.

- 오류가 발생하는 시점/조건에 대해서 상세하게 작성합니다.(오류를 수정하려고 게임을 엔딩볼순 없습니다.)

- 문제가 일어난 프로젝트 파일을 게시물에 첨부합니다.(오류 덩어리를 좋아할 사람은 없으니 맘놓고 올리세요.)

- 사용하고 있는 스크립트가 게시된 게시물의 링크/획득 경로를 소개합니다.

- 빨리/급해요 라는 제목으로 질문을 게시하지 맙시다.(빨리 안돼니까 어려운 겁니다.)



4. 스크립트 자체 오류


  스크립트 자체 오류는 드물지만 은근히 있는 부분입니다. 딱히 뛰어난 능력의 스크립트 코더의 스크립트라고 해서 완전무결하고, 능력이 모자라는 스크립트 코더의 스크립트라고 해서 오류가 있는 것은 아닙니다. 오히려 실력있는 스크립트 코더의 스크립트들이 복잡한 코드인 경우가 많다보니 자체 오류도 비교적 많은 편입니다. 자체 오류인지 아닌지에 대해서는 오류가 없는 새 프로젝트에서 해당 스크립트만을 가지고 테스트를 해보는 방법으로 쉽게 판별이 가능합니다.


1. 작성자에게 도움을 요청

· 버전업 때마다 다른 곳의 조력을 얻어 수정할 수 없기 때문에 작성자에게 피드백을 받는 것이 가장 좋은 방법입니다.

· 다만 그들도 여러분과 같이 사생활이 있는 인간이므로 문제가 해결될때까지 느긋하게 기다리는 자세가 필요합니다.


2. 원본 게시물 댓글이나 인터넷에서 해결법을 검색

· 대걔 여러분들이 겪는 문제는 다른 사람들이 이미 겪은 문제인 경우가 많습니다.

· 원본 게시물의 댓글에는 해당 문제에 대해서 작성자에게 도움을 요청하는 댓글과 그 답변이 있는 경우가 많습니다.

· 또는 국내외 다른 커뮤니티에서 해당 문제에 대해서 질문/답변한 게시물이 있을 수도 있으므로 적극검색합시다.

· 질문/답변 게시판에 게시물을 작성하려고 마음 먹은 사람이라면 다시 한번 검색합시다.

3. 질문/답변 게시판에 문의

· 마지막 최후의 방법이자 마지노선입니다.

· 앞서 언급한 스크립트간 충돌시 질문/답변 게시판 문의 요령과 동일한 방법으로 문의하도록 합니다.



5. 나가며


  여기까지 스크립트 오류 발생시 해당 문제의 원인을 파악하고 해결할 수 있는 자가진단 방법에 대해서 가볍게 살펴보았습니다. 스크립트로 일으킬 수 있는 문제는 무궁무진하기 때문에 이것만으로 모든 문제에 대한 해결이 가능하지는 않겠습니다만, 기본적인 수준에서의 문제에 대한 대응은 어느 정도 가능하리라 생각합니다.


  항상 프로젝트의 백업을 생활화 하시고 안전하게 작업을 진행해 나가시길 바랍니다.


Who's 습작

profile

* 게임소재 자료실 관리자 (2012.04.17 ~ ) / 게임리뷰 게시판 관리자 (2012.08.23 ~ )
* 개인 블로그 : https://eternalworld.tistory.com
└ RPG Maker VX/Ace 메뉴 편집기 등 배포
* 리뷰 블로그 : https://etude87.tistory.com
└ RPG Maker 시리즈 한글패치 정리, 쯔꾸르 시리즈 이용 규약 등 소개
* 프리 게임 한글화 DB : https://freegame.tistory.com
└ 한글화된 해외 무료 게임 정리