【Watch記事検索】
最新ニュース
【11月30日】
【11月29日】
【11月28日】
【11月27日】
【11月26日】

西川善司の3Dゲームファンのための「XNA Game Studio Express」講座
手持ちのパソコンでオリジナルのXbox 360ゲームが作れてしまう衝撃



 2006年12月13日、マイクロソフトはWindowsベースのPC環境下でWindows用とXbox 360用のゲームをほぼ無料に近い形で制作できる開発プラットフォーム「XNA Game Studio Express」を発表した。

 業界に与えるインパクトが非常に大きいと思われるので、今回、この連載で取りあげてみることにした。


■ PS3汎用コンピュータ展開戦略へのマイクロソフト的カウンターパンチ

マイクロソフト、Xbox事業本部ゲームテクノロジーグループ田代昭博氏
 今回の発表は、“表向き”以上に大きな意味があった。

 まず、当初の「久夛良木的プレイステーション 3構想へのカウンターパンチ」的な意味合いが強い。

 SCEは2005年でのPS3構想発表当時、「PS3はゲーム機を超えた汎用コンピューティングを提供するプラットフォームとして訴求する」ということを声高らかにアナウンスした。OSとしてLinuxが走り、一般ユーザーにまでプログラミング環境までを提供して、クリエイティブなプラットフォームとして育て上げていきたいという夢が語られたのだ。

 これまでは家庭用ゲーム機で動作するソフトウェア(ゲーム)開発は、ライセンス締結を結んだプロフェッショナル達にしか行なえなかった。こうしたゲーム開発を一般ユーザーにも行なえるようにするというアナウンスは実際のところ革命的だった。これが、いわゆる「PS3汎用コンピュータ展開戦略」だ。

 アナウンス自体はセンセーショナルだったのだが、PS3の発売が具体化するにつれてこのアイディアがしぼんできてしまった。一般ユーザー向けどころか、各ゲームスタジオへの開発キットの提供が遅れに遅れてそれどころではなかったし、実際――PS3へのLinuxインストール自体は可能だが――プリインストールの夢は結局果たされなかった。そして、先日発表された、久夛良木健氏がSCEI会長兼グループCEOとなり、SCEAの平井一夫氏がSCEI代表取締役社長兼グループCOOに就任したトップの人事異動。ハイスペックゲーム機として強く訴求することにこだわり続けてきたSCEAのトップがSCEIに組み込まれたことは、PS3汎用コンピュータ展開説に少なからず影響があるだろう。

XNA Game Studio Expressは作成したソフトを市販製品のXbox 360で実行できるのが強み
 これに対して、マイクロソフトは「ソフト屋の強み」を生かして、WindowsベースのPC環境でWindows用、Xbox 360用の両方で動作できるソフトの開発キット「XNA Game Studio Express」(以下XNA GSE)をほぼ無料でリリースしてきた。SCEの迷いとも取れる路線の迷走の間に、マイクロソフトはXNAを着々と育て、正式版までこぎつけるのが早かったというのはちょっと感慨深い。

 2005年のE3で、筆者が実質的なXbox 360事業のトップに立つマイクロソフトCorporate Vice President, Design and Development, Entertainment and Devices Divisionを務めるJ.Allard氏にインタビューしたとき、この「PS3汎用コンピュータ展開戦略」について意見を聞いてみたことがある。その時、彼は「我々のXbox 360はピュアなゲーム機だ。汎用コンピュータとしての訴求は今は考えていない。ソニーには頑張って欲しいね」と一笑されてしまったが、今思えば最後の「頑張って欲しいね」は、ソフト屋としてのマイクロソフトの余裕のコメントだったようにも思える。


■ プログラミング言語は「C#」

当面XNA GSE自体は英語版だが、日本語対応も予定。インプレスジャパンの制作による「できるプログラミングXNA Game Studio Express(仮)」も制作が予定されている
 XNA GSEを使うためにはWindows XP(SP2適用済み)ベースのPCが必要になる。Windows Vistaへの対応は2007年内には行なわれるということだが、具体的なロードマップは示されていない。

 XNA GSE自体はマイクロソフトの開発者向けサイトMSDNのXNAサイトから無料でダウンロードが可能だ。現在は英語版のみだが、順次日本語化されていく予定があり、また、インプレスジャパンの「できる」シリーズが制作予定となっている。

 開発に用いるWindowsパソコンはDirectX 9.0c世代、プログラマブルシェーダ1.1以降対応のGPUが搭載されていることを最低条件としている。ただし、Xbox 360上での動作も想定すると、プログラマブルシェーダ3.0以降対応が望ましいだろう。

 プログラミング言語については「C#」が採用されている。

 C#とはマイクロソフトが開発したC言語ベースのスクリプト言語のようなプログラミング言語で、コンセプトとしてはJAVAに近いものだ。C言語に慣れ親しんだ人には扱いやすく、これからC言語を学ぶ人にとっては取っつきやすいところが特長となっている。別名マイクロソフト版JAVAなどと言われることが多い。

 XNA GSEを利用するためには別途、このC#開発環境を整える必要がある。しかし、幸いにもマイクロソフトはこのC#開発環境である「Visual C# 2005 Express Edition」を無料で提供しているのだ。こちらは日本語版が用意されており、MSDNのC#のサイトからダウンロードできる。

XSE GSEでのコーディング作業は無料提供されている「Visual C# 2005 Express Edition」で行なう

 C#で開発されたプログラムはコンパイルされると「MSIL」(Microsoft Intermediate Language)という中間言語バイナリとして生成される。MSILは直接実行できず、これをターゲットプラットフォームでCLR(Common Language Runtime)と呼ばれるランタイム・コンパイラ&ラウンチャで、リアルタイムコンパイルされて実行される。


■ どうしてプログラムがそのままPCとXbox 360で動作できるのか

 Windows PCはインテル系、Xbox 360はPowerPC系なのに、どうして双方で同じプログラムが実行できるのか不思議に思った人もいるかもしれないが、「C#ベースの開発」と聞いて「ああ、そうか」と思った人は少なくないだろう。

 C#プログラミング環境は、ターゲットハードウェアを限定しない新しいプラットフォームなのが特長。作成されたプログラムは、ターゲットハードウェアでの実行時に初めてネイティブコードに変換されるので、C#プログラムはCLRが用意されれば、どのハードウェアでも走らせることができるのである。凄く簡単に言い換えれば、今回のXNA GSEは、「XNA仕様の」、「C#動作環境が」、「PCとXbox 360に用意された」ということなのである。作成したC#プログラムはPCで動作するときはPC用のCLRを実行し、Xbox 360で動作するときはXbox 360用のCLRを実行するわけだ。

 この仕組みによりプログラム本体、データ等をカスタマイズすることなく、ほぼそのまま転送するだけでPCでもXbox 360でも動かすことができる。そう、ハードウェアの違いはCLRが吸収するのだ。もちろん、CLRの実体がメモリに常駐するのでXbox 360ではメモリ事情が厳しくなる可能性はある。

 さらに付け加えるならばPC標準のC#動作環境といえば「Microsoft .NET」があるわけだが、XNA GSEのCLRはいわばそのゲーム向けスペシャルカスタマイズ(サブセット)版というようなイメージになる。

 XNA GSEで開発したソフトの実行には、PCでは「XNA Framework 1.0」のインストールが必要になる。そう、これはPC版のCLRだ。これは無料でXNAのサイトからダウンロードが可能になっており、さらには自作したXNAゲームにアーカイブ添付して再配布することが許可されている。

XNA Frameworkは、Xbox 360とWindows PC向けの.NETベースのゲーム開発プラットフォームだ XNA Frameworkのレイヤースタック図


■ Xbox 360で自作ゲームを動作させるには?

 PC上のXNA GSEで開発したゲームをXbox 360で動作させるのは実は少々敷居が高い。

 開発自体はPC上で普通に行なえばよく、MSILへのコンパイルまではPC上のXNA GSE開発環境を使えばいい。問題は実行時だ。

 実行にはXbox 360で動作するCLRが必要になる……ということはここまでの話の流れで想像が付くはずだ。このXbox 360版CLRは「XNA Game Launcher」という名称が付けられており、Xbox Liveマーケットプレースから「XNAクリエイターズ・クラブ」メンバーシップを購入することで入手可能になる。

 ここまで「無料づくし」だったXNA GSE環境だが、ここで初めて「有料」の概念が登場する。

Xbox Liveのマーケットプレイスから…… 「XNAクリエイターズ・クラブ」メンバーシップを購入することでXNA GSEゲームが起動できるようになる ホストPCからのゲームプログラムやデータ転送はネットワーク経由で

 このXNAクリエイターズ・クラブのメンバーシップは1年間有効の「年間メンバーシップ」が9,800円、4カ月間有効の「4カ月のお試し版」が4,800円となる。

 PCからのプログラムやデータ転送にはネットワークを用いる。Xbox 360はこのデータの受け取りやソフトウェアの実行時には必ずXbox Liveへの接続が必要になる点にも留意したい。Xbox Liveへの接続が必要になるのは、メンバーシップライセンスの確認が必要になるためだ。

 1つ事実として受け止めておかなければならないのは、現時点では、作成したゲームを一般のXbox 360ユーザーに配布する手段がないということだ。Xbox Liveのマーケットプレースを通して配信することはできず、現時点ではフレンド間でのやりとりにも対応していない。

 もちろん、インターネット上にアップロードすることはできるが、一般Xbox 360ユーザーがそのアマチュアゲームをプレイしようとするには、それをダウンロードして、XNA GSEをインストールして、Xbox 360上でXNAクリエイターズ・クラブのメンバーシップを購入して、ゲーム本体とデータ転送を行なって……という手順を踏まなければならず、到底そんなことにつきあってくれる「カジュアルゲーマー」は少ない。

 アマチュア開発者の立場からしても、一般ユーザーに遊んでもらえないゲームを開発しても張り合いがないわけで、ここはこのコンセプトを盛り上げるに際しての実は一番大きな障害となっているように思える。

XNAクリエイターズ・クラブのメンバーシップを購入するとXNA Game Launcherが利用できるようになる メンバーシップの期限が切れているとゲームの起動はできない XNA Game Launcherを起動して「My XNA Games」から実際に起動する


■ XNA GSEの「できること」と「できないこと」

 XNA GSEで提供されるAPIフレームワークはまだ「最初のバージョン」ということもあって、まだ発展途上な部分も多い。

 グラフィックスに関してはDirect3D 9ベース……というかそのサブセット版というような感じになっている。すでにWindowsプラットフォームには、.NET Framework用にManaged DirectX(MDX)というものが提供されているが、XNA GSEのグラフィックスAPIはこれとも結構違っているのが少々気になる点だ。MDXのボーンスキニング処理などのアニメーション関係のAPIがごっそり削られているのは、ちょっと驚かされる。なお、MDXからXNA Frameworkに移植する際には、そのガイドラインをまとめたこちらを参照するといいだろう。

D3DXメッシュのアニメーションサポートがない。固定パイプラインも未サポート。サンプルデモが宇宙船、飛行機、車……という軸回転の動きを付けたものしか用意されていないことが気にかかる

 Xbox 360やPCのゲームといえば、「ネットワーク対応ゲーム」というのがその醍醐味となるわけだが、残念ながら、現時点ではこれに対応していない。ただし、近い将来、ネットワーク対戦用のコンポーネントも提供されることが今回宣言されている。

 ゲーム中のデータセーブといった仕組みも搭載されるので、いちおう長編RPG的なゲームも作成は可能なようだ。ただ、いくらボリュームを持たせられるといっても、Xbox 360のHDDの空き領域内という制限はつく

 ゲームに必要な数学ライブラリも一通り入っているようで、ベクトルや行列計算はもちろん、全方位回転演算に必要不可欠なクォータニオン(四元数)、箱/球ベースの衝突判定などもサポートされる。

サウンド関連のアセットはマイクロソフトのオーディオ制作ツール「XACT」を利用できる 入力デバイスについてはPCでもXbox 360コントローラがサポートされることで統一の操作系が実現される
データ保存/読み出しは仮想ファイルシステムを利用することで実現可能 ゲーム開発に必要な基本的な数学APIも提供される

PC上で指定したブレークポイントでXbox 360を停止させて変数の移り変わりを見ながらのステップ実行が可能
 デバッグ環境については、Xbox 360での実行をPC側で設定したブレークポイントで停止させたり、ステップ実行が可能だ。変数の値はトレース可能だが、途中編集しての再開はできない。とはいえ、無料の開発キットでリモートデバッグができるのはなかなか大したものだ。

 最初のXNA GSEにはサンプルゲームとして対戦型シューティングゲーム「Spacewar」が付属する。これはプログラムのソースコードはもちろん、グラフィックスやサウンドといったアートデータセットまでにアクセスが可能で、フリー素材的に自分のプログラムに流用が可能となっている。

 発表会では、フライトシミュレータ的なフライバイデモ「XNA fields」、レーシングゲーム調の「XNA racer」なども公開された。「XNA Field」はマルチスレッド設計になっているとのことで、Xbox 360ではゲームループで1スレッド、地形生成に3スレッドを割り当てているという。「XNA Racer」はXbox 360用のソフトとしては世界初の1080p出力に対応したことがアピールされた。「頑張ればこのくらいものが作れる」というトップエンドのデモンストレーションなワケだが、これらも完成次第、プログラムソース、データセットなどが順次無料公開となっていく予定だという。プログラムはもちろんデータまでもが素材として再利用できるので、これらをベースにしてオリジナルのアレンジゲームを制作することも可能だという。

 今回の全てのサンプルが、宇宙船、飛行機、車といった、軸回転のみのリジッドで変形しないキャラクタを使ったゲームであるという点が気になった。MDXのアニメーション機能がカットされている点が影響しているのかとも思ったのだが、マイクロソフトによれば、現在、1人称シューティング(FPS)ゲームのサンプルも制作中で、このサンプルゲームではキャラクタアニメーションが再現されているとのこと。ただし、そのサンプルでもアニメーション処理は自前で処理しているとのことなので、そう簡単にはいかないようだ。

 現時点では、やはり本格的な大長編大作ゲームというよりはプロジェクトのプロトタイピングや、ゲーム制作学習用といった習作開発環境システム……というようなイメージが色濃い。

XNA GSEにサンプルプログラムとして付属する「Spacewar」。それぞれのプレーヤーが宇宙船を捜査して互いに打ち合うというシンプルなゲーム。オリジナルは米MITで'62年に開発された最古の部類の同名のコンピュータゲーム
フライトシミュレータ系デモ「XNA Field」。XNAチームのエンジニアの1人が4週間掛けて制作した。アートセットは既存のものを流用 レーシングゲーム系デモ「XNA Racer」。ドイツのexDREAM entertainmentが開発中。メインプログラマが1人、アーティストが3人の4人チームで、開発開始から6週間後のビルドだという


■ 広がるXNA GSEの可能性〜Xbox 360で動作するノンゲームソフトウェアやZUNEへの対応も視野に

 現在のXNA GSEはかなりゲームに特化した仕様になっているが、ただし「Xbox 360に.NET Frameworkのサブセットが載った」という既成事実は、Xbox 360の汎用コンピュータとしての未来の可能性を大きく切り開くものとなったと思う。

 マイクロソフトはXNA GSEを「ゲーム開発環境」という言葉をやたら強調してはいるが、ゲーム以外のアプリケーションを開発することは行なえるのだろうか。このあたりの点をマイクロソフト、Xbox事業本部ゲームテクノロジーグループ田代昭博氏に聞いてみた。

 「はい、ゲーム以外のアプリケーションを開発することは技術的には全然可能です」(田代氏)

 もちろん用意されるAPIフレームワークがゲームに特化したものばかりなので、何でもかんでも作れるというわけではないだろうが、インタラクティブデモやちょっとした実用ソフトなどは開発することができそうだ。もちろん今後、インターネットアクセスやオフィスコンポーネント向けのAPIなどがサポートされて、Xbox 360に.NET Frameworkのフル版が載って走るようになれば、Xbox 360でワープロやメールソフトといった高度な汎用アプリを走らせるようになるかもしれない。もちろん、これはかなり希望的観測というか、空想に近いもので、実際できたとしてもそれを誰が使うのかということについて熱い議論は交わされそうだが。

 田代氏はこうもいっている。

 「現在、マイクロソフトとしては、このXNA GSEで作成したソフトウェアが実行できるプラットフォームはWindows PCとXbox 360の2つですが、将来的にはZUNEで動作させたり……といったことも考えています」(田代氏)

 ZUNEとはマイクロソフトが2006年11月に発売した携帯型メディアプレーヤーだ。あえて言うならばマイクロソフト版「iPod」的なものだが、プロセッサはWindows CE.NET端末のハイエンド機相当のものが搭載されており、.NETアプリケーションの実行にも将来的には対応すると言われる。そう、つまり、ZUNEにXNA Frameworkが載れば、XNA GSEで開発したゲームアプリケーションがZUNEでも走るようになるわけだ(もちろんグラフィックス等はZUNE用にモディファイしなければならないだろうが)。ちなみに、ZUNEは現在は東芝製のGIGABEATクローンのようなハードウェアだが、将来的にコンフィギュレーションを変更していくと見られ、いずれは3Dグラフィックスチップを搭載した携帯型Xbox(俗称Xboxポータブル)へ進化する未来像も予測されている。

 最後に、XNA GSEで作成したゲームを、XNAクリエイターズ・クラブに所属していない一般のXbox 360ユーザーで動かしてもらう機会を設けるつもりはないのかという問題について聞いてみた。

 「マーケットプレースで全く自由に一般公開というわけにはいかないんです。これにはXbox 360用ゲームの技術認定要件(TCR:Technical Certification Requirements)の問題もありますし、わいせつ表現とか残虐表現とか、そのゲームのテーマに問題がある場合も出てきますから。ただし、将来的にはXbox Liveのフレンド同士で交換する仕組みなどは提供したいと思っていますし、また、ゲーム作品コンテストなどを開催し、その優秀作をマーケットプレースで公開すると言ったことはやりたいと思っています」(田代氏)

 Xbox Liveのマーケットプレースの仕組みで、一般ユーザーソフトをシェアウェア的に購入したり試したりできればさらにコミュニティは盛り上がるだろう。開発キットを提供しただけでなく、制作したソフトをXbox 360ユーザーが簡単に利用できる仕組みは早期に整備して欲しいものだ。また、現在は有料となってしまっているXNA Game Launcherについても、PCとの接続/デバッグ機能を省いた実行オンリーのエンドユーザー向け無料版は欲しいと思う。

□マイクロソフトのホームページ
http://www.microsoft.com/japan/
□Xboxのホームページ
http://www.xbox.com/ja-jp/
□関連情報
【12月13日】マイクロソフト、WindowsとXbox 360で同一のゲーム開発環境を可能にする
「XNA Game Studio Express」最終版を提供開始
http://game.watch.impress.co.jp/docs/20061213/xna.htm

(2006年12月19日)

[Reported by トライゼット西川善司]



Q&A、ゲームの攻略などに関する質問はお受けしておりません
また、弊誌に掲載された写真、文章の転載、使用に関しましては一切お断わりいたします

ウォッチ編集部内GAME Watch担当game-watch@impress.co.jp

Copyright (c)2006 Impress Watch Corporation, an Impress Group company. All rights reserved.