2012年8月21日火曜日

XNAゲームのUnity3D移行


XNAゲームのデモがコード変更なしで動作したとの発表がありました。XNAゲームをブラウザで動かす道が開けたということですが、現時点でどのような制約があるか、発表内容を翻訳してみた:

http://channel9.msdn.com/coding4fun/blog/XNA-and-Unity3D-developers-unite-UnityXNA



UnityXNA発表 - Unity3D上で動作するXNA

XNAゲームはUnity3D上で動作するというのが持論であったため、実際にやってみた。

これはアクションゲームのデモでXNAがUnity3D上で動作した証拠である。
元のコードを一切変更することはなかった。新しいコードとMono XNAからコード流用を混在させる形で、XNAエミュレーションをゲームオブジェクトにスクリプトをアタッチすることでゲームのUpdate処理と描画での実行に成功した。

現時点の実装
1.基本的なゲームループおよびゲーム時間の計算処理
2.コンテンツマネージャによる2Dテクスチャ、サウンドエフェクト、ゲームミュージック(Songs)を各々Unity3Dオブジェクトでラッピング
3.スプライトバッチ描画専用にを描画キューを独自作成し実装。現時点で色の濃淡、コマアニメーションのフレーム処理(source rectangle)、スプライト反転表示をサポート。
4.スプライトバッチでの文字列描画は限定的にサポートし、文字列の位置、色までは処理。
5.ゲームミュージック(Songs)のメディアプレーヤ再生および効果音再生をサポート
6.キー押下取得(KeyboardStates)をいくつかのキーに限定してエミュレーション、マッピングはXNA値からUnity3D値(KeyCodes)へ。
7.元のコードを一切変更することなく、アクションゲームのデモが実行可能

課題および当面の改善ポイント
1.スプライトフォントは未サポート、すべての文字列描画(DrawStrings)は標準GUIラベルのフォントとしてレンダリング
2.フレームレートは60FPSで垂直同期。垂直同期オフにするとゲーム時間の計算処理に不具合
3.Windows Media Audio(.wma)ファイルはUnity3Dで未サポートのため、デモの音声ファイルはOgg Vorbis(.ogg)に変換
4.キーボード入力はいくつかのキーに限定されているため、今後XNA値からUnity3D値(KeyCodes)へのマッピングを改善する必要あり
5.マウス、ゲームパッド、タッチパッドによる入力は未実装
---------

まだ実用に耐えうるためにはフォントやら入力装置への対応などあるものの、XNAで何かを作ってきた、という方には大変魅力ある発表ですね。今後に期待します。

Unity3Dへどんどん移行しようぜ!XNA!

0 件のコメント:

コメントを投稿

ブックマークに追加

このエントリーをはてなブックマークに追加

自己紹介

自分の写真
Unity3D公式マニュアル翻訳やってる人がスマホ(iPhone, Android)のゲーム開発しています。気軽に面白く初心者が遊べる内容がモットー。Blogでは開発情報をひたすら、Twitterではゲーム作成の過程で参考にしている情報を中心につぶやきます

ページビューの合計

過去7日間の人気投稿

ブログ アーカイブ