dmc31a42 / UnityL10nTool

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

Unity DefaultFont 추출 #49

Closed Only-FPS closed 4 years ago

Only-FPS commented 4 years ago

프로그램을 사용하여 내 .ttf 파일을 유니티 게임 폰트로 패치하는 기능 잘 쓰고 있습니다.

그런데 역으로 유니티 게임의 폰트를 .ttf 파일로 추출하는 것은 불가능할까요?

UABE로는 불가능한 것 같아서 여쭤봅니다.

dmc31a42 commented 4 years ago

지금으로선 UABE의 도움을 받아 추출하는 수 밖에 없습니다. UABE와 HxD를 준비하시고, UABE에서 폰트의 View Data를 클릭하고 한참 기다리세요. Font Base->vector m_FontData->Array Array->int size에 나오는 값을 Hex값으로 바꿔줍니다. image 예시에서는 212896(10)->3 3F A0(16) 입니다. 이를 (작은수가 앞쪽-왼쪽-에 오는)리틀 엔디안식으로 바꾸면 0xA0 3F 03 00 입니다.(두자리씩 끊어서 좌우 반전을 하시면 됩니다. 그리고 해당폰트를 Export Raw로 추출합니다. 추출한 파일을 HxD로 엽니다. 그리고 상단 메뉴->찾기->찾기 또는 Ctrl+F로 찾기 창을 띄우고 16진수 값 탭으로 가서 검색 대상에 위에서 기록해둔 리틀 엔디안 16진수를 검색합니다. image 이 숫자가 끝나는 지점에 커서를 클릭하고 '편집->블록 단위 선택' 또는 Ctrl+E로 블록 선택 창을 띄우시고 길이를 클릭하고 아래에 10진수를 클릭한 뒤 길이에는 위의 예시에서 찾은 값을 10진수(예시에서는 212896)를 넣어줍니다. image 수락을 누르면 긴 범위가 선택될껍니다. Ctrl+C로 복사한 뒤 '파일->새로 만들기'로 새 파일을 만들고 커서가 00000000행에 00열에 있는 그 상태에서 Ctrl+V를 누릅니다. 이 작업은 파일크기를 변경합니다가 뜨면 수락을 누릅니다. 이 파일을 확장자가 ttf 인 파일로 저장하면 폰트가 추출됩니다.

Only-FPS commented 4 years ago

오 감사합니다. 오늘도 하나 더 배우고 갑니다. 폰트 말고도 여러모로 더 쓰일 수 있겠네요. 다른 것들도 이해되는 느낌입니다.