XNAエクスポーター:プレビュー

XNAは体験版があるから興味のある人は基本的に本家から体験版ダウンロードして貰ってそっちで試してもらうとして、ここでは興味が向くままにあれこれ実験・メモしていきます。しばらくは羅列になるので、あとで正確な内容だけを拾って一つの記事にまとめます。

XNA — Requirements, features and extension supported

ヘルプは最初によく読もう。

XNAエクスポーターは基本的にiOSと同じ手順でビルドをします。つまりVisual C#のプロジェクトソース一式をMMF2が吐き出すから、そこからVC#のインターフェースに乗り移ってビルド用の設定をこなしてからリリース用(あるいはデバッグ用)のビルドを行います、って手順が必要。だからMMF2で作ったアプリをXNAでビルドするためには先にXNA関連のダウンロードとインストールを行っておく必要があります。Windows PhoneとXbox360およびPC用ビルドはそれぞれダウンロードで必要なものがちょっと違う。基本的にWindows Phoneというのはレアな存在なので、一旦ここではXboxおよびPC用のXNAビルドに必要なものを列挙しています。

まず基本としてMicroSoftのVisual C#。そしてVisual C#に組み込んで利用するため、C#以外にもAPP Hubから「XNA Game Studio 4.0 Standalone」をダウンロード(2012年六月)。追加で日本語言語パックを合わせてダウンロード(これはすぐに役立つかどうかはしらない)。
http://msdn.microsoft.com/ja-jp/library/bb200104(v=xnagamestudio.40).aspx
http://create.msdn.com/ja-jp/resources/downloads

VC#のソースにかかれているコメントはフランス語で少しだけ確認できる程度。プロジェクトソースはUTF-8で保存されてる。

XNAには独自のFont Mappingという設定項目がある。基本はASCIIの設定だがユニコード用の拡張設定をソースコードで適切に指定できれば今後日本語も表示できる可能性がある。ただし、いろいろ試したのだがどうもスプライトフォント回りにはまだ分かりやすいバグがあって、残念ながらなぜかソースコードを吐き出した時点ですでに文字化けしてる部分がある。一応このバグもソースコードにあとで直接手を入れることで回避できるし、日本語のフォント名も指定して利用できるのだが…肝心のユニコード用のフォントマップを割り当てしてからビルドすると…ビルドしたアプリが起動しなくなります。つまり平仮名すらまだ表示できていません。

この辺は開発者にちょっと聞いてみないといけない。

そしてStringとHighScoreにはFontsの設定があり、おそらく自動で使う語だけを抽出してスプライトフォントにしてくれる機能がある。たぶん。ただしレンダリング品質があれであれだから、希望というか要望としてはエクステンションで自作したスプライトフォント画像が扱えるようなものが出てきてくれることを願う。

iOSもそうだから別にXNAも同じだったところで難易度は大して変わらないのだけど、MMF2の知識に加えて最低限のIDE(Integrated Development Environment:統合開発環境)の知識が必要になるから、MMF2のユーザー層には通常難易度が高いものになるかもしれない。ただしXNAは探せば日本語の解説があっちこっちにあるので調べ物をする場合「日本語でok」だからこの点は楽になるはず。IDEをまったく使ったことのない人は慣れるまで少し時間かかるかもしれない。さらにプログラミング言語をまったく知らない人はたぶん敷居が超高い。XNAの仕組みを知らない人はXNAについてよく知る必要もある。色々学習意欲のある人じゃないと、あるいはMMF2の通常ビルドみたいにポンキュッパっでビルドできる程XNAの仕様は甘くできてない。その代わりソースコードが吐き出されるので色々弄ることはできる。

従来のPC用HWAとフォントのレンダリング品質が異なる?アインチエイリアスは相変わらずおかしいがアンチエイリアス無しの描画が綺麗になってる?>確認。全然品質が違う。まったく別物。おそらく従来の文字列表示用のAPIを利用してないのでレンダリング品質が異なるのかもしれない。XNAを選択した場合のレンダリング品質は綺麗だが、通常のHWAで同じ文字列を表示させた場合相変わらず汚い。>違った。XNAでもStandardでも結局描画をソフトウェアでやると文字列は綺麗。D3D9を選択するとどちらも汚い。なんてこった。。。

ビルドが従来のMMF2アプリと異なる。C#インストールしておいて良かった。ビルドエラーが出てるけどヘルプに書いてあったとおりスプライトフォントでこけてる。たぶん多くの人が躓くと思われるポイント。

MMF2でビルドする方法がまだ分からんのでC#から直接プロジェクトを開いてC#でビルドしている。スプライトフォントの設定はあとで解決する。C#からビルドして動作を確認。デバッガ設定にコンフリクトがあるからMMF2側の設定で解除する必要がありそう。警告を無視してビルドすれば良い。ちゃんと動いてる。おもしろい。

イベントエディタから見た場合の文字化けは相変わらず。

既存のShardersはサポートしてない?HWAはalpha blendingとRGB coefiicentsをサポートしてる?ヘルプの記述が古い可能性がある。Francoisいわく既存の基本的なシェーダーは使える、追加は今後行っていくと。

トラジションはまったくサポートしてない

windows PhoneのFPSはリミットが30FPSになってる。

Binaryを含めることができる。これは設定用のデータにarrayを使ったりもできる。

OGGが使えない。デフォルトでMP3とWAVだが、oggが使用されている場合WAVに変換されるのでファイルサイズに注意。MP3はライセンスに注意。

XBoxでは解像度は720p(1280×720、アスペクト比16:9)が一般的?フルHDを利用する場合だと1080pで1920×1080となる。

GETオブジェクトはPC用とPhone用だけに対応してる。XBOXでネットアクセスを利用する場合はMicroSoftと別途契約が要る。インディゲームではネットアクセスを許可されていない。