제목: 아마추어 한글화 강좌 4 - 폰트 분석 [] | 작성일: 2011. 2. 19. 06:40 |
[ 안 내 ]
관리자 허락 없이 해당 포스트의 내용을 외부 사이트에 업로드 하거나 배포하는 행위를 절대적으로 금합니다.
되도록이면 링크 주소를 이용해주시기 바랍니다. 상세 공지 참조 ▷ http://wiinemo.tistory.com/524 ◁
그외의 문의 사항이 있으면 wiinemo.kor@gmail.com 메일 또는 블로그 방명록에 글 남겨주시기 바랍니다.
관리자 허락 없이 해당 포스트의 내용을 외부 사이트에 업로드 하거나 배포하는 행위를 절대적으로 금합니다.
되도록이면 링크 주소를 이용해주시기 바랍니다. 상세 공지 참조 ▷ http://wiinemo.tistory.com/524 ◁
그외의 문의 사항이 있으면 wiinemo.kor@gmail.com 메일 또는 블로그 방명록에 글 남겨주시기 바랍니다.
아마추어 한글화 강좌 #4 - 폰트 분석
원래는 바로 다음 강좌는 한글화에서 제일 중요한 '개념' 부분이었는데
지난시간에 폰트에 관한 문의가 많아서 폰트부터 먼저 짚고 넘어가겠다.
1. 폰트란 무엇인가?
폰트는 '글자를 그림으로' 표시한 일종의 이미지이다.
예로들어 어떤 기기나 프로그램이던간에 '가' 라는
단어를 입력한다고 해서 바로 '가'가 출력되지는 않는다.
'가'를 출력하기 위해서는'가'라는 글자의 모양이
해당 프로그램에 내에 폰트로 들어있어야 한다.
이런 '폰트'가 있기 때문에, 어떤 프로그램이던 글자를 출력할 수있다.
OS 윈도우의 경우를 보자
만약 영문판 윈도우를 사용한다면
해당 윈도우내에 '한글' 폰트가 없을 경우
한글을 아예 입력, 또는 표시 할 수가 없다.
(사실 영문판이어도 한글 폰트가 있긴하다...
이 글은 없다는 가정하에... 적는다.)
아무리 '가'라고 입력해봐야 '가'에 해당되는 폰트가 없으니까 말이다.
이는 한글화에서도 같은 법칙으로 작용한다.
모든 게임들은 각각의 게임 내에 폰트가 존재한다.
아주 드문예로 일부 게임들이 게임기의 바이오스
내에 들어있는 폰트를 사용하는 경우가 있지만
(ex PSP, NGC, XBOX 일부 게임등)
대부분의 게임들은 폰트가 해당 롬파일 or 게임파일 내에 100% 들어있다.
결국 게임에서는 게임 파일내의 폰트를 읽어와 화면을 뿌리는 것이다.
결국 폰트는, 파일 전체를 뒤져서 찾으면 된다.
단지 .. 압축을 했거나 어카이브 구조에 따라서
잘 안보일수도 있는 것 뿐이다.
2. 폰트 찾기
사실 폰트찾기는 그렇게 어려운 부분이 아니다.
하지만 아마 독자들이 이 부분에서 많이 막혔을 것이다.
일단 해결방안을 위해 간단한 팁을 주겠다.
1. 첫번째로 폰트가 될만한 파일을 찾아본다.
옛날 롬팩 시절의 게임 한글화의 경우 해당사항이 없지만
2000년도 이후에 나온 게임기 (NGC, NDS, PSP, PS2, PS1) 등
부터는 파일이 롬파일이 아닌 트리형태의 구조로 되어있어서
폰트나 대사 데이타 파일들이 모두 나뉘어 있는 경우가 많다.
이런경우 iso, nds파일에 트리 구조로 각각의 파일이 들어있는데
여기에서 font, res (resource), fnt (font) 등의 의심이 가는 파일을 찾아본다.
2. 파일 구조를 자주 변경해서 찾아본다.
같은 기종이라도 다른 방식을 쓰는 경우가 있다.
예로들어 GBA의 경우, GBA 4bpp, GBA 8bpp 등
팔레트나, 크기 모양에 따라 폰트가 다른 경우가 있다.
이런 경우 일일히 확인해보는 수밖에 없다.
만약 CrystalTile2로 정 못찾겠다 싶으면 YY-CHR등의
다른 유틸리티를 써보는 것도 괜찮을 것이다.
3. 잘찾는 비법 중 하나 - 경험을 많이 해본다.
역시 제일 좋은 경험은, 많이 뜯어보고 많이 열어보는 것이다.
직접 해보는것, 그것 만큼 좋은 경험은 없다.
만약 위에 글을 참고했음에도 불구하고...
정 모르겠다면 아래 글을 조금 참고해보자.
* 다시금 미리 밝혀두지만 이 강좌는 NDS와 무관하게 모든 기종에 대해 서술하는 글이며
이 글에서만 쉽게 설명하기 위해 NDS 사진을 예로 들어 설명한 것임에 유의하기 바란다.
일단 간단한 설명을 위해 예시 사진을 준비해둔다.
예로 뜯어본 게임은 국내에 정발된 '메트로이드 프라임 헌터즈' 라는 NDS 게임이다.
파일을 뜯어보면, 폰트로 의심되는 파일이 있다.
이게 폰트인지 아닌지는 추출후 직접 살펴봐야하지만
대부분의 경우 파일명으로 폰트를 추측해본다.
추측 폴더명: res, fnt, font, text 등
추측 파일명:
font~~~.*
~~~~~~.fnt
~~~~16x15.*
~~~~~*bit.*
위 추측이 100% 맞다고 할 수는 없지만
파일에서 무언가 폰트라는 느낌이 오면 바로바로 뜯어보는게 좋다.
일단은 위에서 의심이 가는 파일인 menu_1bit.bin 파일을 뜯어본다.
딱 얼여보면... 폰트티가 난다.
일반 텍스쳐나 다른 파일인 경우에는
저런식으로 깔끔하게 나오지 않기 때문이다.
폰트인게 거의 확실하다면, 이제 폰트를 맞춰보자.
일단 단색에 맞춰놓고 보이니 잘 안보인다.
NDS로 맞춰봤다... 역시 잘 안보인다.
그래서 이번에는 GB쪽으로 맞춰봤다.
뭔가 보일것 같으면서 안보인다.
... 아마 이렇게 폰트를 분석하다보면 조금식 짜증이 날것이다.
폰트 크기랑 구조가 어떤건지 내가 알바가 없는데 어떻게 맞추라는거지?
사실... 이에 대한 답은 파일 내에 숨어있다.
모든 게임이 그런건 아니지만
폰트가 따로 있는 게임의 경우,
파일 헤더에 폰트에 관한 정보가 들어있는 경우가 많다.
그래야, 해당 게임에서 사용할때 확인도 할 수 있고
프로그램 제작 구조적으로 방법이 용이하기 떄문이다.
(다만 현세대 게임에 한정된 이야기이다.
2000년도 이전에 발매된 GB / GBC / SFC 등의 기종의 경우
통합된 롬파일 형태의 구조라 폰트 정보 찾기가 쉽지는 않을 것이다.)
경우에 따라서는 테이블 코드까지 모두 들어있을 수도 있으나..
뭐... 그건 솔직히 운이 좋은 예이고... 아마 대부분은
'폰트의 가로 크기, 세로 크키' 정도는 찾을 수 있을 것이다.
일단 아까 열어본 파일을 헥스를 열어 최상단을 보자.
위에 주황색으로 표시된 부분을 보면 10 그리고 0B라는 값이 보인다.
이 값이 어떻게 보면 폰트에 대한 '힌트' 가 될 수 있다.
즉 위 값을 세로, 가로 크기라고 가정해보자.
이미 헥스 시간에서 배웠겠지만
[16진수] 10 = 16 [10진수] 이고
[16진수] 0B = 11 [10진수] 이다.
그럼 폰트 크기를 16, 11에 맞춰놓고 잘 찾아보자
16/11 그리고 타일을 '단색'으로 맞춰놓으니
....드디어... 뭐가 보이기 시작한다.
자세히 확인해서 보니 한글이 깔끔하게 보인다.
보았는가? 이렇듯 폰트에 대한 정보가 찾기 어렵다면
약간의 지식만(?) 참조하면 폰트 찾는건 어렵지 않을 것이다.
아무튼.. 한글화는 '눈치'가 빨라야 작업을 편하게 빨리 할 수 있다.
3. 폰트 추출하기
자 이번에는 폰트의 추출이다.
한글화를 하기 위해선, 이 폰트를 '한글'로 바꾸는 과정이 필요하다.
일단 자세한 이야기는 나중에 할 테니, 미리 폰트만 추출해 놓자.
폰트를 추출하는 방법에는 2가지가 있다.
1. 한글화 툴 (YY-CHR / CrystalTile2 ) 등을 이용하거나
2. 해당 게임에 적합한 툴을 찾거나, 직접 만들어서 폰트를 추출하는 방법이다.
1번 방법으로도 거의 대부분의 폰트 추출이 가능하지만
어디까지나 지원되는 기종에 한해서이고....
최신 일부 기종의 경우, 따로 툴이 필요하기도 하다.
어떤 툴이 필요할지는 기종마다 다르니 이 부분은 생략하겠다...
궁금한경우 직접 알아보도록 하자.
여기에서는 CrystalTile2를 이용한 폰트 추출법에 대해 소개하겠다.
먼저 크리스탈에서 아래와 같이 폰트가 보이는 상태로 만든다.
다음 폰트 아무칸이나 선택한후 Ctrl + A를 눌러 전체가 선택되도록 한다.
그 상태에서 편집을 눌러, 이미지 내보내기로 저장한다.
이때 PNG파일로 저장하는게 좋다.
해당 PNG 파일이 생성 되면, 끝난것이다.
해당 폰트 수정에 관한정보는, 추후 번역 및 한글 폰트 만들때 설명하겠다.
* 요 근래에 일이 많아서, 강좌가 조금 늦었다.
혹시 기다리고 있었던분이 있었다면, 사과드린다.
앞으로는 어떻게 될지 모르겠지만, 자주 올리도록 노력해볼 것이다.
5편에서 계속