
Text Mesh Proで日本語を表示させてみた

IT技術
はじめに
こんにちは!今回は、Text Mesh Proで日本語を表示する方法についてブログにまとめました。Text Mesh Proで日本語を設定すると、文字が四角(いわゆるtofu)になってしまう問題に直面するため、今後Text Mesh Proで日本語を使用したい方の参考になれば幸いです!
tofu問題とは
tofu問題とは、Text Mesh Proで日本語を表示しようとした際に、文字が四角で表示されてしまう現象を指します。以下の画像は、Unityのシュミレーター画面でText Mesh Proに日本語を設定した際の例です。このように、入力した文字が四角になってしまいます。
tofu問題が発生する原因
日本語を設定した際にtofu問題が発生する原因は、Text Mesh Proのデフォルトのフォントアセットに日本語の文字データが含まれていないためです。Unityにプリインストールされているデフォルトのフォントアセット(例:LiberationSans SDFなど)は、英語や一部の西洋言語に対応した文字セットを持っています。しかし、日本語などのCJK(中国語・日本語・韓国語)文字は数千もの文字があり、すべてを含めるとデータサイズが非常に大きくなってしまうため、デフォルトのフォントアセットには含まれていません。その結果、該当する文字が存在しない場合、Text Mesh Proでは文字が四角で表示されてしまいます!
フォントのダウンロード
それでは、tofu問題の解決に向けて作業を進めていきます!デフォルトのフォントアセットに日本語が含まれていない問題を補うため、Google Fontsからフォントをダウンロードします。以下のリンクをクリックすると、様々なフォントがダウンロードできるサイトへ移動します。
今回は、Noto Sans Japaneseをダウンロードします。URLをクリック後、右上の「Get Font」を選択し、「Download all」からフォルダをダウンロードしてください。その際、ダウンロードしたzipファイルは事前に解凍しておきましょう!
日本語データのダウンロード
次に、日本語で使用する文字情報の一覧を取得します。こちらのサイトにアクセスし、日本語の文字コードの一覧をコピーしてください。ここで選択した文字が、Text Mesh Proで使用できる文字となります。右上の「Raw」ボタンを押すと文字コードの一覧が表示されますので、すべて選択してコピーしてください!
Unityへの導入
先ほどダウンロードしたフォントデータを使用するために、Text Mesh Pro用のフォントデータを作成する必要があります。以下の手順に沿って作成してください!
1. Unity画面上部のHeaderから「Window」>「TextMeshPro」を選択し、その中から「Font Asset Creator」を開きます。
2. 表示された画面で、インポートしたフォントデータを元に新規のフォントアセットを作成します。
すると、以下のような画面が表示され、新規フォントアセットを作成することができます。各設定項目の詳細は、下記のテーブルをご確認ください!
設定項目 | 設定値 | 説明 |
---|---|---|
Source Font File | 作成したいフォントを設定 | インポート済みのフォントファイル(.ttf、.otfなど)から使用するフォントを選択。 |
Sampling Point Size | AutoSizing | フォントのサイズサンプリングを自動調整します。必要に応じて固定サイズを指定することも可能。 |
Padding | 5 ※文字のアウトラインが正しく表示されなかったり、文字の裏側が白くなった場合は、この値を調整。 | 文字の周囲に追加される余白のサイズ。アウトラインや背景の問題解消に有効。 |
Packing Method | 高速 | フォントアトラスの配置アルゴリズムを選択。高速パッキングや最適配置などの選択肢がある。 |
Atlas Resolution | (目安)常用漢字、JIS第一水準:2048 x 2048 (目安)全日本語文字対応:4096 x 4096 | 生成するフォントアトラスの解像度を指定する。収録する文字数に合わせて最適なサイズを選べます。 |
Chareacter Set | Custom Charactors | 使用する文字セットの種類を選択。既定セットまたはカスタムの文字リストを利用できる。 |
Charactor List | 日本語データのダウンロードでコピーした日本語の文字一覧を貼り付け | カスタム文字セットの場合、使用する文字を個別にリストアップして設定する。 |
RenderMode | SDFAA | フォントのレンダリングモードを指定。シェーディングやアンチエイリアスなどの描画設定を管理する。 |
Unityで確認
作成したフォントアセットが正しく適用されているか確認してみましょう!TextMeshProオブジェクトのFont Assetに作成したフォントアセットが表示されていれば、設定は成功です!
これで、無事に日本語テキストが表示されるようになりました!
まとめ
今回は、Text Mesh Proで日本語を表示する方法についてまとめました。Text Mesh Proで日本語が使用できない理由について疑問に思っていた方もいらっしゃるかと思いますが、今回の内容でその疑問が解消されたのではないかと考えております。Unityでのゲーム開発はまだまだ勉強中ですので、今後も詰まったところや学んだことを発信していきたいと思います!
ライトコードでは、エンジニアを積極採用中!
ライトコードでは、エンジニアを積極採用しています!社長と一杯しながらお話しする機会もご用意しております。そのほかカジュアル面談等もございますので、くわしくは採用情報をご確認ください。
採用情報へ

初めまして! たか と申します! 前職も同じくエンジニアとして働いておりました! 趣味は、映画・アニメを見たり、スポーツが好きです。 まだまだ未熟ですが、よろしくお願いします!