【Unity】日本語のフォントを追加して使ってみよう

URLをコピーする
URLをコピーしました!

CGBoxの一部の記事にはアフィリエイト広告が含まれております。

こんにちは!Unityで制作していると、画面に文字を表示させたいことがあるかと思います。

そんな時はTextMeshProを使うのですが、デフォルトのフォントでは日本語を表示することができません。

日本語を入力してみても、このように□に置き換えられてしまいます。

そこでこの記事では、日本語フォントをUnityに追加して表示させる方法を解説します!

目次

フォントの設定方法

フリーの日本語フォント紹介

今回はこちらのサイトから、フリーの日本語フォントをお借りします。

サイト内一番上の「源暎こぶり明朝」をダウンロードしましょう。

こちらのGoogle Fontsからも、日本語フォントを無料でダウンロードすることができます。

どちらからダウンロードしても、ファイル名が変わるだけで設定は同じ手順で行うことができます。

Google Fonts
Browse Fonts - Google Fonts Making the web more beautiful, fast, and open through great typography

フォントをUnityにインポートする

ダウンロードした Zip ファイルを解凍しましょう。

Unityにインポートするのは.ttfファイルひとつだけで大丈夫です。

選んだフォントによっては、.otfファイルの場合もありますがどちらでも使えます。

.ttfファイルをUnityのProjectビューにドラッグ&ドロップでインポートしましょう。

これでUnity内にフォントがインポートできました。分かりやすいようにFontsフォルダを作成し、そこに入れておきます。

フォントアセットを作成

インポートしただけでは、まだ画面に日本語を表示させることができません。

フォントアセットを作成することで、TextMeshProで日本語を表示できるようになります

画面上部からWindowTextMeshProFont Asset Creatorを選択します。

初めてTextMeshProを使用する時は、下のようなウインドウが表示されます。

ここでは、TextMeshProのデフォルト設定ファイルをインストールすることができます。

Import TMP Essentialsをクリックしてから、ウインドウを閉じましょう。

続いてフォントをTextMeshProで使える形式にするため、Font Asset Creatorの設定をしていきます。

以下の3点を設定しましょう。

  1. Source Font File:Unityにインポートしたフォントをドラッグアンドドロップ
  2. Atlas Resolution:両方とも「8192」に設定
  3. Character Set:「Custom Characters」に設定

下部の「Custom Character List」には日本語文字コードを入力する必要があります。

下記サイトから、必要な日本語文字コードのzipファイルをダウンロードできます。

Gist
日本語文字コード範囲指定(ascii・ひらがな・カタカナ・第一水準および第二水準(JIS-X0208-1997)に含まれ... 日本語文字コード範囲指定(ascii・ひらがな・カタカナ・第一水準および第二水準(JIS-X0208-1997)に含まれる漢字) - japanese_full.txt

zipファイルを解凍してテキストファイルを開き、テキストを全てコピーしましょう。

Unityに戻り、Custom Character Listにペーストし、Generate Font Atlasをクリック

完了するまで数分ほど時間がかかります。

完了すると青色のゲージが止まり、Generation completed~と表示されます。

最下部にあるSaveボタンから、完成したフォントアセットを保存しましょう。

インポートしたフォントの隣に、こちらのような新たなフォントアセットが追加されたのが確認できます。

これで日本語のフォントを使う準備ができました。

TextMeshProで日本語フォントを表示

ここからはTextMeshProを使って、日本語フォントを画面に表示していきましょう。

ヒエラルキー上で右クリック→UI→Text – TextMeshProを作成

作成されたText (TMP)のインスペクターを開きます。

Font Asset」項目で先ほど作成したフォントアセットを選択(ドラッグアンドドロップでも可)。

テキスト入力欄に適当な日本語を入力してみます。

ついに画面上に日本語を表示することができました!

フォントサイズの変更方法

フォントサイズは、TextMeshProのインスペクター内にあるFont Sizeから変更することができます

Unity上でテキストを表示させるときには、ラベルやボタンの上に表示させることが多いかと思います。

ですが、文字数が多いと表示させたい範囲を超えて、勝手に改行されてしまうことがあります。

そんな時に、文字数に応じて自動でフォントサイズを調整してくれる「Auto Size」という機能があるので紹介します。

TextMeshProのインスペクター内に「Auto Size」という項目があります。

これにチェックを入れると、自動でフォントサイズを調整してくれるようになります。

チェックを入れると、「Auto Size Options」が表示されるかと思います。

MinとMaxで、フォントの最小サイズ最大サイズを設定することができます。

文字数に応じて、この範囲でフォントサイズが自動調整されます。

実際にAuto Sizeを使用してみましょう。

文字数が増えても白の枠内に収まるように、サイズが自動で小さくなっているのが分かります。

フォントを一括変更したい

既に作ってあるテキストのフォントを変更する

TextMeshProはたくさん作ることになるので、一つ一つ日本語フォントを適応させるのは面倒です。

ここでは既に作ってあるTextMeshProのフォントを、一括で変更する方法を紹介します。

Hierarchyの検索ボックス内、左の虫眼鏡アイコンをクリックして「Type」を選びます。

Type検索では、コンポーネント名でオブジェクトを検索することができます。

つまり、「TextMeshProUGUI」と検索することでシーン内のTextMeshProを全て検索できます。

Ctrl+Aでフォントを変更したいオブジェクトを全選択します。

全選択した状態で、インスペクター内の「Font Asset」にフォントアセットをドラッグアンドドロップすれば、フォントを一括変更できます。

テキスト生成時のデフォルトフォントを変更する

ここでは、TextMeshProを新たに作った際に、作成した日本語フォントがデフォルトで適応されるように設定する方法を紹介します。

上部のメニューからEditProject settingsを選択します。

Project settingsサイドバーの、TextMesh ProSettings内に「Default Font Asset」の項目があります。

作成した日本語フォントアセットを選択しましょう。

これで設定は完了です。

新たに作成したTextMeshProに、GenEikoburiのフォントが適応されていることが確認できました。

フォントがぼやけるとき

以前までUnityで使われていた「Text」では、フォントサイズとスケール次第でぼやけることがよくありました。

ですが現在使われている「TextMeshPro」では、拡大してもぼやけることがなくなりました

Textをお使いの場合でぼやけるときには、Textコンポーネントの「Font Size」の値を大きくし、その分Transformコンポーネントの「Scale」の値を小さくすることで、このように改善できるかと思います。

まとめ

  • 日本語フォントの設定手順
    • 日本語のフォントをダウンロード
    • Unityにインポート
    • フォントアセットを作成
    • TextMeshProにフォントアセットを反映
  • TextMeshProにはフォントサイズを自動調整してくれる「Auto Size」機能がある
  • シーン内のフォントを一括変更できる
  • デフォルトフォントを日本語フォントに変更できる
  • TextMeshProは従来のTextと違いぼやけなくなった

以上、日本語のフォントを追加して使ってみる方法を解説してきました。

フォントの設定は最初こそ手間がかかりますが、一度設定してしまえば後は楽に使うことができます。

フォントが使いこなせると、UI作成に非常に役立つのでぜひマスターしたいですね!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
URLをコピーする
URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Unityメインの個人開発者。UnityでAIを学習させてみたり、野球ゲームを作ってみたりと色々してました。現在はライターとして、Unityで開発する人の力になる記事が書けるよう奮闘中。

目次
閉じる