[スポンサードリンク]
2014-04-30 18:22:23
【XNA】日本語表示をする方法
  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「真・簡単(かもしれない)日本語表示」

【関連記事】

[スポンサードリンク]
コメントする


コメント
まだコメントはありません。