はじめに
昔これに似た記事を書いたのですが、今回はさらに簡単にできる手順があったので再度記事にしたいと思います。
(前記事では比較実験もしていますが、今回は手順をつらつらと書いていきます)
まず前提としてTextMeshPro
はFont Asset Creator
を使ってフォントを独自アセットに変換して利用します。
この独自アセットを日本語に対応しようとすると数十MBぐらいになってしまうことがあります。
アプリとしてリリースするときは容量が小さいほどダウンロードされやすいと言われたりしますし、これほど容量が大きすぎるとGitにあげられないみたいなことも起こります。
是非これを機に容量削減をしてみてください。
使用する文字を調べる
TextMeshPro
の独自アセットには画像データが含まれていて,画像のサイズを小さいほど容量を小さくすることができます。
なぜ画像データ?と思うかもしれませんが、TexeMeshPro
ではFont Asset Creator
を通して使用する文字を1枚の画像ファイルにする(アトラス化)からですね。この画像データを利用してテキストの描画を行います。
この画像データを小さくする方法として、画像データに入れる文字を減らすというものがあります。
しかしいちいち自分でゲームで使う文字を調べるのは大変なので、アセットの力を借りましょう。
こちらのURLに飛び,.unitypackage
をダウンロードします。(容量は7kBで,ビルドファイルに含まれないので安心してご利用ください)
ダウンロードができたら、Unityに先程ダウンロードした.unitypackage
をドラッグ&ドロップすればインポートは完了です。
このアセットの使い方は簡単で、Tools -> UsedCharEnumerator
を選択してウィンドウを開きます。
あとは以下の画像のように以下の操作を行います。
- Asset以下全て検索にチェック
- 検索するファイルの拡張子を選択
- Searchボタンを押して検索
しばらく待つと文字がたくさん表示されると思うので、これをコピーしてFont Asset Creator
で使用していきます。
アセットを作成する
実際にフォントデータからTextMeshPro
のアセットを作成していきましょう。
Window -> TextMeshPro -> Font Asset Creator
を選択してウィンドウを開きます。
いくつか設定項目がありますが,それぞれの設定を行います。
- Source Font File : 使うフォントを選択
- Sampling Point Size : Auto Sizing
- Padding : 5
- Packing Method : optimum
- Atlas Resolusion : 一番大事なので後述
- Charactor Set : Custom Charactors
- Custom Charater List : 使用する文字の一覧をコピペ
細かい箇所はデフォルトで良いと思います。
また一番重要な項目がAtlas Resolusion
で、これが画像データの縦横の大きさを表しています。
実はいくら画像データファイルに入れる文字を減らしても容量に変化はなく、Atlas Resolusion
を減らすことで初めて容量が減ります。
しかしAtlas Resolusion
を小さくしすぎると,画像内に文字を無理矢理詰め込もうとして文字が汚くなったり読めなくなったりしてしまいます。
どこまでAtlas Resolusion
を減らすべきかはフォントの種類や文字数,どれくらい容量を減らしたいかによりますが、最終的には実際に目で確認していただくしかありません。
なるべく容量を減らしたいなら、Atlas Resolution
の小さい値からアセットを作成し見た目を許容できるものを見つけていくとよいでしょう。
全ての設定ができたら、Generate Font Atlas
をクリックしてアセットを作成すれば完成です。