Font Asset TMPFontAsset ko KR - dmc31a42/UnityL10nTool GitHub Wiki
Text Mesh Pro ํฐํธ ์์ง์์ ์ฌ์ฉํ๋ ํฐํธ์ธ 'MonoBehaviour : TMPro.TMP_FontAsset'์ ๋ณ๊ฒฝํ ์ ์๋ ํ๋ฌ๊ทธ์ธ์ ๋๋ค.
Text Mesh Pro ํฐํธ ์์ง์ ๊ฒ์ ๋ด์์ ์ ์ ์ผ๋ก ์ฌ์ฉํ๋ ํฐํธ๋ sharedassets0.assets์ ์ ์ฅ๋์ด ์์ผ๋ฉฐ, ์ธ์ด๋ณ ํฐํธ ์ง์ ๋ฑ์ ์ด์ ๋ก ํฐํธ ์ด๋ฆ์ ํตํด ํฐํธ๋ฅผ ์ง์ ํ๋ ๋์ ์ผ๋ก์ ์ฌ์ฉ์ resources.assets์ ์ ์ฅ๋์ด ์์ต๋๋ค.
์ ํ๋ asset์ ํฐํธ๋ฅผ Font Family์์ ์ง์ ํ ํฐํธ๋ก ๊ต์ฒดํฉ๋๋ค.
์ด ํ๋ฌ๊ทธ์ธ์์ ์ง์ํ๋ ํฐํธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋๋๋ฐ๋ฅธ๊ณ ๋: KS1001์ ๊ธฐ์ ๋ 2350๊ฐ ๊ธ์.
- NotoSansCJKkr_Regular SDF: KS1001์ ๊ธฐ์ ๋ 2350๊ฐ ๊ธ์.
ํฐํธ๋ฅผ ์๋์ผ๋ก ์์ฑํ๋ ๋๊ตฌ๋ฅผ ์ถ๊ฐํ๊ธฐ ์ ์ ํฐํธ๋ฅผ ์๋์ผ๋ก ์ถ๊ฐํ ์ ์๋ ์์ ๋ฐฉ๋ฒ์ ๋๋ค.
- ๊ณตํต์ค๋น๋ฌผ
- ์ ๋ํฐ ์์ง 2018.2.21f1 ๋ฒ์ Unity ๋ค์ด๋ก๋ ์์นด์ด๋ธ
์ด ํ์ํฉ๋๋ค.
- ์ ํ๋ก์ ํธ๋ฅผ ํ๋ ๋ง๋ง๋๋ค.
- ํฐํธ ํ์ผ๊ณผ ๊ธ์ ์ ์ ํ๋ก์ ํธ๋ก ์ํฌํธํฉ๋๋ค.
- Window-Package Manager๋ฅผ ์ฝ๋๋ค.
- TextMesh Pro์ ๋ฒ์ ์ด 1.2.4์ธ์ง ํ์ธํฉ๋๋ค. ์๋๋ผ๋ฉด 1.2.4๋ฒ์ ์ ์ ํํ ํ Update to ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
- ํ์ธํ ํ Package Manager ์ฐฝ์ ๋ซ๊ณ Window->TextMesh Pro->Import TMP Essential Resources์ ๋ค์ด๊ฐ์ Import Unity Package ์ฐฝ์์ Import๋ฅผ ํด๋ฆญํ์ฌ ๋ณธ ํ๋ก์ ํธ์ TextMesh Pro๋ฅผ ์ํฌํธํ๋ค.
(๋ง์ฝ ํฐํธ ์์ ์ ์์ฑ ๋๋ ๋น๋์ ์คํจํ ๊ฒฝ์ฐ ํ๋ก์ ํธ์ ์๋ 'TestMesh Pro' ํด๋๋ฅผ ์ญ์ ํ๊ณ ์์ ์์ ์ ๋ค์ํ ํ Window->TextMesh Pro->Project Files GUID Remapping Tool์ ๋ค์ด๊ฐ์ Scan Project Files->Save Modified Project Files๋ฅผ ํด๋ฆญํ๊ณ ์์ ์ค์ธ Scene๊ณผ Project๋ฅผ ์ ์ฅํ ํ ์ ๋ํฐ ์๋ํฐ๋ฅผ ๊ป๋ค๊ฐ ๋ค์ ์คํํ๋ค.)
- ์ํฌํธ๋ฅผ ์๋ฃํ ํ 'Window->TextMesh Pro->Font Asset Creator'๋ก ๊ฐ๋ค.
- 'Font Creator' ์ฐฝ์ด ๋ํ๋๋ฉด 'Font Source' ์ค๋ฅธ์ชฝ์ ๋๊ทธ๋ ์๋ชจ์์ ๋ฒํผ์ ํด๋ฆญํ๊ณ ์์์ ์ถ๊ฐํ ํฐํธ๋ฅผ ์ ํํฉ๋๋ค.
- Atlas Resolution์ 4096x4096์ ์ ํํฉ๋๋ค. ํด์๋๊ฐ ๋์ ์๋ก ๊ธ์ ๊ฐ๊ฐ์ ์ ๋ช ๋๋ ์ฆ๊ฐํ์ง๋ง ์ฉ๋์ด ๊ธฐํ๊ธ์์ ์ผ๋ก ์ฆ๊ฐํฉ๋๋ค. KS1001์ ๊ธฐ์ ๋ 2350์๋ฅผ ๋ชจ๋ ํฌํจํ๋ฉด์ ๋ณผ๋งํ ๊ธ์๊ฐ ๋๋ ค๋ฉด 4096x4096 ํฌ๊ธฐ ์ ๋๋ ๋์ด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค. ํด์๋๋ฅผ ๋ฎ์ถฐ๋ ๊ด์ฐฎ๋ค๋ฉด ์ํ๋ ํด์๋๋ฅผ ์ ํํฉ๋๋ค.
- ๊ธ์ ์ ์ 'Characters from File'์ ์ ํํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ฐ๋ก ์๋์ 'Character File'์ ์ ํํ๋ ํญ๋ชฉ์ด ์๊น๋๋ค.
- ๊ธ์ ์ ํ์ผ ์์ ๋๊ทธ๋ ์์ ํด๋ฆญํ ํ ์์์ ์ถ๊ฐํ ๊ธ์ ์ ํ์ผ์ ์ ํํฉ๋๋ค. ์์ ์์๋ KS1001.txt ํ์ผ์ ์ํฌํธํ๊ณ KS1001๋ก ํ์๋๋ ๊ฒ์ ์ ํํ์ต๋๋ค.
- 'Get Kerning Pairs?'๋ฅผ ์ฒดํฌํฉ๋๋ค. ์์ ์ค์ ์ ํ์ธํด๋ณด๊ณ 'Generate Font Atlas' ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค. ์ฌ๊ธฐ์ ๋ฒํผ์ด ํ์ฑํ ๋์ง ์๋๋ค๋ฉด TextMesh Pro Essential Import๋ฅผ ํ๋์ง ํ์ธํฉ๋๋ค.
- Font Source: NanumGothic
- Atlas Resolution: 4096 x 4096
- Character Set: Characters from File
- Character File: KS1001
- Get Kerning Pairs?: checked
- 4096 x 4096 ํด์๋๋ก ํฐํธ ์์ ์ ์์ฑํ๋ฉด ์๊ฐ์ด ๋งค์ฐ ์ค๋์ค๋ ๊ฑธ๋ฆฝ๋๋ค. ํฐํธ ์์ ์์ฑ์ด ์๋ฃ๋๋ฉด ์ค๋ฅธ์ชฝ ๊ฒ์ ๊ณต๊ฐ์ ๋ ๋๋ง๋ ๊ธ์๊ฐ ๋ํ๋๊ณ 'Save', 'Save As...' ๋ฒํผ์ด ํ์ฑํ๋ฉ๋๋ค. 'Save' ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค. ํฐํธ ์์ ์ด๋ฆ์ ๊ธฐ๋ณธ์ผ๋ก ๋๊ณ ์ ์ฅ์ ํฉ๋๋ค.
์ ์ฅ์ ํ์ผ๋ฉด 'Font Creator' ์ฐฝ์ ๋๋๋ค.
- 'Hierarchy->Create->3D Object->TextMeshPro - Text'๋ก ํ ์คํธ ๊ฐ์ฒด๋ฅผ ๋ง๋ง๋๋ค.
- ๋ง๋ค์ด์ง TextMeshPro ๊ฐ์ฒด๋ฅผ ํด๋ฆญํ ํ Inspector ํญ์์ 'Text Mesh Pro (Script)->FONT SETTINGS->Font Asset' ์ค๋ฅธ์ชฝ์ ๋๊ทธ๋ผ๋ฏธ ๋ฒํผ์ ํด๋ฆญํ์ฌ ์์์ ์์ฑํ ํฐํธ๋ฅผ ํด๋ฆญํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ 'TEXT INPUT BOX'์ Sam๊ณผ ple ์ฌ์ด์ 'ํ ์คํธ'๋ฅผ ์ ๋ ฅํ์ฌ ํ๊ธ์ด ์ ๋์ค๋์ง ํ์ธํฉ๋๋ค.
- 'File->Save Scene'์ผ๋ก ์์ ์ค์ธ Scene์ ์ ์ฅํ๊ณ , 'File->Save Project'๋ก ํ๋ก์ ํธ๋ฅผ ์ ์ฅํ๊ณ , 'File->Build And Run'์ผ๋ก ํ๋ก์ ํธ๋ฅผ ๋น๋ํฉ๋๋ค.
Project ํด๋ ๋ด์์ Build ํด๋๋ฅผ ์์ฑํ๊ณ Build ํด๋๋ฅผ ์ ํํ ํ 'ํด๋ ์ ํ' ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
- ๊ฒ์ ์คํ ์ฐฝ์ด ๋ํ๋๋ฉด 'Play!' ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
ํ ์คํธ๋ ๊ธ์๊ฐ ์ ํ์๋๋์ง ํ์ธํ๊ณ ๊ฒ์์ ์ข ๋ฃํฉ๋๋ค.
- Unity Assets Bundle Extractor 2.2 beta4 + hotfix1๋ก ์์์ ๋น๋ํ ๊ฒ์์ sharedassets0.assets๋ฅผ ์ด๊ณ ์์์ ์์ฑํ ํฐํธ ์ด๋ฆ์ผ๋ก ๋ '(Font name) SDF Material', '(Font name) SDF Atlas', 'MonoBehaviour (Font name) SDF' ์ธ ์์ ์ 'UABE json dump (cam be imported)' ํํ๋ก 'Export Dump'๋ฅผ ํด๋ฆญํฉ๋๋ค. (UABE์ ์์ธํ ์ฌ์ฉ๋ฒ์ https://blog.nakwonelec.com/2018/03/26/unity-asset-bundle-extractor-%EC%82%AC%EC%9A%A9%EB%B2%95/ ์ ์ฐธ์กฐ)
- ์ ์ฅํ ํด๋๋ ์์์ ๋น๋ํ ๊ฒ์์ _Data ํด๋(๊ธฐ๋ณธ๊ฐ)์ธ ์ฑ๋ก ๊ทธ๋๋ 'ํด๋ ์ ํ'์ ํด๋ฆญํฉ๋๋ค.
- 'Get script information'('Dump export') ์ฐฝ์ด ๋จ๋ฉด '์'๋ฅผ ํด๋ฆญํฉ๋๋ค.
- 'Managed' ํด๋ ์์ ์๋ ๋ชจ๋ *.dll ํ์ผ์ ์ ํํ ํ '์ด๊ธฐ'๋ฅผ ํด๋ฆญํฉ๋๋ค.
- '(Game name)_Data' ํด๋์์ ์์์ 'Export dump' ํ Material, Atlas, MonoBehaviour๊ฐ ์๋์ง ํ์ธํ๊ณ , MonoBehaviour๋ฅผ ํ ์คํธ ํธ์ง๊ธฐ๋ก ์ฝ๋๋ค.(Notepad++์ ์ถ์ฒํฉ๋๋ค. ๋ฉ๋ชจ์ฅ์ผ๋ก ํธ์งํ๋ฉด ํ์ผ์ด ๊นจ์ง ์ ์์ต๋๋ค.)
-
์ด json ํ์ผ์์ '0 TMPro.FaceInfo m_fontInfo', '0 Array m_glyphInfoList', '0 TMPro.KerningTable m_kerningInfo', '0 float normalStyle', '0 float normalSpacingOffset', '0 float boldStyle', '0 float boldSpacing', '1 UInt8 italicStyle', '1 UInt8 tabSize' ํญ๋ชฉ์ ๋จ๊ฒจ๋๊ณ ๋๋จธ์ง ํญ๋ชฉ์ ์ง์๋๋ค. ์๋์ ์ฌ์ง๋ค์ ํ์์๋ ๋ถ๋ถ์ ์ง์ฐ๋ ๋ฐฉ๋ฒ์ ์ฐจ๊ทผ์ฐจ๊ทผ ๋ณด์ฌ์ฃผ๊ณ ์์ต๋๋ค.
-
-
'0 TMPro.FaceInfo m_fontInfo' ํค ์์ ์๋ '1 string Name' ํค-๊ฐ์ ์ง์๋๋ค.
- ์ต์ข ๊ฒฐ๊ณผ๋ฌผ์ ํ์ธํ๊ณ ์ ์ฅํ ํ ์์ ํ jsonํ์ผ์ ์ด๋ฆ์ '(Font name).Mono.json'์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค. ('0 Array m_glyphInfoList'์ '0 TMPro.KerningTable m_kerningInfo'๋ ์์ ํญ๋ชฉ์ด ๋ง์์ +/- ๊ธฐ๋ฅ์ผ๋ก ์จ๊ฒผ์ต๋๋ค.)
- ์์์ ๋น๋ํ ๊ฒ์์ 'sharedassets0.assets.resS' ํ์ผ์ ๋ณต์ฌํ์ฌ '(Font name).assets.resS'์ ๊ฐ์ด ์ด๋ฆ์ ๋ณ๊ฒฝํฉ๋๋ค. '(Font name).Mono.json' ํ์ผ๊ณผ '(Font name).assets.resS' ํ์ผ์ ๋ณต์ฌํ์ฌ 'UnityL10nToolRelease/Plugins/FontPlugins/TMPFontAsset' ํด๋์ ๋ถ์ฌ๋ฃ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ ํด๋ ๋ด์ ๋ค๋ฅธ ํฐํธ์ *.Font.json ํ์ผ์ ๋ณต์ฌํ์ฌ '(Font name).Font.json'์ผ๋ก ์ด๋ฆ์ ๋ณ๊ฒฝํฉ๋๋ค.
- ๋ณต์ฌํ .Font.json ํ์ผ๊ณผ ๋น๋ํ ๊ฒ์_Data ํด๋์ ์๋ Texture2D.json ํ์ผ์ ์ฝ๋๋ค. 'FontFamilyName' ์ UnityL10nTool์ ํ์๋๊ณ ์ ํ๋ ์ด๋ฆ์ผ๋ก ์ค์ ํ์๊ณ , 'm_Width', 'm_Height', 'm_CompleteImageSize'์ Texture2D.json ํ์ผ์ ์๋ ๋์ผํ ํญ๋ชฉ์ ๊ฐ์ผ๋ก ์์ ํ์๋ฉด ๋ฉ๋๋ค.
- ๋ชจ๋ ์ ์ฅํ๊ณ UnityL10nTool์์ ์ ์์ ์ผ๋ก ๋ณด์ด๋์ง ํ์ธํฉ๋๋ค.