dmc31a42 / UnityL10nTool

Unity Game Localization Tools is helper to make localization patch for un-supported language.
70 stars 9 forks source link

[Outward] 유니티디폴트폰트 팅김 이슈입니다. #33

Open ZeripeDaniel opened 5 years ago

ZeripeDaniel commented 5 years ago

Outward 라는 게임을 번역중에 있는데, UnityL10ntool 에서는 UnityDefaultFont 쪽에서 뜨는것으로 확인됩니다.

게임 내부에서 UTF-8을 지원하여 기초적인 메뉴나 대사들은 한글화가 되지만 아이템 설명이나 스킬이름 등이 비트맵이나 텍스쳐 폰트를 사용하는거 같습니다. 한글을 적용하면 아무것도 뜨지않고 영문과 (특수문자) .!@#$^ 등만 사용됩니다. 그래서 UnityL10nTool 로 수정하려고 게임을 열어 UnityDefaultFont 에 있다는것을 확인하고 문제가있는 폰트를 수정하려던 찰나 ADD 까지는 문제없이 되지만 Edit을 누르는 순간 프로그램이 종료됩니다.

대사와 아이템들은 XML 파일로 되어있으며, 폰트는 나늠스퀘어 사용중입니다. 이전 폰트는 파일명만 직접 바꿔 나눔스퀘어로 변경 된상태입니다.

대사포함 xml 인 sharedassets0.assets 파일과 resources.asset 파일을 첨부합니다.. 확인 부탁 드립니다.

sharedassets0.assets https://drive.google.com/open?id=1SvnaxwNJCQSC9Z-zfji_6Lg6Ybd17xjw

resources.assets https://drive.google.com/open?id=14xG37MoW3APQhsg1FpmuLx_wHpjT8oh4

dmc31a42 commented 5 years ago

제가 어떻게 고쳐야할지 고민이어서 제대로 예외처리를 안해두었는데, Edit버튼은 Add버튼을 클릭해서 하단에 추가한 항목을 클릭하고 Edit버튼을 누르면 오른쪽 Properties창에 해당 에셋이 뜨고 마찬가지고 Add를 누르면 저장되는 이상한 구조입니다. 간단하게, 해당 폰트를 한국어가 되는 폰트로 고치기 위해서는 Font Family를 선택하고 Add 버튼만 누르시면 됩니다.

근데 UnityDefaultFont 및 유니티 기본 폰트 엔진은 지원하지 않는 글자가 있으면 시스템에서 끌어와서라도 표시해주는걸로 알고있는데 이 부분은 제가 에셋을 확인해보고 다시 알려드리겠습니다.

dmc31a42 commented 5 years ago

생각해보니 assets에 MonoBehaviour을 분석하려면 Managed 폴더안에 있는 dll이 필요하다는걸 잊고 있었네요 제가 알아서 구해보고 알려드리겠습니다.

ZeripeDaniel commented 5 years ago

https://drive.google.com/open?id=1iLhMKkZaqG20CALreXNaygXhjWw0lROm

Managed 폴더 입니다.

dmc31a42 commented 5 years ago

아 제가 질문을 끝까지 못봤네요 죄송합니다. 계속 확인해볼께요

dmc31a42 commented 5 years ago

무슨문제인지 짐작됩니다. 확인해보고 1~2일 이내에 수정해서 올릴 예정입니다.

dmc31a42 commented 5 years ago

v0.1.15 https://github.com/dmc31a42/UnityL10nTool/tree/v0.1.15 97e3f417e42f1a7245fbfc981a373efcf77679e6 UnityDefaultFont가 원래 비트맵 폰트였을 때 패치가 제대로 적용되지 않는 문제를 해결하였습니다. 747be0c63c75a446a85cae99bfcf78098a604e78 혼동을 줄이기 위해 'Remove' 버튼을 제거하고 'Add' 버튼을 'Apply & Save' 버튼으로 변경하였습니다. 에셋을 패치 목록에 추가하기 위해선 폰트를 선택하고 'Apply & Save' 버튼만 누르시면되고 설정을 변경하실때는 설정을 바꾼 뒤 동일한 버튼을 누르시면 됩니다.

현재 TMPFontPlugin과 UnityDefaultFont 플러그인은 기존에 존재하던 폰트를 덮어씌웁니다. 1주일 이내로 기존의 폰트 내용은 유지하면서 fallback 기능을 통해(폰트에 지원되는 글자가 없으면 목록에 있는 폰트들에서 글자 모양을 가져오는 기능) NGUI 폰트를 제외한(#34) 기존의 폰트를 유지한 채로 새로운 TMPFont 와 UnityDefaultFont 를 추가하도록 변경할 예정입니다.

기존 폰트에 일반 폰트에는 존재하지 않는 특별한 글자가 존재하지 않다면 현재 버전으로도 사용하실 수 있습니다.