📝
UnityのTextMeshPro覚書
はじめに
TextMeshPro、フォント(+ライセンス)に関してのまとめです。
TextMeshProバージョンは、Unityバージョン(2018や2019)により替わります。
2019.3.4だと2.0.1がインストールされます。変更内容はChangesLog(2.0.1)を確認しましょう。
リンク先は古い内容も含まれています。
上手く解決できない場合は、記載内容のキーワードから新しい方法がないか探してみましょう。
TextMeshPro
-
TextMesh Pro Documentation
- オフィシャルドキュメント
- uGUIのTextの代替となるTextMesh Proとは【Unity】【TextMesh Pro】 - (:3[kanのメモ帳]
- synctamの雑談日記: 様々なバージョンの TextMesh Pro でフォントを作成する手順
- TextMeshProの使い方 - Qiita
- Introduction to TextMesh Pro in Unity | raywenderlich.com
-
TextMeshProドキュメント | Unity用ビジュアルノベルツール「宴」
- TextMeshPro自体はUnityの公式機能ですが、日本語ドキュメントがないので宴側で用意しました。
- 現在の時点(2024/03/31)では、TextMeshPro3.0を基本として書いています。
Unity道場
- 【Unity道場スペシャル 2017博多】TextMesh Pro を使いこなす
- 【Unity道場スペシャル 2017大阪】カッコいい文字を使おう、そうText meshならね
- 【Unity道場スペシャル 2017札幌】カッコいい文字を使おう、そうtext meshならね
設定
- TextMesh Pro - Docs/SDFAA_HINTED? - Unity Forum
- 【Unity】TextMeshProのMaterial Presetを増やす方法 - テラシュールブログ
- 【Unity】TextMesh Pro でハイパーリンクを実装する方法 - コガネブログ
- 【Unity】TextMesh Pro のオブジェクト作成時に Raycast Target をデフォルトでオフにする方法 - コガネブログ
- 【Unity】Hierarchy の「Create>UI」のメニューに「TextMeshPro - Button」を追加できる「TextMeshProButtonExtension」紹介 - コガネブログ
- 【Unity】TextMesh Pro の警告の出力を無効化する方法 - コガネブログ
- 【Unity】Unity 2018 以降の TextMesh Pro の FontAtlas は Inspector から更新できる - コガネブログ
- 【Unity】新しく作成する TextMesh Pro のオブジェクトのデフォルトパラメータを設定する方法 - コガネブログ
- 【Unity】TextMeshProのフォント用のアセットに指定した文字だけを入れて容量を下げる手順 - はなちるのマイノート
- [Unity] TextMeshProでフォントが角丸っぽくなるのを直す
- 【Unity】TextMesh Pro の SetText 関数で文字列を設定する場合、文字列が変化しない場合でも UI のリビルドが走る - コガネブログ
- TextMeshProでアウトライン付けたテキストのフォントサイズを変えた時にアウトラインが付かずに範囲内の色が変わってしまう場合の対処法【Unity】【TextMesh Pro】【トラブルシューティング】 - (:3[kanのメモ帳]
- yasirkula/UnityTextToTextMeshProUpgradeTool: Upgrade Text, InputField, Dropdown and TextMesh objects to their TextMesh Pro variants in Unity
- TextMeshProのフォントアセットでハマった話【Advent Calendar 12/12】|Colorful Palette
- 【Unity】TextMeshPro の Fallback を Addressables から動的に読み込む汎用クラス - Qiita
- [Unity]TextMeshProでピクセル(ドット)系フォントがぼやける問題を解決する(ドット絵警察お怒り版) - Qiita
- UnityのTextMeshProのLinkタグで、長いURLを扱う #Unity - Qiita
- TextMeshProの落とし穴 | Unity用ビジュアルノベルツール「宴」
自動化
- 【Unity】TextMesh Pro の Font Asset の更新を自動化できる「Unity TextMeshPro Font Customized Creater」紹介 - コガネブログ
- 【Unity】TextMesh Pro の FontAsset に含めたい文字が変更された時に FontAsset を自動更新できる「TMP_FontAssetUpdater」を GitHub に公開しました - コガネブログ
- 【Unityエディタ拡張】シーンに存在する全てのTMProのFontAssetを置き換える | Unlit Sphere
- 【ハルシオンブログ】TextMesh Pro のテキストが変更されたのを検知したい時 - ハルシオンシステムの気ままBlog
ローカライズ
- まさかみブログ | TextMeshProを使った場合のローカライズ設計について
- 本当に使える!TextMeshProでの「日本語」「多言語」対応方法 - きゅぶろぐ
- TextMeshPro の文字だけでなくフォントも選択言語に応じて自動的に変えるエディタ拡張【Unity Localization】 - デニッキ!
エラー
- 【Unity】iOS13でタイ語が[?]になる問題 - Qiita
- 【Unity】The character used for Ellipsis is not available in font asset [XXXX]. - コガネブログ
- 【Unity】Error Code: 1 occurred while Loading the [XXXX] font file. This typically results from the use of an incompatible or corrupted font file. - コガネブログ
- 【Unity】Character with ASCII value of XXXX was not found in the Font Asset Glyph Table. It was replaced by a space. - コガネブログ
- 【Unity】「I2 Localization」で TextMesh Pro のテキストをローカライズすると「The referenced script on this Behaviour (Game Object '<null>') is missing!」の警告が出力される - コガネブログ
-
TextMeshProをプラットフォームをAndroidにしたら文字化けした。 | HUSKY STUDIO (タロ三世商会)
- 端末により使用できるテクスチャーサイズに制限があるため発生している。
- 【Unity】Android 向けにビルドしたアセットバンドルを Unity エディタで読み込んだ時に TextMesh Pro のテキストが表示されない場合 - コガネブログ
日本語表示
- Unityにおける文字の描画と比較検証 | CyberAgent
- ビットマップフォントとダイナミックフォントに関しての説明がある
ビットマップフォント
テクスチャーが常駐するタイプ。そのため、設定によりメモリ使用量が増えます。
フォントサイズ、実際使う文字、対象とする動作環境(PCとかスマホ)などから考えて文字セットを決める必要があります。
- ASCIIコード+JIS第1水準の文字 - tanaka's Programming Memo
- 【Unity】TextMeshPRO 常用漢字を全部使えるようにする | Section31
- UnityのText Mesh ProでJIS第一水準~第四水準までの日本語を表示させる - Qiita
- UnityのText Mesh Proでほぼ全ての日本語を表示させる - Qiita
- 【Unity、TextMeshPro】簡単な使い方+日本語フォントアセットを作るときの設定値メモ - naichi's lab
- UnityのText Mesh Proアセットで日本語を使うときの手順 - Qiita
- 【Unity】TextMeshProで常用漢字を全部使えるようにする - Qiita
- 常用漢字を突っ込むのはもうやめ!Adobeが定めた良い感じの日本語文字セットをTextMeshProで使う - きゅぶろぐ
ダイナミックフォント
TextMeshPro1.4(2.0)からダイナミックフォント(Dynamic SDF system)が使用できるようになります。
ビットマップフォントのように生成した文字分常駐するわけではないので確保するメモリは減ります。(正確には設定による)
使用したことのない文字を実行時にrenderするため、パーフォーマンスに問題がないかを確認する必要があります。
- 【Unity】TextMeshProにFont FallbackとDynamic SDF Systemが追加、日本語が使いやすくなった。 - テラシュールブログ
- TextMeshPro 1.4.0 のダイナミックフォント(Dynamic SDF System)使ってみたけど、元の static に戻したお話。 - Qiita
- TextMesh Pro 覚え書き FontAsset | | ぶろねこ -Blog on NEKOTEAM-
- 【Unity】TextMesh Pro のダイナミックフォントでメインアトラスがいっぱいになったら追加のアトラステクスチャを自動で生成する方法 - コガネブログ
- Unity TextMeshProにおけるダイナミックフォントの扱い
装飾
デザイン
- 【Unity】TextMesh Pro で使用できる 30種類のタグを紹介 - コガネブログ
- テキストのアウトラインを何とかする - BeXide Tech Blog
- ドロップシャドウと勾配値 - BeXide Tech Blog
- Text Meshがオブジェクトの裏から透けて見えるのを防ぐ【Unity】【Shader】 - (:3[kanのメモ帳]
- C# - UnityのTextMeshProで文字を白くしたい|teratail
- 【Unity】TextMeshProのアウトラインは、uGUIのと比べてとても良い - テラシュールブログ
- 【Unity】TextMesh Pro の設定をルール化して管理できる機能「TMP Rule」を GitHub に公開しました - コガネブログ
- 【Unity】TextMesh Pro で反転・グラデーション・影・アウトラインが使用できる「MeshEffectForTextMeshPro」紹介 - コガネブログ
- 【Unity】TextMesh Pro では SpriteAsset にアウトラインや影を適用することはできない - コガネブログ
- 【Unity】TextMesh Pro でアウトラインをさらに太くする方法 - コガネブログ
- 【Unity】TextMesh Pro でアウトラインを太くしたら文字が潰れてしまう現象を防ぐ方法 - コガネブログ
- 【Unity】TextMesh Pro のオブジェクトをカーブさせるスクリプト「WarpTextExample」紹介 - コガネブログ
- Unityで「まとも」なテキスト描画を行いたい - Qiita
- 【Unity】TextMeshProにRectMask2Dのsoftnessを反映させる - うどんてっくメモ
- 【Unity】TextMeshProのOutlineを理解する - うどんてっくメモ
- TextMeshProのOutlineを使ってみた - KAYAC engineers' blog
- 【Unity】TextMeshProでもっと太いアウトラインを描画する方法の模索 - Qiita
- 【Unity】TextMeshProのアウトラインの太さをランタイムで変更する - うどんてっくメモ
演出
- うご文字 ~Unity,TextMeshProで作る文字アニメーション~(PDF版) - rachlab store - BOOTH
- 【Unity】新・Timelineで字幕を作る - テラシュールブログ
- [Unity] カスタムシェーダーでTextMeshProに独創的な演出を加える - Qiita
- [Unity] TextMeshProで生成したテキストをDOTween(Pro)を使って動かす - Qiita
- katsuma99/TextShaderAnimation: Unityのテキストをシェーダーを用いてアニメーションする
- 【Unity】TextMesh Pro でキランと光るエフェクトが使用できる「ShinyEffectForTMPro」紹介 - コガネブログ
- 【Unity】TextMesh Pro でディゾルブシェーダが使用できる「DissolveEffectForTMPro」紹介 - コガネブログ
- 【Unity】TextMesh Pro でタイプライターのように 1 文字ずつ表示できる「TMP_Typewriter」を GitHub に公開しました(リッチテキスト対応、DOTween 必須) - コガネブログ
- 【Unity】TextMesh Pro の文字単位で DOTween のアニメーションを実装できる「CharTweener」紹介 - コガネブログ
- 【Unity】TextMesh Pro でランダムに文字の色を変更するスクリプト「VertexColorCycler」紹介 - コガネブログ
- TextMeshProで文字をウネウネ上下アニメーションさせる | パティオ
- 【Unity】TextMesh Proをアニメーションさせる~デザイナー編~ - コポうぇぶろぐ
- DoTweenをTextMesh Proで使う方法(設定)【Unity】【DOTween】【TextMesh Pro】 - (:3[kanのメモ帳]
- DoTweenのDoTextでテキストの文字送り(1文字ずつ表示)【Unity】【DOTween】 - (:3[kanのメモ帳]
- DOTweenでTextMeshProを文字ごとにアニメーションさせる | ゲームUIネット
- TextMeshProのテキストを1文字ずつアニメーション【Unity】【DOTween】【TextMesh Pro】 - (:3[kanのメモ帳]
- 【Unity】TextMesh Proでテキストを1文字ずつ表示する | ねこじゃらシティ
- 【Unity】TextMeshProでテキストアニメーションを実装する – 株式会社ロジカルビート
- TextMeshProの表示時の情報textInfoの活用 #Unity - Qiita
- テキストのアニメーションを簡単に実装出来る Text Animator【Unity】【TextMesh Pro】【アセット】 - (:3[kanのメモ帳]
- TextAnimatorで最終的な表示に合わせて1文字ずつ文字送りする【Unity】【TextMesh Pro】【アセット】 - (:3[kanのメモ帳]
レイアウト
- ルビ
- 【Unity】Text や TextMesh Pro のサイズをゲーム画面に可視化できる「TMP_RectVisualizer」を GitHub に公開しました - コガネブログ
- 【Unity】ペルシャ語やアラビア語のような右から左に書く言語を TextMesh Pro で使用できる「RTL Text Mesh Pro」紹介 - コガネブログ
- 【Unity】TextMeshProで特定文字の位置がずれる - naichi's lab
- UnityのTextを豆腐にしない、Font.HasCharacter - Qiita
- 【Unity】TextMesh Proで禁則処理を実現する | ねこじゃらシティ
- 【Unity】TextMeshProで一部の文字だけ精度を上げて綺麗に描画したい時の工夫 - うどんてっくメモ
- TextMeshProUGUIで表示したTextの最後の位置を取得する方法 - Qiita
- TonyViT/CurvedTextMeshPro: A simple plugin to make curved TextMeshPro texts using a mathematical function
- 【Unity】文章サイズの取得と自動レイアウト機能を使用してみた – 株式会社ロジカルビート
- 数字を高速に変更している時のテキストのガタツキは、mspaceを使って一部分だけ等幅にする事で改善出来る【Unity】【TextMesh Pro】 - (:3[kanのメモ帳]
- テキストの文字数が長すぎたら「〇〇〇…」みたいに省略させる方法【Unity】【TextMesh Pro】 - (:3[kanのメモ帳]
- 数字を高速に変更している時のテキストのガタツキは、mspaceを使って一部分だけ等幅にする事で改善出来る【Unity】【TextMesh Pro】 - (:3[kanのメモ帳]
- TMPで表示する文字数やワード数、行数を簡単に設定する方法【Unity】【TextMesh Pro】 - (:3[kanのメモ帳]
絵文字
- 親方!空から絵文字が! | VirtualCast Blog
- TextMeshPro - テキスト内に画像を入れる【Unity】 - ゲーム作るためのこと学ぶぶろぐ(’ー’)/チャラン
- 【Unity】TextMesh Pro で文字列中に表示したい画像を Sprite Atlas に簡単にまとめられる「Simple Sprite Packer」紹介 - コガネブログ
- fluentui-emojiの絵文字をUnityで読み込む
- TextMeshProでSpriteを表示する - Qiita
- TextMeshProで絵文字をきちんと表示する - Qiita
- TextMesh Proで絵文字を出す - KAYAC engineers' blog
表示判定
- 【Unity】uGUIで入力できない文字をはじくまでの長き道のり - Unicodeの誕生からサロゲートペア、バリデーション用ソースコードまで - LIGHT11
- TextMesh ProとuGUIで文字レイアウトを取得する
- TextやTextMeshProのフォントに指定した文字が含まれているか(表示できるか)【Unity】【uGUI】【TextMesh Pro】 - (:3[kanのメモ帳]
フォント
ゲームでフォントを使用する場合にはライセンスに注意する必要があります。
ライセンスにより、使用できる用途(印刷物のみとか)や使用方法(固定した文字のみ)などあります。
例えば「すべての文字を含めたビットマップフォントやダイナミックフォントを含めて配布が許可されている」、「タイトル画面のタイトルをテクスチャーにして表示するなどは許可されている」など。
記載内容のフォントで発生した損害に対していかなる責任も負いません。(補償しません)
組み込むフォントはライセンスを確認して、自己責任のもと組み込んでください。
入手
- 2020年用、日本語のフリーフォント418種類のまとめ -商用サイトだけでなく紙や同人誌などの利用も明記 | コリス
- 「作業の合間の息抜きに商用可(同人にも使用OK)のフリーフォントの中からオススメをいくつかまとめてみました。主にタイトルロゴに使いやすいもの中心です。 」 / Twitter
- ゲーム・アプリに組込めるフォントまとめ|トリヘッズ
- [PR]「mojimo-game」から始めるゲーム用フォントの新たな活用 - GamesIndustry.biz Japan Edition
ライセンス
- フォントのライセンスーPCに最初から入っていても自由には使えない | 青木宣明のブログ
- 研究ノート | フリーフォントライセンスの留意点
- Mac OS Xのヒラギノフォントは商用利用可能です。 | サポート | Macお宝鑑定団 blog(羅針盤)
- macOSに付属するフォントは商用利用可能か問い合わせた - cBlog
チューニング
uGUi.Textからの置き換え
- uGUIのTextをTextMesh Proへ置換する方法と旧TextMesh Proからの移行方法【Unity】【TextMesh Pro】【uGUI】 - (:3[kanのメモ帳]
- 【Unity】uGUI の Text を TextMesh Pro に置換できる「TextMeshProReplacer」紹介 - コガネブログ
Asset
- 【Unity】TextMeshProのテキストに表示するスプライトをAddressableから取得する - テラシュールブログ
- [Unity] TextMesh ProのフォントアセットをResourcesに含めないでデフォルトフォントとして使う : うえすと開発メモ
メモリ
数字
- 【Unity】TextMeshProで「数字」をテキストで表現する時にGC Allocを発生させない2つの方法 - テラシュールブログ
- 【Unity】TextMesh Pro で数値を設定する時に GC Alloc が発生しない拡張メソッド「TMP_IntegerText.cs」紹介 - コガネブログ
- 【Unity】TextMesh Pro で数値を表示する時に GC Alloc の発生を防ぐことができる「TMProNonAllocUtil」紹介 - コガネブログ
Discussion