SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Windows Phone 7.5でつくる3Dアプリケーション

SilverlightとXNAでWindows Phoneアプリケーションを開発しよう

Windows Phone 7.5でつくる3Dアプリケーション(1)

XNAによるアプリケーション開発

 XNAは、ゲームアプリケーションの開発に適したフレームワークです。3Dの描画機能を有しており、画像や3Dモデルを高速に描画できます。なお、画面の描画処理はすべて開発者が実装するため、フレームワークに束縛されない独自の画面を構築できます。また、開発手法にはループベースを採用しており、ループで実行される更新メソッドと描画メソッドに対して処理を実装します。

 具体例として、XNAによるアプリケーションの作成手順を動画で紹介します。この動画では、画像ファイルを画面に表示するアプリケーションを開発します。

XNAによるWindows Phone 7アプリケーション開発

 上記の動画をもとにして、XNAによるアプリケーションの開発手順を紹介します。

1. プロジェクトを作成する

 XNAのプロジェクトを作成するため、Visual Studioの[ファイル]メニューから[新規作成]‐[プロジェクト]を選択し、[XNA Game Studio 4.0]カテゴリの一覧から適当なプロジェクトテンプレートを選択します。最も基本的な[Windows Phone ゲーム(4.0)]を選択した場合、以下の構成でプロジェクトが作成されます。

XNAプロジェクトの基本構成
XNAプロジェクトの基本構成

2. コンテンツを追加する

 画像ファイルや3Dモデルなどのコンテンツを扱う場合は、すべてContentプロジェクトに格納する必要があります。Contentプロジェクトでは、編集しやすいファイル形式から、ゲーム実行時にロードしやすい実行時形式への変換を、ビルド時に行っています。Contentプロジェクトにコンテンツを追加すると、アセット名という一意の値が自動的に付加されます。

Contentプロジェクトに追加したコンテンツ
Contentプロジェクトに追加したコンテンツ

3. コンテンツを読み込む

 追加したコンテンツを読み込むためには、メインクラスのLoadContentメソッド内でContentManagerクラスのLoadメソッドを実行します。この際、読み込むコンテンツのアセット名を引数に指定します。

メインクラスのLoadContentメソッド
メインクラスのLoadContentメソッド

4. コンテンツを描画する

 読み込んだコンテンツを描画するためには、メインクラスのDrawメソッド内に描画処理を実装します。例として、読み込んだコンテンツが画像データである場合は、SpriteBatchクラスのDrawメソッドを実行して画像を描画します。

メインクラスのDrawメソッド
メインクラスのDrawメソッド
SpriteBatchクラスについて

 SpriteBatchとは、画面と同じサイズの平面なポリゴン(奥行のない3D)を表すクラスです。Drawメソッドの引数に指定した画像データは、ポリゴンのテクスチャとして(3Dに張り付けた画像として)描画されます。このようにXNAでは、画像のような2Dデータを描画する場合も、すべて3Dデータとして処理します。

5. アプリケーションを実行する

 Visual Studioの[デバッグ]メニューから[デバッグ開始]を選択することにより、プロジェクトのビルドが実行されます。ビルドが正常に終了すると、自動的にエミュレータが起動して、アプリケーションの動作を確認できます。

XNAアプリケーションの実行例
XNAアプリケーションの実行例

 以上が、XNAによるWindows Phone 7アプリケーション開発の概略です。

まとめ

 Silverlightは、豊富なコントロールを利用してUIを構築することができますが、3Dを扱うことはできません。対してXNAは、3Dを扱うことができる反面、画面の描画処理をすべて開発者が実装するため、UIを構築するのは困難です。このように、SilverlightとXNAは、ある意味で正反対の特徴を有するフレームワークとなっています。

SilverlightとXNAの特徴を比較
  Silverlight XNA
GUI部品のサポート ×
UIの開発効率
画面の表現力
3D描画のサポート ×

 しかしながら、SilverlightとXNAを同時に利用することができれば、両者の利点を生かすことで、UIと3Dが共存するアプリケーションを簡単に開発できるようになります。

 ただし冒頭で述べた通り、SilverlightとXNAはプロジェクトの作成時に選択する必要があり、作成後にフレームワークを変更することはできません。それでは、SilverlightとXNAを共存させるためにはどのようにすればよいのでしょう?

 そこで次回は、Windows Phone 7.5から新たに追加された新機能を利用して、SilverlightとXNAを1つのアプリケーションに共存させる方法を紹介します。

 次回の投稿もぜひ…お見逃しなく!

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
Windows Phone 7.5でつくる3Dアプリケーション連載記事一覧

もっと読む

この記事の著者

もとひろん(モト スクウェア ソリューション)

自営業でシステムエンジニアを営んでおります。主に.NETテクノロジによるシステム開発を得意としておりますが、いざとなれば何でもやります。ふつつかものですが、よろしくお願い致します!WebサイトMOTO SQUARE SOLUTIONTwitter@MOTOSQUARE 

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/6162 2011/09/21 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー