次の方法で共有


テキスト プレハブ - MRTK2

これらのプレハブは、Windows Mixed Realityのレンダリング品質に合わせて最適化されています。 詳細については、Microsoft Windows デベロッパー センターのUnityのテキストに関するガイドラインを参照してください。

プレハブ

3DTextPrefab

3D Text Mesh プレハブ (Assets/MRTK/SDK/StandardAssets/Prefabs/Text) で、2 メートルの距離で倍率が最適化されています。 (以下の手順をお読みください)

UITextPrefab

UI Text Mesh プレハブ (Assets/MRTK/SDK/StandardAssets/Prefabs/Text) で、2 メートルの距離で倍率が最適化されています。 (以下の手順をお読みください)

フォント

Mixed Reality Toolkit に含まれるオープンソース フォント (Assets/MRTK/Core/StandardAssets/Fonts)。

重要

Text Prefab では、オープンソース フォント 'Selawik' が使用されます。 別のフォントで Text Prefab を使用するには、フォント ファイルをインポートし、次の手順に従ってください。 次の例は、テキスト プレハブで 'Segoe UI' フォントを使用する方法を示しています。

Segoe UI フォント ファイルのインポート

  1. フォント テクスチャを 3DTextSegoeUI.mat マテリアルに割り当てます。

    フォント テクスチャの割り当て

  2. 3DTextSegoeUI.mat マテリアルで、シェーダー Custom/3DTextShader.shader を選択します。

    シェーダーの割り当て

  3. Segoe UI フォントと 3DTextSegoeUI マテリアルをプレハブ内のテキスト コンポーネントに割り当てます。

    フォント ファイルとマテリアルの割り当て

Unityでのフォントの操作

Unityのシーンに新しい 3D TextMesh を追加する場合、視覚的に明らかな 2 つの問題があります。 1 つは、フォントが非常に大きく、2 つ、フォントが非常にぼやけて表示されます。 また、インスペクターで既定の [フォント サイズ] の値が 0 に設定されていることにも注目してください。 この 0 の値を 13 に置き換えると、実際には 13 が既定値であるため、サイズに違いはありません。

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

フォント スケールとフォント サイズ

ほとんどのビジュアル デザイナーは、ポイントを使用して、現実世界のフォント サイズとデザイン プログラムを定義します。 1 メートルに約 2835 (2,834.645666399962) ポイントがあります。 ポイント システムを 1 メートルに変換し、Unityの既定の TextMesh フォント サイズ 13 に基づいて、13 を 2835 で除算した単純な数学は 0.0046 (0.004586111116) に等しくなりますが、一部の数値は 0.005 に丸める必要がありますが、最初に適切な標準スケールを提供します。

いずれの場合も、Text オブジェクトまたはコンテナーをこれらの値にスケーリングすると、デザイン プログラムからのフォント サイズの 1 対 1 変換が可能になるだけでなく、アプリケーションまたはゲーム全体で一貫性を維持するための標準も提供されます。

UI テキスト

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

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

拡大縮小係数を使用したフォント サイズ

Text3DSelawik.mat

オクルージョンをサポートする 3DTextPrefab 用のマテリアル。 3DTextShader.shader が必要です

既定のフォント マテリアルと 3DTextSegoeUI マテリアル

Text3DShader.shader

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