Version: Unity 6.0 (6000.0)
言語 : 日本語
フォントアセット
フォントアセットプロパティのリファレンス

フォントアセットの概要

フォントアセットはフォントのコンテナとして機能します。フォントアセットを使用すると、プロジェクトにフォントをインポートし、1 つのファイルからフォントのバリエーションを作成できます。元のフォントは変更できません。フォントアセットを作成するもう 1 つの理由は、中国語のような大規模な文字セットを持つ言語に対応することです。完全な文字セットではなく、必要な文字のみを加えることができます。

TrueType (.ttf)、OpenType (.otf)、または TrueType Collection(.ttc) フォントをフォントアセットに変換できます。フォントアセットには、すべての文字を含むアトラステクスチャファイルが含まれます。フォントアセットの作成時に選択できる Atlas Population ModeRender Mode がいくつかあります。

Atlas Population Mode

TextCore でサポートされている Atlas Population Mode は、StaticDynamicDynamic OS です。

Static フォントアセット

Static フォントアセットは、変換中に文字をアトラステクスチャに事前ベイクします。Static フォントアセットを使用して、ラベルやセクションタイトルなど、プロジェクトの既知のテキストを加えることができます。Static フォントアセットを作成すると、フォントアトラスはデフォルトで空になります。フォントアトラスを手動で生成し、プロジェクトに必要なすべての文字を加える必要があります。プロジェクトビルドは、フォントソースファイルを加える必要がないため、迅速で効率的です。

Static フォントアセットの作成 方法についての説明を参照してください。

Dynamic フォントアセット

Dynamic フォントアセットは空のアトラステクスチャから始まります。Dynamic フォントアセットは、UI で使用される文字をソースフォントファイルで探して動的に追加します。テキスト入力フィールドなど、プロジェクトの不明テキストに Dynamic フォントアセットを使用します。Dynamic フォントアセットは柔軟ですが、プロジェクトのビルドにすべてのソースフォントファイルを加える必要があるため、パフォーマンスオーバーヘッドが増加します。

Dynamic フォントアセットの作成 方法についての説明を参照してください。

Dynamic OS フォントアセット

Dynamic OS フォントアセットは、ソースフォントファイルの代わりに、OS のフォントファイルを参照するダイナミックフォントアセットです。Dynamic OS フォントアセットのメモリオーバーヘッドは、Dynamic フォントアセットより少なくなります。プロジェクトビルドは、フォントソースファイルを加える必要はありません。フォントがターゲットプラットフォームの OS に存在することを確認します。Dynamic OS フォントアセットはフォールバックフォントアセットの有力な候補です。

Dynamic OS フォントアセットを作成するには、OS からプロジェクトにフォントをインポートし、それを使用してダイナミックフォントアセットを作成します。Atlas Population ModeDynamic OS に変更します。

Atlas Render Mode

TextCore はビットマップと符号付き距離フィールド (SDF) の Atlas Render Mode をサポートします。

ビットマップフォント

ビットマップレンダリングは、フォントの各ピクセルをシーンと GUI ピクセルに完全に揃えるフォントアセットを生成します。ピクセルアートには以下のレンダリングモードを使用します。

  • SMOOTH または SMOOTH_HINTED は、アンチエイリアスが適用されたビットマップにテキストをレンダリングします。SMOOTH_HINTED は、文字ピクセルをテクスチャピクセルに揃えることで、画像の鮮明さを向上させます。
  • RASTER または RASTER_HINTE は、アンチエイリアスが適用されていないビットマップにテキストをレンダリングします。RASTER_HINTE は、文字ピクセルをテクスチャピクセルに揃えることで、画像の鮮明さを向上させます。
  • COLOR または COLOR_HINTED は、カラー画像ビットマップにテキストをレンダリングします。COLOR_HINTED は、文字ピクセルをテクスチャピクセルに揃えることで、画像の鮮明さを向上させます。

SDF フォント

SDF レンダリングは、変換または拡大しても見た目が鮮明なフォントアセットを生成します。SDF レンダリングは、アウトラインやドロップシャドウ などの効果をサポートします。

ビットマップフォントテクスチャとは異なり、SDF フォントアセットには輪郭距離情報が含まれます。フォントアトラスでこの情報は、各グリフの中央からエッジを過ぎた点まで続くグレースケールのグラデーションのように見えます。グラデーションの中間点はグリフのエッジに一致します。

以下の画像は、ビットマップフォントアセットと、SDF フォントアセットと、それらのアセットによってレンダリングされたテキストです。ビットマップフォントは、テキストとカメラの距離や、テキストがどのように変換されて歪んでいるかに応じて、エッジが多少ギザギザしたりぼやけたりしているテキストを生成します。SDF フォントは、カメラからの距離に関係なく、エッジが滑らかなテキストを生成します。

ビットマップフォント、アトラステクスチャ、レンダリング結果
ビットマップフォント、アトラステクスチャ、レンダリング結果
平滑化したビットマップ、アトラステクスチャ、レンダリング結果
平滑化したビットマップ、アトラステクスチャ、レンダリング結果
SDF フォント、アトラステクスチャ、レンダリング結果
SDF フォント、アトラステクスチャ、レンダリング結果

SDF フォントには以下の Render Mode を使用します。

  • SDFAA: このモードは、ほとんどのユースケースのフォントアトラスを作成するのに使用しますが、画面で 90 ポイントサイズを超える大きなテキスト (タイトルなど) を太いアウトライン付きでレンダリングする場合は除きます。SDFAA は、高速生成のための Dynamic または Dynamic OS フォントアセット用のデフォルトモードです。SDFAA は高速ですが、精度の低い SDF 生成モードです。
  • SDFAA_HINTED: このモードを使用すると、文字のピクセルをテクスチャピクセルに揃えて、より鮮明な結果を得ることができます。
  • SDF32: Static フォントアセットのデフォルトモード。複雑な文字や小さな文字のフォントに使用します。32 倍のオーバーサンプリングを適用した、速度が遅く精度が高い SDF 生成モードです。
  • SDF16: このモードは、Static フォントアセットや、主に大きなテキスト (サイズが 72 ポイント以上のタイトルなど) に使用します。16 倍のオーバーサンプリングを適用した、速度が遅く精度が高い SDF 生成モードです。
  • SDF8: 8 倍のオーバーサンプリングを適用した、速度が遅く精度が高い SDF 生成には、このモードを使用します。
  • SDF: オーバーサンプリングを適用しない、速度が遅く精度が高い SDF 生成には、このモードを使用します。

フォントアセットのバリアント

新しいフォントアセットを作成せずに、フォントアセットのメトリクスのみを変更する場合は、別のフォントアセットに基づいてフォントアセットのバリアントを作成します。テクスチャスの追加スペースを使用せずに、元のフォントアセットとは異なるスタイリングをフォントアセットのバリアントに適用できます。バリアントは独自の Face Info、Character、Glyph、Adjustment Pair データ を格納しますが、元のアトラスを参照します。

フォントアセットのバリアントを作成するには、フォントアセットを右クリックし、Create > Text> Font Asset Variant を選択します。

パディング

それぞれの文字が離れてレンダリングされるように、フォントテクスチャの文字と文字の間にはパディングが必要です。このパディングはピクセル単位で指定します。パディングによって、SDF グラデーションのためのスペースも確保されます。パディングが大きいほど、遷移が滑らかになり、高品質のレンダリングや、太いアウトラインなどの効果が可能になります。512x512 テクスチャには 5 のパディングを使用します。確かな経験則は、サンプリングとパディングの比率を 1:10 に設定することです。

大きなテクスチャのマルチアトラステクスチャを有効にする

すべての ASCII 文字を加える場合は、ほとんどのフォントに 512x512 テクスチャ解像度を使用します。数千文字をサポートするには、大きなテクスチャを使用し、フォントアセットの Inspector ウィンドウで Multi Atlas Textures を有効にします。この設定により、メインテクスチャが満杯になったときには、同じサイズの新しいテクスチャが自動的に作成されるようになります。

モバイルデバイス用の設計で、最大テクスチャサイズが適用されているために、品質が十分な 1 つのアトラスにグリフのセット全体が収まらない場合は、Multi Atlas Textures を有効にすることもできます。

フォントアセットを使用する

フォントアセットを使用するには、UI Builder の Inspector ウィンドウで Font Asset からフォントを選択します。

ノート: Font フィールドは後方互換性のためのものです。古い機能のプロジェクトに Font リストからのフォントを使用する場合は、Font Asset から None を選択する必要があります。そうしないと、Font から選択したフォントが有効になりません。

USS のテキスト要素には、以下の構文でフォントアセットを適用できます。

-unity-font-definition: <resource> | <url>

例:

Label {
-unity-font-definition: url("/Assets/UI Toolkit/Resources/Fonts & Materials/LiberationSans SDF.asset");
}

詳細は、USS のテキストプロパティ を参照してください。

推奨ガイド

要約すると、フォントアセットの作成時には以下のことを考慮してください。

  • ユーザー入力テキスト: Dynamic または Dynamic OS Population Mode を使用し、高速生成には SDFAA モードを使用します。Localization 用のフォールバックを追加する必要がある場合があります。
  • ジェネリックラベル: Static Population Mode と、小さいサンプリングポイントサイズの SDF16 モードを使用します。
  • タイトル: Static Population Mode と、大きなサンプリングポイントサイズの SDF32 モードを使用します。
  • ピクセルアート: ビットマップフォントの Render Mode のいずれかを使用します。
  • パディング: サンプリングとパディングの比率 1:10 を使用します。
  • 大きなテクスチャの Multi Atlas Textures を有効にします。

追加リソース

フォントアセット
フォントアセットプロパティのリファレンス