はじめに
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) | ×ウルドゥー語(追記:不要) |
フォントアセットを作成する方法はこちらの記事を参考にします。
使用するフォント
なるべくフォントアセットはまとめたいため
次の言語のフォントアセットは共通にします。
・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 |
フォントアセット作成
簡体字中国語、繁体字中国語、日本語、韓国語は
登録する文字数が多くアプリ容量が増加するため都度必要な分だけ登録することにします。
アプリ完成後、使用している単語を下記サイト様に入力し重複文字を削除して登録します。
日本語は仮でこちらのテキストを設定しておくと開発中に困ることはないでしょう。
(作成者様に感謝)
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追記>
上記で不足しているかもしれないため
最終的には下記で使用している文字を抜き出して文字が表示できているか確認が必要
おわりに
仮で作成したので表示できない文字が出てきたら随時追加していきたいと思います。
また、/(スラッシュ)はNoto Kufi Arabicのフォントなどで存在しないため
100/100といった表現はフォントを分けるか使わない方がよさそうです。