TextMeshProとは?
Unityには元々Textコンポーネントというものがあります。
フォントファイルを使ってGameView上に文字列を表示するために使われていましたが、
現在はLegacy扱いになりTextMeshPro
を使用するのが主流となっています。
TextMeshPro
は元々外部のアセットとして販売されていたものですが、
Unity社に買収されて無償で使えるようになっています。
使用しているTextMeshProのバージョン
- TextMeshPro 3.0.6
導入
現在はプロジェクト作成時に最初からPackageManagerに登録されており、
UnityEditorのメニューからGameObject
→UI
以下から追加することが出来ます。
初めてTextMeshPro
を使用したコンポーネントを追加すると、以下のウィンドウが表示されると思います。
TextMeshPro
が使用するリソースを追加するためのものなので、
「Import TMP Essentials」ボタンを押してプロジェクト内にリソースを追加します。
フォントファイルを用意する
先ほど追加したリソースの中にある、LiberationSans SDF.asset
というファイルが、
TextMeshPro
がデフォルトで使用するフォントアセットになります。
フォントアセットとは、フォントファイルから必要な文字情報を書き出したものです。
足りない文字や使いたいフォントがある場合、フォントファイルを用意して
自分でフォントアセットファイルを作ることが出来ます。
今回はGoogleFontsから、Noto Sans Japanese
を用意し、フォントアセットを作ってみます。
フォントファイルをダウンロードしてきて解凍し、中に含まれるファイルをUnityに追加します。
今回は、NotoSansJP-Regular
にしました。
追加したフォントファイルを選択した状態で、右クリックメニューから、
Create
→TextMeshPro
→Font Asset
を実行します。
すると、NotoSansJP-Regular SDF
というファイルが作られます。
まだこの時点ではフォントデータを含んでいません。
フォントアセットファイルを選択した状態で、
インスペクタから「Update Atlas Texture
」を選択します。
FontAssetCreator
ウィンドウが開くので、
Character Set
をASCII
にして、「Generate Font Atlas
」ボタンを押してみます。
ウィンドウの下部にフォントデータを書き込んだテクスチャの状態が表示されました。
Saveボタンで保存すれば、
NotoSansJPフォントの半角英数系の98文字を使用できる状態になります。
日本語に対応する
この時点ではまだ日本語フォントデータを含んでいません。
そのため日本語を表示しようとすると以下の様な表示になります。
先ほどのFontAssetCreator
ウィンドウ上でCharacter Set
をCustom Characters
に変更すると、
Custom Character List
欄に使いたい文字を入力する事が出来ます。
その後再度「Generate Font Atlas」ボタンを押すとフォントデータが更新されます。
ゲーム中使用する文字が決まっている場合は、必要な分を打ち込んでください。
日本語のひらがな、カタカナ、記号、漢字などをまとめて追加したい場合は、
こちらのGistからコピー&ペーストして使用することも出来ます。
実際に全ての文字を使うケースはまれなので、
自分で使用する範囲を決めておくのがいいと思います。
日本語を追加すると以下の様に表示できるようになりました。
フォントが無い場合
フォント生成後に、「Missing characters」と表示されていたら、
フォントファイルにそのフォントデータが含まれていません。
このフォントファイルを使いたいのに使いたい第二水準の漢字を含んでいないということもあるので注意が必要です。
ファイルサイズに注意
日本語の場合文字数が多いため、Atlas Resolutionを変更し、テクスチャサイズを大きくする必要が出てきます。
あまり大きくするとフォントアセットのファイルサイズも増えるので適宜調整してください。
フォントファイルのライセンスについて
フォントファイルにはライセンスがあります。
GoogleFontsのフォントは、無料で利用できますが、
その他のサイトや個人で製作されているフォントについては個別にライセンスを確認しましょう。
- 制限なく無料で使えるもの
- 非商用なら無料で使えるもの
- ゲームタイトル毎に契約が必要なもの
- フォントファイルを再配布してはいけないもの
など様々です。
ライセンスに違反しないように注意しましょう。
おすすめのフォント
丸ゴシック体のピクセルフォントです。
レトロ風ゲームにいいかも。
少し崩れた、異世界感のあるフォントです。