Unityでゲーム開発を進めていると、「デフォルトのArialフォントから変更して、ゲームの雰囲気に合わせたい」と思うことはありませんか?
この記事では、商用利用も可能なフリーフォント「M+ FONTS」を例に、外部のフォントファイル(.ttf)をUnityにインポートし、UIテキストに適用する方法を分かりやすく解説します。
※本記事ではUnity標準のuGUI(Legacy Text)での手順を中心に解説します
Unityでカスタムフォントを使うための基礎知識
外部フォントをUnityに組み込む前に、知っておくべき基本的なルールを2つ紹介します。
対応しているフォント形式
Unityで読み込めるフォントファイルの形式は、主に以下の2種類です。
- .ttf(TrueTypeフォント)
- .otf(OpenTypeフォント)
今回使用する「M+ FONTS」を含め、ウェブ上で配布されている多くのフリーフォントはこのどちらかの形式で提供されています。
ファイルの推奨配置先
インポートしたフォントファイルは、プロジェクト内の Assets フォルダ以下であればどこでも認識されます。
しかし、プロジェクトのファイル管理を分かりやすくするため、Assets/Fonts という専用のディレクトリを作成し、その中に配置するのが開発のベストプラクティスです。
M+ FONTSの導入手順とUIへの適用方法
それでは、実際に「M+ FONTS」をダウンロードしてUnityで表示するまでの流れを見ていきましょう。
1. M+ FONTSのダウンロードとインポート
まずは、配布サイトからフォントファイルをダウンロードします。
- M+ FONTS 公式サイト へアクセスします。
- 「BITMAP」と「OUTLINE」の選択肢がありますが、今回はOUTLINEのページへ進みます。
- 「Latest Release」の横にある最新リンクからダウンロードページへ移動し、ファイルを保存して解凍します。
解凍したフォルダの中には多数の .ttf ファイルが入っています。今回は例として mplus-1p-medium.ttf を使用します。
Unityのエディタを開き、先ほど作成した Assets/Fonts フォルダに mplus-1p-medium.ttf をドラッグ&ドロップして追加してください。
通常は追加時に自動でインポート処理が走りますが、もし反映されなければファイルを右クリックして「Reimport」を実行しましょう。
2. UIテキストへのフォント適用
次に、インポートしたフォントをゲーム画面のテキストに適用します。
- Unityのメニューバーから
GameObject > UI > Textを選択し、SceneにuGUIのテキストオブジェクトを作成します。 - 作成したTextオブジェクトのInspector(プロパティ)を開きます。
Textコンポーネント内にある Character セクションの Font 項目に注目してください。- 先ほどインポートした
mplus-1p-medium.ttfを、この Font 項目にドラッグ&ドロップでアタッチします。
これで、テキストのフォントが指定したものに切り替わります。
3. 実際のゲーム画面で確認する
ゲームを実行、もしくはSceneビューでテキストの変化を確認してみてください。
デフォルトのフォントから変更されたことで、見栄えが大きく変わったはずです。
「他の太さやデザインも試したい」という場合は、解凍したフォルダ内の別の .ttf ファイル(例:bold や light など)をインポートし、同様の手順で差し替えて比較してみることをおすすめします。
【補足】TextMeshProで日本語フォントを使用する場合
現在のUnity開発では、より高品質なテキスト描画が可能な TextMeshPro (TMP) の使用がスタンダードとなっています。
TextMeshProで今回インポートした .ttf ファイルを使う場合は、そのままでは適用できず、Font Asset(フォントアセット) を生成するひと手間が必要です。
- メニューバーの
Window > TextMeshPro > Font Asset Creatorを開く。 - Source Font Fileに
.ttfをセットし、日本語の文字コードを指定してGenerateする。
本格的にゲームをリリースする際は、こちらのTextMeshProの利用もぜひ検討してみてください。
開発環境に関する情報
本記事の解説は、以下の環境をベースに検証しています。
- OS: Mac OSX El Capitan v10.11(※Windows環境でも手順は同様です)
- Unity: v5.2.1f1 以降対応
- M+ TESTFLIGHT 060
Unityに関する記事一覧
記事が見つかりませんでした。

