[게임 한글화 강좌]메인 페이지[게임 한글화 강좌]메인 페이지

Posted at 2011.09.01 00:09 | Posted in 이전 카테고리/한글화 강좌 시즌 1


게임 한글화 강좌는 시즌 2 연재중입니다.

강좌 소개 : 게임의 한글화가 어떤 작업인지 소개하며 실습을 통해 실제 게임 한글화의 과정을 알아봅니다.
게임 한글화에 도전해보고 싶으신 분들에게 추천하는 강좌입니다.

다만 이 강좌는 PC게임 한글화에는 적합하지 않으므로 PC 게임 한글화에 관한 내용은 다른 강좌를 읽어주시기 바랍니다.

시즌 2 강좌에서는 닌텐도DS 뿐만 아니라 다양한 기종의 한글화에 대해서도 안내해드리며
시즌 1 강좌도 보충/추가 업데이트 예정입니다.

중/고급 강좌도 같이 진행합니다.

업데이트 내역
2011/09/01 - 중급 강좌 1편 업데이트됨
2011/08/29 - 초급 강좌 5편 (Season 2) 업데이트됨


-------------------- 초급 강좌 -----------------
 

----------------- Season 1 -----------------

[2011/03/19] 제 1장 - 게임 한글화의 개요

[2011/03/20] 제 2장 - 게임 분석하기 1편 (이론편)

[2011/04/01] 제 3장 - 게임 분석하기 2편 (실습 1편)

[2011/04/09] 제 4장 - 게임 분석하기 3편 (실습 2편)

시즌 1 강좌는 이론을 중점으로 작성되었습니다.
기본적인 사항들에 대해 알고 계시다면 시즌 2 강좌를 참고하시기 바랍니다.
----------------- Season 2 
-----------------
 

제 5장 - 포인터의 개념 - 업데이트 되었습니다.


제 6장 - 제어코드 - 작성중입니다.


제 7장 - 고유번호와 폰트 확장 - 작성중입니다.


제 8장 - 게임의 그래픽과 팔레트 - 작성중입니다.


제 9장 - 데이터 압축 LZ77 - 작성중입니다.


시즌 2 강좌는 한글화 작업을 실제로 해보면서 배워가는 강좌입니다.
한글화 특성상 게임마다 구조가 다르기 때문에 모든 게임의 한글화에 대해 알 수 없겠지만
이를 해결하는 테크닉 등도 알려드립니다.


----------------- 중급 강좌 -----------------

제 1장 - 하드웨어 구조를 이해하자

제 2장 - GB(게임보이) 하드웨어 구조

중급 강좌는 게임기의 하드웨어 구조(Specifications,흔히 말하는 스펙) 에 대해 차근차근 알아보는 강좌입니다.
어떤 게임이든 한글화를 하기 전에 해당 게임기의 구조를 알면 좀더 쉽게 한글화가 가능합니다. 
 

----------------- 고급 강좌 -----------------

제 1장 - 폰트 확장에 도전해보자! 제 1편

고급 강좌는 게임 시스템 코드를 수정하여 게임을 한글화 하는 방법에 대해 알아봅니다.
폰트 확장/인터페이스 수정 등에 대해서도 알아봅시다.

폰트 확장편에서는 [포켓몬스터 적]의 폰트를 확장해봅니다.
처음 보시는 분들은 햇갈리실 수도 있지만 고유번호나 제어코드에 대해 이해하고 계시다면 어느순간 내용이 이해가 되실겁니다.
배포된 한글패치 버전에서는 더 많은 루틴이 삽입되었으나 강좌에서는 폰트 확장에 필요한 부분만 해볼 예정입니다.


----------------- 특별 강좌 -----------------

[2011/05/18] 특별 강좌 - NFTR 폰트에 대해 알아보기!

만든 패치를 배포해보자! Xdelta 사용하기

iOS 어플리케이션의 구조
저작자 표시 비영리 변경 금지
신고
  1. 게임만 한글화 하는군요. 게임을 안해 모르지만 게임 외의 한글화된 프로그램을 많이 접했는데 대단히 힘든 작업 같았어요. 해 보신 분이 잘 알겠지만 한글화 간단하지 않을 것 같아요.
    • 2011.05.06 18:52 신고 [Edit/Del]
      프로그램 한글화는 리소스로 이루어진 경우가 많아서 비교적 쉬운편이긴 하지만 한글화 자체가 상당히 근성이 필요한 작업 같습니다. ㅎㅎ
  2. 시리우스
    파이팅! 폰트확장강의를 보는날까지!
  3. 비밀댓글입니다
  4. 비밀댓글입니다
    • 2011.07.06 09:58 신고 [Edit/Del]
      대사 파일 보다는 우선 폰트 파일을 찾으셔야 할것 같습니다.
      게임 기종에 따라 다르지만 크리스탈 타일의 타일보기 메뉴에서 여러가지 방식의 타일을 선택해서 찾아보시기 바랍니다.
  5. 도와주세요
    폰트 찾으려고 프로야구팀을만들자2라는 게임을 열었는데 폴더가 FSI.CT하고 PACK 밖에 없네요 ; PACK에는 sound_date.sdat하고 ytkykApp.pac 밖에 없어요... 폰트를 못찾겠음;
    • 2011.07.29 01:32 신고 [Edit/Del]
      폰트가 arm9.bin이나 ytkykApp.pac 둘중에 한곳에 있겠군요.
      pac 파일은 이름만으로 볼때는 패키징 파일인것 같습니다.
      프로야구팀을만들자1은 한글화 된걸로 알고 있으므로 해당 롬파일을 참고하는것도 좋을 것 같습니다.
  6. GameCube
    제목만 봐도 참으로 알차보이는 강좌목록이로군요.
    제대로된 한글화강좌를 찾기가 쉽지가 않은데
    정말 감사합니다.
  7. GameCube
    여기서 물어보는게 될지 모르겠으나 일단 한번 질문을 올려봅니다.
    폰트확장을 하기위해선 코드를 수정해야하는데 그 코드는 어떤 프로그램을 사용해야 수정이 가능한건가요?
    081B126A 46C0 nop 를
    081B126A 46C0 lsl r1,r2,10h 로 바꾼다던지
    참고로 GBA기종입니다. 감사합니다.
    • 2011.08.28 09:48 신고 [Edit/Del]
      GBA 기종의 폰트 확장은 NO$GBA라는 프로그램으로 수정을 한 뒤 코드를 보고 Hex 에디터에서 수정해주면 됩니다.
      또는 NO$GBA에서 DUMP 기능을 사용하여 텍스트 형태로 덤프를 한 뒤 프로그램을 제작해서 이를 코드로 변환해주는 방법이 있습니다.
  8. 비밀댓글입니다
  9. 비밀댓글입니다
    • 2011.09.03 10:40 신고 [Edit/Del]
      예전에 저도 그쪽 카페 회원이었고 아이폰용 역전재판등을 진행하고 있었으나 당시 카페스탭이었던 드로아크의 행패와 운영진의 대처가 흐지부지해서 그 카페를 나온겁니다.^^
      아이폰 한글화 강좌도 작성할 예정입니다.
      기대해주십시오.
  10. 항상 쌩초보 강좌만 보면서
    좀 더 업그레이드 판은 없을까하고 생각했는데...
    딱 좋습니다 !!
    완전 고급판으로 그래픽 & 대사 압축 해제 및
    내장 폰트나 고유번호 체계(예를들면 한자를 쓰지 않는 게임에서 1바이트로만 폰트를 표현하던데 2바이트도 제어코드 피해서 폰트로 쓸 수 있게 만들기)나 2바이트인 포인터를 3바이트로 늘리기(폰트의 위치를 아예 옯겨서 수정하다보면 - 롬 확장 후 폰트 바로 뒷공간에 빈공간이 없어서 아예 롬이 확장된 곳으로 폰트를 옮겨서 바로 뒤에 빈공간에 생기게 하기 - 기존 폰트 시작 주소가 (YY-CHR로 봤을 경우) 2D595C입니다. 바이트 플립하면 5C 59 2D 근데 폰트 시작 포인터를 찾아보면 5C 59만 나오더군요. 이것을 만약에 301010으로 옮겼다고 칩시다. 그런데 2D1010에 대사가 한개 있어서 그 대사의 시작 포인터를 보면 10 10 인데 새로 옮긴 폰트 시작 포인터도 10 10 이던데 말이죠. 이걸 3바이트까지 늘려버리면 대사 시작 포인터는 10 10 2D가 되어 버리고 폰트 시작 포인터는 10 10 30 이 되어서 중복될 일이 없을텐데 말이죠...? 물론 같은 뱅크에 있지 않을 경우에는 문제가 없지만 같은 뱅크에 있는 경우에는 이런 문제가 생기는 것 같아서요 이런 게임이 존재하는 지는 모르겠지만) 를 바꾸기 등등은 너무 힘드시겠죠...?
  11. fnt
    혹시나 비트맵 폰트 구조 알고계신가요?

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[게임 한글화 특별 강좌]NFTR 폰트에 대해 알아보기! 제 1편[게임 한글화 특별 강좌]NFTR 폰트에 대해 알아보기! 제 1편

Posted at 2011.05.18 01:27 | Posted in 이전 카테고리/한글화 강좌 시즌 1
오랜만에 쓰는 한글화 강좌입니다~

NFTR 폰트에 대해 궁금해 하시는 분들이 많아서 특별 강좌를 작성합니다.


추천은 블로깅에 큰 도움이 됩니다!
손가락 한번 꽉 눌러주세요!


본편에서도 말씀드렸듯이 NFTR 폰트는 Nitro FonT Resource의 약자로 닌텐도 DS SDK(닌텐도 DS 게임 개발 키트)에서 제공하는 표준 폰트 방식입니다.

따라서 개발자가 닌텐도 DS SDK 표준을 따른다면 NFTR 폰트를 사용할 것이고 그렇지 않다면 다른 폰트를 사용하게 됩니다.

그렇다면 NFTR 폰트는 어떻게 이루어져 있는가 알아봅시다.

NFTR은 폰트 헤더, 파일 정보 헤더, 폰트 이미지, 폰트 너비, 폰트 맵(테이블) 총 5가지 영역으로 구성되어 있습니다.
(다만 같은 영역이 여러개 존재합니다.)
폰트 헤더 영역에는 각 영역의 위치 정보와 파일 크기, 헤더 크기, 파일 갯수등의 정보가 들어있습니다.

NFTR 폰트의 헤더 영역입니다.

NFTR 파일임을 알려주는 RTFN 매직스탬프(바이트 플립이므로 거꾸로하면 NFTR)와 코드가 들어있고 파일의 크기와 헤더 크기, 포함된 파일 갯수 등의 정보가 들어있습니다.

NFTR 폰트는 단순 파일이 아니라 여러가지 파일이 패키징 되어있는 형태입니다.
즉 파일 정보 헤더, 폰트 이미지, 폰트 너비, 폰트 테이블등이 모두 별개의 파일이지만 패키징 되어 하나처럼 보이는 것입니다.

또한 모든 값인 바이트 플립(Byte Flip)화 되어있는데 바이트 플립이란 데이터를 거꾸로 배열하는 것을 말합니다.
즉 0x00 0x30 0x25 0x10 이라는 값이 있다면 0x10 0x25 0x30 0x00 이렇게 바이트 단위로 잘라 거꾸로 저장하게 됩니다.
이유는 컴퓨터가 데이터를 읽을 때의 방식 때문이지만 자세히 설명하지는 않겠습니다.

다음은 파일 정보 헤더를 보겠습니다.

정보 파일은 FNIF(바이트 플립이므로 실제로는 FINF, File Information)로 시작하며, 각 데이터 영역의 위치와 기본적인 폰트 정보가 들어있습니다.
(0x1E-0x1F는 출력시 실제 폭과 색상에 관한 데이터 같으나 확실하지는 않습니다.)
폰트 이미지 데이터의 값이 0x34, 0x00 , 0x00, 0x00 이므로 거꾸로하면 0x00000034(0x34)가 됩니다.
단 실제 위치는 각 데이터 값에서 0x08 만큼을 빼주어야합니다.
0x34 - 0x08을 하면 0x2C가 되고 0x2C의 데이터를 보시면 PLGC라는 값이 보이는데 이것이 바로 이미지 데이터의 헤더입니다.

물어보신 분들이 정확히 어느 부분이 궁금하신지 몰라서 우선 1편은 여기에서 끊도록 하겠습니다.
이 부분까지 이해하셨다면 뒤부터는 이해하기 쉬운 편이므로 추가로 궁금하신 사항이 있으신 분들은 댓글 남겨주시기 바랍니다.

뒤 강좌는 이후 남기도록 하겠습니다.

저작자 표시 비영리 변경 금지
신고
  1. 시리우스
    오오~ 드디어 업데이트로군요

    잘 이해는 안가지만 아- 이런거구나 싶네요!


    으으.. 폰트확장도 이걸 알면 할 수 있을까나..
    좋은 정보입니다!
    • 2011.05.19 12:50 신고 [Edit/Del]
      이 부분만 이해하신다면 뒤는 쉽습니다 ^^
      폰트확장은 기종에 따라 다르기때문에 이 강좌만 봐서는 NFTR 폰트에 대한 것만 아실 수 있습니다.
  2. ds3nyi
    안녕하세요~ 예전에 풍운대농성 한글화패치제작을 부탁했던 미리내라고 합니다.. 늦게 인사드려서 죄송합니다~.
    nftr폰트에 대해서 자세히 모르고 한글화를 해왔었는데요.. 이 강좌를 통해서 좀더 좋은 퀄리티의 한글화를 할 수 있겠네요.
    이렇게 시간내어 좋은 강좌 올려주셔서 감사합니다~
  3. 일광면
    잘봤습니다.
  4. 앨리스한글화원함
    안녕하세요^^ 앨리스매드니스리턴즈라는 게임을 자력으로 한글화하려고 자료를 찾다가 들리게되었습니다! 분명히 메모장으로 자막을 열어서 한글로하면 게임상에서는 네모박스로 떠서 난감합니다; 아무래도 폰트가 필요한 것 같은데.. 대개 폰트파일은 어디에 있나요?ㅜㅜ 확장자명이 UPK인 파일을 프로그램으로 열어서 작업해야 되나요? 헥사코드로?
    • 2011.07.06 09:56 신고 [Edit/Del]
      폰트가 있는 위치는 게임에 따라 다릅니다.
      그리고 게임 자체가 한글 코드를 인식하지 않는다면 일본어 폰트를 한글로 바꿔서 작업해야하기 때문에 메모장으로 수정하는건 바람직한 방법이 아닙니다.
  5. 한글화초보
    더이상 한글화 강좌는 올라오지 않나요? 포인터에 대한 개념을 확실히 알고 싶은데..

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[게임 한글화 강좌]제 4장 - 게임 분석하기 3편[게임 한글화 강좌]제 4장 - 게임 분석하기 3편

Posted at 2011.04.09 19:30 | Posted in 이전 카테고리/한글화 강좌 시즌 1


본 강좌의 무단 스크랩을 금지합니다.
문의사항은 댓글 또는 mingi2007@gmail.com 으로 메일 주십시오.


4장, 실전 강좌 2편에서는 실제로 게임의 대사를 바꾸는 방법을 알아보겠습니다.
실전 강좌 1편과 연결되는 내용이므로 읽지 않으신 분들은 반드시 1편을 읽어보시기 바랍니다.

 

우선 크리스탈 타일2로 롬파일을 열고 이전 강좌에서 보쿠관DS는 Shift-JIS 인코딩을 사용한다는 점을 알았으므로 인코딩을 일본어(Shift-JIS)로 설정합니다.

한국어[GulimChe]라고 되어있는 부분을 클릭하면 윈도우에서 지원하는 기본 인코딩들의 목록이 나타납니다.
(한글 윈도우에서는 기본적으로 한국어라고 설정 되어있으며, 한글화 하려는 롬파일이 한국어 인코딩으로 되어있는 경우는 없습니다 ^^;)

에뮬레이터로 원본 롬파일을 열고 수정하려는 대사를 찾습니다. 

그 다음 크리스탈 타일에서 Ctrl+F를 누르고 수정하려는 대사를 입력합니다. 


위 이미지처럼 수정하려는 대사가 검색됩니다.
만약 검색되지 않는다면 인코딩이 맞지 않거나 대사 파일이 압축되어 있는 경우입니다. 

그럼 이제 대사를 수정해보겠습니다

대사를 수정하려면 한글 테이블을 불러와야합니다.
한글 테이블을 불러오기위해 TBL -> TBL 사용을 누르고 불러올 테이블 파일을 선택합니다.

 
보쿠관DS에 사용할 한글 테이블 파일을 첨부합니다.

이전 강좌에서 받은 테이블과는 다르게 띄어쓰기나 문장부호등의 코드가 추가되어 있으므로 새로 받으시기 바랍니다.

한글 테이블을 불러온 뒤 해당 대사 위치에 한글을 입력하고 저장합니다.
대사를 입력할때 주의할점은 대사 길이가 원본보다 늘어나면 안된다는 점입니다.

만약 대사 길이를 원본보다 더 길게 입력해야할때는 포인터라는 것을 수정해야합니다.
이 포인터에 대해서는 이후 강좌에서 알아보겠습니다.

또 주의점은 대사의 끝에는 항상 대사의 끝을 알려주는 종료 코드가 들어가야합니다.
일부 게임의 경우 대사 길이값이 따로 주어지는 경우도 있지만 종료 코드가 존재하는 게임이 많습니다.

일반적인 S-JIS인코딩을 사용하는 게임에서는 대부분 [0x00]이 종료코드로 사용됩니다.
대사가 끝나는 부분에 헥스코드로 00을 입력합시다.

한글 입력 성공!

대사를 수정하고 에뮬레이터로 불러오면 아까 입력했던 대사가 나오는걸 보실 수 있습니다!
수정하고 대사가 바뀌지 않는다면 다른 곳에도 같은 대사가 존재하는 경우입니다.(흔히 낚시 대사라고 하는 경우이거나 중복된 대사가 있는 경우입니다. ^^;)

이번 실전 강좌에서는 실제로 한글화 하는 과정에 대해 소개해드리기 위해 간략하게 설명하였습니다.
보쿠관DS를 강좌에 선택한 이유는 우선 폰트와 대사가 압축되어 있지 않고, 파일 구조가 표준 타입이며 비교적 간단하기 때문입니다.
모든 게임이 이렇게 간단하면 좋겠지만 실제로 게임중에는 표준 타입을 사용하지 않는 게임이 훨씬 많습니다.
따라서 많은 게임을 뜯어보고 여러가지 파일 구조를 많이 접하게 되면 노하우 등이 생기게 되므로 많이 시도해보시면 좋습니다~

그럼 이 다음 강좌에서는 위에서 말씀드린 포인터에 대해 알아보겠습니다.
이 포인터라는 것은 C언어를 배우실때 배우는 포인터와 같은 개념으로 대사의 위치를 저장하고 있는 주소값입니다.

다음 강좌도 기대해주시기 바랍니다~

저작자 표시 비영리 변경 금지
신고
  1. 한글화
    안녕하세요. 혹시 테이블표를 수정할수도 있나요? 예를 들어 8900=가 이런식으로 원하는 위치에 한글을 넣을수도 있나요? 테이블표에 0001이 아니라 889F부터 시작하는 이유는 무엇인가요? 그리고 새로운 테이블표에 문장부호는 1바이트짜리써도 되는것인가요? 뒤에 2바이트문자랑 혼돈되지 않는가요?
    • 2011.04.10 00:23 신고 [Edit/Del]
      안녕하세요.
      테이블표가 0001부터 시작되지 않는 이유는 일반적인 인코딩은 ASCII 코드에 각 고유코드를 합친 형태입니다.
      00-7F 까지의 코드를 ASCII 코드 영역으로 사용하고 80 이상부터는 각 인코딩 영역으로 사용됩니다.
      새로운 테이블의 문장부호가 바로 ASCII코드이며 모든 ASCII코드는 1바이트입니다.
      마지막으로 SJIS는 JIS에서 발전된 인코딩입니다.
      한자 영역이 889F부터 시작되는 이유는 SJIS 제정당시 JIS에서 변환을 하기 위해 공식을 만들었는데 이 공식에 맞추어보면 SJIS에서 한자영역은 889F부터 시작되게 됩니다.
      보쿠관의 경우 NFTR을 사용하므로 말씀하신것처럼 코드 수정이 가능할 지도 모르겠지만 시도를 해보지 않아서 정확한 답변을 드릴 수는 없겠네요 ^^;
  2. 한글화
    테이블표를 불러오면 889F 이전의 숫자나 영문자는 사용이 가능한건가요? 1바이트짜리 문장부호는 덮어쓰지 않아도 이미 아스키코드에 있는것이 아닌가요? 그리고 대사의 끝이라는건 한화면을 뜻하는건가요? 엔터전까지를 뜻하는건가요? 아니면 위에 보이는 첫화면에서 비행기에 까지 한줄을 뜻하는건가요?
    • 2011.04.10 09:14 신고 [Edit/Del]
      무슨 말씀이신지 모르겠습니다.
      테이블표라는건 그냥 헥스코드를 테이블표에 맞는 단어로 바꿔주기 위해 있는 것입니다.
      테이블표에 없는 문자라고 사용하지 못하는게 아니라 그냥 크리스탈 타일 우측에 표시되지 않는것 뿐입니다.

      대사의 끝은 게임마다 다르지만 보쿠관에서는 한 줄마다 종료 코드가 있습니다.
      하지만 대부분의 게임은 줄내림 코드를 사용하지요.
  3. 일광면
    낚시 대사 같은경우는 다버깅을 해서 대사뭉치의 처음 포인터를 읽어오는부분만 알고있다면 낚일필요가 없죠! 헤헤 잘보고 갑니당^^;
  4. 한글화지망생
    제가 좋아하는 게임을 하나 한글화 할려는데 크리스탈 타일로 여니까.. 있으라는 data 디텍토리는 없고, 죄다 bin 파일 뿐이네요.. GAN은 망해서 한글화 자료를 구할 수도 없고 ㅠㅠ
  5. 한글화가자
    이거 한글화 할려고 하는데 글자를 어떻게 16진수로 바꾸나요?
  6. 압축된 대사파일은 어떻게 찾나요...?

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[게임 한글화 팁]에뮬레이터의 기능을 이용하자[게임 한글화 팁]에뮬레이터의 기능을 이용하자

Posted at 2011.04.04 09:00 | Posted in 이전 카테고리/한글화 강좌 시즌 1
안녕하세요.
처음으로 게임 한글화 팁을 소개해드리고자 합니다.

* 이 팁은 게임보이게임보이 어드밴스 게임의 그래픽을 찾을때 사용할 수 있는 팁입니다.

준비물은
VisualBoyAdvance와 한글화할 롬 파일입니다.

이 강좌에서는 슈퍼 마리오 어드밴스로 도전해보겠습니다.


우선 VisualBoyAdvance로 게임을 실행하고 찾을 그래픽이 있는 화면까지 갑니다.
 


그 다음 도구->타일 보기를 누르면 위와 같은 창이 나타납니다.

우측 화면에서 찾으려는 그래픽이 있는지 봅니다. 그래픽이 나타나지 않으면 Char Base 체크를 변경해서
그래픽을 찾습니다. 그래도 그래픽을 찾을 수 없다면 색상을 256으로 바꿔봅니다.


찾으려는 그래픽이 보인다면 해당 그래픽의 아무 지점이나 클릭합니다.

클릭하면 경로값이 바뀌며 이 경로값을 잘 기억해두고 닫기를 누릅니다.

 


다음 도구에서 메모리 보기를 누릅니다.
우측 상단의 텍스트 상자에 방금전의 경로값을 입력하고 시작을 누릅니다.
그럼 아래에 해당 그래픽 데이터가 나타납니다.


크리스탈 타일로 롬 파일을 열고 그래픽 데이터로 검색합니다.


0x330220에 타이틀 데이터가 발견되었군요.
그럼 이제 F6을 눌러서 그래픽 모드로 갑시다.

만약 검색 결과가 없다면 그래픽이 압축되어 있거나 그래픽의 형태가 다른 경우입니다.
이런 경우 데이터를 직접 찾는 수 밖에 없습니다.
 


그래픽 모드로 이동하면 타이틀 데이터가 보입니다.
타일 보기에서 색상을 16으로 해서 보였다면 Tile 형태를 GBA 4BPP로, 256으로 해서 보였다면 GBA 8BPP로 하면 됩니다.

하지만 팔레트가 없어서 그래픽이 깨져 보이는군요.
다음으로 팔레트를 추출해봅시다.


다시 에뮬레이터로 가서 도구 -> 팔레트 보기를 누르면 위 창이 나타납니다.
여기에서 배경 저장을 눌러 팔레트 파일을 저장합니다.
 


크리스탈 타일 좌측 메뉴에서 팔레트를 누르고 가져오기로 pal 파일을 불러오면 위처럼 팔레트가 적용된 타이틀이 보입니다.

에뮬레이터의 타일 보기와 메모리 덤프 기능을 사용해서 그래픽을 쉽게 찾아보았습니다.
닌텐도 DS의 경우에도 desmume를 사용하면 비슷한 방법으로 그래픽을 찾을 수 있습니다.

게임보이 어드밴스는 그래픽을 출력할때 4BPP 또는 8BPP로 변환하기 때문에 실제 그래픽 데이터는 2BPP나 1BPP인 경우도 있고, 타일 형태가 일정하지 않은 경우도 있기도 합니다. 

또한 OAM으로 그래픽을 출력하는 경우 팔레트 보기에서 오브젝트 저장으로 팔레트를 저장해야합니다.
그래픽을 찾을 수 없거나 팔레트가 올바르지 않다면 여러가지를 시도해보시기 바랍니다~
저작자 표시 비영리 변경 금지
신고
  1. 한글화 강좌 올려주세요 ㅠㅠ 현기증난단말이에요
  2. 여기 나온 방법으로 크리스탈 타일로 포켓몬스터 루비 타이틀을 찾으려고 해도 안나옵니다.

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[게임 한글화 강좌]제 3장 - 게임 분석하기 2편[게임 한글화 강좌]제 3장 - 게임 분석하기 2편

Posted at 2011.04.01 14:30 | Posted in 이전 카테고리/한글화 강좌 시즌 1


본 강좌의 무단 스크랩을 금지합니다.
문의사항은 댓글 또는 mingi2007@gmail.com 으로 메일 주십시오.


3장은 드디어 실전 강좌입니다.

우선 필요한 준비물은 아래와 같습니다.

한글화 프로그램 CrystalTile 2
테스트를 위한 게임기 또는 에뮬레이터
한글화 하려는 게임의 롬 파일
가장 중요한 끈기와 열정

이외에도 필요한 것은 많지만 분석시에는 기본적으로 위에 4가지가 필요합니다.

준비물을 준비하셨다면 일단 크리스탈 타일 2를 실행해봅시다.
 

크리스탈 타일 2 실행 화면


크리스탈 타일은 중국에서 중문화를 위해 만들어진 프로그램으로 롬 파일의 분석에 아주 유용합니다.
크리스탈 타일 2에서는 여러가지 표준 파일 타입 자동읽기, 에뮬레이터와의 연동기능 , ASM 뷰어, LZ77압축 등의 다양한 기능을 지원하고 있습니다.

우선 데이터를 여러가지 모드로 볼 수 있는데 헥스 모드와 그래픽 모드가 있습니다.

크리스탈 타일 2의 헥스 모드


헥스 모드는 주로 데이터를 분석할때 사용되며 게임 데이터를 16진수(헥스)와 인코딩으로 변환해서 보여줍니다. 인코딩은 기본 인코딩사용자 정의 테이블 파일(tbl)를 지원하기 때문에 고유번호만 알면 헥스 코드를 일일히 수정하지 않아도 텍스트를 입력하면서 수정할 수 있습니다.

크리스탈 타일 2의 그래픽 모드


그래픽 모드는 롬 파일 내에 저장된 폰트나 그래픽을 찾을때 사용하며 크리스탈 타일 이전에는 yy-chr이라는 프로그램도 사용되었지만 최근에는 크리스탈 타일로 쉽게 볼 수 있고 추출/수정도 간편합니다.
또한 팔레트는 pal 파일 형식을 지원하며 롬 파일내의 팔레트 데이터를 읽는 기능도 지원합니다.
또한 폰트 삽입 기능도 지원합니다.

그럼 이제 파일 -> 열기로 닌텐도 DS 게임의 롬파일을 열어봅시다.
이 강좌에서는 폰트와 대사를 바로 찾을 수 있는 보쿠관DS(항공관제관DS)를 열어보았습니다.

NDS 파일시스템 정보 창


크리스탈 타일2는 닌텐도 DS의 파일시스템을 인식하여 자동으로 정보를 보여줍니다.
위 이미지처럼 파일시스템 정보 창이 뜨면 어떤 파일이 들어있는지를 알 수 있습니다
게임에 따라 파일 하나에 뭉쳐있는 경우도 있고, 가상 DS롬이 하나 더 들어가있는 경우도 있습니다.
 
만약 파일시스템 정보 창이 뜨지 않는다면 CTRL+N을 누르거나 도구 -> NDS 파일시스템 정보로 띄울 수 있습니다. 도구 - > NDS 파일시스템 정보가 비활성화 되어 있다면 정상적인 닌텐도 DS롬이 아니므로 롬 파일이 올바른지 확인해보시기 바랍니다.

파일 시스템 정보 창이 떴다면 목록보기에서 디렉토리를 눌러봅시다.


파일시스템 정보 - 디렉토리 보기 모드



디렉토리를 누르면 위처럼 보기 모드가 트리 형식으로 바뀝니다.

FSI.CT안에는 게임 실행코드와 오버레이, 게임 정보, 게임 이름, 아이콘 등이 들어있습니다.
arm9.bin,arm7.bin은 게임의 실행파일이며 banner.bin에는 게임 이름과 아이콘이, fnt.bin에는 서브 파일 이름, fat.bin에는 서프 파일의 오프셋값이 저장되어 있습니다.
이 파일들은 잘못 건드리면 게임이 구동되지 않을 수도 있지만 보쿠관 DS의 대사는 arm9.bin 파일 안에 들어있으므로 대사 수정시 설명해드리겠습니다.
때때로 arm9.bin에 폰트가 들어있는 경우도 있으나 자세한 내용은 생략합니다.

data 에는 게임 이미지,폰트,대사,사운드 등의 데이터가 들어있습니다.
그럼 data를 더블 클릭해서 열어봅시다. 


data폴더를 더블클릭해서 열면 여러가지 파일이 나타납니다.
그런데 어라? 중간에 보시면 SH_LC_XX.NFTR이라고 써진 파일들이 보입니다.
NFTR은 Nitro FonT Resource 의 약자이며 닌텐도 SDK에서 제공하는 표준 폰트입니다.
NFTR 계열 폰트를 쓰지 않는 게임들도 상당수이지만 만약 롬 파일내에 NFTR이 보인다면 크리스탈 타일 2에서 자동으로 분석해주기때문에 쉽게 한글화가 가능합니다.

폰트를 쉽게 찾는 방법은
파일 이름에 FONT나 10,12등의 게임 폰트의 크기, 확장자에 fnt 등이 있는 경우 폰트로 의심해볼 필요가 있습니다.
그럼 이제 실제 폰트를 봐봅시다.

SH_LC_12.NFTR에서 오른쪽을 누르고 NFTR 폰트 정보 불러오기를 누릅시다.


폰트가 보인다!


정보 불러오기를 누르면 드디어 폰트가 짜잔!하고 나타납니다.
스크롤을 해서 아래로 내려보면 한자 폰트가 보입니다.

한자 폰트를 보면 亜唖娃阿 이런 식으로 되있는걸 보실 수 있습니다.
이 배열은 이론 편에서 설명드렸지만 S-JIS라는 일본 표준 인코딩입니다.

한자 폰트의 갯수를 보면 대략 2500개가 넘는 걸 아실 수 있습니다.(주로 사용하는 한글 완성형 폰트는 2350자입니다.)

그럼 바로 한글 폰트를 넣어봅시다.


첨부파일인 한글 매치 테이블을 받으시고 亜가 있는 곳에 포커스를 맞춰둡시다.


그 다음 편집 - > 폰트 설정으로 들어가서 글꼴을 돋움으로 맞추고 크기는 9로 정합시다.

폰트 설정하기, 다른 폰트도 사용할 수 있지만 이번에는 가독성을 위해 돋움을 사용한다.


확인을 누르고 편집에서 폰트 삽입을 누르고 위에서 받은 kor.tbl을 선택합니다.

한글 폰트가 입력되었다!


드디어 한글 폰트가 입력되었습니다!
CTRL + S나 파일->저장을 누르고 에뮬레이터로 게임을 실행해봅시다.
 


한자 폰트가 한글로 바뀐걸 보실 수 있습니다
씫 자가 짤린 것은 NFTR에는 폰트의 폭 데이터가 있기 때문에 이를 수정해야줘야 완벽하게 폰트가 출력됩니다.
자세한 것은 추후에 NFTR 폰트 구조에 관한 게시물에서 더 자세히 소개하겠습니다.

이번 실전 1편에서는 폰트를 찾고 한글로 바꾸는 과정을 알아보았습니다.
위에서 설명한것처럼 게임중에는 표준 폰트인 NFTR을 사용하지 않는 게임이 더 많으며 다양한 방식의 게임이 존재합니다.
간단한것부터 시도하다보면 점차 게임 분석을 빠르게 할 수 있고 노하우도 생기게 됩니다.

다음 실전 2편에서는 대사를 수정하는 것에 대해 알아보겠습니다.
읽어주셔서 감사합니다.

저작자 표시 비영리 변경 금지
신고
  1. 이전 댓글 더보기
  2. nftr
    nftr 파일이 없어서 전체 이리저리 찾아보고 해서 폰트위치를 찾았는데 폰트는 정말 깔끔하게 보이는데 위아래로 점점점점같은것이 있는데 설정을 잘못한건가요? 그리고 nftr 파일이 아닐경우 우선 폰트이미지 불러왔는데 이경우 저장은 어떻게 하나요? 저장활성화가 안되네요.
  3. nftr
    nftr 파일이 있을경우 원래 글자는 그냥두고 한자끝에 한글을 추가해서 한글화하지 않는 부분에 대해서는 일어를 그대로 읽을 수 있게 할수 있나요? ntfr 파일이 없는 경우에도 뒤로 추가할수 있나요?
  4. 비밀댓글입니다
  5. 꽁쮸
    먼말인이모르겠어여 자세히설명점해주시면안되나염?
  6. 꽁쮸
    nftr.폰트부터이해가안가여 ㅜㅜ
    • 2011.05.01 18:39 신고 [Edit/Del]
      어떤 부분이 이해가 안되시는지 알려주시면 보충해서 설명해드리도록 하겠습니다. NFTR은 폰트의 한 타입으로 파일의 구조라고 보시면 됩니다. 다른 게임에서도 NFTR을 사용한다면 강좌와같은 방법으로 한글화가 가능하다는 것이죠 ^^;
  7. 시리우스
    질문입니다 ㅠㅠ
    말씀하신대로 하려는데 NFTR이 亜唖娃阿 순이 아니고 亜阿 .. 순이네요.

    어쨌든 亜부분을 강좌대로 했더니 에뮬에서는 ?????만 나옵니다.. 왜이럴까요 ㅠㅠ
    • 2011.05.02 00:43 신고 [Edit/Del]
      그 형태가 바로 S-JIS에서 일부 폰트가 빠진 형태입니다.
      그런 경우에는 NFTR 파일의 테이블을 바꿔주셔야합니다.
      이에 관한 내용도 추후 올리겠습니다
  8. 시리우스
    흐.. 기다릴게요~ ㅎㅎ
  9. //
    폰트파일은 안보이고..
    대사가 텍스트 파일로 되어있네요
    이거 어떻게해야되요??
    • 2011.05.06 08:17 신고 [Edit/Del]
      어떤 게임인지는 모르겠으나 텍스트 파일의 인코딩을 잘 보시면 S-JIS일 가능성이 높습니다.
      만약 메모장등으로 여시면 글씨가 깨져서 출력될겁니다.
      이를 수정하려면 매칭 테이블이라는걸 만드신 뒤 한글 텍스트 파일로 작성하신뒤 이를 변환하셔야합니다.
      기기에 따라 다르지만 만약 내장 폰트를 사용하는 게임이라면 인코딩을 수정해줘야합니다.
  10. 나루호도
    저 디덱토리가 어디있는지모르고 정보가 안떠요...
  11. 요쉬
    NFTR폰트 정보 불러오기를 눌러도 암것도 안뜨네요...
  12. 요쉬
    LZ77 로 압축되있는것 같은데 어떻게 해야 하죠?
  13. 진박사
    혹시 GBA 4bpp용 한글 tbl파일이 있으신가요..?
    제가 하려는 것은 그거네요;; ㅠ
  14. 좀비
    폰트 테이블은 어떻게 제작하나요 ?

    그리고 강좌에 나온데로 하니 한글이 눕혀서 수정되는데

    이 경우엔 어떻게 하나요?
    • 2011.08.28 09:33 신고 [Edit/Del]
      폰트 테이블은 게임에서 범용 인코딩을 사용할 경우에는 제작할 필요가 없습니다.
      다만 고유번호를 사용할 경우에는 CODE=문자 이런 식으로 제작하면 됩니다.
      눞혀서 수정된다는건 무슨 말인지 모르곘습니다.
  15. 김재현
    게이버님 NDS파일말고 GBA파일은 크리스탈파일로 한글화가 안되나요??
    '포켓몬스터:황'을 한글화 해보고 싶습니다.
  16. 베이블레이드
    제가 찾아본 게임은 폰트파일이 .NCGR 이었네요
    폰트파일은 이밖에도 굉장히 많이있을것 같아요
  17. ??
    폰트가 위.옆으로 한칸씩 짤리는데 어떻게 해야하죠??ㅠ
    그냥 개의치않고한글 폰트 덮어 씌워요?
  18. 이건nds파일만 가능한가요?
    크리스탈타일이 nds한글화 프로그램이라는데
    미연시같은거는 못하는건가요 ?
  19. 한글화
    저장이 안됩니다.
    폰트 변경후 저장할려고 하는데 한되네요ㅠㅠ 어떻게 해야 하나요?
  20. 비밀댓글입니다
  21. 컴퓨터게임을 바꾸고싶습니다
    컴퓨터 게임을 바꾸려고 하는데 폰트파일을 암만 찾아도 찾을수가 없네요..ㅠ

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[게임 한글화 강좌]제 2장 - 게임 분석하기 1편[게임 한글화 강좌]제 2장 - 게임 분석하기 1편

Posted at 2011.03.20 15:00 | Posted in 이전 카테고리/한글화 강좌 시즌 1

본 강좌의 무단 스크랩을 금지합니다.
문의사항은 댓글 또는 mingi2007@gmail.com 으로 메일 주십시오.

게임 분석하기 1편에서는 게임 한글화에 필요한 기본적인 폰트, 대사 찾기에 대해 알아보겠습니다.

여기부터는 기본적인 컴퓨터 지식이 필요하며 곳곳에 설명이 들어있으므로 참고해주시기 바라며
게임 중에는 아래 설명된 경우에 해당하지 않는 게임도 있습니다.


대부분의 게임에는 대사를 출력하기 위한 폰트가 들어있습니다.
폰트는 글자이미지로 저장해둔 데이터이고 게임 대사에 맞춰 이 폰트를 불러들여 화면에 출력하게됩니다.

위에서 폰트는 글자를 이미지로 저장해둔 데이터라고 했는데 그렇다면 그래픽이 아닌가?
라고 생각하실 분들도 계실거라고 생각합니다.
하지만 폰트와 그래픽은 간단하게 구별이 가능합니다.

우선 폰트는 문장 단위가 아닌 글자 단위로 저장이 되어있습니다.
즉 [안녕하세요.] 이런 식으로 문장 단위가 아닌 [.] [] [] [] [] [] (가나다 순으로 정렬하였습니다.) 글자 하나하나마다 별개의 데이터로 저장이 되어있습니다.

만약 [안녕하세요.] 처럼 문장 단위로 저장되어있다면 대사 파일이 존재할 필요가 없고 대사를 수정하기 위해서는 이미지 전체를 바꿔야하므로 번거롭습니다.

하지만 폰트로 저장되어있다면?
이럴때는 대사 파일에서 글자 배열만 바꿔주면 [안녕하세요.]를 [하세요 안녕.] 처럼 쉽게 수정할 수가 있습니다.

게임 뿐만 아니라 윈도우에서도 이런식의 폰트가 저장되어 있기 때문에 한글의 입출력이 가능한 것입니다.

게임을 한글화하려면 우선 폰트를 찾아야합니다.

실습에서 자세히 알아보겠지만 게임에 따라 폰트가 저장되있는 방식이 다르고 게임기 펌웨어에 들어있는 내장 폰트를 사용하는 경우도 있습니다.(주로 PC게임이나 PSP에서 내장 폰트 사용)
또는 폰트가 압축되어있는 경우도 있습니다.

다음으로 인코딩이라는것에 대해 알아봅시다.

인코딩은 쉽게 말하면 폰트속의 각 글자마다 번호를 정해주는것을 뜻합니다.
이렇게 번호를 정해주는 이유는 컴퓨터는 2진수를 사용하며 영어나 한글등 사람이 사용하는 언어를 알아듣지 못합니다.

2진수는 0과 1로 모든 데이터를 표시하는 방법이고 각각의 0과 1을 비트라고 합니다.
비트가 4개 모이면 1 니블이 되고 1 니블은 0000(0) 부터 1111(15, 0xF) 총 16개까지 표현이 가능하고
비트가 8개 모이면 1 바이트가 되고 1 바이트는 00000000(0) 부터 11111111(255, 0xFF) 까지
총 256개까지 표현이 가능합니다.

우리들은 10진수를 사용하지만 이 10진수는 2의 배수가 아니므로 2진수를 표현하기에는 적합하지 않습니다.
따라서 8진수나 16진수를 사용하지만 주로 16진수를 사용합니다.

Tip. 숫자 앞에 0x가 붙어있으면 16진수라는 것을 의미합니다.

윈도우 XP의 내장 계산기

윈도우 7의 내장 계산기


16진수를 10진수로 변환하거나 10진수를 16진수로 변환하는건 윈도우에 내장된 계산기로도 가능합니다.
XP에서는 공학용, 7에서는 프로그래머용으로 설정하시면 확장된 메뉴가 나타납니다.

Hex는 16진수를 의미하고 Dec는 10진수 Oct는 8진수 Bin은 2진수입니다.

그래픽 데이터는 니블 단위로 계산이 되며(바이트 단위로 되는 경우도 있습니다.)
인코딩에서는 바이트 단위를 사용합니다.

[.] [] [] [] [] []와 같은 폰트 데이터가 있다면

01 = .
02 = 녕
03 = 세
04 = 안
05 = 요
06 = 하
 

이렇게 순서대로 1~6라는 번호를 붙여주고
[04] [02] [06] [03] [05] [01] 이렇게 입력해주면 [안녕하세요.] 가 출력됩니다.

인코딩에는 표준 인코딩이라는 것이 국가마다 존재합니다.
한국에서는 주로 [EUC-KR,949](뒤에 949는 인코딩 번호이며 중요한건 아닙니다.) 이라는 인코딩을 사용하고 일본에서는 [Shift-JIS,932]라는 인코딩을 사용합니다.

또한 전세계 표준으로 지정된 [유니코드,1200,1201,65001 등]도 있습니다.
유니코드에는 전 세계의 문자가 대부분 들어있어서 국가끼리 호환이 가능하며 최근에 출시되는 게임들은 유니코드를 사용하는 경우가 많습니다.

표준 인코딩을 사용하지 않는 경우 고유 인코딩을 사용하므로 [고유번호표]라는 것이 필요합니다.

여러가지가 있지만 우선 Shift-JIS에 대해 알아보겠습니다.

Shift-JIS는 일본에서 사용하는 표준 인코딩이며(줄여서 SJIS라고 합니다.)
SJIS 인코딩에는 한글 코드가 들어있지 않으므로 SJIS 인코딩을 사용하는 게임에서는 바로 한글의 출력이 불가능합니다.

하지만 SJIS에는 한자 영역이 있습니다.
이 한자 영역에 한글 코드를 넣어주고 한자 폰트를 한글 폰트로 교체한다면 비로소 한글의 출력이 가능해집니다.

SJIS의 한자영역은
889F=亜
88A0=唖
88A1=娃
88A2=阿
88A3=哀
88A4=愛
88A5=挨
88A6=姶
88A7=逢
.....
FC48=鵫
FC49=鶴
FC4A=鸙
FC4B=黑

0x889F-0xFC4B까지 넓은 한자영역을 제공합니다.(이론적으로는 0xFC4B-0x889F 까지 0x73AC개의 한자 영역이 있으나 중간에 사용하지 않는 코드도 있으므로 실제는 좀더 적습니다.)

이 SJIS영역에 한글 코드를 대입해보겠습니다.
889F=가
88A0=각
88A1=간
88A2=갇
88A3=갈
88A4=갉
88A5=갊
88A6=감
88A7=갑
88A8=값
88A9=갓
.....
94FC=힝

이렇게 한글 코드를 넣을 수가 있습니다.(SJIS를 사용하는 게임이라도 한자를 사용하지 않는 게임의 경우 폰트 확장이 필요하며 SJIS에 있는 한자 폰트가 모두 들어있지 않은 게임도 있습니다.)

그리고 한자 영역에 있는 폰트를 한글 폰트로 교체해주면 한글 출력이 가능해집니다.
(이는 실습강좌에서 자세히 알려드리겠습니다.)


게임 내의 데이터는 무작위로 배열되어 있는 것이 아닌 구조적으로 배열이 되어있습니다.
다만 게임 기기마다 정형화된 구조로 된 데이터가 있는 반면에 게임이 컴파일 되기 전의 소스 코드에서의 순으로 데이터가 들어있는 경우도 있습니다.

대표적으로 패미컴,슈퍼패미컴,N64,게임보이게임보이 어드밴스는 소스코드에서의 순서대로 데이터가 들어있어서 파일 자체를 분해하기에는 어려움이 있습니다.

PSP,NDS,Gamecube,Wii,PS2,PS3 등의 비교적 신형 게임는 데이터의 배열이 정형화되어있고(물론 게임마다 예외는 존재합니다.) 이럴 경우에는파일을 분해하여 다시 재배열할 수 있습니다.

그럼 다음은 한글화에 가장 중요한 요소인 대사에 대해 알아보겠습니다.

대사는 인코딩과 밀접한 관련이 있습니다.
위에서 말씀드린대로 대사 데이터는 사람이 사용하는 언어가 아닌 컴퓨터의 언어 즉 인코딩으로 저장이 되어있습니다.
따라서 대사를 추출하려면 게임이 사용하는 인코딩을 알아낼 수 있어야합니다.

대사 추출의 과정을 간략히 소개하자면 아래와 같습니다.
1. 게임에서 사용하는 인코딩을 알아낸다.
2. 대사 파일을 찾는다. 대사 파일이 압축되어있다면 압축 해제 코드를 만들거나 압축 툴을 사용한다.
3. 대사 파일 내의 포인터나 구조를 분석하고 그에 맞는 추출툴을 제작한다.
4. txt파일로 추출하여 번역가분에게 전달한다.


다음은 드디어 실습편입니다.
실습편에서는 닌텐도 DS 게임의 실제 폰트를 찾아보고 대사를 수정해보도록 하겠습니다.

읽어주셔서 감사합니다. 
저작자 표시 비영리 변경 금지
신고
  1. GameCube
    PS2 한글화를 노리고 있는 사람으로써
    한글화에 대한 정보를 보면 매우 흥미롭습니다.
    앞으로도 좋은 강좌 많이 써주시길
    그리고 감사합니다.

    P.S 나중에는 개인적인 한글화 질문좀 해도 될련지요...
  2. 일광면
    강좌도 쓰시는군요. 잘 구경했습니다 ㅎㅎ
  3. 안녕하세요 저도 포켓몬스터 개조 하는 사람중 한명인데요.

    저는 파일만으로 하는것같네요. 저도 한글화작업 배워서

    꼭 하고싶네요
  4. 이 블로그는
    스마트폰 외국앱 번역을 노리면서 자기계발을 노리고있는 저에게 매우 유용하군요! 앞으로 많은 강좌 부탁드립니다
  5. 신형 게임는 ->은
    그냥 한번 태클 좀 걸어봤습니다.
    그리고 이 게시물을
    http://cafe.naver.com/localweb
    이 카페에 옮길 수 있게 저에게 원문을 보내주시거나
    직접 올려주실 수 있을까요...?
    께이버님의 블로그를 모르는 많은 분들이 계시기 때문에요...

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

[게임 한글화 강좌]제 1장 게임 한글화의 개요[게임 한글화 강좌]제 1장 게임 한글화의 개요

Posted at 2011.03.19 10:00 | Posted in 이전 카테고리/한글화 강좌 시즌 1

본 강좌의 무단 스크랩을 금지합니다.
문의사항은 댓글 또는 mingi2007@gmail.com 으로 메일 주십시오.


안녕하세요.
Hangeru TeamMG게이버입니다.

게임 한글화에 관심이 있으시거나 한번 도전해보고 싶다 라는 생각이 있으신 분들을 위해 오늘부터 게임 한글화의 강좌를 제공하게 되었습니다.



우선 한글화의 종류와 한글화는 어떤 과정을 통해 이루어지는가에 대해 알아보겠습니다.

게임 한글화는 게임을 자국화하는 현지화 작업중 하나이며 크게 정식 한글화와 유저 한글화로 나누어집니다.

정식 한글화란?
정식 한글화는 게임의 제작사 또는 라이센스 및 게임의 소스 코드를 받아 정식으로 한글화하는 것을 말합니다.
이 경우 한글화 업체에서는 게임의 소스코드를 보유하며 게임 제작사의 지원을 받으므로 기술적인 한계가 거의 없고(기기상의 한계에 의한 경우는 제외) 또는 번거로운 분석 과정이 줄어들게 됩니다.
정식 한글화의 목적은 게임의 정식발매 및 판매이며 한글화 여부에 따라 게임 판매율은 큰 차이를 보입니다.
또한 외국어로 정식발매되었더라도 판매율이 높거나 게임 회사의 정책에 따라 차후에 패치 등으로 한글화가 이루어지거나 차기작을 한글화 발매하는 경우도 있습니다. (ex. 문명5의 정식 한글패치, 아이폰 게임등의 차후 한글화)

유저 한글화란?
유저 한글화는 게임 제작사가 아닌 게임 유저가 직접 한글화하는 것을 말합니다. (아마추어 한글화라고도 부릅니다.)
유저 한글화에는 여러가지 문제가 존재합니다.
첫번째로 정식 한글화와 다르게 게임 저작권 침해라는 문제가 있으며 이로 인해 배포되지 않거나 중단되는 한글패치도 있습니다.
두번째로는 게임에 따라 한글화가 어렵거나 불가능한 게임이 있습니다.
유저 한글화는 게임의 소스코드가 아닌 컴파일된 바이너리 형태의 게임을 수정하므로 일부 게임의 경우 난이도가 어렵다는 문제점이 있습니다.

그러나 유저 한글화는 정식 발매보다 번역/그래픽의 질(퀄리티)가 높거나 한글화 되지 않은 게임을 직접 한글화하거나 한글로 즐길 수 있게 된다는 점이 메리트라고 할 수 있습니다.

정식 한글화와 유저 한글화에는 여러가지 차이점이 있지만 게임을 한글로 바꾼다는 점은 같다고 할 수 있습니다.


게임 한글화에는 한글화를 위한 툴, 외국어 능력, 그래픽 수정 등 여러가지가 필요합니다.
한글화에 필요한 기본적인 것에 대해 알아보겠습니다.

근성과 노력
게임 한글화에 있어서 가장 중요한 것이라고 할 수 있습니다.
수천 문장의 대사 번역과 막대한 양의 그래픽 수정, 대사 파일의 추출 모두 근성이 필요한 작업입니다.

아래에 소개된 기술/지식 등은 없어도 노력하면 습득할 수 있는 것이나 노력을 하지 않는다면 게임 한글화를 마칠 수가 없습니다.

게임의 분석능력
게임 한글화에는 우선 게임 데이터를 추출/수정하기 위해 게임을 분석할 필요가 있습니다.
게임마다 데이터의 저장방식이나 인코딩, 파일 구조, 압축 방식 등이 모두 다르므로 이를 모두 강좌에서 설명하기에는 무리가 있습니다.
따라서 한글화를 위해서는 우선 게임의 분석 능력이 중요합니다.

게임의 분석에 대해서는 다음 장에서 소개하겠지만 우선 대사를 추출하고 재삽입이 가능하여야하며 게임 내에 한글 폰트를 삽입할 수 있어야하며 만약 폰트가 부족한 게임의 경우(ex. 포켓몬스터 ) 폰트의 갯수나 코드 방식을 바꾸는 폰트 확장 작업이 필요합니다.

만약 데이터가 압축되어있을 경우 압축을 해제하여 게임 내의 데이터를 수정할 수 있어야합니다.

위에서 말씀드린 대로 게임마다 구조가 다르므로 게임에 따라 오랜 시간이 걸리는 경우도 있고 빨리 끝나기도 하는 작업입니다.
하지만 게임의 구조 분석이 이루어지지 않으면 게임의 한글화는 진행이 불가능하므로 가장 중요한 작업이기도 합니다.

대사의 번역능력
두번째는 게임의 대사를 번역할 수 있는 능력입니다.
게임 대사는 한글화 할 게임에 따라 영어,일본어,중국어 등 다양한 언어로 되어있으므로 해당 게임에 맞는 언어를 알아야 게임을 번역하여 한글화할 수 있습니다.

게임의 번역 시에는 원본 게임의 내용을 최대한 전달할 수 있어야하며 적절한 현지화(고유 명사, 말장난 등의 현지화)도 필요합니다.

게임의 번역은 대사량에 따라 다르지만 게임 분석과 함께 가장 중요하며, 시간이 가장 오래 소요되고 힘든 작업이라고 할 수 있습니다.

게임 그래픽/사운드 수정능력
세번째는 그래픽, 사운드 등을 수정할 수 있어야합니다.
게임의 완벽한 한글화를 위해서는 게임 내의 외국어로 되어있는 그래픽(타이틀, 설명 그래픽 등)을 수정하여 한글로 수정하여야하며 대부분 음성 한글화는 하지 않지만 음성을 한글화할 필요가 있다면 음성 수정 능력도 필요합니다.



게임 한글화를 하는 이유에는 개인차가 있지만 크게 3가지 이유가 있습니다.

첫번째는 게임을 알리기 위한 경우입입니다.
재밌는 게임이 있지만 한글화가 되어있지 않은 경우 플레이하지 못하거나 않는 사람들이 있습니다.
이런 경우 게임을 한글화해서 게임을 알릴 수 있습니다.

두번째는 게임 한글화를 하면서 프로그래밍, 번역, 그래픽 편집 등의 실력을 늘리기 위한 경우입니다.
게임을 분석하다보면 여러가지 노하우가 생기고 번역 작업을 하다 보면 외국어 실력등이 늘게 됩니다.
또한 자신의 근성을 시험하거나 늘릴 수도 있습니다.
이와같이 자기 계발의 목적이 있습니다.

세번째는 게임 한글화 자체에 재미를 느껴서 취미로 하는 경우입니다.
게임 한글화에는 여러가지 작업을 하게 됩니다.
파일을 분석하고.. 압축을 풀고.. 그래픽을 수정하고..
이런 작업 자체에 흥미를 느끼는 경우가 있으며 필자의 경우에도 이 경우에 속합니다.

일단 게임 한글화에 대한 간략한 내용을 알아보았습니다.
다음 장에서는 게임을 분석하는 방법에 대해 알아보겠습니다.
저작자 표시 비영리 변경 금지
신고
  1. 돌삔
    잘 읽었습니다.

    큰 도움됐습니다.

    감사합니다.
  2. 나그네
    와.. 잘 읽었습니다
    이리 힘든걸 번역하신다니ㅎㅎ 게이버님은 대단하시네요
    저도 언젠가 번역하는일 해보고싶네요
  3. 히성
    오오~ 이제야 봤습니다~ 정말 원하던 강좌였는데~ 님 멋쟁이~^^
  4. Steelnail
    와 멋진 강좌입니다.
    언젠가 한글화를 즐기기에서만 그치지 않고 만들어보는 날에 반드시 필요한 강좌입니다.
  5. 외지인
    한글화에 관심이 생겨서 떠돌다가 우연하게 이런 멋진 글을 발견 하게 되었습니다.
    감사합니다.!

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기