次の項目は別ページに分割しました。
関連ページ:
TextMesh Pro
公式サイト:
TextMesh Pro | Unity マニュアル [公式]
使い方
- ヒエラルキーウィンドウで右クリックして、「UI > Text – TextMesh Pro」オブジェクトを作成する。
- 初回のみ、「Import TMP Essential Resources」を実行してリソースをインポートする必要がある。
- 使用したいフォントで作成したフォントアセット (Font Asset) を指定する。
コード:
日本語文字コード範囲指定 (kgsi) – GitHub Gist
参考:
uGUI の Text の代替となる TextMesh Pro とは | kan のメモ帳
TextMesh Pro アセットで日本語を使うときの手順 – Qiita
TextMeshPro で日本語を表示する方法 | 怠惰な日々にさよならを
TextMesh Pro のワークフロー | Unity 備忘録
TextMesh Proによる Text の使い方を解説 | hirokuma.blog
導入
参考:
概要
ドキュメント:
User Guide – TextMesh Pro | Unity Manual [Official]
参考:
TextMesh Pro を使いこなす | SlideShare
Unity 2018 で TextMesh Pro を最大限に活用しよう | Unity Technologies Blog [公式]
スクリプト
スクリプトでテキストの内容を更新する
using TMPro;
public class UpdateScore : MonoBehaviour
{
TextMeshProUGUI uGUI;
void Start()
{
uGUI = GetComponent<TextMeshProUGUI>();
}
void Update()
{
uGUI.text = "Score: " + score;
}
}
Code language: C# (cs)
参考:
TextMesh Pro のテキストをスクリプトから表示/変更する | ニートの活動報告書
How to change the text of textmesh pro text – Unity Answers
changing TextMesh Pro Text (from UI) via script – Unity Forum
Changing text through C# script : NullReferenceException – Unity Forum
how should TextMesh Pro be used in a game script? – Digital Native Studios
TextMesh Pro text will not change via script – Stack Overflow
マテリアル
Create Material Preset
「TextMesh Pro」オブジェクトに別のマテリアルを割り当てる場合は、「マテリアルプリセット」 (Material Preset) を作成する。インスペクターでマテリアルを右クリックして「Create Material Preset」を実行する。
設定
- Face
- Outline:縁取り/アウトラインの設定
- Underlay:影/ドロップシャドウの設定
- Debug
参考:
TextMesh Pro の Material Preset を増やす方法 | テラシュールブログ
TextMesh Pro を使って効果毎にマテリアルを作成する/Material Preset の作成 | KAZUPON 研究室
TextMesh Pro でタイトルロゴをちょっとリッチにしたお話 | ゴマちゃんフロンティア
TextMesh Pro で Outline などの設定を複数保持する方法 | エクスプラボ
What’s the proper whay to deal with having different materials for same font? – Unity Forum
Is it possible to override the custom render queue in the material? – Unity Forum
フォントアセットを作成する (Font Asset Creator)
- メニューから「Window > TextMeshPro > Font Asset Creator」を開く。
- 元になるフォントを選択し、オプションを設定する。
- 「Generate Font Atlas」を実行する。
- 「Save」ボタンを押して作成したフォントアセットを保存する。
設定
- Source Font File:元になるフォントデータとして使用するフォントファイル
- Sampling Point Size:サンプリングに使用するフォントのサイズ
- Padding:周囲の余白 (デフォルト:
5
) - Packing Method:パッキング方法 (デフォルト:
Fast
) - Atlas Resolution:作成するアトラスの解像度 (英字フォントの場合、ほとんどのケースで 512 × 512 で十分である。日本語の場合はモバイル向けで 2048 × 2048、あるいは PC 向けで大きいフォントサイズを高解像度で使用したい場合に 4096 × 4096 を指定するなど、必要に応じて十分な解像度を設定する。)
- Character Set:アトラス内に含める文字セット (英字の場合は ASCII、日本語の場合は「Custom Characters」あるいは、「Characters from File」で常用漢字など必要な文字セットを指定する。)
- Render Mode:描画モード (デフォルト:
SDFAA
あるいはSDF16
) - Get Kerning Pairs:カーニングペア情報を取得して字詰め処理を改善する (フォントにカーニングデータが含まれている場合にのみ有効)
ドキュメント:
Font Assets | TextMesh Pro Documentation [Official]
TextMesh Pro: Font Asset Creation | Unity Learn [Official]
参考:
様々なバージョンの TextMesh Pro でフォントを作成する手順 | synctam の雑談日記
TextMesh Pro で作成した FontAsset に文字を追加する | Raspberly のブログ
アウトライン
参考:
TextMesh Pro のアウトラインは、uGUI のと比べてとても良い | テラシュールブログ
TextMesh Pro でアウトラインをさらに太くする方法 | コガネブログ
グラデーション
参考:
uGUI.Text と TextMesh Pro にグラデーションをかけたい! | ハルシオンシステムの気まま Blog
SDF
参考:
カスタムシェーダーで TextMesh Pro に独創的な演出を加える – Qiita
ComputeShader でランタイムに SDF マップを生成するエクスペリメント | KAYAC engineers’ blog
Unity でまともなテキスト描画を行いたい – Qiita
リッチテキスト
ドキュメント:
Rich Text | TextMesh Pro 4.0 Manual [Official]
Rich Text – TextMesh Pro Documentation | Digital Native Studios [Official]
参考:
TextMesh Pro で使用できる 30種類のタグを紹介 | コガネブログ
TextMesh Pro で使えるリッチテキストタグまとめ | 夜中に Unity
日本語フォントを使う
参考:
TextMesh Pro アセットで日本語を使うときの手順 – Qiita
TextMesh Pro に Font Fallback と Dynamic SDF System が追加、日本語が使いやすくなった | テラシュールブログ
TextMesh Pro でほぼ全ての日本語を表示させる – Qiita
本当に使える! TextMesh Pro での日本語/多言語対応方法 | きゅぶろぐ
アイコンフォントを使う
参考:
TextMesh Pro で FontAwesome を使う – Qiita
絵文字
参考:
親方!空から絵文字が! | VirtualCast Blog
スプライトを表示する
sprite
タグを使う
前提
- 「2D Sprite」パッケージがインストール済みであること。
手順
- 画像を用意する。
- スライスを作成する。
- プロジェクトウィンドウでアトラス画像を右クリックして、メニューから「Create > TextMesh Pro > Sprite Asset」を選択して、アトラス画像からスプライトアセットを作成する。
- シーンに「Text – TextMesh Pro」オブジェクトを追加し、「Sprite Asset」に作成したスプライトアセットを指定する。
- テキスト欄に
<sprite=n>
を入力すると、画面にスプライトが表示される。
使用例
0
番のスプライトを表示する。
<sprite=0>
オプション
- Sprite Character Table
- Unicode:コードポイントを指定する
- Sprite Glyph Table
- BX / BY:X軸方向及びY軸方向のオフセット
- AD:文字の幅
動画:
Sprite Tag and Sprite Asset Creation Process
How to Add Images in Your Text
ドキュメント:
Sprites | TextMesh Pro 4.0 Manual [Official]
Sprite | TextMesh Pro Documentation (Digital Native Studios)
参考:
テキスト内に画像を入れる | ゲーム作るためのこと学ぶ dev ろぐ
TextMesh Pro のテキストに表示するスプライトを Addressable から取得する | テラシュールブログ
TextMesh Pro の Sprite Asset を更新する | kido Tech Blog
ダイナミックフォント
参考:
TextMesh Pro でダイナミックフォントを使用する方法 | コガネブログ
TextMesh Pro におけるダイナミックフォントの扱い | siguma_sig
Unity における文字の描画と比較検証 | CyberAgent
等幅フォント
mspace
タグを使う。- または、TMP フォントアセットのグリフテーブルを編集して、等幅用のフォントアセットを作成する。等幅用にフォントアセットを複製し、AD を全て同じ値に設定し、各文字の BX を調整する。
- BX:横方向のオフセット
- AD:文字の幅
使い方
幅を指定して、テキストを等幅で表示する。
<mspace=0.8em>This is monospace text.</mspace>
動画:
How to Make Font a Monospace Font
ドキュメント:
Monospacing | TextMesh Pro 4.0 Manual [Official]
参考:
TextMesh Pro の数字の横幅を合わせる | Unity Indies
TextMesh Proでフォントを等幅化する | ニムサイト
TextMesh Proで字の幅をあわせる | 弱火でじっくり
Use any font as a monospace font – Unity Forum
Monospacing option on inspector – Unity Forum
Mono spaced font size on screen? – Unity Forum
Monospacing gone crazy in builds – Unity Forum
Is it possible to have same size characters? – Stack Overflow
ビットマップフォント
参考:
TextMesh Pro を利用し、PixelMplus を綺麗に表示する – Qiita
描画順
最前面に表示したい場合は、「Distance Field Overlay」または、「Mobile – Distance Field Overlay」シェーダーを適用する。
ドキュメント:
Distance Field / Distance Field Overlay Shaders | TextMesh Pro 4.0 Manual [Official]
Distance Field / Distance Field Overlay Mobile Shaders | TextMesh Pro 4.0 Manual [Official]
参考:
TextMesh Pro を常に最前面に表示させる | デニッキ!
シェーダー
通常
- Distance Field: 符号付き距離場シェーダー
- Distance Field Overlay: オーバーレイ表示/最前面に表示する
- Distance Field – Surface: サーフェスシェーダー/シーンのライティングと相互に作用する
- Distance Field SSD: スクリーン空間微分 (Screen Space Derivative) を使用する/SDF スケールを必要としないが負荷が高くなる
- Bitmap
- Bitmap Custom Atlas
- Sprite
モバイル
- Mobile / Distance Field: 符号付き距離場シェーダー
- Mobile / Distance Field Overlay: 最前面に表示する
- Mobile / Distance Field – Surface: サーフェスシェーダー
- Mobile / Distance Field – Masking
- Mobile / Bitmap
動画:
Always Render on Top (Mohammad Faizan Khan)
ドキュメント:
Shaders | TextMesh Pro 4.0 Manual [Official]
参考:
TextMesh Pro の Shader Error を解決する方法 | KITTYPOOL
SSD
- Distance Field SSD
- Mobile / Distance Field SSD
スクリーン空間微分 (Screen Space Derivative) を使用する。SDF スケールを必要としないが負荷が高くなる。
Added new experimental SDF and Mobile SDF Shaders that use Screen Space Derivatives (SSD) where these shaders no longer require SDF Scale to be passed via Vertex Attributes. These shaders have higher performance overhead but are more flexible. This overhead should only be noticeable on mobile platforms.
ドキュメント:
参考:
URP で TextMesh Pro を使ったときに文字がぼやけている場合の対処 | yotiky Tech Blog
SDF を応用したシェーダー
参考:
カスタムシェーダーで TextMesh Pro に独創的な演出を加える – Qiita
GUID Remapping Tool
アセットストア版を使用していた場合に、ビルトインの「TextMesh Pro」に移行するために使用する。
参考:
uGUI の Text を TextMesh Pro へ置換する方法と旧 TextMesh Pro からの移行方法 | kan のメモ帳
TextMesh Pro が Unity に組み込まれました | Section31
検証
参考:
Unity における文字の描画と比較検証 | CyberAgent
色が正確に指定できない
参考:
TextMesh Pro Colors highly inaccurate – Unity Forum
画像を SDF で表示したい
参考:
What happened to “SDF Sprite & Shapes” feature? – Unity Forum
URP / HDRP
動画:
参考:
Plans for HDRP Compatibility? – Unity Forum
TextMeshProUGUI
ドキュメント:
Class TextMeshProUGUI | TextMeshPro 4.0 Manual [Official]
参考:
uGUI の Text の代替となる TextMesh Pro とは | kan のメモ帳
正常に表示されない
参考:
TextMesh Pro が実機でだけ表示されないバグ | パティオ
チュートリアル
TextMesh Pro: Font Asset Creation | Unity Learn [Official]
API
TextMeshPro 3.0 API | Unity マニュアル [公式]
ドキュメント
TextMesh Pro | Unity マニュアル [公式]
TextMesh Pro Documentation | Digital Native Studios [Official]
資料
TextMesh Pro を使いこなす – SlideShare
まとめ/Tips
クセが強い Unity のテキスト周りで困ったこと | t2421
Unity の TextMesh Pro 覚書 – Qiita
チュートリアル
How to Use a Custom Font with TextMesh Pro
Text to TextMesh Pro Upgrade Tool
入手:
Text to TextMesh Pro Upgrade Tool | Unity Asset Store [Official]
リポジトリ:
フォーラム:
Text to TextMesh Pro Upgrade Tool | Unity Forum
TextMesh Pro Auto Converter
入手:
TextMeshPro Auto Converter | Unity Asset Store [Official]
TextMesh Pro Replacer
リポジトリ:
参考:
uGUI の Text を TextMesh Pro へ置換する方法と旧 TextMesh Pro からの移行方法 | kan のメモ帳
Simple Sprite Packer
動画:
入手:
Simple Sprite Packer | Unity Asset Store [Official]
参考:
Simple Sprite Packer – TextMesh Pro で文字列中に表示したい画像を Sprite Atlas に簡単にまとめられる | コガネブログ
TMP Japanese (nilpkthmsk)
リポジトリ:
nilpkthmsk/Unity_TMP_Japanese: Text Mesh Pro Japanese Assets – GitHub