Unity のテキストText in Unity

Text は、holographic アプリで最も重要なコンポーネントの1つです。Text is one of the most important components in holographic apps. Unity でテキストを表示するには、UI テキスト、3D テキストメッシュ、およびテキストメッシュ Pro の3種類のテキストコンポーネントを使用できます。To display text in Unity, there are three types of text components you can use — UI Text, 3D Text Mesh, and Text Mesh Pro. 既定では、UI テキストと3D テキストメッシュはぼやけて表示され、大きすぎます。By default, UI Text and 3D Text Mesh appear blurry and are too big. HoloLens で管理しやすいサイズのシャープで高品質なテキストを取得するには、いくつかの変数を微調整する必要があります。You need to tweak a few variables to get sharp, high-quality text that has a manageable size in HoloLens. UI テキストと3D テキストメッシュコンポーネントの使用時にスケールファクターを適用して適切なディメンションを取得することで、表示品質を向上させることができます。By applying a scaling factor to get proper dimensions when using the UI Text and 3D Text Mesh components, you can achieve better rendering quality.

シャープで美しいテキストを取得する方法How to get sharp and beautiful text
Unity の既定のテキストがぼやけていますBlurry default text in Unity

Unity の3D テキスト (テキストメッシュ) と UI テキストの操作Working with Unity's 3D Text (Text Mesh) and UI Text

Unity では、シーンに追加されるすべての新しい要素のサイズが 1 Unity 単位であることを前提としています。また、100% の変換スケールが、HoloLens で約1メーターに変換されることを前提としています。Unity assumes that all new elements added to a scene are 1 Unity Unit in size, or 100% transform scale, which translates to about 1 meter on HoloLens. フォントの場合、3D TextMesh の境界ボックスは、既定では約1メートルの高さになります。In the case of fonts, the bounding box for a 3D TextMesh comes in by default at about 1 meter in height.

Unity でのフォントの操作Working with Fonts in Unity
既定の Unity 3D テキスト (テキストメッシュ) は1つの Unity ユニット (1 メートル) を占有しますDefault Unity 3D Text (Text Mesh) occupies 1 Unity Unit which is 1 meter


ほとんどのビジュアルデザイナーはポイントを使用して、実際の世界でのフォントサイズを定義します。Most visual designers use points to define font sizes in the real world. 1メートルには約 2835 (2, 834.645666399962) のポイントがあります。There are about 2835 (2,834.645666399962) points in 1 meter. ポイントシステムの1メーターへの変換と Unity の既定のテキストメッシュのフォントサイズ13に基づき、13を2835で割った単純な数値は 0.0046 (正確には 0.004586111116) になります。これにより、最初に適切な標準スケールが得られます (0.005 に丸めたい場合もあります)。Based on the point system conversion to 1 meter and Unity's default Text Mesh font size of 13, the simple math of 13 divided by 2835 equals 0.0046 (0.004586111116 to be exact) which provides a good standard scale to start with (some may wish to round to 0.005). テキストオブジェクトまたはコンテナーをこれらの値に拡張すると、デザインプログラムでフォントサイズを1:1 変換できるだけでなく、エクスペリエンス全体の一貫性を維持するための標準も提供されます。Scaling the text object or container to these values will not only allow for the 1:1 conversion of font sizes in a design program, but also provides a standard so you can maintain consistency throughout your experience.

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


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


UI またはキャンバスベースのテキスト要素をシーンに追加すると、サイズの不均衡が大きくなります。When adding a UI or canvas based text element to a scene, the size disparity is greater still. 2つのサイズの違いは約1000% です。これにより、UI ベースのテキストコンポーネントのスケールファクターが 0.00046 (正確には 0.0004586111116) または0.0005 値のになります。The differences in the two sizes is about 1000%, which would bring the scale factor for UI based text components to 0.00046 (0.0004586111116 to be exact) or 0.0005 for the rounded value.

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


注意

フォントの既定値は、そのフォントのテクスチャサイズ、またはフォントが Unity にインポートされた方法によって影響を受ける可能性があります。The default value of any font may be affected by the texture size of that font or how the font was imported into Unity. これらのテストは、Unity の既定の Arial フォントおよびその他のインポートされたフォントに基づいて実行されました。These tests were performed based on the default Arial font in Unity, as well as one other imported font.

Text メッシュ Pro の操作Working with Text Mesh Pro

Unity のテキストメッシュ Pro を使用すると、テキストの表示品質を保護できます。With Unity's Text Mesh Pro, you can secure the text rendering quality. 署名済み距離フィールド (.sdf)手法を使用した距離に関係なく、鮮明なテキストのアウトラインがサポートされます。It supports crisp text outlines regardless of the distance using the Signed Distance Field (SDF) technique. 上記で3D テキストメッシュと UI テキストに使用したのと同じ計算方法を使用して、通常のタイポグラフィポイントで使用する適切なスケーリング値を見つけることができます。Using the same calculation method that we used above for the 3D Text Mesh and UI Text, we can find the proper scaling values to use with conventional typographic points. サイズが36の既定の3D テキストメッシュ Pro フォントのサイズは 2.5 Unity ユニット (2.5 m) であるため、スケール値0.005 を使用してポイントサイズを取得できます。Since the default 3D Text Mesh Pro font with the size of 36 has a bounding size of 2.5 Unity units (2.5m), we can use a scaling value of 0.005 to get the point size. UI メニューの下にあるテキストメッシュ Pro の既定の境界サイズは 25 Unity 単位 (25m) です。The Text Mesh Pro under the UI menu has a default bounding size of 25 Unity units (25m). これにより、0.0005 のスケーリング値が得られます。This gives us 0.0005 for the scaling value.

Unity 3D テキストおよび UI の値のスケーリングScaling values for the Unity 3D Text and UI
Unity 3D テキストおよび UI の値のスケーリングScaling values for the Unity 3D Text and UI

ご想像のとおり、PC またはタブレットデバイスで使用する種類のサイズ (通常は 12 ~ 32pt) は2メートルの距離で非常に小さくなります。As you can expect, type sizes that we use on a PC or a tablet device (typically between 12–32pt) look quite small at a distance of 2 meters. これは、各フォントの特性によって異なりますが、一般的には、ユーザー研究の研究に基づいて、推奨される最小の表示角度と、読みやすくするためのフォントの高さは、0.35 °-0.4 °/12.21-13.97mm にあります。It depends on the characteristics of each font, but in general the recommended minimum viewing angle and the font height for legibility are around 0.35°-0.4°/12.21-13.97mm based on our user research studies. これは、上で導入されたスケールファクターを使用した約 35 ~ 40pt です。It is about 35-40pt with the scaling factor introduced above.

0.45 m (45cm) でのほぼ相互作用の場合、フォントの表示角度と高さの最小値は0.4 °-0.5 °/3.14 – 3.9 mm です。For the near interaction at 0.45m (45cm), the minimum legible font's viewing angle and the height are 0.4°-0.5° / 3.14–3.9mm. これは、前に紹介したスケールファクターを使用した12ポイントです。It is about 9-12pt with the scaling factor introduced above.

近距離および遠くの相互作用範囲 のコンテンツとほぼの相互作用範囲Near and far interaction range Content at near and far interaction range

最小のフォントサイズの最小値The minimum legible font size

距離Distance 表示角度Viewing angle テキストの高さText height フォント サイズFont size
45cm (直接操作距離)45cm (direct manipulation distance) 0.4 °-0.5 °0.4°-0.5° 3.14 ~ 3.9 mm3.14–3.9mm 8.9 – 11.13 pt8.9–11.13pt
2分2m 0.35 °-0.4 °0.35°-0.4° 12.21 – 13.97 mm12.21–13.97mm 34.63-39.58 pt34.63-39.58pt

判読しやすいフォントサイズThe comfortably legible font size

距離Distance 表示角度Viewing angle テキストの高さText height フォント サイズFont size
45cm (直接操作距離)45cm (direct manipulation distance) 0.65 °-0.8 °0.65°-0.8° 5.1-6.3 mm5.1-6.3mm 14.47-17.8 pt14.47-17.8pt
2分2m 0.6 °-0.75 °0.6°-0.75° 20.9-26.2 mm20.9-26.2mm 59.4-74.2 pt59.4-74.2pt

Segoe UI (Windows の既定のフォント) は、ほとんどの場合に適しています。Segoe UI (the default font for Windows) works well in most cases. ただし、薄い垂直方向のストロークはバイブレーションので、読みやすさが低下するので、小さいサイズの明るいフォントや半明るいフォントファミリは使用しないようにしてください。However, avoid using light or semi light font families in small size since thin vertical strokes will vibrate and it will degrade the legibility. ストロークの太さが十分にある最新のフォントがうまく機能します。Modern fonts with enough stroke thickness work well. たとえば、Helvetica, と Arial は、通常または太字の重みを使用して HoloLens で非常に読みやすくなります。For example, Helvetica and Arial look gorgeous and are very legible in HoloLens with regular or bold weights.

角度 表示距離、角度、およびテキストの高さ を表示するViewing Angle Viewing distance, angle, and text height

Mixed Reality Toolkit v2 を使用したテキストText with Mixed Reality Toolkit v2

適切なディメンションを使用した鋭いテキストレンダリング品質Sharp text rendering quality with proper dimension

これらのスケールファクターに基づき、 UI テキストと3D テキストメッシュを使用してテキスト prefabsを作成しました。Based on these scaling factors, we have created text prefabs with UI Text and 3D Text Mesh. 開発者は、これらの prefabs を使用して、鋭いテキストと一貫したフォントサイズを取得できます。Developers can use these prefabs to get sharp text and consistent font size.

適切なディメンションを使用した鋭いテキストレンダリング品質Sharp text rendering quality with proper dimension
適切なディメンションを使用した鋭いテキストレンダリング品質Sharp text rendering quality with proper dimension

オクルージョンサポート付きのシェーダーShader with occlusion support

Unity の既定のフォントマテリアルでは、オクルージョンはサポートされていません。Unity's default font material does not support occlusion. このため、既定ではオブジェクトの背後にテキストが表示されます。Because of this, you will see the text behind the objects by default. 遮蔽をサポートする単純なシェーダーが含まれています。We have included a simple shader that supports the occlusion. 次の画像は、既定のフォントマテリアル (左側) が付いたテキストと、適切な遮蔽 (right) のテキストを示しています。The image below shows the text with default font material (left) and the text with proper occlusion (right).

オクルージョンサポート付きのシェーダーShader with occlusion support
オクルージョンサポート付きのシェーダーShader with occlusion support

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

私たちが用意した Unity 開発チェックポイント体験に従っている場合、読者は MRTK コア構成要素を探索している段階にいます。If you're following the Unity development checkpoint journey we've laid out, you're in the midst of exploring the MRTK core building blocks. ここから、次の構成要素に進むことができます。From here, you can proceed to the next building block:

または、Mixed Reality プラットフォームの機能と API に移動します。Or jump to Mixed Reality platform capabilities and APIs:

いつでも Unity 開発チェックポイントに戻ることができます。You can always go back to the Unity development checkpoints at any time.

関連項目See also