Unityで日本語フォントを使う場合、iPhoneやAndroidでは、
フォントをビットマップ化する必要があります。
そのとき、テクスチャ1枚におさめなくてはいけないため
通常のフォントだと、含まれている文字数が多いので、
文字がすごく小さくなってしまいます。
そこで、日本語フォントを加工して、
文字数を減らしたフォントを作成する方法をメモしておきます。
ソフトのインストール
fontの加工用にFontForgeというソフトをインストールします。
http://fontforge.sourceforge.net/ja/
上記リンクからインストールが可能ですが
ちょっと手間なので、自分は
Mac OS X 専用バイナリ
からコンパイル済みバイナリを入手してインストールしました。
フォントの用意
元になるフォントを用意します。
自分は、加工や再配布、商用利用が可能な
梅フォント
を使用することにしました。
マクロの作成
あとは、FontForgeを起動して、元になるフォントから
いらない文字を削除していけばいいのですが、
さすがに1文字ずつ消していくのは手間なので、
マクロを作成することにします。
マクロは以下のような感じになります。
SelectNone(); SelectMore(0u00003054); ←残したい文字を選択 : SelectInvert(); Clear(); Generate("miniset.ttf"); Quit(0);
マクロ自体のプログラムは簡単なのですが、
残したい文字を選択する部分を作るのが結構手間です。
ちょっと工夫してみる
そこで、PHPでマクロ作成用のプログラムを作ってみました。
http://tonosamart.com/tonolib/fontforge/miniset.php.txt
同じフォルダにある、chars.txtを読み込んで、
その中にある文字を集計して、FontForge用のマクロを作成します。
マクロの実行
作成したマクロをFontForgeで実行してみます。
ファイル→スクリプトを実行を選ぶとウィンドウが表示されるので、
FF→呼び出す→作成したマクロを選択→OK
これで、miniset.ttfというフォントファイルが作成されます。
あとは、Unityで使用すればOKです。
なるべく文字数を減らすことで、1文字のサイズを大きくすることができ、
きれいに文字を表示することができるようになります。
ぜひ、ためしてみてください!