XNAによるアプリケーション開発
XNAは、ゲームアプリケーションの開発に適したフレームワークです。3Dの描画機能を有しており、画像や3Dモデルを高速に描画できます。なお、画面の描画処理はすべて開発者が実装するため、フレームワークに束縛されない独自の画面を構築できます。また、開発手法にはループベースを採用しており、ループで実行される更新メソッドと描画メソッドに対して処理を実装します。
具体例として、XNAによるアプリケーションの作成手順を動画で紹介します。この動画では、画像ファイルを画面に表示するアプリケーションを開発します。
上記の動画をもとにして、XNAによるアプリケーションの開発手順を紹介します。
1. プロジェクトを作成する
XNAのプロジェクトを作成するため、Visual Studioの[ファイル]メニューから[新規作成]‐[プロジェクト]を選択し、[XNA Game Studio 4.0]カテゴリの一覧から適当なプロジェクトテンプレートを選択します。最も基本的な[Windows Phone ゲーム(4.0)]を選択した場合、以下の構成でプロジェクトが作成されます。
2. コンテンツを追加する
画像ファイルや3Dモデルなどのコンテンツを扱う場合は、すべてContentプロジェクトに格納する必要があります。Contentプロジェクトでは、編集しやすいファイル形式から、ゲーム実行時にロードしやすい実行時形式への変換を、ビルド時に行っています。Contentプロジェクトにコンテンツを追加すると、アセット名という一意の値が自動的に付加されます。
3. コンテンツを読み込む
追加したコンテンツを読み込むためには、メインクラスのLoadContentメソッド内でContentManagerクラスのLoadメソッドを実行します。この際、読み込むコンテンツのアセット名を引数に指定します。
4. コンテンツを描画する
読み込んだコンテンツを描画するためには、メインクラスのDrawメソッド内に描画処理を実装します。例として、読み込んだコンテンツが画像データである場合は、SpriteBatchクラスのDrawメソッドを実行して画像を描画します。
SpriteBatchとは、画面と同じサイズの平面なポリゴン(奥行のない3D)を表すクラスです。Drawメソッドの引数に指定した画像データは、ポリゴンのテクスチャとして(3Dに張り付けた画像として)描画されます。このようにXNAでは、画像のような2Dデータを描画する場合も、すべて3Dデータとして処理します。
5. アプリケーションを実行する
Visual Studioの[デバッグ]メニューから[デバッグ開始]を選択することにより、プロジェクトのビルドが実行されます。ビルドが正常に終了すると、自動的にエミュレータが起動して、アプリケーションの動作を確認できます。
以上が、XNAによるWindows Phone 7アプリケーション開発の概略です。
まとめ
Silverlightは、豊富なコントロールを利用してUIを構築することができますが、3Dを扱うことはできません。対してXNAは、3Dを扱うことができる反面、画面の描画処理をすべて開発者が実装するため、UIを構築するのは困難です。このように、SilverlightとXNAは、ある意味で正反対の特徴を有するフレームワークとなっています。
| Silverlight | XNA | |
| GUI部品のサポート | ○ | × |
| UIの開発効率 | ○ | △ |
| 画面の表現力 | △ | ○ |
| 3D描画のサポート | × | ○ |
しかしながら、SilverlightとXNAを同時に利用することができれば、両者の利点を生かすことで、UIと3Dが共存するアプリケーションを簡単に開発できるようになります。
ただし冒頭で述べた通り、SilverlightとXNAはプロジェクトの作成時に選択する必要があり、作成後にフレームワークを変更することはできません。それでは、SilverlightとXNAを共存させるためにはどのようにすればよいのでしょう?
そこで次回は、Windows Phone 7.5から新たに追加された新機能を利用して、SilverlightとXNAを1つのアプリケーションに共存させる方法を紹介します。
次回の投稿もぜひ…お見逃しなく!



