dmc31a42 / UnityGameL10nTutorial

Unity Game Localization Tools is helper to make localization patch for un-supported language.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

안녕하세요. 한글화 과정중 언어파일을 못찾겠네요[The Elder Scrolls_ Legends]

redsky1205 opened this issue · comments

resource 어셋, sharedasset 다 찾아봐도 못찾겠네요...
카드게임이라 카드 설명에 관한게 어디 한파일에 모여있거나 카드별로 다 따로 돼있고 그걸 각각 연결해놨거나 그런 구조를 생각했는데 전혀 모르겠네요

타입으로 분류해서 Font는 리소스 어셋에서 있는 거 확인했고, text asset도 여러개 찾았는데 그 중에서 이름 "chapter21"로 되어 있는 내용을 보면

{
"preGame": {
"lines": [{
"speaker": "Speaker1",
"text": "Text1",
"sound": "dark_elf_female_a_niceplay",
"time": 0
},
{
"speaker": "Speaker2",
"text": "Text2",
"sound": "dark_elf_female_a_niceplay",
"time": 3
},
{
"speaker": "Speaker1",
"text": "Text3",
"sound": "dark_elf_female_a_niceplay",
"time": 5
}]
}
}

이런 스크립트만 나와있네요.

streaming asset폴더에는 en_US폴더가 있고 그안에 들어가보면 또 UNITY3D라는 유형의 파일이 200개 있구요.

제가 번역하려고 하는 카드설명들의 데이터는 어디있을까요...ㅠㅠ

최근에 업데이트된 https://blog.nakwonelec.com/2018/03/27/%EC%96%B8%EC%96%B4-%ED%8C%8C%EC%9D%BC/ 을 확인해보시기바랍니다.
댓글로 작성하신거 보고, 강좌글 작성하면서 물어보신 게임도 확인해보았습니다.

직접 깔아보시고 설명까지 해주시다니 너무 감사드립니다 ( _ _ )
해당 언어파일에서 임의로 번역하여 그냥 고쳐봤는데 역시 글자가 나오지 않더군요.
험난한 길이 예상되는데 해당내용의 강좌는 뒤쪽에 나오는 것 같으니 그떄까지 기다릴게요
감사합니다~

설명드린 부분은 수정하니까 반영되던데 어느 부분에서 반영이 안되던지요?

  1. 게임 내에서 해당 문자열이 보일때까지 어떻게해야 들어갈 수 있는지
  2. 해당 문자열이 나온 부분에 대한 게임 캡쳐
  3. 언어 파일에서 무슨 key를 가진 부분을 수정했는지
  4. 언어 파일을 어떻게 수정하고나서 DB Browser의 캡쳐본
    을 올려주시면 감사하겠습니다. 확인하고 강좌를 수정해야할 부분이 있으면 수정할께요

음... 일단 튜토리얼이 중간에 멈출 수 있는 지 모르겠네요. 만약 가능하다면
default
여기 사진에서 44라고 적힌 부분 누르면 카드 목록이 나오거든요. (여기서 숫자는 다를 수 있습니다. 개인별로 확인 안된 카드 숫자가 뜨는 거니)
default
제일 일반적인 카드로 수정했습니다. rapid shot이라는 카드 설명을 고쳤어요.

고친 파일은 lookup테이블에서 key 이름: 51f31708-300a-11e5-a2cb-0800200c9a66-game_text
여기서 value값이 영오로 돼어있는걸 그냥 그대로 한글로 고치고 적용을 눌렀어요.

image

보시다시피 한글만 쏙빼놓고 마침표와 숫자만 인식되는 거 같네요.

한글이 바로 적용되는 부분이 있고, 아닌 부분이 있는가 보네요. 지금 튜토리얼 깨는데 시간이 좀 걸리네요

한글이 표시되는 부분은 유니티의 기본 텍스트 박스(UnityEngine.UI.Text)를 사용한 부분이고 카드부분은 다른 텍스트 출력 엔진을 쓴거같습니다. 아마 이거는 4장 서드파티 에셋에서 다뤄야할거같습니다. 해결법을 찾기전까지는 이슈를 닫겠습니다.

@redsky1205
image
노가다해서 결국은 알아냈습니다.
image
선택된 에셋을 TextAsset의 Plugins 기능을 사용하여 https://drive.google.com/open?id=1qMJ7MirKyO0F0S8NA8sM2wGq8tufQUZh 여기에 있는 txt파일을 이름에 맞게 import 하면 됩니다.(FontForge로 열어보거나, txt확장자를 ttf로 바꿔보면 열립니다. 각 에셋 이름에 맞게 폰트명만 바꿨고 내용물은 '나눔바른고딕'입니다.)
직접 노가다해보시면 어떤폰트가 카드 설명란에 사용되는지 확인하실 수 있습니다.

와;; 찾아내셨네요 엄청 감동이네요 불가능할거만 같았는데.
image
질문이 몇가지 있습니다.
1.리소스 어셋에 보면 타입중에 Font가 있던데 text asset과 font는 용도가 다른건가요? 이 font 파일의 수정과는 상관없는건지요? (이부분도 직접 노가다 해야하는 거면 답변만 주셔요. 제가 해보겠습니다. 이론적으로 여쭤본겁니다.)

  1. 해당 텍스트 어셋마다 담당하는 텍스트가 있고 'a 어셋을 조정하면 스토리 대화가, b어셋은 카드설명하는 부분만 변경된다.' 이건가요?

  2. 원하는 폰트로 바꾸고 싶을 시에는 폰트 ttf파일의 이름만 해당하는 어셋의 이름으로 하고 확장자명을 txt로 바꿔서 임포트 시키면 되는 건가요?

2 게임상에 보이는 모든 것은 각각 하나의 GameObject입니다. TextMeshPro 플러그인에서 텍스트 출력을 담당하는 GameObject는 'Text Mesh Pro'인거고 2D toolkit 플러그인에서는 TK 2d Text Mesh인거고, 유니티 기본엔진이 제공하는 텍스트 출력이 Text Mesh 인것입니다. 각 오브젝트에 텍스트 출력을 담당하는 스크립트 부분이 있고 그 스크립트에 폰트를 선택하는 부분이 있습니다(유니티 엔진 에디터 내에서의 설명입니다)
1 보통 텍스트 출력을 담당하는 게임 오브젝트내에 위에서 설명한 출력만 관여하는 스크립트(Text Mesh)에 선택된 폰트는 각 Text Mesh에 따라서 다른 형태로 저장됩니다. 주로 MonoBehaviour+Texture 2D+Material 조합의 형태로 저장됩니다. 유니티 기본 제공 Text Mesh의 경우 Font 라는 별도의 에셋 Type이 있습니다. 유니티에서 제공하는 Font에셋은 ttf,ott 같이 폰트 파일 자체를 담을 수 있게 되어있는 다이나믹 폰트(이때는 ttf 파일을 자체적인 형식으로 컨버팅해서 저장함)또는 BMFont 형식(이미지에서 해당 글자가 어디위치에있냐와 폰트자체의 정보를 담은 텍스트+글자가 나열된 하나의 이미지+이 두 정보가 어디에있느냐를 가지고있는 Font 에셋)으로 저장되어있는게 통상적입니다. 그런데 이게임에서는 ttf 파일을 TextAsset으로 저장해서 게임내에서 다시 해석해서 다이나믹 폰트 방식으로 출력하는 지금까지 한번도 본적이 없는 방식을 사용하고있습니다. 그리고 더 특기할 점이 원래의 다이나믹폰트방식과 BMFont 방식 또한 같이 저장되어있다는점입니다.(아마도 멀티플랫폼에서의 호환성때문에 그런거같습니다)
3 넣고자 하는 폰트파일을 FontForge로 열어서 PostScript(PS) Name를 원래의 폰트 이름으로 바꾸고 (TTF명은 필수인지 모르겠어서 이 부분도 똑같이 수정했습니다) 임포트해야합니다. 파일명은 관계없습니다.

감사합니다. 님 덕분에 어느정도 진행이 가능할 정도로 되었네요. 너무 큰도움됐습니다. (_ _)
특이한게 rubik regular랑 rubik medium 둘 중에 하나만 해서는 한글 적용이 안되고 두 개 다 변경해줘야 한글로 적용이 되네요. 이부분 찾는다고 조금 힘들었네요.

다른 질문있으시면 이슈를 다시 열어서 질문해주시면됩니다. 일단 닫아놓겠습니다.

게임사에 물어보고 진행하려고 고객센터에 한글화 번역해도 되냐고 글을 남겼었는데
게임 내용 조작은 하지 않기를 바란다는 내용으로 답을 받아서 잠정 중단한 상태에요..ㅠㅠ
지속적으로 문의는 해보겠지만 진행할 수 있을 지 모르겠네요.
힘들게 가르쳐 주셨는데 너무 아쉽습니다.