先日公開された GSE Refresh で BitmapFont がサポートされたので、日本語表示のテストをしています。
ヘルプのトピック「How to: Draw Text」に実装方法が記載されているので、まずはこれを見ながらテスト。結果、ASCII (basic Latin) のキャラクタ文字は表示させることができました。
今、日本語表示のテストを行っているのですが、まだ完全には実装しきれていないため、とりあえず現状わかったことを箇条書きでメモしておきます。
わかったこと
- フォントの設定は項目の追加で追加した .spritefont ファイルでおこなう (xml ファイル)
- 使用フォントは FontName で指定。著作権注意。
- 使用コードの範囲は CharacterRegion で指定。CharacterRegion は複数指定できる。たとえば ASCII と 日本語のひらがなの範囲を指定する場合、以下のようにコードを指定すれば OK。
<!-- basic Latin -->
<CharacterRegion>
<Start> </Start>
<End>~</End>
</CharacterRegion>
<!-- hiragana -->
<CharacterRegion>
<Start>぀</Start>
<End>ゟ</End>
</CharacterRegion>
</CharacterRegions>
コードは wikipedia の unicode 項目を参照。もっといいサイトがあるかも。
どうしたものか
実際、日本語表示を行うにはコード表を見ながら個別に範囲指定していけば OK だとは思うのだけれど、僕はあまり unicode に明るくなく(^^; またここらへんのベーシックな文字表示はわりと多くの方が組み込みさせたいハズなので、どうしたものか――公式のフォーラムに質問しようかなと思っていたところ、ちょうどひにけにXNAさんの更新があり……
コンテント・パイプラインの記事で、どんなカスタムインポーターを書いたら良いのか悩んでましたが、日本語メッセージファイルからFontDescriptionをインポートするというのが丁度良さそうなので、次回はそれを作ってみたいと思います。
……ということなので、口を開けながら待ちたいと思います。
追記 (05/01)
日本語表示についてはん・ぱか工房さんの XNA Game Studio メモ 内 日本語を表示させるでも解説されていました。
ヘルプトピックの How to: Extend the Font Description Processor to Support Additional Characters 項目も参考になります。