トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

TextMeshProで日本語フォントを使う&分割してGithubへ〜

ModerunUIPackがTextmeshProを使っていたので、しかたなく日本語フォントをTextMeshPro対応させた

 

asset生成

参考

hi-network.sakura.ne.jp

qiita.com

Window>TextMeshPro>FontAssetCreator

f:id:bibinbaleo:20210112095220p:plain

NotoSansを変更する。こんな設定

f:id:bibinbaleo:20210112095232p:plain

CustomCharacterListに以下のgistの文字たちをコピペする

 

gist.github.com

「GenerateFontAtlas」で生成。5分ぐらいでできる

f:id:bibinbaleo:20210112101105p:plain

ファイルサイズでかすぎ問題

生成されたファイルは131MBになってしまった><

f:id:bibinbaleo:20210112135644p:plain

これじゃあGithubにアップできないよ!

それを解決するのがこちらのFontFallback(分割)とDynamicSDFSystem(動的なロード?)

tsubakit1.hateblo.jp

 FontFallBack

分割してアセットを作り、足りない部分はほかのアセットを読み込む

漢字以外と漢字だけのを分けて作る。

この時AtlasResolutionを小さくしないとファイルサイズが変わらない。

漢字以外のは2048*2048で入ったっぽい

f:id:bibinbaleo:20210112142434p:plain

8MBだった

f:id:bibinbaleo:20210112142526p:plain

!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890〜¡¢£¤¥¦§¨©ª«¬ ®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ‒–—―‖‗‘’‚‛“”„‟†‡•…‪‫‬‭‮ ‰′″‴‹›‼‾⁄⁞€™□ 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/◆□■△▲▽▼※〒→←↑↓〓∈∋⊆⊇⊂⊃アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォッャュョーガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポヴぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞたァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭ─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇∇≡≒≪≫√∽∝∵∫∬ʼn♯♭♪†‡¶abcdefghijklmnopqrstuvwxyzむめもゃやゅゆょよらりるれろゎわゐゑをんムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶопрстуфхцчшщъыьэюя
\~∥|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】+-±×∪∩∧∨¬⇒⇔∀∃∠⊥⌒∂ABCDEFGHIJKLMNOPQRSTUVWXYZだちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミαβγδεζηθικλμνξοπρστυφχψωЮЯабвгдеёжзийклмн╂

漢字は適当に4096*4096にした。収まったのかは知らない

f:id:bibinbaleo:20210112142643p:plain

Missingcharactersが0だからいけたのかな?

これで35MBだった!

そして基本となるフォントアセットのFontFallbackに片方のをセットする

f:id:bibinbaleo:20210112142828p:plain

これでできた!やったー

DynamicSDFSystem

ダイナミックに生成してくれるらしい。でも設定は生成したフォントアセットのGenerationSettingsをSynamicにする。

f:id:bibinbaleo:20210112143300p:plain

いまいち使い道が分からない。

よく使う文字を今まで通り事前生成して、そのアセットファイルの設定をDynamicにするのか?多分違う気がする

qiita.com

まあいいや。分割で用は済んだし!

 

最後に

TextMeshProめんどくさいな~みんなこんな作業しているのかな

ちなみにTextMeshにもともと入っているフォントはOpenSansというNotoSansと同じ仲間だけど英語しかない

 

あとModeruUIに適用するには、個別のTextMEshProにフォントを設定してもダメで、Tools>ModernUIPackの要素のフォントを置き換える必要がある。

f:id:bibinbaleo:20210112100241p:plain

これをしないと、上書きされる!!罠だ