そういうのがいいブログ

アプリ個人開発 まるブログ

アプリ開発覚え書き

【Unity】TextMeshPro フォントアセットメモ Localization

はじめに

TextMeshProを使用する場合、フォント毎にフォントアセットを作成します。
下記の言語に対応する際のフォントアセット作成メモです。

言語 日本語読み方
Arabic (ar) アラビア語
Bangla (bn) ベンガル語バングラ語)
Chinese (Simplified) (zh-Hans) 簡体字中国語
Chinese (Traditional) (zh-Hant) 繁体字中国語
English (en) 英語
French (fr) フランス語
German (de) ドイツ語
Hindi (hi) ヒンディー語
Indonesian (id) インドネシア語
Italian (it) イタリア語
Japanese (ja) 日本語
Korean (ko) 韓国語
Marathi (India) (mr-IN) マラーティー
Portuguese (pt) ポルトガル語
Russian (ru) ロシア語
Spanish (es) スペイン語
Tamil (ta) タミル語
Telugu (te) テルグ語
Turkish (tr) トルコ語
Urdu (ur) ×ウルドゥー語(追記:不要)

フォントアセットを作成する方法はこちらの記事を参考にします。

createdevelopmentnote.com


使用するフォント

なるべくフォントアセットはまとめたいため
次の言語のフォントアセットは共通にします。

・Noto Sans
英語
フランス語
ドイツ語
インドネシア語
イタリア語
ポルトガル語
ロシア語
スペイン語
トルコ語
ウルドゥー語
(Unityではウルドゥー語が透明になって表示できなかったため
 ウルドゥー語は英語表記で対応することにしました)

・ Noto Sans Devanagari
ヒンディー語
マラーティー

言語と使用するフォントは以下の想定で進めます。

言語 日本語読み方 使用フォント
Arabic (ar) アラビア語 Noto Kufi Arabic
Bangla (bn) ベンガル語バングラ語) Noto Sans Bengali
Chinese (Simplified) (zh-Hans) 簡体字中国語 Noto Sans Simplified Chinese
Chinese (Traditional) (zh-Hant) 繁体字中国語 Noto Sans Traditional Chinese
English (en) 英語 Noto Sans
French (fr) フランス語 Noto Sans
German (de) ドイツ語 Noto Sans
Hindi (hi) ヒンディー語 Noto Sans Devanagari
Indonesian (id) インドネシア語 Noto Sans
Italian (it) イタリア語 Noto Sans
Japanese (ja) 日本語 Noto Sans JP
Korean (ko) 韓国語 Noto Sans Korean
Marathi (India) (mr-IN) マラーティー Noto Sans Devanagari
Portuguese (pt) ポルトガル語 Noto Sans
Russian (ru) ロシア語 Noto Sans
Spanish (es) スペイン語 Noto Sans
Tamil (ta) タミル語 Noto Sans Tamil
Telugu (te) テルグ語 Noto Sans Telugu
Turkish (tr) トルコ語 Noto Sans
Urdu (ur) ウルドゥー語 Noto Nastaliq Urdu → Noto Sans


使用するフォントのファイル名は以下です。

言語
NotoKufiArabic-Medium
NotoSans-Medium
NotoSansBengali-Medium
NotoSansDevanagari-Medium
NotoSansJP-Medium
NotoSansKR-Medium
NotoSansSC-Medium
NotoSansTamil-Medium
NotoSansTC-Medium
NotoSansTelugu-Medium


フォントアセット作成

簡体字中国語、繁体字中国語、日本語、韓国語は
登録する文字数が多くアプリ容量が増加するため都度必要な分だけ登録することにします。

アプリ完成後、使用している単語を下記サイト様に入力し重複文字を削除して登録します。

tools.ikunaga.net

日本語は仮でこちらのテキストを設定しておくと開発中に困ることはないでしょう。
(作成者様に感謝)


Sampling Point Size/Paddingは10%がUnityさんおすすめのようです。
この比率が低いとフォントサイズを大きくした場合にぼやける模様(未検証)
以下で設定することにします。
Sampling Point Size:50
Padding:5


フォントアセット作成後
「スケール」と「行の高さ」、「ベースライン」を調節し
フォントアセット毎の文字の大きさと位置を微調整します。


以下はフォントアセット作成時の文字内容と
「スケール」、「行の高さ」、「ベースライン」です。


Noto Kufi Arabic

0123456789،؛؟ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىي٠١٢٣٤٥٦٧٨٩

Atlas Resolution 512×512

スケール:0.75
行の高さ:80
ベースライン:0



Noto Sans

ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞß
àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ
АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
абвгдеёжзийклмнопрстуфхцчшщъыьэюя
0123456789
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

Atlas Resolution 1024×1024

スケール:0.9
行の高さ:65
ベースライン:0



Noto Sans Bengali

অআইঈউঊঋএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃেৈোৌ্ৎৗড়ঢ়য়০১২৩৪৫৬৭৮৯
0123456789
,;?!

Atlas Resolution 512×512

スケール:0.9
行の高さ:64
ベースライン:0



Noto Sans Devanagari

अआइईउऊऋऌऍऎएऐऑऒओऔकखगघङचछजझञटठडढणतथदधनपफबभमयरलवशषसहऽािीुूृॄॅॆेैॉॊोौ्ॐ॒॑॓॔ॕॖॗक़ख़ग़ज़ड़ढ़फ़य़ॠॡॢॣ०१२३४५६७८९
0123456789
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

Atlas Resolution 512×512

スケール:0.9
行の高さ:63
ベースライン:0



Noto Sans Tamil

அஆஇஈஉஊஎஏஐஒஓகஙசஜஞடணதநனபமயரறலளழவஶஷஸஹாிீுூெேைொோௌ்ௐ௦௧௨௩௪௫௬௭௮௯
0123456789
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

Atlas Resolution 512×512

スケール:0.75
行の高さ:62
ベースライン:-9.8



Noto Sans Telugu

అఆఇఈఉఊఋఎఏఐఒఓకఖగఘఙచఛజఝఞటఠడఢణతథదధనపఫబభమయరఱలవశషసహాిీుూృౄెేైొోౌ్ౕౖౠౡౢౣ౦౧౨౩౪౫౬౭౮౯ం
0123456789
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

Atlas Resolution 512×512

スケール:0.8
行の高さ:67.6
ベースライン:-4



×Noto Nastaliq Urdu
×大部分が透明になって表示できないため作成しない

آبپتٹثجچحخدڈذرڑزژسشصضطظعغفقکگلمنںوؤہھیئۓ
٠١٢٣٤٥٦٧٨٩
0123456789
!،؛؟:؍’‘“”؎؏-–—



Noto Sans JP
文字内容:適宜設定
スケール:1
行の高さ:72.4
ベースライン:0



<2024.8.17追記>
上記で不足しているかもしれないため
最終的には下記で使用している文字を抜き出して文字が表示できているか確認が必要

marumaro7.hatenablog.com

おわりに

仮で作成したので表示できない文字が出てきたら随時追加していきたいと思います。

また、/(スラッシュ)はNoto Kufi Arabicのフォントなどで存在しないため
100/100といった表現はフォントを分けるか使わない方がよさそうです。

参考

qiita.com