【XNA】日本語表示をする方法

2014-04-30 18:22:23

  1. 開発
  2. XNA
XNAを使ってプログラムをしていると、あれ日本語表示ってどうやってするの? という壁に誰でもぶつかると思います。 ということで「ひにけにGDさん」が作成された「WpfFontPipeline」を使って日本語表示をするためのメモです。
[スポンサードリンク]
「ひにけにGD」さんの作成された 「WpfFontPipline」を利用することで、簡単にXNA環境で日本語を表示することができます。 (ひにけにGDさん、ありがとうございます!!) 「VisualC#2010Express」&「XNA4.0」の環境を想定しています。

DLLをダウンロードしてくる

「ひにけにGD」さんのサイトの以下のページから 「WpfFontPiepline.dll」をダウンロードしてください。 ひにけにGD「真・簡単(かもしれない)日本語表示」

VisualC#でプロジェクトを作成する

VisualC#2010を開いて「ファイル」「新しいプロジェクト」「Windowsゲーム(4.0)」を選択して、 プロジェクトを作成してください。

WpfFontPiepline.dllを組み込む

XNA4.0でプロジェクトを作成していればソリューションエクスプローラーに 「プロジェクト名(Content)」というプロジェクトが自動的にできていると思います。 このプロジェクトをこれから「Contentプロジェクト」と呼びます。 ダウンロードした「WpfFontPiepline.dll」をソリューションエクスプローラーの 「Contentプロジェクト」にドロップします。 このとき、自動的にプロジェクトのフォルダ内にコピーされています。

ビルドアクションを設定する

ソリューションエクスプローラーの「Contentプロジェクト」に追加された 「WpfFontPipeline.dll」を右クリックして「プロパティ」を選択、 「ビルドアクション」を「なし」にします。

dllへの参照を追加する

ソリューションエクスプローラーの「Contentプロジェクト」にある 「参照設定」を右クリック「参照の追加」をクリックします。 「参照の追加」ダイアログが開いたら「参照」タブを選択して、 さきほどプロジェクトのフォルダにコピーされた 「WpfFontPiepline.dll」を選択して「OK」を押します。

SpirteFontを作成する

コンテンツプロジェクトを右クリックして「追加」⇒「新しい項目」⇒ 「スプライトフォント」を選択して「追加」 (2個あるときもある様子・・・どっちでも大丈夫そうです)

SpirteFontの設定をする

追加された「SpriteFont1.spritefont」を右クリック⇒「プロパティ」を開きます 「コンテンツプロセッサ」という列の「スプライトフォント定義~」となっている場所をクリックすると 右のほうに黒い三角マークが出るので、そこをさらにクリックして「WFPフォントプロセッサー」を選択します。 選択すると「コンテンツプロセッサ」という列の左端に横向きの白抜き三角が表示されるので そこをクリックすると、spriteFontの日本語表示できるようにするかどうかの設定が表示されます。 設定は、「追加文字ASCII」から「追加文字 第一水準漢字~」までをすべて「True」にします。 「追加文字テキスト」と「追加文字テキストファイル名」は無視してOKです。 準備ができたので実際にプログラムから文字列を描画してみます。

Game1クラスにSpriteFontクラスの変数を作る

 SpriteFont spriteFont;

LoadContent関数内でSpriteFontを読み込む

 spriteFont = Content.Load( "SpriteFont1" );    "SpriteFont1"の部分は、「SpriteFontの作成」の項で作成したファイル名です(拡張子除く)

Draw関数にspriteBatchの開始と終了を追加する

以下のような感じで、spriteBatchの利用開始と終了を追加します。  // TODO: ここに描画コードを追加します。  spriteBatch.Begin();  spriteBatch.End();

BeginとEndの間で文字列を描画してみる

文字列はspriteBatchのDrawString関数を使用します。 引数は以下のようになっています。 必ず「Begin」と「End」の間に記述しましょう。 引数1:最初にGame1クラスに作成したSpriteFontクラス 引数2:表示したい文字列 引数3:表示したい座標 引数4:表示したい文字列の色 コードとしては以下のようになります。  // TODO: ここに描画コードを追加します。  spriteBatch.Begin();  spriteBatch.DrawString( spriteFont, "testあいうえ漢字テスト", new Vector2( 100,100 ), Color.Black );  spriteBatch.End(); 以上で日本語表示ができるはずです!
他にも文字サイズや装飾など、いろいろな設定があるようなので 詳しくは、ひにけにGDさんのサイトを見るといいと思います! ひにけにGD「真・簡単(かもしれない)日本語表示」
[スポンサードリンク]

コメント

[スポンサードリンク]
[スポンサードリンク]