메뉴 www.fafan.kr
파판 >> XBOX정보
  • 로그인
  • [한글화 기초 강좌 3편] 실제 게임에서의 한글화 과정 #1
    작성자 : 꼼수 | 조회수 : 28914 (2012-05-20 오후 11:31:01)
    - 첨부파일
      MinisterT_b_48.font
      MinisterT_b_48.png
      uiText.info

    원본사이즈 : 1024 X 512

    안녕하세요 꼼수입니다.
     
    주말이 다 지나가네요 계속 연재중인 한글화 강좌중 3번째 시간으로 실제 게임을 하나 선택해서 강좌를 진행하려고 합니다.
     
    선택한 게임은 원숭이 섬의 비밀 1 SE 라는 게임입니다.
     
    PC게임으로 워낙 유명한 루카스 아츠의 고전 명작 어드벤처 게임인 원숭이 섬의 비밀을 HD로 리메이크한 게임이지요
     
    PC, PS3, XBOX360, MAC 등으로 거의 모든 플랫폼으로 이식이 된 게임입니다.
     
    일단 게임 한글화 강좌를 위해서 일단 다음의 TOOL이 일단 필요합니다.
     
    1. 필요 유틸리티 및 자료
        1) Monkey ISLAND 1 SPECIAL EDITION (XBLA 게임)
        2) Le Fluffie App
        3) XBOX360 SDK (패키지 DECOMPRESS를 위해서 필요)
        4) Adobe Photoshop
        5) XnView (포토샵으로 사용해도 무방)
        6) Ultra Editor (HexEditor 아무거나)
        7) MISE Explorer 0.5
    2. 패키지 추출 및 압축해제
        어떤 게임이든지 일단 한글화를 위해서는 몇가지 작업이 선행되어야 합니다.
     
        첫번째로 해당 게임 파일의 폰트 및 자막을 실제 눈으로 보고 또는 툴을 사용해서 수정이 가능한 수준이 되어야 합니다.
     
        일단 유명한 게임들은 보통 툴을 제작해서 공개되어 있는 경우도 있지만 만약 공개되어 있는 툴이 없다면 본인이 분석해서
     
        툴을 만들거나 해야 합니다. 일단 원숭이 섬의 비밀은 MISE Explorer 이라는 유틸리티를 통해서 해당 파일을 분해가
     
        가능합니다. 일단 분해하게 되면 폰트 및 자막이 수정이 가능한 파일로 되어 있기 때문에 별도의 작업은 필요가 없습니다.
     
        1) XBLA 패키지 파일 분해
            일단 XBLA 파일로 되어 있기 때문에 기존에 한글패치를 많이 하던 형태로 Le Fluffie App로 원숭이 섬의 비밀 게임을
            extract 합니다.
            

        2) PAK 파일 압축해제
            XBLA 패키지를 추출했으면 추출한 디렉토리에 Monkey1.pak 파일이 보입니다. 이 파일안에 게임내의 거의 모든 컨텐츠가
            들어 있습니다.
            MISE Explorer라는 유틸리티로 pak 파일을 추출해 낼 수 있는데 XBOX360의 경우 PAK 파일이 XBOX360의 압축형태로
            압축이 되어 있어서 MISE Explorer로 파일을 추출해 내기 전에 압축을 해제해야 합니다.
            pak 파일의 압축해제를 위해서 XBOX360 SDK가 설치된 디렉토리 C:\Program Files (x86)\Microsoft Xbox 360
            SDK\bin\win32 에서 xbdecompress.exe 파일과 xbdm.dll 파일을 복사해 옵니다.

            아래 그림과 같이 명령어 창에서 xbdecompress.exe Monkey1.pak monkey1_unpack.pak로 압축을 해제합니다.

        3) PAK 파일 분해
            MISE Explorer 유틸리티를 실행해서 2)번에서 압축해제한 파일을 열어서 압축을 해제 합니다.
     
        4) 폰트 및 자막파일 분석
            3)번에서 압축해제한 파일의 디렉토리를 보면 폰트파일이 PNG 파일로 되어 있으며 폰트파일과 동일한 파일인 확장자가
            FONT인 파일이 다음과 같이 존재합니다.

            보통 비트맵 폰트는 폰트파일이 그림파일의 형태로 존재하고 그리고 해당 폰트파일을 출력하기 위해서 폰트에 들어있는
            글자를 출력하기 위한 맵 파일이 존재합니다. 그럼 여기서는 폰트파일 자체는 PNG 파일이고 맵파일은 FONT 확장자를
            가지고 있다고 추측할 수 있습니다.
     
    3. 게임구동
        자 이제 압축해제된 파일을 XBLA 패키지 EXTRACT 된 파일에 덮어쓰기를 합니다. 그리고 기존의 PAK 파일은 삭제합니다.
        원숭이 섬의 비밀은 EXTRACT된 상태로도 그냥 구동이 되기 때문에 다시 리팩할 필요가 없습니다.
        게임마다 다르지만 이렇게 EXTRACT된 상태로 동작이 되는 게임도 있고 리팩해야만 동작되는 게임도 있습니다.
        이런건 한글화 진행하면서 시행착오로 알아내는 수 밖에는 없겠지요..^^;
        일단 EXTRACT 된 상태로 잘 구동이 된다는 것을 확인하였으면 이제 부터 본격 삽질 시작입니다.
     
        처음 메뉴에서 어떤 글자가 표현되는지를 먼저 확인해 둡니다.
     
        uiText.info 파일이 메뉴등에서 사용되는 텍스트 파일입니다. 해당 파일을 ultra editor로 열어보면 다음과 같습니다.
     
        메인메뉴에서 Play New Game 글자가 출력되는 곳의 자막파일입니다. 여기서 영문한글자당 1바이트를 사용되는 것을
     
        확인 가능합니다. 즉 유니코드가 아니란 얘기입니다. 한글화 하기가 그지 같다는 뜻입니다;;; 이런경우 선택은 2가지입니다.
     
        첫번째 방식은 직결식으로 폰트를 제작하던지 아니면 2바이트를 지원하게 라이브러리 후킹방식인데 2번째 방식은 콘솔에선
     
        거의 불가능하다고 생각하시면 됩니다. 불가능은 아닙니다만 현실적으로;; 첫번째 방식은 PC에서도 폴아웃3, 오블리비언등
     
        에서 한글화한 방식이고 나중에 한번더 강좌로 쓰겠습니다.
     
       
        1) 폰트파일을 찾는다.
            일단 폰트파일이 1개가 아닌 경우는 해당 폰트들이 어디에서 쓰이는 지를 찾아야 합니다.
            일단 42개의 폰트가 존재하는 군요 일단 강좌에서는 메인메뉴만 건드리는 것을 목표로 합니다.
            자 그럼 42개의 PNG 파일이 있는데 PNG 파일을 포토샵으로 열어 봅시다.
            확장자가 PNG인 폰트파일을 열어서 메뉴에서 사용되는 글자에 표식을 해서 어느 폰트가 사용되는지를 찾으면 됩니다.
            저는 다음과 같이 PL 글자에 적당히 다음과 같이 표식을 했습니다. PNG 파일을 수정하고 게임을 구동해 봅니다.

    자 이제 바뀐 폰트 파일을 XBOX360에 복사후 실행해 봅니다. 위에 폰트 수정할때는 반전된 그림이라 색깔이 좀 이상하긴 하지만
     
    제가 표식한대로 메인메뉴에서 사용되는 폰트는 MinisterT_b_48.png를 사용함을 찾았습니다.

    4. 폰트맵 분석
        자 이제는 폰트 수정을 위해서 폰트맵 파일을 분석할 필요가 있습니다.
        이건 강좌가 길어져서 자세히 설명드리기 어려운데 일단 폰트 그림파일이 보이면 폰트 자체는 X,Y 크기등을 조합하는 데이터
        파일을 찾아내는게 키포인트 입니다. 즉 폰트가 순차적으로 되어 있다면 첫번째 줄의 폰트 데이터는 Y좌표는 동일할 것입니다. 따라서 해당 데이터가 연속되는 부분을 찾으면 폰트데이터일 확률이 큽니다. 이런식으로 폰트가 총 4줄에 걸쳐서 존재하니까
        이 부분이 바뀌는 부분 패턴을 분석해서 찾으면 됩니다.
        제가 대략 분석한 결과로는 0x4260 ~ 부터 폰트맵 옵셋이 시작되며
        한 글자당 16바이트를 사용합니다.
        1. 2 bytes : x start
        2. 2 bytes : y start
        3. 2 bytes : x end
        4. 2 bytes : y end
        5. 2 bytes : position (?)
        6. 2 bytes : x size
        7. 2 bytes : y size (?)
        8. 2 bytes : none
        대략 정보들이 위와 같으며 해당 부분 폰트가 수정되면 이제 변경하거나 추가해야 되는 부분이 됩니다.
        일단 2바이트를 지원하지 않기 때문에 안쓰는 영역을 한글영역으로 대체해서 사용하거나 해야 합니다.
        일단 저는 0x91 ~ 0x95 까지를 새로운게임 이라는 한글폰트를 추가하여 메뉴에 넣어 보겠습니다.
     
    5. 한글폰트 추가
        저는 Play New Game 부분을 한글화 하기 위해서 일단 새로운게임 글자를 폰트파일에 포토샵으로 다음과 같이
        추가하였습니다.

    6. 한글폰트 부분 맵 수정
        폰트를 추가하고 각 글자에 해당 하는 X, Y 픽셀정보를 구한 후 폰트맵 파일을 수정해 주면 되는데
        대충 완성도 높게 측정한건 아니고 대략 추출했습니다. 모양이 안이뻐도 이해 하시길..
        font 파일에 해당하는 0x91,0x92,0x93,0x94,0x95 부분을 사용가능하게 수정하였고 0x91~0x95 까지의 폰트 출력정보를
        다음과 같이 대체하였습니다.
     
        새 (0x91) : 00 03 00 E7 00 2E 01 1C 00 02 00 2C 00 2C 00 00
        로 (0x92) : 00 2F 00 E7 00 4B 01 1C 00 02 00 2C 00 2C 00 00
        운 (0x93) : 00 4C 00 E7 00 6D 01 1C 00 02 00 2C 00 2C 00 00
        게 (0x94) : 00 6E 00 E7 00 98 01 1C 00 02 00 2C 00 2C 00 00
        임 (0x95) : 00 9C 00 E7 00 C0 01 1C 00 02 00 2C 00 2C 00 00
     
    7. 한글자막 수정
        자 폰트정보를 위와 같이 수정하였으니 자막도 새로운게임이란느 글자를 출력하기 위해서 아까 uiText.info 파일을 열어서
        다음과 같이 수정하였습니다. 00은 자막의 끝을 표시하는 부분입니다.
        
     
    8. 구동확인
       자막파일과 폰트파일을 모두 수정하였으니 이제 수정된 파일을 XBOX360으로 전송하고 결과를 확인해 봅시다.
       아래와 같이 한글이 잘 적용되는 것을 확인 가능하네요..
       일단 이번강좌는 실제 게임에서 폰트와 자막이 어떤식으로 출력되는지가 목표고 해당게임은 이렇게 한글화 할 수 없음을
       알려드립니다.
       직결식 폰트를 구현하면 가능하지만 저는 귀찮은게 질색이라서 한글화 할지는 일단 직결식 폰트 구현은 다음에 또 시간날때
       한번 다시 강좌 쓰도록 하겠습니다.
       허접하지만 관심있으신 분들에게 도움이 되기를 바라며 한정된 지면에 최대한 많은 정보를 쓰려고 했는데 정말 자세히 쓰기가
       힘드네요. 일단 강좌에서 수정된 결과는 첨부해서 올립니다.






    글쓰기 | 수정 | 삭제 | 목록   

    Lv.3 제행무상 (2012-05-21 17:12:34)
    우선 기대하던 3편이 나왔네요. 꼼수님 감사합니다. 우선 추천드리고 집에가서 찬찬히 해봐야겠네요.

    퇴근시간이 기대됩니다. ^^; 다시금 감사드리구요.
    Lv.5 진로3000 (2012-05-21 19:56:33)
    진로3000님이 (2012/05/21 19:58)에 삭제 하였습니다.
    Lv.5 진로3000 (2012-05-21 19:59:16)
    위에나와있는 툴들을 구할수가 없네요.... 어디서 구해야할지..
    Lv.15 꼼수 (2012-05-21 22:36:31)
    다 구글링을 통해서 얻을 수 있는 자료입니다...
    Lv.3 날으는티제이 (2012-05-21 20:15:46)
    힘든작업이네요... 그럼에도 한글화 공유해주셔서 감사합니다...
    Lv.11 GTO_GTO (2012-05-21 23:34:22)
    정말 어렵고 힘든 작업이 한글화인듯 합니다. 글 잘보고 갑니다~ 감사합니다 ^^
    Lv.3 퐝시 (2012-05-22 00:26:09)
    제가 할수있는건 고작 추천누르는거밖에없네요 감사합니다
    Lv.8 사악한멋쟁이 (2012-05-23 12:28:54)
    우와 이렇게 어려운 것이었군요. 전 단순히 번역된 파일만 넣어 변환 작업 하면 된다 생각했었는데, 대단하십니다.
    Lv.3 awol (2012-05-24 13:49:38)
    정말이지 용자들이십니다. 봐도 전혀 모르겠음. ㅎㅎ
    Lv.6 +JinHO+ (2012-05-24 20:13:44)
    우와 감사합니다 ^o^
    Lv.3 마라톤2 (2012-05-26 11:40:48)
    좋은 정보 감사드립니다. ^_^
    Lv.14 Ress (2012-05-26 19:29:21)
    꼼수님의 한굴화 센스는 정말 최고인것같아요
    강좌 잘보고갑니다
    Lv.3 TEWM (2012-06-04 12:37:53)
    ㅠ ㅅ ㅠ 이게진정 한글패치의 길인가요? 0x91,0x92,0x93,0x94,0x95 이값은 어떻게 구해야 되는건지 궁금합니다.
    Lv.5 drosss (2012-06-05 20:26:40)
    우와 정말 대단하십니다!!
    Lv.2 크르소 (2012-06-12 08:52:29)
    한글화라는게 이렇게 되는거구나..... 안될거야 아마....
    Lv.2 BBiYak (2012-07-05 13:54:00)
    와.. 늘 한글화라는 작업을 해보고 싶었는데, 이런 멋진 글을 보니 새삼 다시
    시도해볼까하는 생각이 솟아나네요.

    강좌 잘 봤습니다^ ^,.
    언젠가는 꼭 한글패치하나 만들어보도록하겠습니다.!!.
    Lv.3 다크클라우드 (2012-07-29 14:22:24)
    상당히 어렵고 노가다 네요 ㄷㄷㄷ
    Lv.8 췌퀘랍냐우 (2012-07-31 08:33:06)
    노고에 감사드립니다^^
    Lv.3 크로니아3960 (2012-08-15 10:30:35)
    외국어의 압박... 매번 한글화를 요구하는 저는 게으름 뱅이군요
    Lv.3 지니지니짱 (2012-08-30 21:23:38)
    어마어마 하군요 대단합니다
    Lv.3 JSMin (2012-08-31 01:05:43)
    와 진짜 쌩 노가다군요.. 멋집니다. 건승하세요.
    Lv.3 내복입은곰 (2012-09-15 22:25:58)
    오오오 대단하굿요 상당한 노가다네요ㄷㄷ
    Lv.2 사와지리에리카 (2012-10-06 19:35:17)
    대단하네요. 한글화하는것만해도 엄청난시간이 걸릴것같네요..
    Lv.3 네프리스 (2012-12-27 12:04:31)
    하..초보가하기엔...ㅋㅋㅋ
    Lv.3 바람머리 (2013-09-08 11:01:31)
    몽키 아일렌트 하 근데 font파일이 다른 명으로 되어 있다면 어렵겠는데.. 좋은정보 감사드려요
    Lv.2 몰뢍 (2013-10-03 12:22:36)
    한국어로 나오면 진짜감사해야겠다
    Lv.2 열띠미 (2014-05-22 11:06:33)
    잘 읽고 갑니다..
    초보자라서 잘 모르지마요 ㅎ



    도배방지 : 0

    글쓰기 | 수정 | 삭제 | 목록   

     

    12345

    Copyright ⓒ FINALFANTASIA.COM All rights reserved.