Help us understand the problem. What is going on with this article?

UnityのText Mesh Proアセットで日本語を使うときの手順

[2018/09/16]もともと公開していたCharacter Setの値には常用漢字の抜けがあったようで、別記事にて指摘を頂いたため更新しました。
[2019/07/16]さらにCharacter Setの抜けを指摘頂いたので、別記事へのリンクを追加しました。

Unityでテキストに対してちょっと凝ったエフェクトを加えるときのAssetはText Mesh Proが定番っぽいですが、日本語を扱う方法が見つからなかったのでメモ。

主に以下の動画で説明されていることの日本語まとめです。
Text Mesh Pro - Creating Large Custom Font Asset

Font Asset Creator

Text Mesh Proではttfやotfなどをそのまま扱うことはせず、独自の形式で保存されたassetを扱います。Text Mesh ProにはデフォルトでArial,Bangars,Impactの3種類のフォントのassetが含まれていますが、日本語フォントなどを使うときはfont asset creatorというツールを使用して、ttfやotfからassetを生成する必要があります。

Font Asset Creatorの使用方法

UnityにText Mesh Proが追加してある前提で、メニューからWindow->TextMeshPro - Font Asset Creatorを選択します

font asset creator

このツールは元となるフォントファイルからアトラス画像1を生成するものです。ascii文字のように使用する文字数が少なければデフォルトの設定でもうまく生成できるのですが、日本語のように文字数が多い場合、自分でいい感じの値を設定しないと使えるassetになりません。いくつかコツがあるので列挙します。

  • font source
    元となる日本語font(Unityにインポートされたttfかotf)を選択。

  • font size
    Auto Sizingだと時間がかかるのでCustom Sizeを選択します。値は48くらい。

  • font padding
    5のまま。この値を小さくし過ぎると、後でoutlineなどをつけるときに大きなoutlineなどをつけられない。

  • Packing Method
    FastのままでOK

  • Atlas Resolution
    デフォルトの512*512だと日本語全体が収まりきらないので、4096*4096に変更します。

  • Character Set & Custom Range
    ascii・ひらがな・仮名・よく使う漢字を全て登録したい場合はCharacter Setを「Custom Range」に変更し、Custom Range(Dec)にここの値を入力します。2 [2018/09/16更新]もともと公開しているCharacter Setの値には常用漢字の抜けがあったようなので、こちらのリストを参照してください。 [2019/07/16更新]さらに補完してくれた方がいたのでこちらのリストを参照してください。
    実際に使う文字が決まっている場合は、Custom Charactersを選択して、使う文字列を貼り付ける方法もあります。

  • Font Style
    デフォルトでOK

  • Font Render Mode
    試しで生成してみる場合はHinted Smoothを選択すると生成が速い。本番用のファイルを生成する場合はDistance Field 16などを選択。

  • Get Kerning Pairs
    チェックを外してOK

上記を設定して「Generate Font Atlas」をクリックします。Font Render ModeでDistance Field 16などを選択していると4〜5分ほどかかると思います。

生成結果を見て、Characters packedの値をチェックします。ひらがなの範囲に入っている文字の一部がフォントに含まれていないことがあるため、100%生成されることはないと思いますが、数百文字以上欠けている場合は、アトラス画像にフォントが収まりきらなかった可能性がありますので、Font Sizeの値を小さくしたりAtlas Resolutinoの値を大きくするなどの調整します。

ちなみに私の環境で、ヒラギノ角ゴフォントを試したところ以下のような結果になりました。

generated.png

最後に「Save TextMeshPro Font Asset」ボタンを押して生成されたassetを保存します。Unityのプロジェクト外のフォルダに保存しようとするとエラーになりますので注意してください。

Text Mesh Proのオブジェクト作成

あとは、Text Mesh Proのオブジェクトをゲーム内に配置するだけです。
メニューのGameObject->3D Object->Text Mesh Proでオブジェクトを作成し、InspectorのFont Setting->Font Assetで先ほど作成したassetを指定します。
Text Input Boxで日本語を入れて、プレビュー画面で無事表示されることを確認します。

japanese_unity.png

まとめ

Unityで日本語にかっこいいフォントエフェクトをつけることができてHappy!


  1. 複数の画像を1つの画像にまとめたもの 

  2. よく使う漢字のリストは http://www.tonypottier.info/Unicode_And_Japanese_Kanji/ から拝借しました。 

thorikawa
Co-Founder and CEO of curiosity, Inc. / Ex-Yahoo, Inc. / 最近はロボット作る会社やってます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした