XNAでは、スプライトフォント技術は恐ろしいものです。Nuclexの方がはるかに優れていますが、外部からの参照は必要ありません。また、ゲームはほぼ完成しました。
SansationやQuicksandなどのフォントを使用する場合、フォントのサイズが小さいとひどく見えます。それはとても悪いです!
これに対する既知の回避策はありますか?フォントサイズを非常に高く設定し、スプライトバッチでそれらを不運に縮小しようとしました。
XNAでは、スプライトフォント技術は恐ろしいものです。Nuclexの方がはるかに優れていますが、外部からの参照は必要ありません。また、ゲームはほぼ完成しました。
SansationやQuicksandなどのフォントを使用する場合、フォントのサイズが小さいとひどく見えます。それはとても悪いです!
これに対する既知の回避策はありますか?フォントサイズを非常に高く設定し、スプライトバッチでそれらを不運に縮小しようとしました。
回答:
XNA では、テクスチャをspritefontとしてインポートできます。XNAが生成するスプライトシートに頼るのではなく、適切な画像編集プログラムで各文字を手動でレイアウトすると、フォントのヒントとアンチエイリアシングを改善できる可能性があります。
XNAスプライトフォントプロセッサはDXT3圧縮を使用しますが、XNA 4.0の新しい事前乗算されたアルファではうまく機能しません。したがって、テキストのブロック状の外観。
Nuclexスプライトフォントプロセッサまったく同じデータを出力Texture2D
しますが、フォントビットマップデータを保持する内部は圧縮されないため、品質の問題はありません。
Nuclexプロセッサからのデータは同じ形式であるため、XNA SpriteFont
リーダーはそれを読み取ることができ、ゲームで配布するためにNuclexライブラリを含める必要はありません。
(また、XNAのネイティブスプライトフォント定義と同じXML形式を便利に使用できます。)
つまり、外部ライブラリをゲームにバンドルしても何も問題はありません。システムなどにインストールされるわけではありません。(2つのアセンブリをマージすることもできます)。
また、コードにも同じことが言えます(たとえば、バージョン管理が心配な場合)。Nuclex.Fonts.Content.TrueTypeImporter.dll
ソースコードを入力するだけです。実際には大したことではありません。