TMP_0_1
TextMeshPro (TMP) のテキスト描画の流れは、以下のようなステップで進行します。
- テキストの入力
- テキストが
TextMeshProComponentに入力されます。
- テキストが
- FontAssetに文字情報を確認
-
入力された文字がFontAssetに存在するか確認しに行きます。(ここでいうFontAssetは、TMPで使えるように「Font Asset Creator」で変換したもの。
グリフデータとテクスチャアトラス)-
文字がある場合:
FontAsset内に該当する文字のデータがあると、その文字に対応するグリフ情報を取得し、テキスト表示に使う。 -
文字がない場合:
FontAssetに文字が登録されていない場合、代替フォントを検索したり、エラーメッセージや空白を表示する。
-
-
- グリフ情報を取得
- OTF/TTF形式のFontAssetから、テキストに必要なグリフ情報(各文字がどのように描画されるかの情報。文字ごとのビットマップデータやベクター形状データなど)を取得します。
- テクス チャアトラスにグリフを配置
- 必要な複数のグリフ(文字のビットマップ画像)をテクスチャシートにまとめる。
取得したグリフは、アトラスの特定の位置に「ビットマップ」として配置されます。
これにより、描画時に各グリフを個別に読み込む必要がなくなります。
- 必要な複数のグリフ(文字のビットマップ画像)をテクスチャシートにまとめる。
- UV情報の設定
- アトラス内で、各文字がどの位置からどの位置までのテクスチャを参照すべきかのUV情報を設定します。特定の文字がテクスチャのどこにあるかわかるようになります。
-
メッシュ生成
- テキストの各文字に対応するメッシュ(ポリゴンデータ)を生成します。(必ず1つのメッシュに対して1文字表示されます。)
-
MeshFilterにメッシュを設定
- 生成したメッシュをMeshFilterに設定します。
-
MeshRendererにメッシュを渡す
- MeshRendererコンポーネントにメッシュを渡し、描画用に設定します。
-
描画
- MeshRendererコンポーネントがGraphics API に最終的な描画指示を出します。そしてメッシュがレンダリングされ、画面にテキストが表示されます。