dmc31a42 / UnityL10nTool

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

폰트 관련 문의 드립니다 #15

Closed newhabi closed 5 years ago

newhabi commented 5 years ago

현재 진행중인 게임의 Asset 파일을 뜯었는데

폰트가 font_raw 형태로 되어있습니다

unityfont tool로 변경하려고 해도 버전이 안맞는다고 진행이 안됩니다

혹시 다른 방법으로 폰트를 변경할수있을까요?

특이사항으로는 최근에 프랑스어와 독어가 업데이트 되어서

별도의 Asset straming 폴더안에 localization 폴더가 따로 있고, 그안에 CSV 형식의 번역파일이 있습니다

이에 추가된 번역파일을 따로 뜯어서 한국어로 변경 한 후 한글폰트를 ASSET에 별도로 넣어 연결시켜볼까 하는데 기술적으로 가능 할까요?

게임 이름은 BATTLE TECH입니다

dmc31a42 commented 5 years ago

현재 UnityGameL10nTutorial 에서는 튜토리얼 자체의 문의만 받고 있습니다. 실제 게임에서의 폰트 변경과 같은 문의는 UnityL10nTool 에서 받고 있으니 본 issue를 UnityL10nTool 레포지토리로 이전한 다음 계속 말씀드리겠습니다.

dmc31a42 commented 5 years ago

일단 unityfont tool을 검색해봐도 안나오는데, 폰트만 바꿀 수 있는 프로그램인가 보네요. 그리고 font_raw라 함은 유니티에서 기본적으로 제공하는 폰트 asset인가 보네요. 일단 정확히 어떤 폰트를 쓰고있는지 먼저 확인해보도록 하겠습니다.

newhabi commented 5 years ago

폰트는 이미 확인했습니다

UnitedSansReg-Black.font_raw UnitedSansReg-Medium.font_raw UnitedSansReg-Thin.font_raw UnitedSansSemiExt-Bold.font_raw UnitedSansSemiExt-Light.font_raw UnitedSansSemiExt-Medium.font_raw UnitedSansSemiExt-Thin.font_raw

입니다 파일도 올려드릴까요?

newhabi commented 5 years ago

ProximaNova-Regular.font_raw Proxima Nova Thin.font_raw

이 폰트가 주력폰트로 추측됩니다

해당폰트와 게임내 텍스트가 비슷하게 표시되는걸로 추측하고 있습니다 prox

이미지 변경하였습니다

dmc31a42 commented 5 years ago

유니티 기본 폰트에 비트맵방식인 것으로 확인됬습니다. #12 #13 이슈와 묶어서 처리하도록 하겠습니다. 일단 임시로 적용하는 방법 먼저 알려드릴께요

newhabi commented 5 years ago

감사합니다

그리고 다른각도로 진행하다가 생겨난 새로운 이슈가 있는데 추가로 말씀드려도 될까요?

dmc31a42 commented 5 years ago

이 게임은 유니티 5.6.6f2 엔진으로 만들어졌네요, 유니티 엔진을 다운받아서 사용하고자 하는 폰트를 에셋에 포함시키고 설정은 다이내믹(동적), 스태틱(비트맵) 둘 중 아무거나로 설정한 다음 빌드를 하면 해당 폰트를 포함한 게임이 생성됩니다. 그리고 패치하고자 하는 폰트 에셋, 머테리얼 에셋, 텍스쳐 에셋을 UABE를 통해 json 형식으로 추출하시고(폰트 에셋은 이름으로 찾으시고, 머테리얼과 텍스쳐는 해당 폰트 에셋이 가리키고 있는 에셋을 찾아서 추출하면됩니다; 폰트에셋A, 머테리얼에셋A, 텍스쳐에셋A라 부르겠습니다) 주입하고자 하는 폰트를 포함하고있는 게임(직접 빌드한 게임)에서 위의 마찬가지 방법으로 폰트, 머테리얼, 텍스쳐 에셋을 추출합니다(B라 부르겠습니다) B에서 추출한 json 파일에서 PPtr과 관련된 정보만 A에서 추출한 json 파일에 있는 내용으로 고치시고 저장합니다. 이렇게 수정한 B 파일들을 UABE 도구로 교체하고자 하는 폰트, 머테리얼, 텍스쳐에 import한 후 저장합니다. UABE 사용법은 아래의 제 블로그 글을 참고하여주시고, 상세한 설명이 필요하다면 내일이나 모레쯤 다시 알려드릴껍니다. https://blog.nakwonelec.com/category/%ED%95%9C%EA%B8%80%ED%99%94/

dmc31a42 commented 5 years ago

다른 이슈도 같이 이야기해주시면 됩니다.

newhabi commented 5 years ago

폰트 변경에 앞서 찾은 strings 파일을 이용하여 부분부분 영문 텍스트를 수정하여

해당 파일이 정말 게임내에서 영향을 끼치는지 확인해보려고 하였습니다만

파일을 열어보니 띄어쓰기가 하나도 없이 영문만 쭉 적혀있는 식이었습니다

물론 게임내에서는 띄어쓰기가 적용되어 있습니다

strings.txt

이에 의문을 느끼고 옵션 및 몇몇 부분에 해당하는 영문을 수정하여 인게임에서 테스트 해보니

게임 내 텍스트는 변환되지 않았습니다

찾아본 결과 gobj 파일로 이미지화 되어있는걸 확인했습니다

그런데 gobj파일을 열수 있는 방법이 없었습니다

speedUpCombatOption.zip speedUpCombatToggle.zip speedUpCombatTitleText.zip

찾아보니 3d 이미지 파일의 확장자라고 하는데

obj로 진행을 해봐야 하는지, 아니면 다른 확장자로 시도해 봐야하는지 고민중에 있습니다

newhabi commented 5 years ago

폰트 변경부분 설명 감사합니다!

지금 한번 진행 해 보고 있는데 상세한 설명도 주신다면 정말 감사하겠습니다

기다릴수 있습니다 :)

dmc31a42 commented 5 years ago

그리고 일단 게임 내 텍스트 중 UI에 관련된 부분은 TMPro.TextMeshProUGUI에 하드코딩 되어있고 그리고 유닛 별로 달라지는 부분은 StreamingAssets 폴더에 산재해있는거 같습니다.

dmc31a42 commented 5 years ago

그리고 혹시나 확인해보는건데요, 이 게임은 Font 에셋을 쓰는게 아니라 TMPFont 를 쓰는것으로 보입니다. UnityL10nTool 로 해당 게임 폴더를 열어보면 TMPFontAsset 탭에 sharedassets0.assets assets 에 있는 폰트들을 클릭한 후 Font Family를 나눔바른고딕으로 선택한 후 Add를 하면 아래쪽에 Add한 에셋목록이 보일껍니다. 그상태에서 Save하고 Build하면 Projects\게임 이름\Build 폴더안에 TMPFont를 패치하는 패처 프로그램이 만들어질 것이고 이렇게 폰트 바꿔놓고나서 한글 적용을 시도해보시기 바랍니다.

newhabi commented 5 years ago

오..하드코딩이라니..인터페이스만 하려고했는데 점점 산으로 가네요

UnityL10nTool은 몇번 만지작 거리긴 했는데 잘못누르면 튕겨서 보류해두고 있었습니다

당장 꺼내서 작업해봐야겠네요

하드코딩의 경우 다른 이슈에서 링크해주셨던 블로그로 가서 참고해야겠습니다

번외로 혹시 Font 에셋인지 TMP font 인지 어떻게 확인하신건가요?

이제 막 입문한 초보자라서 어디서 실제 불러와지는 코드인지 찾기가 어렵네요

newhabi commented 5 years ago

이 게임은 streaming assets 에서 video를 불러오고, 게임 내에서 srt파일로 된 자막을 입혀 동영상을 만듭니다

초반에 srt 파일 수정하다가 한글출력이 안되는걸 알아서 폰트변경을 시도했었습니다

이에 방금 말씀주신대로 UnityL10nTool 을 이용하여 sharedassets0.assets assets 의 폰트들을 패치 진행했고, 패치 완료 메시지까지 확인 후 구동하였으나 아직 한글 자막이 표시가 안됩니다

게임내 로딩중에 표시되는 힌트도 안나타나는거 보니 다른 폰트도 전부 나눔바른고딕으로 변경해봐야겠습니다

게임내부 폰트가 한글을 지원하지 않아서 표시되지 않는것이다 라고 생각했는데

아에 streaming assets은 본 빌드의 폰트와 별개로 치는건가요?

귀한 주말에 시간을 내주셔서 감사드립니다 :)

dmc31a42 commented 5 years ago

만약 유니티 기본 폰트를 사용했다면 텍스트를 출력하는 GameObject는 UnityEngine.UI.Text, Text Mesh Pro로 텍스트를 출력했다면(TMPro.TextMeshProUGUI) 폰트는 TMPFont를, NGUI를 사용해서 텍스트를 출력한다면(UIText) 폰트는 UIFont를 이런식으로 추측한겁니다. TMPFont 폰트를 바꾸어도 게임 내 인터페이스(UI) 폰트만 변경할 것이고, 만약 동영상에 자막을 입히는건 또다른 폰트 엔진을 쓰고 있을껍니다. 일단 제가 지금은 딴거 하고 있어서 평일에 여유로울때 다시한번 분석하고 확인해보고자 합니다. 일단 TMPFont 패치를 한 후 UI쪽이 한글로 잘나오는지 먼저 확인해보시면 좋겠습니다.

newhabi commented 5 years ago

친절한 설명 진심으로 감사드립니다

마지막으로 TMPro.TextMeshProUGUI 어디있는지 알수있을까요?

리소스, 스트리밍어셋 전부 뒤져도 안나옵니다

써주신 워드프레스에서도 textmesh pro 부터는 딱 잘려있는지라..

혹시 어려우시면 다음 답변까지 직접 파보겠습니다

오늘 답변 주신점 진심으로 감사드립니다

dmc31a42 commented 5 years ago

제가 UABE 로 게임을 까볼때는 항상 globalgamemanagers 이 파일을 열기를 합니다. 그러면 게임 실행할 때 불러오는 에셋을 다 살펴볼 수 있습니다. 이렇게 연다음 정렬을 Type으로 놓은 다음 Type이 MonoBehaviour : TMPro.TextMeshProUGUI (Assembly-CSharp.dll) 로 되어있는 놈을 찾아보면 됩니다. 가나다ABC순으로 정렬되니 찾기는 쉬을껍니다.

newhabi commented 5 years ago

답변 진심으로 감사드립니다

좋은 저녁 되시길 바랍니다

워드프레스에 올려주시는 한글화 글 하루에도 몇번씩 보면서 공부중입니다

정말 감사드립니다 :)

newhabi commented 5 years ago

1main 1option 2main 2option

파일을 열어서 변경해본 결과

간단한 글자가 아닌 간단한 ㄱㄴㄷ 도 표기가 안됩니다

그외 영문도 길이가 길면 표시가 안되고 원문만큼의 길이만 표시되네요

이에 테스트한 TMPro.TextMeshProUGUI 파일을 확인 해 보니

    "1 string m_text": "테스트할 글자<-실제 출력부분",
    "1 string m_nonLocalizedText": "미번역시 출력으로 추측",
    "1 UInt8 m_disableFormattingAndLocalization": 0,
    "1 UInt8 m_isRightToLeft": 0,
    "0 PPtr<$TMP_FontAsset> m_fontAsset": "arial"<-테스트 예정

이렇게 표시가 되는데 저기 m fontasset 부분은 arial로 수정하여 테스트 해볼 계획인데

문자 길이에 대한 부분은 아무리 찾아도 보이지 않네요

여유있으실때 확인 한번만 부탁 드리겠습니다

unnamed asset-resources.assets-457008-MonoBehaviour.zip

해당 파일도 동봉드립니다

dmc31a42 commented 5 years ago

일단 제가 말씀 안드린 것이 있는데 폰트에는 완성형 2350자만 수록이 되어있고 ㄱ ㄴ ㄷ 같은 조힙형 글자는 포함되어 있지 않습니다. 7시쯤에 자세히 확인해볼터인데, 실시간으로 연락가능한 디스코드나 기타 음성연결수단이 있나요?

newhabi commented 5 years ago

네 디스코드 있습니다!

newhabi commented 5 years ago

일단 말씀주신부분 가나다, 가나, 가, 등으로 줄여가면서 테스트했지만 표시가 안되네요

다른방법으로 시도중입니다

dmc31a42 commented 5 years ago

image 이거확인한다고 늦었습니다.

dmc31a42 commented 5 years ago

Build.zip

newhabi commented 5 years ago

font