TextMesh Pro

公式サイト:

TextMesh Pro | Unity マニュアル [公式]

使い方

  1. ヒエラルキーウィンドウで右クリックして、「UI > Text – TextMesh Pro」オブジェクトを作成する。
  2. 初回のみ、「Import TMP Essential Resources」を実行してリソースをインポートする必要がある。
  3. 使用したいフォントで作成したフォントアセット (Font Asset) を指定する。

コード:

日本語文字コード範囲指定 (kgsi) – GitHub Gist

参考:

uGUI の Text の代替となる TextMesh Pro とは | kan のメモ帳

TextMesh Pro の使い方 – Qiita

TextMesh Pro アセットで日本語を使うときの手順 – Qiita

TextMeshPro で日本語を表示する方法 | 怠惰な日々にさよならを

TextMesh Pro のワークフロー | Unity 備忘録

TextMesh Pro | Unity 備忘録

TextMesh Proによる Text の使い方を解説 | hirokuma.blog

導入

参考:

TextMesh Pro を導入してみる | ぐるたかログ

ことはじめ的なやーつ! | ゲーム作るためのこと学ぶぶろぐ

概要

ドキュメント:

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 #2 | Unity 備忘録

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)

  1. メニューから「Window > TextMeshPro > Font Asset Creator」を開く。
  2. 元になるフォントを選択し、オプションを設定する。
  3. 「Generate Font Atlas」を実行する。
  4. 「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 の使い方 – Qiita

様々なバージョンの 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

リッチテキストメモ | Blue Breath Blog

日本語フォントを使う

参考:

TextMesh Pro アセットで日本語を使うときの手順 – Qiita

日本語表示 + アウトライン – Qiita

TextMesh Pro に Font Fallback と Dynamic SDF System が追加、日本語が使いやすくなった | テラシュールブログ

TextMesh Pro でほぼ全ての日本語を表示させる – Qiita

本当に使える! TextMesh Pro での日本語/多言語対応方法 | きゅぶろぐ

アイコンフォントを使う

参考:

TextMesh Pro で FontAwesome を使う – Qiita

絵文字

参考:

親方!空から絵文字が! | VirtualCast Blog

スプライトを表示する

  • sprite タグを使う
前提
  • 「2D Sprite」パッケージがインストール済みであること。
手順
  1. 画像を用意する。
  2. スライスを作成する。
  3. プロジェクトウィンドウでアトラス画像を右クリックして、メニューから「Create > TextMesh Pro > Sprite Asset」を選択して、アトラス画像からスプライトアセットを作成する。
  4. シーンに「Text – TextMesh Pro」オブジェクトを追加し、「Sprite Asset」に作成したスプライトアセットを指定する。
  5. テキスト欄に <sprite=n> を入力すると、画面にスプライトが表示される。
使用例

0 番のスプライトを表示する。

<sprite=0>
オプション
  • Sprite Character Table
    • Unicodeコードポイントを指定する
  • Sprite Glyph Table
    • BX / BYX軸方向及びY軸方向のオフセット
    • AD文字の幅

動画:

Sprite Tag and Sprite Asset Creation Process

Sprite Asset Help

How to Add Images in Your Text

ドキュメント:

Sprites | TextMesh Pro 4.0 Manual [Official]

Sprite | TextMesh Pro Documentation (Digital Native Studios)

参考:

Unicode でスプライトに置き換える – Qiita

画像付きテキストを表示する | sh1’s diary

数字をスプライト表示する | ねこじゃらシティ

Sprite を表示する方法 | My note

マイ絵文字をテキストに入れる | しゃまとんのたね

テキスト内に画像を入れる | ゲーム作るためのこと学ぶ 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.

—— TextMesh Pro 2.1 Manual

ドキュメント:

Added new experimental SDF and Mobile SDF Shaders  that use Screen Space Derivatives (SSD) | TextMesh Pro 2.1 Manual [Official]

参考:

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

動画:

SRP Shader Preview

参考:

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 Make Crisp Text

How to Use a Custom Font with TextMesh Pro

Font Asset Creation

Outline & Soft Shadow

Working with Material Presets

Text to TextMesh Pro Upgrade Tool

入手:

Text to TextMesh Pro Upgrade Tool | Unity Asset Store [Official]

リポジトリ:

yasirkula/UnityTextToTextMeshProUpgradeTool: Upgrade Text, InputField, Dropdown and TextMesh Objects to their TextMesh Pro variants – GitHub

フォーラム:

Text to TextMesh Pro Upgrade Tool | Unity Forum

TextMesh Pro Auto Converter

入手:

TextMeshPro Auto Converter | Unity Asset Store [Official]

TextMesh Pro Replacer

リポジトリ:

jackisgames/TextMeshProReplacer: Tools to Replace Unity Text with TextMesh Pro. It can batch or replace a single text. – GitHub

参考:

uGUI の Text を TextMesh Pro へ置換する方法と旧 TextMesh Pro からの移行方法 | kan のメモ帳

Simple Sprite Packer

動画:

Demo

入手:

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

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA