いんでぃーづ

ゲームいろいろ、いろいろ自由

TextMeshProで、必要な日本語データだけ吸い出して使う方法

ついこのあいだ無料化された TextMeshPro ですが、このアセットを使うにはフォントファイルからフォントテクスチャ(画像)として専用のテクスチャを作成する必要があります。

この際、必要な文字だけテクスチャに焼き込んで使う機能があり、そのぶんデータを削減することができます。

Unity本体にもフォントデータを削減する機能はあるので、uGUIなどでフォントデータを削減したい場合はこちらを参照ねがいます。

indie-du.com

ゲーム内で使用する文字を準備

下のような感じで、ゲーム内で使用する文字を列挙したテキストファイルを用意しておきます。

YeahYeahWowWowかき混ぜろ
カレーをもっとかきまぜろ
食中毒には
きをつけろ
カバディカバディ
Unityユニティ

ファイル内で 文字が重複しても問題ない ので、エクセルなどに書いたリストをコピペするだけでもいけます。

TextMeshPro 用のフォントマテリアルを作成

TextMeshProには専用のマテリアル作成ウインドウが付属しています。

メニューから Window > TextMeshPro > Font Asset Creator と選択し、ウインドウを表示します。

f:id:sugar_affordance:20170518171414j:plain

表示したらまず Font Source 欄に使用したいフォント(otfやttf)ファイルを設定します。
今回お借りしたフォントはこちらのフリーフォントです。

きんいろ書体シリーズ

Character Set 欄で Characters from File を選択、Character File にさきほど作成したテキストファイルを設定します。

この状態で Generate Font Atlas ボタンを押します。

f:id:sugar_affordance:20170518171927j:plain

するとこんな感じの文字テクスチャが作成されます。

f:id:sugar_affordance:20170518171948p:plain

一番下の Save TextMeshPro Font Asset ボタンを押して保存すると、TextMeshPro専用マテリアルが作成できます。

TextMeshProコンポーネントにマテリアルを設定

ではシーンにTextMeshProを配置してみましょう。

Hierarchyウインドウから Create > UI > TextMeshPro - Text と選択すると、uGUIでのTextMeshProが作成されます。

f:id:sugar_affordance:20170518172042p:plain

TextMeshPro UGUI というコンポーネントが追加されているので、この Font Asset 欄に作成したマテリアルを設定します。(末尾SDFのファイル)

f:id:sugar_affordance:20170518172115p:plain

この状態で下のようなテキストを入れると

f:id:sugar_affordance:20170518172140p:plain

シーン内には以下のように描画されます。

f:id:sugar_affordance:20170518172238p:plain

テクスチャに焼き込んでいない文字は文字化けしています。

ビルドして容量を比較してみる

テクスチャアトラスのサイズを、512x512と256x256の二種類用意してビルドしてみました。

f:id:sugar_affordance:20170531110804p:plain

解像度との兼ね合いもあるので、実際の画面表示を見ながら最適なサイズを探してください!


“Unity” and Unity logos are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere, and are used under license.


免責事項

当サイトの広告バナー、リンクによって提供される情報、サービス内容について、当サイトは一切の責任を負いません。

また、当サイトの情報を元にユーザ様が不利益を被った場合にも、当サイトは一切の責任を負いません。

すべて自己責任でお願いします。