論文種別: アブストラクト トラック: エンベデッド(?) Video Game Playing Computer Project 八重樫 剛史 はじめに ======== Video Game Playing Computer Project は、文字通り「ビデオゲームをプレイ するコンピュータ」を創造するプロジェクトである。 ビデオゲームは端的に言えば、ゲーム機からのビデオ出力、オーディオ出力の 情報をもとに、プレイヤーがレバーやボタンなどのコントローラを操作する形 態のゲームであるということができるが、当プロジェクトではコンピュータに そのプレイヤーと全くそれと同じことをさせようとしている。 このことには、いったいどのような意味があるのだろうか。筆者が、このプロ ジェクトを始めようと思い至った動機は 2 つある。 ひとつは技術的な興味からである。ビデオゲームは基本的に囲碁や将棋とは比 べものにならないほどシビアな時間制約を持つゲームであり、ゲームが出力す る画像の内容を素早く判断し、画面内のキャラクターに対して的確な指示を、 手遅れになる前に出さなくてはならない。 このような制約条件は、実世界で活動する知能ロボットの視覚の研究に通じる ものがあり、実際のプログラミングにおいても、興味深い課題をいくつも提供 してくれるものと期待される。 またロボットが扱う実世界の CCD 映像は、現時点の計算機能力では手に負え ないものであることが多いが、ビデオゲームの画像はより単純であり、基礎的 な研究に適した、わかりやすいテストケースを与えてくれる。 もうひとつの動機は、人間の遊び相手としてコンピュータをとらえた場合の考 察によって得られた結論による。 これまで、人間と対戦することができるコンピュータは数多く存在した。たと えば、チェスチャンピオンを打ち負かしたスーパーコンピュータなどがその例 である。しかしながらビデオゲーム、ことアクションゲームにおいて、真に人 間と対戦したと認められたコンピュータの存在は、いまだ知られていない。 ここでいう対戦ビデオゲームは、対戦格闘ゲームや対戦パズルゲームなどを想 定している。このようなビデオゲームは、たいていは人間同士と同様のルール の下で、人間のかわりにコンピュータの操作するキャラクターと対戦すること ができるものと思われがちであるが、これは厳密な意味で正しいは言えない。 コンピュータは、プレイヤーである人間には決して関知することのできないメ モリ上の情報を知り、操作することができる。プレイヤーは実際には、決して 抜けだすことのできないコンピュータの掌の上で、一喜一憂しているにすぎな いのである。 この事実は、対戦相手としてのコンピュータに対する人間の不信感を生じさせ る要因となっている。人間プレイヤーの操るキャラクターにはどうやっても不 可能な挙動を自分のキャラクターにさせることが、コンピュータには可能だか らである。 その結果、たとえそのような卑劣な行為をコンピュータが行っていない場合で も、「COM はタメ無しサマーソルト出してきてズルイ」「いきなり天和と言わ れて捨牌ボタンに触れることなく終わった」といったような、腕の未熟なプレ イヤーによるいわれのない非難を浴びるということがよくある。 この憂慮すべき状況を改善し、人間の不信感を払拭するためには、ビデオゲー ムの審判としてのコンピュータと、プレイヤーとしてのコンピュータを物理的 に分離する以外の方法はない。 さらに、コンピュータプレイヤーは人間プレイヤーと同様のインタフェースを もってゲームをプレイする。すなわち、ゲームのビデオ出力から状況を判断し、 画面内のキャラクタを動かすためにコントローラを操作する。 これによってはじめて、人間と対等の立場で真剣勝負のできる、完璧なコン ピュータプレイヤーが誕生するのである。 ハードウェア ============ さて、今日のハードウェアの急速な高性能化・低価格化により、ビデオゲーム をプレイするコンピュータは容易に構築することができるようになった。今回 のプロジェクトで採用する主要なハードウェアを以下にあげる。 o ゲーム機 ターゲットとなるゲーム機である。今回は入手性、安定度、画像入力の容 易さなどから、PlayStation, Dreamcast, Nintendo 64 などの今日市販さ れている家庭用ハードウェアを主なターゲットとする。 o PC リアルタイム画像処理はかつては専用ハードウェアや DSP に頼らなけれ ば不可能であったが、今日ではソフトウェアでも十分にリアルタイム処理 が可能なほど高速な CPU を搭載した PC が安価に手に入る。 最近のこれらの CPU に標準で搭載されている SIMD のマルチメディア命 令(MMX, SSE2, 3DNow! など)は、このような画像処理に対して大きな威力 を発揮するものと思われる。 o ビデオ画像取り込み装置 Bt848 をはじめとする PCI ビデオキャプチャカードが安価に入手できる ので、これを用いてゲーム機のビデオ出力をキャプチャし PC に入力する。 Linux においてはビデオキャプチャのために Video4Linux と呼ばれる API が整備されており、これを用いることによって移植性の高いソフトウェ アを書くことが可能である。 o ゲームコントローラ入力装置 PC が画像処理の結果下した判断を、ゲーム機のコントローラ・ポートを 介してゲーム機に伝えるための装置である。本来は人間向けのコントロー ラをそのまま扱うことができるロボットハンドを制御することが一番望ま しいが、非常に難度が高いため当面はこのような直接ゲーム機への入力を 生成する装置を採用する。 この入力装置と PC とのインタフェースとしては、パラレルポートを用い るのが最も簡単であると考えられるが、今日の PC の利用環境では USB も利用できることが強く望まれる。本プロジェクトではこのようなハード ウェアと Linux のドライバの作成を行う予定である。 かつてはゲーム機のコントローラの仕様といえば ATARI 仕様、JAMMA 仕 様がひとつの標準であったが、今日のゲーム機は通常、独自のコネクタ、 電気的プロトコルを採用している。多くの場合ソフトウェアのみでこれら に対処するのは難しいため、FPGA などによる専用ハードウェアを設計す る予定である。 なお「コントローラを破壊し、ボタン接点に信号を直接入力する」といっ た野蛮な方法は、筆者のエンジニアリング美学を大きく損うものであるた め、絶対に採用しない。あくまでもコントローラのプロトコルレベルでイ ンタフェースをとることを目指すことにする。 ソフトウェア ============ 強いコンピュータビデオゲームプレイヤーを作るためには、今日の画像認識ア ルゴリズムの研究成果を最大限活用する必要がある。必要なアルゴリズムには、 キャラクタのパターン認識、フレーム間比較による動き検出などがあげられる。 適用可能なアルゴリズムはゲームごとに決定する必要があると思われるが、そ れでもゲームのジャンルごとに、共通した傾向があるように思える。 o 音楽ゲーム 例えばビートマニア(コナミ)のような音楽ゲームは、最初に取り組むのに 適した最も単純な題材であると考えられる。 基本的には、一方向に動き続けるキャラクタが特定の位置に達したときに、 対応するコントローラのボタンを押せばよいだけであるので、キャラクタ の移動検出を行う必要もない。 o パズルゲーム ぷよぷよ(コンパイル/セガ)のような対戦型パズルゲームも、基本的にキャ ラクタの移動検出をする必要がなく、画像認識的には単純な部類に属する といえる。 ただしプレイヤーは、連鎖の構築や対戦相手の出方に応じた戦略の変更と いった判断を下していく必要があり、高度なリアルタイムプログラミング 技術が要求される。 o シューティングゲーム ギャラクシアン(ナムコ)のようなシューティングゲームでは、画像認識の 難易度が格段に高まる。プレイヤーは敵エイリアンや敵の弾の動きを検出・ 予測し、的確な攻撃と回避を行わなくてはならない。 o 3D ポリゴンゲーム 今日のビデオゲームのほとんどはポリゴンを用いた 3D のゲームになって いるが、このようなゲームの画像を認識することは、実世界画像と同程度 の困難さを伴うものと予想される。 まとめ ====== このアブストラクトでは Video Game Playing Computer Project について、 その目指すところと、今後の開発計画について説明した。 当然のことながら、当プロジェクトで開発されたハードウェア、ソフトウェア はすべて適切な場所にて公開する予定である。本プロジェクトの成果が、今後 の各方面の研究開発に微力ながらも貢献できればと思っている。 筆者について ============ 八重樫 剛史(やえがし たけし): - (株)ナムコ - GNU/Linux on SuperH プロジェクト、イロモノ担当。すごい CG 以外に は技術的に見るべきものが無いことの多い最近のビデオゲームをつまら なく思っている。