2009年12月6日日曜日

自分でXbox360用ゲームが作れる!!! XNA Game Studio 3.1をインストールしてみました。(2)

前回の記事に引き続いて、今回も革命的とも言える「自分のパソコンで、Xbox360用ゲーム開発が出来てしまう!!(しかも純正フリーソフト) XNA Game Studio 3.1」についての記事を書かせていただきます。

さすがに本格的にゲーム開発に取り掛かるのは無理なので、XNA Game Studio 3.1が一体どんなものなのかな?という程度の小さな2Dのテスト・プログラムを作ってみました。

自分で撮影した、キヤノンのコンパクト一眼レフカメラ「EOS KISS X2」の写真をスプライトキャラクターにして、キーボードのキーで上下左右に自由に動かす・・・というだけのプログラムです。
だけって言っても、スプライトキャラクターの定義とか色々あるし、ゼロからやったらえらい大変ですよね。
しかも、Windowsで動いても、Xbox360で動かすすべは全くないし、やっぱりXNA Game Studio 3.1の威力を見たいところです。

というか・・・。C#言語さえ分かれば組めるってもんじゃない。作法が全然分からない。
しかし、あれこれ試行錯誤で調べてみると、一時間くらいで、初歩の初歩の基本が見えて来ました。

(1)基本は、Microsoft.Xna.Framework.Gameクラスを継承した自作クラス。仮にGame1クラス。
(2)Game1クラスの、LoadContent()メソッドをオーバーライドしてスプライトキャラの定義をする。
(3)Game1クラスの、Draw()メソッドをオーバーライドして、スプライトを描画する。
(4)Game1クラスの、Update()メソッドがメイン。ここをオーバーライドしてメイン処理とする。

おおー。当たり前も当たり前で恐縮ですが、ゲーム機用でも.NET Frameworkプログラミングそのものだなぁ・・・。いいなぁ。

■スプライトキャラクターは、単に画像のリソース登録で定義OK

X68000とかの時代は、スプライトキャラクターの定義だけで一日とか潰れてた気がしますが、さすがXNAは、画像ファイルをリソース登録するだけ。
大きな画像を登録するだけで、昔のゲーム機が心血を注いでアピールした「超デカキャラ」の出来上がり。アニメとかしないけど、時代ですね・・・。

■スプライトキャラクターを読み込んで初期位置を設定

しかるべくクラスを定義していれば、リソース登録したスプライトキャラクターは、
spriteBatch = new SpriteBatch(GraphicsDevice);
obj_EOS_KISSX2 = Content.Load<Texture2D>("pic1"); //.Loadの後の<>は半角で
obj_location.X = 100; //X座標の初期表示位置
obj_location.Y = 200; //Y座標の初期表示位置
これで初期表示されてしまうんです。
「えっ、こういう書き方でいいの?」というくらい、直感的な書き方が許してもらえますよね。
ジェネリック型とか、.NET Frameworkの威力がバリバリに発揮されてるって事か・・・。

■スプライトキャラクターを描画■

実際の描画は、Draw()メソッドをオーバーライドして行います。
GraphicsDevice.Clear(Color.CornflowerBlue);
//いよいよスプライト表示開始!!
spriteBatch.Begin(SpriteBlendMode.None);
spriteBatch.Draw(obj_EOS_KISSX2,obj_location, Color.White);
spriteBatch.End();
base.Draw(gameTime);

画面にEOS KISS X2が表示さ
れましたうわ、本当にデカキャラだ。
本当なら背景は透明とかに
すべきですが、そこまではやりませんでした。

■スプライトキャラクターを動かす■

今回の制御は、メインのメソッドとも言
える、Update()メソッドをオーバーライドして行います。

スプライトキャラクターは、キーボードの上下左右のカーソルキーで動かします。
Xbox360のゲームパッド関係のクラスは、市販のUSBゲームパッドには通用しないみたいです。
悩むのも主旨が違うので、
ここは素直にキーボードでやってみますね。10ドット単位でやってみます。

詳しくはコードのスクリーンショットをご
覧下さい。
.NET Frameworkプログラミングらしく、直感的な書き方が可能で嬉しい。
■おおおおー。EOS KISS X2がスルスルと動くー!!!■

これだけのプログラミングで、EOS
KISS X2のデカキャラがスルスルと動きました。
言ったら、単に動かしているだけなんですけれど、さっき始めたばかりでもう作れたって事だけで、なんかちょっとグッと来ますね。


XNA Game Studio 3.1大したものだなぁ・・・。

ゲーム機って、以前は日本が独占していたのですが、海外ではPS3の人気は高いものの、マイクロソフトのXbox360が日本のゲーム機の牙城を打ち崩して普及しているようです。

開発者の支持も極めて高いという話を聞いていましたが、確かに、こういう、開発者側を取り込もうと必死で努力する姿を見せられると、なるほどって感じですよね。
それまで完全にブラックボックスだったゲーム機のソフト開発を、全てではないでしょうけれども、こうしてオープンにしてしまうマイクロソフト。
それに見合ったソフトを作り出して来るマイクロソフト。

もはや感心していいのか、感動していいのか分からないくらい。
でも、日本としては、やっぱり怖いし、どうしようって感じはしますよね。