オノデラの研究日記 in わんくま

思いついたネタを気ままに書いていくブログ

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  209  : 記事  5  : コメント  534  : トラックバック  37

ニュース

プロフィール

  • ●おのでら
    宮城県在住
    主に業務向けソフトを製作

Twitter

ニュース

主なリンク

XNA 関連リンク

アイテム

ゲーマーカード

その他

記事カテゴリ

書庫

日記カテゴリ

 XNA では「Visual Studio 2005」のみをサポートしていますが、これはゲームテンプレートが用意されていないだけで、Visual Studio 2008 でも XNA Framework を使うことができます。今回は MSBuild とコンテンツパイプラインを使ってモデルを表示するサンプルを作っています。(今回コードをほとんど流用しているので実行ファイルのみ公開しています)

WPFとXNAでモデルを読み込んで表示

 サンプルは WPF ウインドウ上で表示させていますが、コードのほとんどは XNA Creators Club のサンプルにある「WinForms Series 2: Content Loading Sample」を元に作っています。プロジェクトは下のようになっています。

プロジェクトの構成
「Window1.xaml」以外は XNA Creators Club のサンプルをそのまま使っています。

 コンテントパイプラインを使用するには「MSBuild」系列の DLL を使うので、これらを参照として追加します。追加するのは「Microsoft.Build.Engine」と「Microsoft.Build.Framework」です。

参照の追加

 「2.0.0.0」と「3.5.0.0」の2つのバージョンがありますが、「2.0.0.0」を選択します。こちらは .NET Framework 2.0 のランタイムに含まれる DLL なので、開発環境のない環境でも使うことができます。

 コンテンツパイプラインを使う場合、「Microsoft.Xna.Framework」のほかに「Microsoft.Xna.Framework.Content.Pipeline」の参照も追加してください。

XNA Framework の参照

 コードの説明については XNA Creators Club のコードをほとんど流用しているため省きます。違う点は Windows フォームのウインドウ(MainForm)の代わりに WPF のウインドウ(Window1)を使っている部分だけで、内部処理コードもほとんどそのままコピーしています。名前空間が重なったりするのである程度は書き直さないといけませんが(^^;)。

 モデルを表示するための ModelViewControl は WindowsFormsHost コントロールを使って WPF のウインドウに貼り付けています。

配布ファイル

 以下、実行ファイルです。「.NET Framework 3.0」と「最新の DirectX ランタイム」「Microsoft XNA Framework Redistributable 2.0」が必要です。また、ハードウェア要件として「シェーダモデルバージョン 1.1 以上に対応したグラフィックカード」が必要です(たぶん)。
 あと、モデルファイルを読み込むために X ファイル、または FBX ファイルを別途用意してください。

投稿日時 : 2008年2月7日 8:53

コメント

# re: Visual Studio 2008とWPFでXNAのコンテントパイプラインを使ってモデルを表示する 2008/02/08 13:39 TEA
WPFについて知っていれば教えていただきたいのですが

WPFはブラウザで動作させられるのでしょうか
できるとするとXNAなどもあまり変更しないでブラウザで動作
できちゃったりしますか?
(Microsoft Silverlightを使うとかでしょうか)


# re: Visual Studio 2008とWPFでXNAのコンテントパイプラインを使ってモデルを表示する 2008/02/08 13:55 オノデラ
 WPF をブラウザで動作させるには「ブラウザ アプリケーション(XBAP)」として作成すれば動作できますが、その場合ウインドウハンドルを取得する方法がないので、ブラウザ上で XNA を使うことはできないと思います。(ただし未検証です)

 Microsoft Silverlight でも同じ理由で使えないと思います。

# re: Visual Studio 2008とWPFでXNAのコンテントパイプラインを使ってモデルを表示する 2008/02/08 15:47 オノデラ
 もうひとつ追記すると、XBAP ではアプリケーションが「部分信頼」で実行されるので、仮に XNA が使えたとしてもいろいろ制約が出てきそうです。

# re: Visual Studio 2008とWPFでXNAのコンテントパイプラインを使ってモデルを表示する 2008/02/10 20:57 TEA
回答ありがとうございます

ブラウザ上でXNAが動かせれば(パフォーマンスは悪くとも)
XNA Frameworkなど入れないですんでユーザフレンドリー
だなあと思ったのですが無理そうですね

# re: Visual Studio 2008とWPFでXNAのコンテントパイプラインを使ってモデルを表示する 2008/02/10 21:42 オノデラ
> XNA Frameworkなど入れないですんでユーザフレンドリー だなあと思ったのですが無理そうですね


 いえ、ブラウザ上で動かすにしても、クライアント(ユーザー)には XNA のランタイムのインストールは必須だと思います。XNA ではなく XBAP を実行する際にも、クライアントには .NET Framework 3.0 は必要です。

 このあたりを詳しく知るには、Web アプリケーションの知識や概念が関わってくると思います。(クライアントサイドとかサーバーサイドとか)

# re: Visual Studio 2008とWPFでXNAのコンテントパイプラインを使ってモデルを表示する 2008/02/14 18:49 TEA
そうですね、何らかのプラグインを入れないことには
ブラウザでは動かせなさそうですね

XNAをブラウザで動作させるのは諦めて
SilverlightにXNAのコードを移植する道を模索してみます
ありがとうございます


# replore : wpf contentpipelie xna http://blogs.wankuma.com/yo... 2008/07/31 23:48 Twitter Mirror
replore : wpf contentpipelie xna http://blogs.wankuma.com/yo...

Post Feedback

タイトル
名前
Url:
コメント