locked
XNAで日本語の扱いについて。WP SDK7.1 RRS feed

  • 質問

  • お世話になります。
    WindowsPhoneSDK7.1RCをようやく入れました。

    以前作成したアプリのテキストボックスに
    日本が入力できるようになっておりましたが、
    スプライトフォントに日本語が登録されていないため、
    当然のごとく例外発生となりました。

    スプライトフォントに日本語を登録することは可能なのでしょうか?
    サポートしてない言語は例外でつかまえて、
    処理は出来るかと思いましたが、
    日本語の文字をすべてスプライト化するのは、
    現実的でないように考えられます。

    このあたり、どのように日本語化対応すればよいか、
    基本的事項で申し訳ないですが、ご教授願えませんでしょうか?
    よろしくお願いいたします。

    また、同様にMangoへのポーティングする際の問題点・注意点や
    新機能へのアクセス辺りのドキュメントなど御座いましたら、
    リンク等、お教え頂けませんでしょうか?
    できれば、日本語化されたものがあれば助かりますが、無ければ英語の物でも。

    以上、よろしくお願いいたします。
    2011年9月7日 16:14

回答

すべての返信

  • XNAではスプライトフォントに追加したい文字コードを指定することで、日本語だけではなく他の言語の文字も自由に追加できるようになっています。
    用途にもよりますが、コンソール機でチャットなどが必要な場合、常用漢字約2千文字をスプライトフォントにすることが多いようです。

    文字数が多いとスプライトフォントへの変換に時間が掛かってしまうという欠点がありますが、利点としては自分が使いたいフォントを使える、
    プラットフォームの対応言語に影響されることなく好きな文字を表示できるなどがあります。

    また、7.1ではSilverlightとXNAが併用できるようになったので、Silverlightで文字列描画した結果をXNA側でテクスチャとして使って描画することもできるようになりました。

    他のXNAでの日本語表示については以下のURLが参考になると思います。

    続・簡単(かもしれない)日本語表示
    http://blogs.msdn.com/b/ito/archive/2011/07/04/display-japanese-text-without-content-pipeline.aspx


    Content Pipeline その3 そのカスタマイズ

    2011年9月7日 23:11
  • お世話になります。
    ご回答ありがとうございます。

    なるほど。もともとスプライトフォントを作成すれば、日本語表示自体可能だったんでしょうか。
    テクスチャなので、表示自体は問題ないとは思いますが、
    すべての文字をスプライト化することは、無理かと決めてかかっておりました。

    また、作成部分から、オーバーライド?して実装するのは、かなり敷居が高いように思っておりましたが、
    ランタイムでスプライトを作成する方法など、とても参考になります。

    さしあたり、マーケットに上げている分については、
    プレイヤー名だけでしたので、日本語入力不可にして、
    障害が発生しないよう対策したものを、早急にアップすることにします。

    その対策が済めば、
    日本語が使えるウィンドウが限られますが、
    今後の開発で便利そうなので、
    SilverlightとXNAを逐次切り替える方法で実装し、
    必要ならスプライトフォントを追加する方向で行きたいと思います。

    ただ気になったのは、各日本語アプリが変換されたスプライトフォントを
    持ったりすると、かなり記憶リソースを消費してしまいそうで、
    日本語版OSでは、通常フォントと同様に、
    ある程度標準的なフォントはシステムが保持しておいて、
    (ん~スプライト化する意味がなくなるのかな・・・)
    アプリが参照利用できればとも思いました。

    有益な情報ありがとうございました。
    2011年9月8日 12:13