Unity のテキスト

テキストは、ホログラフィック アプリで最も重要なコンポーネントの 1 つです。 Unity でテキストを表示するには、UI テキスト、3D テキスト メッシュ、テキスト メッシュ の 3 種類のテキスト コンポーネントを使用Pro。 既定では、UI テキストと 3D テキスト メッシュはぼやけて表示され、大きすぎます。 いくつかの変数を変更すると、テキストのサイズが管理し、よりシャープで高品質HoloLens。 UI テキストおよび 3D テキスト メッシュ コンポーネントを使用する場合は、スケーリング係数を適用して適切なディメンションを取得することで、レンダリング品質を向上できます。

シャープで美しいテキストを取得する方法
Unity の既定のテキストがぼやけている

Unity の 3D テキスト (テキスト メッシュ) と UI テキストの操作

Unity では、シーンに追加された新しい要素はすべて、サイズが 1 つの Unity ユニット、つまり 100% の変換スケールである必要があります。 1 つの Unity ユニットは、1 つのユニットで約 1 メートルにHoloLens。 フォントの場合、3D TextMesh の境界ボックスの既定の高さは約 1 メートルです。

Unity でのフォントの操作
既定の Unity 3D テキスト (テキスト メッシュ) は、1 つの Unity ユニット (1 メートル) を占有します


ほとんどのビジュアル デザイナーでは、ポイントを使用して、現実世界のフォント サイズを定義します。 1 メートルに約 2835 (2,834.645666399962) ポイントがあります。 ポイント システムの 1 メートルへの変換と Unity の既定の Text Mesh フォント サイズ 13 に基づいて、13 を 2835 で割った単純な計算は、0.0046 (正確には 0.00458611116) に等しくなります。これは、開始する標準スケールとして優れた (0.005 に丸める場合があります)。 テキスト オブジェクトまたはコンテナーをこれらの値にスケーリングすると、デザイン プログラムでフォント サイズを 1 対 1 で変換できるだけでなく、エクスペリエンス全体で一貫性を維持するための標準も提供されます。

Unity 3D テキストと UI テキストの値のスケーリング
Unity 3D テキストと UI テキストの値のスケーリング


最適化された値を持つ Unity 3D テキスト メッシュ
最適化された値を持つ Unity 3D テキスト メッシュ


UI またはキャンバスベースのテキスト要素をシーンに追加する場合、サイズの差は大きくなります。 2 つのサイズの違いは約 1000% です。UI ベースのテキスト コンポーネントのスケール ファクターは、丸められた値の場合は 0.00046 (正確には 0.00045861111116) または 0.0005 になります。

最適化された値を含む Unity UI テキスト
最適化された値を含む Unity UI テキスト


注意

フォントの既定値は、そのフォントのテクスチャ サイズ、またはフォントが Unity にインポートされた方法の影響を受ける可能性があります。 これらのテストは、Unity の既定の Arial フォントと、他の 1 つのインポートされたフォントに基づいて実行されました。

Text Mesh の操作Pro

Unity の Text Mesh Proを使用すると、テキストのレンダリング品質をセキュリティで保護できます。 これは、符号付き距離フィールド (SDF) 手法を使用して距離に関係なく、テキストのアウトライン を鮮明にサポート します。 3D テキスト メッシュと UI テキストに対して上記で使用したのと同じ計算方法を使用して、従来のタイポグラフィ ポイントで使用する適切なスケーリング値を確認できます。 サイズが 36 の既定の 3D Text Mesh Pro フォントは 2.5 Unity 単位 (2.5 m) の境界サイズを持つので、スケーリング値 0.005 を使用してポイント サイズを取得できます。 UI メニューのProテキスト メッシュ の境界サイズは、25 Unity 単位 (25 m) です。 これにより、スケーリング値が 0.0005 になります。

Unity 3D テキストと UI の値のスケーリング
Unity 3D テキストと UI の値のスケーリング

ご期待のように、PC またはタブレット デバイスで使用する型のサイズ (通常は 12 ~ 32pt) は、2 メートルの距離で小さく見えます。 各フォントの特性によって異なりますが、一般に、ユーザー調査の調査に基づいて、推奨される最小表示角度と読み取り可能なフォントの高さは約 0.35°-0.4°/12.21-13.97 mm です。 上で導入されたスケーリング係数では約 35 から 40 ポイントです。

0.45 m (45 cm) の近距離操作では、最小読み取り可能なフォントの表示角度と高さは 0.4°-0.5° / 3.14 – 3.9mm です。 上で導入されたスケーリング係数は約 9 - 12 ポイントです。

近距離および遠距離の相互作用 範囲 近距離および遠距離の相互作用範囲のコンテンツ

読み取り可能な最小フォント サイズ

距離 表示角度 テキストの高さ フォント サイズ
45 cm (直接操作距離) 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.58 pt

快適に読み取れるフォント サイズ

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

Segoe UI (Windows の既定のフォント) は、ほとんどの場合に正常に機能します。 ただし、細い垂直ストロークが振動し、読み書き性が低下するので、小さいサイズの軽量または半軽量のフォント ファミリは使用しないようにしてください。 ストロークの太さが十分な最新のフォントがうまく機能します。 たとえば、Helvetica と Arial の外観は、通常または太字の重HoloLensで読み取り可能です。

角度の 表示距離、角度、テキストの高さ

v2 のMixed Reality Toolkitテキスト

適切なディメンションを使用したシャープなテキスト レンダリング品質

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

適切なディメンションを使用したシャープなテキスト レンダリング品質
適切なディメンションを使用したシャープなテキスト レンダリング品質

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

Unity の既定のフォント 素材では、オクルージョンはサポートされていません。 この理由から、既定では オブジェクトの背後にテキストが表示されます。 オクルージョン をサポート するシンプルなシェーダーが含まれています。 次の図は、既定のフォント素材 (左) のテキストと、適切なオクルージョンを持つテキスト (右) を示しています。

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

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

私たちがレイアウトした Unity 開発体験に従っている場合は、MRTK のコア構成要素を探索しています。 ここから、次の構成要素を続けることができます。

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

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

関連項目