일본 게임 구동 관련 프로그램 | ||||
{{{#!folding 펼치기/접기 | 로캘 변경 프로그램 | |||
Microsoft AppLocale | NTLEA | Locale Emulator | ||
후커 | ||||
Oh! text hooker | AGTH | ITH | ||
아랄트랜스 | VNR | TwoControl | ||
Textractor | ||||
텍스트 출력 프로그램 | ||||
Cliphooker EX | 에그헤드 | 아네모네 | ||
기타 프로그램 | ||||
EZTrans XP | Ehnd | MORT |
공식 깃허브
1. 개요
ITH의 차세대 후커. ITHVNR 최종 버전의 개발자이기도 한 Artikash라는 닉네임의 인도인이 개발하였다. 이름의 유래는 Text+Extractor로 보인다.한국에서 주로 불리는 약칭은 '텍렉'. 철자상 텍'랙'이 맞겠지만, 왜인지 틀린 표기인 텍렉이 더 많이 쓰인다.
2. 장점
- ITH가 지원하지 않는 최신 엔진을 지원한다. 예시로 유니티, 아르테미스 엔진이 있다. 이 둘은 ITH로는 무슨 수로도 구동이 안 된다.
- 일부 게임은 H코드를 유저가 직접 찾을 수 있다. 모든 게임에 사용할 수 있는 건 아니지만 별다른 코딩 지식이 없어도 유틸리티 안의 검색 옵션으로 직접 찾을 수 있는 건 분명한 장점. 당연히 모든 후커들이 그렇듯이 이미지는 안 된다. 이미지 파일은 말 그대로 이미지니까.
- 기존에 쓰이던 agth, ITH에서 쓰는 H코드를 그대로 쓸 수도 있다. 다만 반대로 텍렉에서 찾은 옵션을 역으로 agth/ITH에 입력하는 것은 간혹 안 될 수 있다.
3. 단점
- 오래된 게임에서는 오히려 호환이 안 될 때도 있다. 심지어 ITH가 기본 지원되는 엔진이 텍렉에서는 안 되는 경우도 많다.
- 스레드 합치기[1], 자동 클립보드 복사 같은 기본적인 편의 기능을 설치 후 바로 쓸 수 없어서 플러그인 세팅에서 추가를 해줘야만 한다. 내장된 플러그인인 Thread Linker를 추가하면 되기는 하는데 Thread Linker의 경우는 기능이 별로 좋지 않아 제대로 활용하기 위해서는 비공식 개별 플러그인을 추가로 설치해야 할 필요가 있다. 나온 지 15년이 넘은 agth부터 있던 스레드 합치기 기능이 열화된 것은 큰 비판을 받고 있다.
- 약간 불안정하다. 후킹을 잘 하다가도 갑자기 뻗을 수 있다. 세이브 생활화가 답이다.
4. 상세
아랄트랜스와 같이 인게임의 텍스트 출력 화면을 마치 한글 패치처럼 영어나 한글로 수정하는 기능은 없지만 막강한 후킹 기능으로 인해 서양과 일본어에 어느 정도 익숙한 사람들에게서는 많이 사용되는 후커이다.야겜은 물론이고 쯔꾸르[2]와 유니티 등 다양한 엔진을 지원해서 따로 H코드를 넣지 않아도 기본적으로 후킹이 지원되는 게임들이 상당히 많지만, 이 후커의 가장 큰 특장점은 바로 기본적으로는 후킹을 지원하지 않고 H코드도 없는 게임이라고 하더라도 강제로 후킹을 사용할 수도 있다는 것이다. 야겜은 대부분 기본적으로 후킹을 지원하거나 H코드가 존재하기 때문에 별로 쓸 일이 없겠지만 야겜이 아닌 다른 게임들을 플레이할 거라면 반드시 익혀둬야만 하는 기능이다.
Settings - Search for Chinese/Japanese/Korean에 체크 - Search for specific text를 클릭한 뒤 현재 게임 화면에 출력되고 있는 대사를 입력[3]하면 몇 분 정도의 검색 이후 여러 개의 검색 결과를 보여주는데 후킹에 성공했을 경우 이 검색 결과 중 하나가 마치 H코드를 넣은 것처럼 제대로 보일 것이다.[4]
개발자가 밝힌 바에 따르면 이 기능을 사용하면 PCSX2, PPSSPP, yuzu/Ryujinx[5], WOLF RPG 에디터[6], Ren'Py, 티라노 빌더[7] 등으로 구동되는 게임들도 이론적으로는 후킹이 가능하다고 한다. 실제로 듀엘 세이버 데스티니 PS2판, Chaos;HEAd PSP판, 극한탈출 시리즈 스팀판, 월희 -A piece of blue glass moon- 스위치판, 대도서관의 양치기 스위치판, 벚꽃의 구름*스칼렛의 사랑 스위치판 등은 이 기능을 사용하면 후킹이 가능하다.
물론 이렇게 해도 후킹이 안 되는 게임들이 더 많고[8] 보통은 후킹 코드 저장이 가능하기도 하지만 일부 게임들[9]의 경우 매번 게임을 실행할 때마다 후킹 코드가 바뀌는 탓에 번거로운 작업을 반복해야만 해서 OCR 인식률이 뛰어난 게임이라면 차라리 MORT를 사용하는 게 더 나을 수도 있다. 큰 기대는 하지 말고 그냥 후킹이 안 될 때 한 번 최후의 수단으로 시도나 해보자는 마음가짐으로 임하는 게 좋다.
특정 문장이나 단어가 반복될 경우에는 Remove Repeated 플러그인을 사용하도록 하자. 증상이 개선될 수도 있다. 단 WOLF RPG 에디터 같은 경우에는 Remove Repeated 시리즈를 사용하는 것보다는 세팅에서 Filter repetition을 체크하는 게 훨씬 효과적인 모습을 보여주고 개발자도 이를 권장한다.
5. 개발 중지 및 비공식 업데이트
2020년 8월, 4.12.4 버전이 배포되면서 개발자가 사실상의 개발 중지를 선언하였다. 4월부터 개발에 지쳤으며 앞으로는 사소한 버그 수정 외에는 업데이트 계획이 없다고 한다. GitHub와 이메일을 통한 질의응답도 중단하였고 개발을 중지하였기에 후원도 받지 않겠다고 한다. 그래도 버그 수정과 기능 개선을 비롯한 마이너 업데이트는 꾸준히 이루어지고 있다. 그리고 2021년 6월에 약간 심경의 변화가 온 듯한 코멘트를 남기더니 7월에 마이너 업데이트가 아닌 메이저 업데이트가 이루어지고 RPG 만들기 MZ의 후킹을 기본적으로 지원하게 되었다. 그러나 2022년 1월에 5.2.0 업데이트를 한 이후부터는 다시 무소식이 되었다. 개발자가 질의응답에서 몇 번 임시 업데이트를 올리거나 업데이트 예정 소식을 알린 적도 있지만 정식 업데이트는 이루어지지 않고 있다.2022년부터는 Blu3train이라는 유저가 주축이 되어 비공식 업데이트가 이루어지고 있다.# 통파일이 업로드되는 것은 아니고 각 파일이 업데이트될 때마다 그 파일만 올라오는 방식으로 업데이트가 이루어지고 있다. 가장 핵심적인 파일은 texthook.dll이다. 비공식 업데이트 버전에서는 DeepL을 통한 한국어 번역도 지원한다.
또한 방법이 까다롭기는 하지만 플러그인을 사용할 경우 대사창의 X번째 줄이 각각 따로따로 출력되던 게임도 정상적인 후킹이 가능하게 되었다. 기본 내장 플러그인인 Thread Linker에 Join Sentences[10]라는 플러그인을 복합하면 된다. Thread Linker는 과거 여러 후커 프로그램에서 '스레드 링크'라는 기능에 해당되는 플러그인으로, 여러 개의 번역 스레드를 하나의 스레드로 통합시키는 기능을 가진 플러그인이다. 스레드 링크 순서는 역순으로 추가하면 된다. 3번째 문장이 출력되는 스레드 → 2번째 문장이 출력되는 스레드 → 1번째 문장이 출력되는 스레드로 화살표가 가도록 입력하면 된다.
6. 사용법
6.1. 프로그램 설명
1. Attach to game: 텍렉을 기존 실행 중인 게임프로그램 파일에 적용시킨다.
2. Launch game: 텍렉에서 검색창을 바로 띄워서 게임을 바로 구동한다. 편리하지만, 관리자 권한 실행이 아니어서 후킹이 안 될 때가 많아[11] 의미없는 기능이다.
3. Configure game: 게임구동 설정이다. 지나치게 많은 코드를 불러 오는 게임의 경우 미리 필터를 설정해둘 수 있다.[12]
4. Detach from game: 후킹을 해제한다.
5. Forget game: 실행하고 저장된 게임 목록에서 해당 게임(의 바로가기)을 제거한다.
6. Add hook: 후킹 옵션(H코드)를 입력한다. 입력 후 바로 적용되지 않으므로 게임텍스트를 몇 개 넘겨서 USERHOOK를 찾아야 한다.
7. Remove hook(s): 출력 중인 후킹 스레드 목록에서 원하는 것을 제거한다. 너무 스레드가 많아서 렉이 걸리는 경우가 꽤 많기에 쓰는 기능. 이렇게 제거하고 밑의 Save Hook(s)로 저장하지 않으면 초기화된다.
8. Save hook(s): 적용 중인 H코드를 저장한다.
9. Search for hooks: 후킹 옵션을 찾는다. 찾는 법은 밑을 참조.
10. Settings: 텍렉 기본 설정창을 연다. Filter repetition이 기본 해제되었으므로 체크한다. 최대버퍼크기, 플러시 딜레이도 200/50으로 줄이면 딜레이가 1~2초 이하로 줄어들어 빠르게 넘기기 편리해진다. 변경하고 맨 밑의 설정저장(Save Settings)를 눌러서 저장한다.
11. Extensions: 새창을 띄운다. 확장 플러그인을 추가/제거하고 적용 순서를 바꿀 수 있다.
Extensions 기본 실행 창. 드래그로 순서를 바꾸고, 창에서 오른클릭하여 추가/제거한다. 추가시 자동으로 텍렉을 설치한 폴더 탐색기 창이 뜨는데, XDLL파일이 모두 플러그인이다.
추가는 텍렉 폴더에서 직접 드래그로 할 수도 있다.
6.2. 기본 구동법
공식 튜토리얼 비디오. 샘플 게임은 발드 스카이.
1. 게임을 켠다. 타이틀이나 설정화면이 아니라 텍스트가 출력된 상태로 둔다.
2. 텍렉을 켠다.
3. Attach to game을 누른다.
4. 띄워진 탐색창에서 1에서 실행한 게임 프로그램 파일을 찾아 더블클릭한다.
5. 정상적으로 후킹되었다면 Console이라 되어있는 표시줄 옆 삼각형을 누르면 스레드가 쭉 나온다. 뽑힌 스레드들을 살펴보면서 완전히 후킹된(=게임 화면의 텍스트와 일치하는) 스레드를 찾는다. 이름이나 다른 캐릭의 대사 등이 안 뽑힐 수 있으므로 좀 넘겨 확인해야 한다. H코드를 입력했다면 기존 후커와 똑같이 USERHOOK 스레드만 찾으면 된다.
6. 에그헤드나 아네모네를 켜서 번역한다.
7. 게임을 즐긴다.
6.3. 자체 H코드를 찾는 법
게임 텍스트가 화면에 출력 중이어야 한다.1. Seach for hooks를 누른다.
2. Seach for Chinese/Japanese/Korean에 체크한다.
3. Search for specific text를 눌러서 현재 출력 중인 문장을 입력한다. 귀찮다고 조금만 입력하면 온갖 잡스레드가 걸려나와 쉽게 렉이 걸리거나 크래시가 뜨므로 인터넷 웹사이트의 일본어 입력기를 써서라도 문장을 최대한 정확히 입력한다.
4. Start hook Seach를 누른다. 크래시/셧다운에 주의하고 결과 창에서 완전히 후킹된 것을 찾는다.
5. 찾은 코드를 캡쳐하든지 Save Hooks로 저장해둔다. 설정은 Textractor가 설치된 폴더에 있는 SavedHooks.txt 파일에 저장된다.
6. USERHOOKS 스레드를 찾아서 적용시킨다.
7. 에그헤드/아네모네 등을 켜서 게임을 즐긴다.
7. 추천 플러그인 세팅
- Remove Repeated Phrases, Remove Repeated Phrases 2: 반복 문장 제거 기능.
- Remove Repeated Characters: 반복 문자 제거. 문'장'이 아니라 문'자' 제거라서 기능이 다르다.
- Remove 30 Repeated Sentences: 30자 이상 반복 문장 제거. 위의 Phrases가 안 될 시 넣는 기능.
- Thread Linker: 스레드 연결 기능. ITH에서는 기본적으로 지원되던 기능이다.
- Copy to Clipboard: 클립보드 자동복사. 다른 후커처럼 이게 켜져있어야 텍스트 출력기에 제대로 나온다. 맨 밑에 넣자.
위 캡처에는 없지만 Regex도 쓸 줄 안다면 추가해도 좋다. 또한 플러그인의 순서가 굉장히 중요하다. 상술한 것처럼 Copy to Clipboard는 맨 밑에 넣는게 좋다던가. Thread Linker와 Join Sentences, 후술할 Replacer의 경우 만약 동작을 제대로 안 한다면 플러그인 리스트 상단으로 점차 올리도록 하자.
7.1. 참고하면 좋은 Regex Filter 명령어
'Regex Filter'는 텍렉 설치 후 기본 적용된 플러그인이다. 주요 기능은 텍렉이 게임에서 추출한 문장을 편집(삭제)하는 것이다. 명령어를 입력해 저장하면 추출한 문장에서 특정 부분을 삭제할 수 있다. 깔끔한 번역문 출력을 원할 때 쓰는 기능이다.예를 들어 일본 비주얼 노벨에서, 줄바꿈으로 공백이 생겨 해석이 이상해지거나 문장 중간에 '\#Scale', '#n' 등 불필요한 문자가 섞일 때 유용하다.
- |: 다수의 명령어를 입력할 때에 구별하기 위해 사용한다.
- \\s: 문장의 모든 공백을 삭제한다.
- [\\u0021-\\u00ff]: 알파벳을 포함한 모든 유러피안 언어, 그에 사용되는 일부 특수문자 등을 삭제한다.
- [\\u0100-\\uffff]: 위와 반대로 유러피안 언어가 아닌 모든 문자를 삭제한다.
- [\\u0000-\\u2fff\\ua000-\\uffff]: 한글, 일본어, 중국어가 아닌 모든 문자를 삭제한다. ?나 ! 등의 특수문자도 삭제하니 주의.
7.2. Replacer
후킹으로 나오는 게임의 명령어를 텍스트로 전환시키기 위해 사용하는 플러그인. 일종의 사용자 사전에 해당되기 때문에 어떤 명령어가 어떤 텍스트로 대응되는지를 알아야만 해서 일반 유저가 직접 전환표를 만드는 것은 불가능하고 기본적으로는 다른 유저들이 제작한 전환표를 다운받아 사용해야만 한다.사용법은
1. SavedReplacements.txt 파일이 Textractor가 설치된 폴더에 있는지 확인한다. 없다면 직접 만든다.
2. SavedReplacements.txt 파일을 전환표대로 편집한다.
3. Textractor를 실행한 뒤 Replacer 플러그인(Replacer.xdll)을 추가한다.
4. 게임을 후킹해서 플레이한다.
MAGES.(5pb.)의 게임이 H코드를 찾아서 넣는다고 하더라도 텍스트가 출력되는 게 아니라 텍스트에 대응되는 프로그래밍 코드만이 출력되어서 이 플러그인을 사용해야 한다. 주로 과학 어드벤처 시리즈와 메모리즈 오프 -Innocent Fille-를 플레이하는 데 사용된다.
MAGES. 게임용 리플레이서(VPN 우회 필요)
8. 주의사항
- 32비트와 64비트로 구분되어 있어, 32비트 게임은 32비트로만 후킹이 가능하고 64비트 게임은 64비트로만 후킹이 가능하다. 에로게는 일본 PC 개발환경상 대부분 32비트이지만 에로게가 아닌 일반 PC 게임이나 에뮬레이터 등을 후킹할 때는 64비트를 써야 할 때도 있다. 어느 버전이든 관리자 권한 실행을 권장한다.
- ITH에 비해 후킹 중 게임이 셧다운되기 쉽다. 이를 피하려면 게임 타이틀 화면이 아니라 텍스트가 출력된 화면에서 실행해야 한다.
- 지원 게임 회사 엔진이 ITH에 비해 적다. 특히 오래된 게임, 이른바 틀겜 구동에는 ITH가 더 쓰기 편할 수도 있다.
[1] 이름+대사 스레드 합치기나 캐릭터A 스레드+B캐릭터 스레드 등.[2] 당장 홈페이지에 예시로 올라와있는 스크린샷부터가 RPG 만들기 XP의 게임을 후킹한 화면이다.[3] 가능하면 대사창 첫번째 줄의 첫번째 글자부터 입력하는 게 좋다. 캐릭터의 이름이나 괄호를 비롯한 특수문자까지 포함해서. 왜 그러냐면 예를 들어서 만약 2번째 글자부터 입력했을 경우 후킹에 성공해도 2번째 글자부터 텍스트가 출력되기 때문이다. 반대로 대사를 끝까지 입력할 필요는 없다. 대사가 시작되는 부분 몇 글자를 똑바로 입력하는 것이 중요하다. "그래, 그거다. (다음 화면 대사)바로 그런 것이다."라는 대사를 "래, 그거"라고 검색할 경우 "래, 그거다. (다음 화면 대사)로 그런 것이다."같은 식으로 후킹이 된다는 것.[4] 보통은 3개 이상의 검색 결과 창이 나올 것이다. 백로그가 출력되는 창, 현재 게임 화면에 보이는 대사창의 X번째 줄만이 출력되는 창, 현재 게임 화면에 보이는 대사창 전체가 출력되는 창 등. 여기서 필요한 것은 '현재 게임 화면에 보이는 대사창 전체가 출력되는 창'이다.[5] 스위치 에뮬레이터의 경우 설사 후킹이 되는 게임이라고 하더라도 보통 5분, 길게는 10분 이상 기다려야만 후킹이 완료된다. 또한 게임에 따라 에뮬 설정을 변경해야 할 수도 있다. Ryujinx의 경우 게임이 멈춘다면 Memory Manager Mode 설정을 변경해볼 것.[6] WOLF RPG 에디터 구버전은 ITHVNR 등으로도 간편하게 후킹할 수 있었지만 최신 버전은 후킹이 힘들어졌는데 Textractor는 약간 나아진 모습을 보여준다.[7] 비주얼 노벨 제작 프로그램으로 대표적인 작품으로는 도트코이가 있다.[8] '현재 게임 화면에 보이는 대사창 전체'가 필요한데 그것은 나오지 않고 '대사창 X번째 줄만이 출력되는 창'만 검색 결과로 나오는 경우가 많다. 루나소프트 엔진으로 개발된 게임들(일단 현 시점에서는 유저 코드가 발견되었다)과 Fate/EXTRA 시리즈(PPSSPP) 등이 그러하다. 다만 이러한 작품들은 후술하겠지만 플러그인을 통해 정상적인 후킹이 가능하기도 하다. 또는 환상소녀대전(엔진: 게임메이커)처럼 대사창뿐만 아니라 각종 명령어까지 전부 출력되어서 텍스트 과다 현상이 발생하는 경우도 있다. 아예 이런 것들조차도 나오지 않는 게임들도 많고.[9] PPSSPP, yuzu, Ryujinx로 실행하는 에뮬레이터 게임들과 유니티로 개발된 게임들 등. 유니티 게임은 따로 후킹 코드를 수동으로 찾을 필요가 없이 기본적으로 후킹이 가능한데도 매번 게임이 실행할 때마다 코드가 바뀐다는 게 특이점. 기본적으로 에뮬레이터 게임들이 후킹 코드 저장이 안 되는 경우가 많지만 모든 에뮬레이터들이 그런 것은 아니라 PCSX2의 경우 후킹 코드 저장이 가능하기도 하다.[10] Thread Linker는 스레드를 통합하는 데 걸리는 시간과 딜레이가 애매할 때는 스레드 통합이 원활히 이루어지지 않을 때가 있는데 그 시간을 일관되게 고정시키는 플러그인이다. 예를 들어서 1초 버전 플러그인을 사용하면 1초 동안의 모든 스레드가 통합되는 방식. 이 플러그인도 Blu3train라는 유저가 제작했지만 지금은 어째서인지 배포가 중단되었다. 다만 다른 유저가 재배포를 하는 것은 개의치 않는 것으로 보인다. 해당 링크는 다른 유저가 32비트 버전 플러그인을 재배포한 링크인데 이후 Blu3train이 나타나서는 이 플러그인에 관심이 더 있다면 플러그인을 새로 만들거나 개조해서 써도 된다는 의미로 플러그인의 소스 코드를 뿌리고 갔다. 64비트 버전 플러그인은 재배포가 이루어지지 않았기에 소스 코드를 이용해 사용자가 따로 64비트 플러그인을 만들어야하만 한다. 불행 중 다행인 점은 후킹이 지원되는 64비트 게임이 애초에 거의 없다는 점이지만...[11] 에로게 후킹은 유틸리티, 게임 모두 관리자 권한실행이 필수인 게임이 많다.[12] 후킹을 한 뒤에 Configure game 버튼을 클릭하면 게임이 설치된 경로에 TextractorConfig.txt라는 파일이 생기는데 이 파일이 '코드 필터'의 역할을 해줘서 필터에 걸러지는 코드는 후킹을 하지 않아 랙이 안 생긴다. 유니티 게임 때문에 제작자가 추가한 기능이라고 한다. 사용법은 txt 파일에 후킹을 하고 싶은 코드의 코드 이름, 즉 대사창의 코드 이름을 입력하면 된다. 보통은 string:Replace (string,string)이라고 입력하면 되나 게임에 따라 다른 코드 이름을 입력해야 할 때도 있다. 보다 자세한 건 여기 참조.