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 件のコメント:
コメントを投稿