Unity のテキスト

テキストは、ホログラフアプリの最も重要なコンポーネントの1つです。 ユニティでテキストを表示するには、UIテキスト、3Dテキストメッシュおよびテキストメッシュプロの3種類のテキストコンポーネントを使用できます。 既定では、UIテキストと3Dテキストメッシュはぼやけており、大きすぎます。 いくつかの変数を変更すると、HoloLensで管理可能なサイズの、鮮明で高品質なテキストになります。 UIテキストと3Dテキストメッシュコンポーネントを使用するとき、倍率を適用して適切なサイズにすることで、レンダリングの品質を向上できます。

How to get sharp and beautiful text
ユニティにおけるぼやけているデフォルトテキスト

ユニティの3Dテキスト(テキストメッシュ)とUIテキストを使用して作業します。

ユニティは、シーンに追加されたすべての新しい要素が1つのユニティ単位のサイズ、または100%の変換スケールであると想定します。 1つのユニティ単位はHoloLensで約1メートルに相当します。 フォントについては、3Dテキストメッシュの境界ボックスの高さは既定で約1メートルになります。

Working with Fonts in Unity
デフォルトユニティ3Dテキスト(テキストメッシュ)は1つのユニティ単位、つまり1メートルを占めます


ほとんどのビジュアルデザイナーは、ポイントを使用して実世界のフォントサイズを定義します。 1メートルは約2835(2,834.645666399962)ポイントです。 ポイントシステムの1メートルへの変換と13のユニティのデフォルトテキストメッシュフォントサイズに基づいて、13を2835で割った簡単な算数は0.0046(正確には0.004586111116)に等しく、これにより、最初から適切な標準スケールを提供します(0.005に丸めたい場合もあります)。 テキストオブジェクトまたはコンテナをこれらの値にスケーリングすることにより、デザインプログラムでフォントサイズを1:1に変換できるだけでなく、標準も提供するため、エクスペリエンス全体にわたって一貫性を維持できます。

Scaling values for the Unity 3D Text and UI Text
ユニティ3DテキストとUIテキストのスケーリング値


Unity 3D Text Mesh with optimized values
最適な値を有するユニティ3Dテキストメッシュ


UIベースまたはキャンバスベースのテキスト要素をシーンに追加するとき、サイズの差異が依然として大きいです。 2つのサイズ間の差が約1000%であるため、UIベースのテキストコンポーネントの倍率は0.00046(正確には0.0004586111116)またはこの値を丸めて得た0.0005となります。

Unity UI Text with optimized values
最適な値を有するユニティUIテキスト


Note

フォントの既定値は、そのフォントのテクスチャサイズまたはフォントをユニティにインポートした方法の影響を受ける可能性があります。 これらのテストは、ユニティのデフォルトArialフォントと、インポートされたもう1つのフォントで実施されました。

テキストメッシュプロによる作業

ユニティのテキストメッシュプロを使用すれば、テキストのレンダリングの品質を確保できます。 符号付きディスタンスフィールド(Signed Distance Field:SDF)技術により、どの距離から見ても輪郭が鮮明なテキストを作ることができます。 3DテキストメッシュとUIテキストのために上記で使用したのと同じ計算方法により、従来の印刷上のポイントとともに使用される適切なスケーリング値を見つけることができます。 サイズが36のデフォルトの3Dテキストメッシュプロフォントの境界サイズが2.5ユニティ単位(2.5m)であるため、0.005のスケーリング値を使用して、ポイントサイズを取得できます。 UIメニュー下のテキストメッシュプロのデフォルト境界サイズは25ユニティ単位(25 m)です。 これにより、スケーリング値として0.0005が得られます。

Scaling values for the Unity 3D Text and UI
ユニティ3DテキストとUIのスケーリング値

ご想像のとおり、PCまたはタブレットデバイスで使用されるタイプサイズ(通常は12~32pt)は、2メートルの距離では小さく見えます。 各フォントの特徴にもよりますが、一般に、ユーザーの調査研究に基づくと、読みやすさのために推奨される最小視野角とフォント高さは、約0.35°~0.4°/12.21~13.97mmです。 上記で紹介された倍率で約35~40ptです。

0.45m(45cm)での近距離対話式操作の場合、最小の読みやすいフォントの視野角と高さは0.4°~0.5°/3.14~3.9mmです。 上記で紹介された倍率で約9~12ptです。

Near and far interaction range近距離および遠距離対話式操作範囲内のコンテンツ

読みやすい最小フォントサイズ

Distance 視野角 テキスト高さ フォント サイズ
45cm(直接操作距離) 0.4°~0.5° 3.14~3.9mm 8.9~11.13pt
2 m 0.35°~0.4° 12.21~13.97mm 34.63~39.58pt

快適に読みやすいフォントサイズ

Distance 視野角 テキスト高さ フォント サイズ
45cm(直接操作距離) 0.65°~0.8° 5.1~6.3mm 14.47~17.8pt
2 m 0.6°~0.75° 20.9~26.2mm 59.4~74.2pt

Segoe UI(Windows用のデフォルトフォント)はほとんどの場合、うまく機能します。 ただし、細い垂直筆跡が揺れ、読みやすさが低下するため、小さいサイズのライトまたはセミライトフォントファミリの使用を避けた方が良いです。 筆跡の太さが十分な最新のフォントが適切に機能します。 たとえば、HelveticaとArialはゴージャスに見え、HoloLensではregularまたはbold weightで読みやすいです。

Viewing Angle視距離、視野角、テキスト高さ

Mixed Reality Toolkit v2によるテキスト

適切な寸法の鮮明なテキストレンダリング品質

これらの倍率に基づいて、UIテキストと3Dテキストメッシュを使用してテキストプレハブを作成しました。 開発者はこれらのプレハブを使用して、鮮明なテキストとフォントサイズの一貫性を取得できます。

Sharp text rendering quality with proper dimension
適切な寸法の鮮明なテキストのレンダリング

オクルージョンをサポートするシェーダー

ユニティのデフォルトフォントマテリアルは、オクルージョンをサポートしません。 そのため、既定では、オブジェクトの後にテキストが表示されます。 オクルージョンをサポートするシンプルなシェーダーが含まれます。 以下の画像は、デフォルトフォントマテリアルを有するテキスト(左)、適切なオクルージョンを有するテキスト(右)を示します。

Shader with occlusion support
オクルージョンをサポートするシェーダー

次の開発チェックポイント

ここで述べる MRTK の主要機能の説明は、Microsoft による Unity 開発ガイドの一部です。 ここから、次の構成要素を続けることができます。

または、Mixed Reality プラットフォームの機能と API に移動します。

いつでも Unity 開発チェックポイントに戻ることができます。

関連項目