Windows 7 で作成された Windows Phone プロジェクトから .xnb ファイルを取得しました。Windows 8 Metro アプリで同じアセットを使用したいと考えています。MonoGameWindowsMetroApplication テンプレートのプロジェクトを使用して、Windows 8 で MSVS 2012 RC を使用しています。.xnb ファイルをプロジェクトの Assets フォルダーに配置して読み込もうとしましたが、アセットを読み込めないという例外が発生します。.xnb ファイルを使用するには、どのようなプロパティまたは構成が必要ですか?
4 に答える
MonoGameがフレームワークのコンテンツパイプライン部分に取り組んでいる間、Windows Phone 7ゲームで使用したものと同じコンテンツパイプラインエンジンを使用してコンテンツパイプラインを作成し、Windows 8XNAMonoGameプロジェクトで関連する.xnbファイルを使用できます。 。
私は、MonoGame for Windows 8を使用したXNAゲームの構築に関するブログチュートリアルシリーズを持っています。パート3を見ると、これを達成するための段階的なウォークスルーが提供されています。私のハンズオンラボとブログの情報は、MonoGameチームによってレビューおよび承認されました。
MonoGameでは、コンテンツパイプラインは存在しません。少なくとも、現在はオフになっています。
それは超簡単。1)VS2010でxnaプロジェクトを作成します。2)そこにすべてのアセットを追加します。3)プロジェクトを再構築します。bin / x86 / debug / contentに移動し、そこからすべてのコンテンツをコピーします
次に、VS2012MonoProjectのbin/x86 / debugに移動して、コンテンツフォルダーを探します。そこにすべてのコンテンツがコピーされている場合は、コンテンツフォルダーを作成し、そこにすべてのコンテンツをコピーします。
これで、コードを1行も変更せずにプロジェクトを実行するだけで、すべてがうまく機能することがわかります。
それが難しい場合はお知らせください。
ランタイム Xna フレームワークには、さまざまな xnb ファイルを読み取る多くのタイプ リーダー オブジェクトがあります。タイプ リーダーには、fbx モデルから処理された xnb ファイル用のものもあれば、2d 画像ファイルから処理された xnb ファイル用のものもあります。
を呼び出すとcontent.Load<T>(xnb file name)
、コンテンツ マネージャーは適切なリーダーを使用して、xnb ファイルのバイト情報を適切な Xna クラスに読み込みます。xnb ファイルのバイト情報は、特定の Xna クラスで使用するように設計されています。メトロには Xna クラスはありません。
これはすべて、これらの xnb ファイルを読み取るタイプ リーダーがメトロ環境に存在しないことを意味します。自分で書く必要があります。それほど難しいことではありませんが、それは私がやったことと似ています。Xna プロジェクトをビルドして fbx ファイルを xnb に処理すると、xna プロジェクトがランタイム モデルのデータを独自のバイナリ ファイルに書き込みます。このバイナリ ファイルは、metro アプリから読み取ります。しかし、単純に xnb を読むこともできました。バイト情報がどのように分散されているかを確認するには、contentManager の & Model クラスのタイプ リーダーを調べる必要がありました。
結局のところ、モデル情報を取り込むための標準的な方法 (そしておそらく推奨される方法) である FBXSDK を学習する必要がないということです。
編集 - 申し訳ありませんが、mono フレームワークの使用についてはわかりませんでした。私はそれについて何も知りません...多分彼らはxnbファイルをインポートする方法を持っています.
あなたはdevelop3Dブランチにいますか?ダミーのコンテンツ プロジェクトを追加して、アセットではなくそのプロジェクトに追加し、最初にそのプロジェクトをビルドしてから、MonoGame プロジェクトでそのプロジェクトを参照する必要があると思います。
私は現在の安定版を使用しているので、昨日は成功しませんでしたが、MonoGame の担当者の 1 人が昨日、それを行うように言いました。ここにいくつかの指示があります:
https://github.com/mono/MonoGame/wiki/MonoGame-Content-Processing