こんにちは、ともくんのゲーム作り部屋にようこそ!
このページでは、
「UnityのTextMeshProで日本語を表示させたい!」
「TextMeshProは日本語に対応していないの?」
というお悩みの方に向けた内容となっています。
Unityでゲームを作っている際に、テキストを表示させる場合はTextMeshProコンポーネントというものを使いますが、このTextMeshProコンポーネントは、そのままだと日本語を入力してもちゃんと表示させることができません。
なぜなら、TextMeshProコンポーネントにデフォルトで設定できるフォントは、日本語に対応していないため、表示することができないのです。
そこで、TextMeshProで日本語を表示させる場合は、先にUnity内に日本語対応したフォントをインポートさせてから表示させる必要があります。
そこで、このページでは、UnityのTextMeshProで日本語を表示させる方法について、まとめていきます。
TextMeshProとは?
TextMeshProとは、Unity内でテキストを表示させたい場合に使用することができるコンポーネントになっています。
例えば、ゲーム内のスコアや時間であったり、キャラクターのセリフなどといったテキストを表示させることができ、以下のように簡単に入力したテキストを表示させることができます。

ただし、冒頭の解説の通り、テキスト入力欄に日本語を入れても、デフォルトのままではフォントが日本語に対応しておらず、下のようにちゃんと表示することができません。

そのため、TextMeshProで日本語を表示させるためには、フォントをダウンロードして設定する必要があります。
なおUnityには、テキストを表示することができるコンポーネントとして、もう一つ「Text」というものがあります。

このTextは、そのままでも日本語表示することができるというメリットがありますが、Unityの中でも古い機能となっていて、TextMeshProと比べてテキストが滲みやすいというデメリットがあります。
そのため、特にこだわりがなければTextMeshProを使用するようにしましょう。
TextMeshProで日本語を表示させる方法
ここからは、TextMeshProで日本語を表示させる方法についてまとめていきます。
TextMeshProで日本語を使えるようにするためには、
- 日本語のフォントをダウンロードする
- フォントファイルをUnityに追加する
- Font Asset Createrでフォントパッキング処理をする
- TextMeshProで追加したフォントに変更する
という流れで設定を行っていきます。
日本語のフォントをダウンロードする
まずは、日本語に対応しているフォントファイルを準備する必要があります。
フォントは、有料のものから無料のものまで様々なものがあるので、素材サイトなどから好みのフォントを見つけてダウンロードしてきます。
ダウンロードしてくる際は、利用規約には十分注意しておく必要があります。
ここでは、無料で利用できる「あずきフォント」という日本語対応フォントをダウンロードしています。
ダウンロードすると、「azuki.ttf」というファイルがあり、これがフォントデータが入っているファイルになります。

なお、Unityで対応しているフォントファイルの拡張子は、「ttf」と「otf」の2つになっています。
フォントファイルをUnityに追加する
次に、ダウンロードしてきたフォントファイルをUnityで使えるように追加していきます。
追加する際は、画像などの素材と同じく、「ttf」もしくは「otf」の拡張子のフォントファイルをプロジェクトウィンドウにドラッグ&ドロップします。

アセットフォルダ内にフォントファイルが保存されていればOKです。

なお、複数のフォントを使う場合は、「Fonts」フォルダなどを作成しておくと管理しやすくなると思います。
Font Asset Createrでフォントパッキング処理をする
インポートしただけではまだフォントを使えず、Unity内でそのフォントを使えるようにするには、Font Asset Createrで設定する必要があります。
メニューバーの「Window」から「TextMeshPro」の中にある「Font Asset Creator」を選択します。

Font Asset Createrが開いたら、「Source Font」の項目に先ほどインポートしたフォントファイルをドラッグ&ドロップなどで指定してあげます。

そして、「Generate Font Atlas」という部分をクリックすると、フォントパッキングという処理が開始します。

処理作業が完了したら、「Save」をクリックして保存します。


TextMeshProで追加したフォントに変更する
TextMeshProコンポーネントのFont Assetに、先ほど保存したファイルをドラッグ&ドロップなどで選択します。

これで最初にダウンロードしたフォントに設定することができたので、テキスト入力欄に日本語を入れてみます。

無事にUnity内で日本語を表示することができるようになりました。
まとめ
このページでは、Unityでテキストを表示できるTextMeshProコンポーネントで、日本語を表示させる方法についてまとめていきましたが、いかがでしたでしょうか?
TextMeshProは、そのままだと日本語表示することができないため、日本語に対応したフォントをインポートする必要があります。
TextMeshProで新しいフォントを使用できるようにするためには、「Font Asset Creater」でフォントパッキングの処理を行うことで、日本語にも対応したフォントを利用することができます。
フォントには、様々なものが素材サイトにあるので、利用規約をしっかり読んでから好みのものを使ってみましょう。
最後までお読みいただきまして、ありがとうございました!
コメント