티스토리 뷰

Application/Debug

에디터 제작

알 수 없는 사용자 2008. 2. 17. 12:07

에디트는 얼마 전까지만 해도 일부 고급 이용자들에게만 알려진 어려운 기술이었다. 이 어려운 것을 단일 프로그램의 에디트를 목적으로 사용하기 쉽게 제작할 수 있는 툴을 만들어, 에디트를 보편화 시킨 사람은 Gemt 의 제작자인 오수택 이다. Gemt 는 16진수(Hex) 데이터 형식의 수치를 편집할 수 있는 에디터의 제작툴이므로 Hex 에디터에 대해 완전한 이해 없이는 제작이 어렵다. 여기서는 바로 이 Gemt 의 사용법에 대해 설명하겠다.

Array

▲ 이번 강의부터는 그림 크게 보기를 지원하는 그림에 "▲" 표시를 넣는다..

Gemt를 실행하면 새로운 에디터를 제작하도록 설정된다. 전에 작업 하던 내용을 불러 오려면 "읽어 오기"를 누르면 된다. 작업 결과는 동일한 폴더의 gemt.cfg 파일에 저장된다.

Array

▲ 필자가 제작한 코룸3 에디터의 File Name 설정 화면

먼저 File Name 버튼은 에디트할 게임의 세이브 데이터 이름을 적는 곳이다. 각 번호마다 그 게임의 세이브 데이터 이름을 확장명을 포함하여 번호순으로 적어두면 된다.

다음으로 데이터 검색 버튼은 찾고자 하는 데이터의 주소를 알아내는데 사용되지만, 이것을 사용하는 것은 좋지 않다. 그러면 데이터 검색 버튼을 사용하지 않기 위해 울트라 에디트로 데이터의 주소를 알아내는 방법을 배워보자.

Array

울트라 에디트로 에디트 하려는 세이브 데이터를 불러온다. 왼쪽에 있는 것이 행번호 인데, 번호를 살펴보면 모두 0으로 끝난다는 것을 알 수 있다. b230 행에서 첫 번째 열의 데이터 주소는  b230 이고, 그 오른쪽의 데이터는 b231 이다. 예를 들어 3d23 이라는 주소에 있는 데이터를 찾으려면 3d20 행의 4번째 열에 있는 값을 찾으면 된다.

Array 

▲ 화면 아래쪽에 주소가 표시된다.

Array

그 데이터를 클릭하면 화면 하단에 (3d23H, 15651) 식으로 주소값이 표시된다. 왼쪽에 H 로 표시된 값은 직접 에디트를 할 때 이용하기 쉽고, 그 오른쪽에 10진수로 표시된 값(15651) 이 에디터 제작에 필요한 값이다. 에디트 하려는 수치를 Alt + F3 으로 찾고, 그 수치의 주소를 적어둔다. 2칸에 표현되는 값은 둘 중 앞쪽의 수치값을 사용한다. 주소를 적었다면 gemt 로 돌아온다. (꼭 멍청하게 따라한다고 15651 적어놓고 안된다고 난리치는 인간들이 있다. 이건 언제까지나 예로 든 것일 뿐이다. Alt + F3 으로 찾은 수치의 주소를 적는거다.)

Array

▲화면 구성 버튼을 누르면 에디터의 제목, 제작자, 데이터가 없을 때 출력될 문장을 입력하는 난이 뜬다. 제목과 제작자는 여러분이 채워 넣고, 세이브 데이터가 없을 때 출력될 메시지에는 간단한 안내문을 적어두자.(ex: 세이브 데이터가 없습니다.)

이 때, 한/영 전환은 [한/영] 버튼이 아니라 Shift + Space Bar 이다.

이제 본격적인 에디터 제작을 시작한다.

Array
▲ 항목 수정 버튼을 누르면 먼저 에디트될 데이터의 이름을 묻는다. 어떻게 입력하든 제작에는 영향을 미치지 않지만, 이용자들이 알아볼 수 있도록 H.P 등의 데이터 이름을 기록한다. 입력한 데이터의 이름은 제작될 에디터에 아래와 같이 나타난다.

Array 

▲데이터 이름이 왼쪽에 나타난다.

다음으로는 데이터의 형식을 묻는다. 0번은 수치형, 1번은 문자열형, 2번은 참고형, 3번은 아이템형 이라고 화면 하단에 설명된다. 가장 많이 쓰이는 것은 참조형과 수치형 인데, 참조형은 데이터 에디트를 위한 항목이 아니라 일종의 안내와 같은 것을 할 때보통 쓰인다.

Array

▲ 참조형의 예

H.P 는 수치형이므로 일단 0번을 입력하고 다음 단계로 넘어간다. 다음으로는 주소 값을 입력하는 난이 뜬다. 여기에 아까 적어둔 주소 값을 넣는데, 이때 주의할 점은 주소 값에 1을 더한 값을 입력해야 한다는 것이다. 이것은 hex 에디터에서는 첫 번째 데이터를 0으로 인식하지만 gemt 에서는 1로 인식하기 때문이다. 주소값을 입력한 다음은 수치의 최대값을 지정하는데, 한 칸에 기록되는 수치는 보통 255나, 99로 설정하고, 두칸에 기록되는 수치는 65535나 999 로 지정하는 것이 일반적이다.

같은 방법으로 M.P 등의 모든 수치를 입력하고 저장하면 에디터 제작이 끝난다. 도움말은 에디터 사용 도중에 F1을 눌렀을 때 나타나는 말을 적는 기능이다.

에디터는 세이브 데이터가 있는 폴더에서 사용해야 하고, 인터넷 등에 배포할 때는 Editor.exe 와 gemt.cfg 두 파일을 압축하여 같이 업로드 하면 된다. 둘 중의 한 파일이라도 빠지면 에디터는 재대로 작동하지 않는다.

주의 사항 - 에디터를 배포하기 전에 반드시 여러 환경에서 테스트 할 것. 테스트 되지 않은 에디터의 대부분은 세이브 데이터를 파괴한다. 그 대표적인 예가 코룸3 이다. 저장된 슬롯 번호, 수치값, 주인공의 위치 등이 세이브 데이터의 주소값에 영향을 줄 수 있다는 것을 명심하고, 충분한 테스트를 한다. 여러분이 만든 에디터는 많은 사람들이 사용할 것이므로, 결함이 있어서는 안된다.

 

 

출처 : http://savant2.com.ne.kr