아카이브/기타

Hate Plus 한국어화 작업일지

2022. 7. 15. 15:55

원본 링크

저작자 : @ReallyiAmGhost

 

더보기

Hate Plus 한국어화 작업일지 - 26 (번외편)

아실 분들은 아시겠지만 헤이트 플러스 한국어판이 정식 릴리즈가 되었습니다.

이 릴리즈에도 되게 많은 사연이 있지만 고통스럽다는 글은 지난 25개의 글에 걸쳐 충분히 쓴 것 같습니다.

그래서 번외편으로 그동안 제 고통을 덜어주는데 도움이 되었던 도구들을 정리해보는 시간을 가지려고 합니다.

Sublime Text 3

현재 제가 제일 좋아하는 텍스트 편집기입니다. 공식 홈페이지 가서 움짤만 봐도 바로 쓰고싶어질 정도로 다양한 기능이 있습니다.

처음에 쓰면 인터페이스라는게 거의 존재하지 않아 당황스럽기는 한데 익숙해지면 기능이 많아서 정말 편한 텍스트 에디터입니다.

AutoIt v3

윈도우 환경에서 매크로 만들때 매우 편리한 스크립트 언어입니다. 다만 기본적으로 스크립트 언어라 프로그래밍을 어느정도 하시는 분이 쓰셔야 편합니다.

Total Commander

스크린샷 보면 뭐 이렇게 촌스러운 프로그램이 있나 싶지만 정말 좋은 파일 탐색기입니다. 헤이트 플러스같이 한 폴더에 스크립트 파일이 잔뜩 있는 경우에 유용합니다.

또 다중 파일명 변경, 텍스트 내용 검색기능 같은 좋은 기능들이 많이 있습니다.

GIMP

“꽃을 따지 마세요"에 사용된 이미지 편집 툴입니다. 포토샵 같은 상용 툴이 아닌 오픈소스 프로그램이라 특유의 공돌이 냄새나는 인터페이스는 어쩔 수 없지만 기능은 정말 막강합니다. 제가 한걸 보세요!

Python

제가 정말로 좋아하는 프로그래밍 언어입니다. 어지간한 텍스트 관련 노가다는 이거로 다 했습니다. 여기에 뭐라고 적어야 할지 모를 정도로 정말 좋습니다.

대충 이런 것들을 써왔습니다. 혹시라도 비슷한 고통을 받으실 분들에게 도움이 됐으면 좋겠네요.

그리고 마지막으로 같이 고통받아주신 번역가 김지원님, Pig-Min의 광님, 제 작업이 시작되기도 전부터 헤이트 플러스 빨리 나와라 기우제를 지내고 계셨던 Dr. ReB님, 한글 입력기를 만들어주신 백안시님, 베타 테스트에 참여해주신 테스터 님들, 지치지 않고 기다려주신 플레이어 분들 등등등에게 매우매우 감사드립니다.

뭐 아무튼… 이런저런 일이 있었지만 ☆★ 다 됐어요~! ★☆

재밌게 해주세요.


Hate Plus 한국어화 작업일지 공개

안녕하세요. Hate Plus 한국어화의 기술 담당을 맡고 있는 나유령 입니다.

작업을 하면서 간간히 써왔던 일지를 공개합니다.

스포일러성 내용은 없으며 기술적인 내용들이랑 고통스럽다 살려주세요 뭐 이런 내용들이 적혀있습니다.

다시 읽어보니 저는 꽤 재밌는데 다른 분들이 볼때 어떨지는 잘 모르겠네요.

[헤이트 플러스 한국어화 작업일지 전체 보기] <- 클릭!

글이 역순이라 보기 불편하다는 말이 있어서 하나씩 링크도 걸어봅니다.

위에건 클릭한뒤 맨 아래로 내려서 위로 스크롤 하며 보시면 되고 아래건 하나씩 클릭해가며 보시면 됩니다.


Hate Plus 한국어화 작업일지 - 25 (마지막장)

2014년 12월 29일

아침 7시 30분

근 한달동안 소통이 되지 않았던 크리스틴 누나께서 이상한 메일을 보내왔다.

“세이브 관련 문제가 있어서 이전 버전으로 롤백할 것이고 한국어화 릴리즈는 조금 뒤로 미뤄야 할 거 같다” 라고…

막 깬 참이라 상황 이해가 안됐는데 이런 저런 정황을 조합해보니 자고있는 사이 이런 일이 일어난것이다.

  1. 헤이트 플러스 한국어 데이터를 스팀판의 메인으로 업로드 했음.
  2. 그러나 세이브 파일 마이그레이션(아날로그: 어 헤이트 스토리->헤이트 플러스) 문제가 있다.
  3. 한국어 사용자 뿐만 아니라 영문판에게도 타격이 가는데다 고칠 시간이 없으니 임시로 롤백하겠다.

…………….

지금 한달만에 릴리즈가 될 기회가 됐는데 다시 롤백을 한다고!!!

그래서 일단 이렇게 보냈다.

  1. 일단 베타 테스트때 썼던 베타 브랜치를 최신으로 업데이트 하고 비밀번호를 없애 공개로 바꿔서 베타 버전으로라도 릴리즈 하자.
  2. 세이브 문제가 뭔지는 모르겠지만 해결하고 나서 최신 버전으로 합치자. 문제가 되는 세이브 파일들을 보내달라 직접 고쳐볼테니

이러고 나서 잠들었다.

오전 9시 23분

답장이 왔다.

“롤백을 했는데 우리가 전에 고쳤던 그 버그랑은 상관이 없는거 같다. 왜 이전에는 안 튀어 나왔는지 모르겠는데 아무튼 한국어를 뺀 버전을 올려놨다. 잠시 상황을 봐야겠다.”

뭔 소리야!!!!

아무튼 뭐 상황을 지켜본다니까 어쩔 수 없는거 같다.

그렇게 일단 이해한 상황에서 학교를 갔다.

오후 3시경

한국어가 나온대!!!!!!!!!!!!!!!!!!!

도저히 사태 파악이 안되서 이분 저분에게 물어본 결과 “한글 선택"만 막았고 데이터는 담긴 채로 릴리즈가 된 것 같다.

그리고 그런 상태로 모 게임 커뮤니티의 뉴스 소식에도 올라가게 되었다.

아 이게 뭐야… 이건 뭐 정식 릴리즈 한것도 아니고 안한것도 아니고…

오후 7시경

위에서 말한 "세이브 버그"가 아직도 존재한다는 것을 확실히 할 수 있었다. 일단 집에 가서 고쳐야 하니 세이브 파일들을 요청했는데 다행히 잘 보내주셨다…

오후 8시 50분쯤

이런 문제가 있는줄도 몰랐는데 크리스틴 누나가 일단 세이브 마이그레이션은 못하지만 게임이 튕기지는 않게 땜빵을 해놓은 상태였다.

자꾸 헤이트 플러스에 존재하지 않는 요소들을 세이브 파일들이 요청해서 생기는 문제인데… 정말 모르겠다…

오후 9시쯤

도저히 해결이 안되서 혹시 헤이트 플러스의 기반인 아날로그: 어 헤이트 스토리에 실마리가 있지 않을까 하여 게임을 다운로드 받았다.

그런데 뭔가 이상한, 전에 작업했을때는 없는 매우 수상하게 생긴 파일 하나가 있었다.

"sorry_about_this.rpa”

뭔 파일이야 이게!!!!!

매우 수상하여 압축을 풀고 디컴파일 하고 확인해보니 일본어 번역과 관련된 파일들이었다.

그리고 위에서 찾아대던 그 “존재하지 않는 요소"들을 여기서 찾았다.

아 뭐야 한글화 때문에 생긴 버그가 아니잖아!!!!!!!

오후 10시쯤

그 외에도 분명 베타 테스팅때 고쳤던 버그인데 부활한 버그가 있었는데 이건 패키징이 잘못 되어 그런 것이었다.

임시로 핫픽스를 배포하고 메일로도 버그에 대해 설명했다.

으아 힘들다.


Hate Plus 한국어화 작업일지 - 24

아나

니가 갑을 독촉하는 을의 심정을 알기나 하냐!!


Hate Plus 한국어화 작업일지 - 22

정말 오랫만이다. 마지막으로 일지를 쓴게 8월이니까 약 4달만인가…

원래는 마지막으로 베타테스트 한번 더 하고 내려는게 목표였는데 크리스틴 누님의 이런 저런 일이 겹쳐서 계속 늘어졌다.

그렇게 오랫동안 고통받아 오다가 다시 관심을 받기 시작했고 오늘은 마지막 베타 테스트가 끝나는 날이다.

이번 베타 테스트는 모 만화 커뮤니티 분들 다수와

스팀에 부정적인 리뷰를 달아주신 분으로 진행했다.

지금 와서 느낀건데 테스트에 참여해주신 분들이 총 18명이나 된다. 우와…

문제는 이렇게 테스트를 해도 할때마다 계속 오타/번역 문제가 계속 나온다. 흑흑…

새벽 3시 - 릴리즈 요청 메일을 보냈다. 번역가님 너무 부지런하셔…


Hate Plus 한국어화 작업일지 - 21

2014년 8월 31일

아마도 끝난거 같다.

처리한 버그리포트 수 총 511개.


Hate Plus 한국어화 작업일지 - 20

출시 전까지 아직 여유가 있어 간간히 테스터를 더 불러다 테스트를 시키고 있는데 무슨 테스트를 할때마다 뭐가 나온다.

잡아도 잡아도 끝이 없어…

특히 인물 설명쪽의 조립식 문장은 해결될 기미가 안 보여서 모든 상황에 맞는 텍스트를 출력하는 스크립트를 짜서 직접 조립을 해봤다.

번역 안된거 장난아니게 많았네…


Hate Plus 한국어화 작업일지 - 19

2014년 8월 22일

버그 거의 다 잡았을거라고 방심했는데 되게 많이 쏟아져나온다.

특히 문장 내용이 이상한거, 오타 등이 많이 잡히고 있다.

기존 테스터들은 깨는 데 열심히 노력했다면 지금 달리고 있는 이 분은 읽는데 노력한다는 느낌.


Hate Plus 한국어화 작업 일지 - 18

2014년 8월 21일

중간에 적진 않았지만 사실 저번주에 2차 베타 테스트가 있었다.

근데 1주차에 너무 달린 탓인지 2주차는 시들했다.

내일은 3차 테스트가 시작하는 날인데 테스터도 새로 뽑아서 진행하려고 한다.

테스터중 Hate Plus 테스트를 위해 전작 A Hate Story를 빠르게 클리어한 사람이 있어 기대된다.


Hate Plus 한국어화 작업일지 - 17

2014년 8월 15일

버그리포트 처리 갯수 400개 돌파!

————–

UI 배치를 언어별로 다르게 뜨게 했다.


Hate Plus 한국어화 작업일지 - 16

2014년 8월 13일

어제 대패질했던 이미지가 자꾸 눈에 밟혀서 더 작업을 해봤다.

근데 이걸 크리틴님이 텍스트를 다시 넣어줄지 못 넣어줄지도 모르는 상황이라 직접 텍스트도 넣어봤다.

와 위화감 제로네

나좀 짱인듯

툴은 계속 GIMP를 사용했고 폰트는 나눔손글씨 붓체를 사용했다.

텍스트 툴로 그냥 텍스트 적은다음에

 골조 변형 툴로 조금 찌그러트리고

글자 복사해서 유체화 필터 먹인뒤 크기 조금 조절하고 반투명하게 했다.

그다음에 블러 살짝 먹이고,

 이 도구가지고 살짝 비볐다.

파란색만 만든나음에 나머지는 골드/레드/핑크 버전은 HSV값만 조절하여 만들었다.

———–

크리스틴에게서 답장이 왔다. 내가 만든 이미지가 그냥 쓰인다!

———–

기쁨을 주체하지 못한 나머지 밤샘 삽질을 하고 있다. 현재 시각은 5:30.

하지만 삽질의 결과물이 꽤 괜찮다.

이번에도 백안시님의 한글 입력기가 많은 도움이 되었다. 전작에는 뭘 입력해도 아무런 영향을 주지 않아서 없어도 그만인 기능이었는데 이번엔 아니니…


Hate Plus 한국어화 작업일지 - 15

2014년 8월 12일

크리스틴이 PAX 준비 관계로 많이 바쁜거같다. 각종 메일들의 대한 답장도 한꺼번에 받았다.

이중 나쁜 소식은 일러스트들의 원본 파일이 없다고 한다.

초상화에 쓰인 일러스트인데 일러스트를 고칠 수 있는 상황이 아니라고 한다.

그래서 부랴부랴 GIMP 설치해서 대패질해봄

별거 없다 그냥 도장툴만 썼다…


Hate Plus 한국어화 작업일지 - 14

2014년 8월 11일

TO REN'PY USERS: PLEASE UPDATE YOUR REN'PY VERSION, OLD REN'PY’S TRANSLATION SYSTEM SUCKS

—————-

미번역 대사 패턴을 더 찾았다.

  • 대사와 같은 줄에 주석이 달려 있음
  • 하렘 루트에서 *현애가 맨 오른쪽에서 말하는 대사들
  • 하렘 루트에서 뮤트의 선택지 대사들

으앙…

아무래도 크리스틴씨도 직접 추출기를 만들어 정리해서 보내준거 같은데 추출기가 제대로 만들어지지 않은 모양이다…

그나마 패턴을 알아내서 다행이다.

이 패턴 기반으로 미번역 텍스트 뽑으니까 짱 많아…

—————-

번역가님하고 구글 드라이브 온라인 표시 가지고 밤샘 경쟁을 하고 있는거 같다 ._.)

—————–

WOW SUBLIME TEXT IS SO AWESOME

Sublime Text 진짜 끝내준다.

여러줄 편집기능, 정규식 검색기능이 특히 좋다.

특히 정규식 검색기능은 없었다면 매번 파이썬으로 스크립트 짜고 있었을텐데…

————–

테스터중에 게임 오버를 만난 사람이 나왔다.

근데 이거 의도해서 넣은게 아니라 옛날 아날로그:어 헤이트 스토리에서 가져온 코드의 영향인거 같다.

이 무슨 엄청난 플래그 브레이커인가… 있지도 않은 게임 오버를 만나다니…

이렇게 화면 배색도 안 예쁘게 되어 있고

좀 진행하면 이렇게 이상한 상황에서 막혀버린다.

어쨌든 이쁘게 바꾸고 메인메뉴로 잘 튕기게 바꿔봤다.

– 2014-12-29에 추가

이 버그는 크리스틴 러브의 요청으로 완전히 없애버렸다.

—————–

밤 샜어!


Hate Plus 한국어화 작업일지 - 13

2014년 8월 10일

번역을 이미 했지만 제대로 출력이 안 되는 텍스트가 무지 많다.

고치다보니까 이들의 패턴을 알게 되었다.

1. 호칭이 다른 텍스트들

영문판에선 Mr, Ms, Miss 등으로 호칭을 다양화 했는데 한국어판에선 “선생님"으로 통일했다.

(이거 왜 이렇게 한건지 모르겠는데 신의 한수였는듯…)

이거 다 다른 문장으로 나올 줄 알고 원문을 이런식으로 받았었는데:

Hey… one last thing, Miss Investigator?
Hey… one last thing, Ms Investigator?
Hey… one last thing, Mr Investigator?
Hey… one last thing, Investigator?

게임상에서는 이런식으로 처리하고 있었다.

Hey… one last thing, [title]Investigator?

원래는 Ren'Py가 [title]부분을 출력하기 전에 바꿔주는데, 대사 번역이 적용되는 시점은 이거보다 훨씬 전이다.

그래서 치환되기 전의 문장을 그대로 찾은뒤 바꿔야 하는 것.

2. 조건부 조립식 텍스트들

인물 프로필 텍스트들은 조립식이다. 진행에 따라 계속 설명이 바뀌는데 이건 또 별개의 텍스트를 독립된 문장으로 본다.

예를 들자면:

Councillor Kim was the grandfather of Kim So-yi… Old *Mute was pretty antagonistic towards him… he was the Councillor of Engineering.
Former Councillor Kim was the grandfather of Kim So-yi… Old *Mute was pretty antagonistic towards him… he was the Councillor of Engineering.

이 둘은 다른 문장이다…

이들 조합이 상당히 많아서 번역이 안 했는데 됐다고 착각하기도 하고 그런다.


Hate Plus 한국어화 작업일지 - 11

2014년 8월 8일

노가다 끝났다!!!

이제 곧 클로즈베타 시작.

—–

UI쪽 미번역 문제들이 번역 이전에 애초에 한글 출력이 가능하게 되어있지가 않은 부분이 많은것같다…

—–

클로즈베타 시작한지 얼마 안됐는데 벌써 엔딩에 관한 버그 리포트까지 들어왔다.

대단해… 그리고 죽을거같다..


Hate Plus 한국어화 작업일지 - 10

2014년 8월 7일

*뮤트 다이얼로그를 다 끝냈다

라고 생각했는데

새 *뮤트가 기다리고 있었다.

제길…

————

새 *뮤트가 로그 읽고 할 말이 있을때 튕기는 버그를 고쳤다.

새 *뮤트로 로그 5-5를 읽을때 5-6의 다이얼로그가 뜨는 문제를 수정했다.

…이 버그는 새로 생긴 버그일까 원래 있었던 버그였을까?

———-

무조건 하렘 루트로 갈 수 있는 치트를 넣었다.

————-

밤새서 끝내보려고 했는데 하렘 다이얼로그 양이 많아서 지쳐서 잠들었다…


Hate Plus 한국어화 작업일지 - 9

2014년 8월 6일

나유령의 노가다 교실!

1. 스크롤 위치를 확인합니다.

2. 영문 게임에서 해당 부분까지 스크롤합니다.

3. 문장 위치를 고려하여 위치를 똑같이 맞춥니다. 이때 맞추는 위치는 화면 맨 아래를 기준으로 합니다.

4. 스크립트를 고칩니다.

5. 이 작업을 M1~M6 로그에 대해 3번씩 합니다.

살려줘

사실 이거까지만 잘 되었어도 매우 순조로운데 문제가 하나 있다.

화면에 뜨는 스크롤 정보가 갱신이 잘 안된다는 것이다…

프로필을 한번 본다음에 돌아오면 제대로 뜨긴 하는데 이거때문에 원문 스크롤 위치를 맞추는데 너무 많은 시간이 걸린다.

그래서 AutoIt을 사용해 자동으로 스크롤해주는 프로그램을 만들었다…

이제 조금은 편해질 수 있겠다.


Hate Plus 한국어화 작업일지 - 8

2014년 8월 5일

스크롤 다이얼로그 *현애 파트를 다 끝냈다.

로그를 읽으면서 버그도 꽤 잡았다.

이제 이짓을 2번 더 해야된다…


Hate Plus 한국어화 작업일지 - 7

2014년 8월 4일

직접 고쳤다!!!

이전 로그 스타일(어 헤이트 스토리)중 한국어 관련된 스타일이 누락되어 있었고 AI 비활성화시 무조건 영문 스타일을 쓰게끔 되어있는게 문제였다.

덤으로 *현애 AI를 중지시킨 상태로 로그 읽을때 생길 수 있는 문제도 고쳤다.

(근데 게임상에 이런 상황이 없는거 같다…)


Hate Plus 한국어화 작업일지 - 6

2014년 8월 3일

전에 말했던 스크롤 다이얼로그 작업을 좀 쉽게 하기 위해 글자 크기, 텍스트박스 사이즈, 워드랩을 흉내내는 프로그램을 만들어봤다.

http://code.activestate.com/recipes/577946-word-wrap-for-proportional-fonts/

가변 폰트 크기를 적용 가능한 스니펫이 있어서 이걸 사용했다. 여기에 글자별 폰트 사이즈는 fontforge 라이브러리를 사용해 실제 게임에서 쓰는 폰트의 글자 크기를 그대로 가져다 쓰게끔 했다.

이제 이걸 기반으로 텍스트들을 뽑아내고 보면서 비교하는 노가다만 하면 된다.

…라고 생각했는데 이거 뭔가 이상하다.

최대한 비슷하게 흉내낸다고 흉내냈지만 실제 게임에서 출력되는것과 다르게 나온다.

제길…

하는 수 없이 게임을 뜯어고쳐서 스크롤 정보를 화면에 뜨게 했다.

진작에 이럴걸… 이제 게임 두개 띄워놓고 비교하면서 기록만 잘 하면 된다.

게임 진행하는게 귀찮아서 내부 설정으로 모든 로그를 언락시키는 코드도 끼워넣었다.

*뮤트의 Block 13 로그들을 읽을때 하이퍼링크가 제대로 표시되지 않고, *뮤트 AI 활성화 상태에서 읽을시 튕겨버리는 문제를 발견했다.

최신버전은 어떤지 모르겠는데 Ren'Py의 Traceback 시스템은 최악이다. 제대로 된 에러 정보를 주지 않는다.

이건 도저히 모르겠으니 크리스틴님한테 고쳐달라고 해야지…


Hate Plus 한국어화 작업일지 - 5

2014년 7월 25일

크리스틴님이 매우 바빴는지 한국어를 게임에 적용하는게 오늘에서야 끝났다.

게임이 다국어 지원이 쉽게 되게끔 만들어져있지 않았기 때문에 오래 걸릴게 대충 예상은 됐었다…

이제 큰 일이 하나 남았는데 바로 스크롤 다이얼로그를 고치는 것이다.

이건 헤이트 플러스에서 새로 생긴 시스템인데, 로그를 스크롤하면 히로인이 스크롤 위치에 따라 대사를 치는 그런 시스템이다.

문제는 이게 “게임상에서 스크롤된 줄"을 기반으로 대사가 뜨게끔 되어있다.

원본 텍스트 데이터 파일과 실제로 표시되는게 다르기 때문에(글자 간격, 텍스트 창 크기, Word wrap 등으로 인해) 이걸 구현하는데는 엄청난 노가다가 들어갔을 것이다.

문제는 번역된 텍스트에서는 이 위치가 달라지기 때문에 나도 노가다를 해야 된다… orz

텍스트 내에 화면에는 보이지 않는 마커같은걸 넣어놓은뒤 해당 마커가 있는 텍스트가 출력될때를 감지하여 보여주는 식으로 했으면 더 편했을거 같은데…


Hate Plus 한국어화 작업일지 - 4

2014년 5월 31일

번역 및 번역 텍스트 파일 머징 작업이 다 끝났다.

이제 크리스틴님한테 넘기고 게임에 적용되기를 기다리면 된다.


Hate Plus 한국어화 작업일지 - 3

2014년 5월 14일

크리스틴님이 직접 갈무리한 번역 스크립트 파일이 도착했다.

근데 이전에 지원님이 스크립트에서 직접 번역한 대사들하고 내용이 많이 겹친다.

이걸 또 번역하고 있을 수는 없으니 스크립트 만들어서 합쳐야겠다…


Hate Plus 한국어화 작업일지 - 2

2014년 4월 26일

로그 번역은 끝났는데 나머지 텍스트(대사, UI 등)는 어떻게 정리를 해야할지 감이 안 온다.

조사를 좀 해보았더니 헤이트 플러스는 구버전의 Ren'Py를 사용하고 있었다.

헤이트 플러스는 아날로그:어 헤이트 스토리와 마찬가지로 대부분의 텍스트는 rpt 파일(원문과 번역문을 담은 파일)에 들어있고, 로그 파일은 별개의 스크립트를 사용하는 방식을 썼다.

문제는 이거… 일단 원문을 뽑아내야 하는데 어떻게 해야할지 감도 안온다.

최신 버전의 Ren'Py에서는 번역을 위한 각종 기능들이 많이 추가되었지만 이 버전에는 없다…

일단 크리스틴님에게 대신 뽑아달라고 부탁을 했고 나는 최신 버전의 Ren'Py에서 번역 관련된 기능들을 백포팅 하려는 노력을 해봤다.

실패했다실패했다실패했다실패했다실패했다실패했다실패했다실패했다실패했다실패했다실패했다실패했다실패했다실패했다실패했다실패했다실패했다실패했다


Hate Plus 한국어화 작업일지 - 1

2014년 3월 14일

이번에는 번역 작업 초반부터 일을 하게 되었다.

번역할 스크립트를 미리 넘겨받았다. 근데 Block 파일은 도무지 보고 고칠 수 있는 형식이 아닌 것 같다…

그래서 보기 쉽게 바꿔주는 스크립트를 만들어 변환하여 번역가님께 전달하였다.